
1. yarn์ ์ค์น ( cmd ์ฐฝ์ ์๋ ์ฝ๋๋ฅผ ์์ฐจ์ ์ผ๋ก ์ ๋ ฅํ์ฌ ์ค์นํจ )
* npm / yarn : npm๊ณผ yarn์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์ ํ๊ฒฝ์ธ ๋ ธ๋(Node.js)์ ํจํค์ง ๊ด๋ฆฌ์
์ ์ธ๊ณ์ ๊ฐ๋ฐ์๋ค์ด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ ๋ค์ํ ํจํค์ง๋ฅผ npm ์จ๋ผ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค
(opens new window)์ ์ฌ๋ฆฌ๋ฉด npm, yarn๊ณผ ๊ฐ์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ํตํด ์ค์น ๋ฐ ์ญ์ ๊ฐ ๊ฐ๋ฅ
> NPM(Node Package Manager)์ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด๋ฅผ ์ํ ํจํค์ง ๊ด๋ฆฌ์๋ก, Node.js์ ๊ธฐ๋ณธ ํจํค์ง ๊ด๋ฆฌ์
> yarn์ 2016๋ ํ์ด์ค๋ถ์์ ๊ฐ๋ฐํ ํจํค์ง ๊ด๋ฆฌ์. ๋ฆฌ์กํธ(React)์ ๊ฐ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๊ฒช์๋ ์ด๋ ค์์
ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ๋ฐ, npm๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋, npm ๋ ์ง์คํธ๋ฆฌ์ ํธํํ๋ฉด์ ์๋๋ ์์ ์ฑ ์ธก๋ฉด์์ npm๋ณด๋ค ํฅ์
(๋ณดํต npm์ด ์๋ yarn์ ์ฌ์ฉํ๋๋ฏํจ)
| Yarn React
npm i yarn --global
// ์ ์ฝ๋๋ก ์ต์ด yarn ์ค์น๋ฅผ ํ๋ค๋ฉด, ์๋์ ๊ฐ์ด ์ฝ๋์์ฑํ์ฌ ์์ํ๋ฉด๋จ
// ์๋๋ 'begin'ํด๋์ ์์ฑํ๊ณ ๋ค๋ฅธ๊ฑธ๋ก ํด๋๋จ
yarn create react-app begin
// ์ค์น์๊ฐ ์กฐ๊ธ ์์๋จ

2. yarn์ ๊ฒฝ๋ก๋ฅผ ์ก๊ณ ์์
cd begin
// ์ ์ค์น๊ฐ ๋๋๋ฉด begin์ด๋ผ๋ ํด๋๊ฐ ์์ฑ๋๋ฏ๋ก ์ด๊ณณ์ผ๋ก ๊ฒฝ๋ก์ค์
yarn start
// ์ ๋ช
๋ น์ด๋ก ๋ฆฌ์กํธ ํ์ด์ง๊ฐ ํ๋ ์คํ๋จ

3. App.js์์ html ์ง๋ฏ ์์ ์์ํ์ฌ ๋งํฌ์ ํ๋ฉด ๋ฆฌ์กํธํ์ด์ง (http://localhost:3000/) ์์ ์คํ๋จ
+ App.css์์ ์คํ์ผ์ํธ ์์ฑํ์ฌ style์ ์ ์ฉํจ
+ index.css์์ reset.css๋ฅผ ์์ฑํ๋ฏ style์ ์ ์ฉํจ
* React Fragment <> </> ๋ก ๊ฐ์ธ์ ์์ ํด์ผ ์ค๋ฅ ์๋ธ (์๋ ํผ ์ฐธ๊ณ )
- React Fragment : React์์๋ JSX์์ ์ฌ๋ฌ ์์๋ฅผ ๋ฐํํ๋ ค๋ฉด ํ๋์ ๋ถ๋ชจ ์์๋ก ๊ฐ์ธ์ผ ํจ.
๋ง์ฝ div๋ span ๊ฐ์ ํ๊ทธ๋ก ๊ฐ์ธ๋ฉด ๋ถํ์ํ DOM ์์๊ฐ ์๊ธธ ์ ์์. Fragment๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์ ๋ ๊ธฐ๋ฅ
* 'App'์ ์ปดํฌ๋ํธ ์ธ๋ฐ ์ปดํฌ๋ํธ ์ด๋ฆ ์ฒซ์๋ ๋๋ฌธ์์ฌ์ผํจ
import React from 'react';
import './App.css';
function App() {
return(
<div>
<h1>๋ฆฌ์กํธ ํ
์คํธ ์ ๋ชฉ</h1>
<p>๋ฆฌ์กํธ ํ
์คํธ</p>
</div>
);
}
export default App;


+ index.js์ ๋ณด๋ฉด id root๊ฐ index.html์ id๋ก ์ง์ ๋๊ฑธ ๊ฐ์ ธ์์ ๋ณด์ฌ์ค๋ค๋๊ฑธ ํ์ธ๊ฐ๋ฅ
์ฆ, App.js์์ ์๋งน์ด ๋งํฌ์ ์ ํ๋ฉด, index.js๋ฅผ ํตํด index.html์ ํ๊ธฐํด์ฃผ๋ ๊ตฌ์กฐ
4. ๊ธฐ์ด์ ํ (์๋ ํ์ผ๋ค์ ํ์์์ผ๋ฏ๋ก ์ญ์ )
[src ํด๋]
- reportWebVitals.js <index.js์ ์ฐ๊ฒฐ๋ ์๋ ์ฝ๋ ๋ํ ์ญ์
import reportWebVitals from './reportWebVitals';
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
- App.test.js
- logo.svg
- setupTests.js

++++
5. header ์ปดํฌ๋ํธ ๋ง๋ค์ด์ ๋ฃ๊ธฐ
1. src ํด๋์ header.jsx๋ฅผ ๋ง๋ค๊ณ ์๋ ํผ๊ณผ๊ฐ์ด ์์ฑ
import React from "react";
function Header(){
return (
<>
<header className="header">
<h1 className="logo">๋ก๊ณ </h1>
<ul className="nav">
<li>menu1</li>
<li>menu2</li>
<li>menu3</li>
<li>menu4</li>
</ul>
</header>
</>
);
}
export default Header

2. ๋ง๋ header.jsx๋ฅผ App.js์ ์ฐ๊ฒฐ
*๋จ๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํจ
import React from 'react';
import './App.css';
import Header from './header';
// ์ด๊ณณ์ main,footer๊ฐ ์ถ๊ฐ๋์ด ๋๊ฐ๊ฒ๋จ
function App() {
return(
<>
<Header/>
<Main/>
</>
);
}
export default App;
์ด๊ณณ์ CSS ํจ๊ณผ๋ฅผ ์ฃผ๊ณ ์ถ๋ค๋ฉด 1. ๋ฒ๊ณผ์ header.jsx์ css๋ฅผ ์ํฌํธํจ
import React from "react";
import "./header.css"; //<์ํฌํธํ ๋ถ๋ถ
function Header(){
return (
<>
<header className="header">
<h1 className="logo">๋ก๊ณ </h1>
<ul className="nav">
<li>menu1</li>
<li>menu2</li>
<li>menu3</li>
<li>menu4</li>
</ul>
</header>
</>
);
}
export default Header
3. ์๋์ ๊ฐ์ด header ๋ฐ, mainImg ๋ฐ , Content.. ๋ฑ๋ฑ์ ์ฐจ๊ณก์ฐจ๊ณก ์์๋๊ฐ๋ฉด ๋จ


4. ๊ฒ์ฌ - components์์ ํ์ธํด๋ณด๋ฉด ์์์ ์์ ์ปดํฌ๋ํธ๊ฐ ๋ณด์
* ์๋ ํ์ฅํ๋ก๊ทธ๋จ ์ค์นํด์ผํจ

*

++ | ๊ทธ๋ฅ ๋ฆฌ์กํธ ์ค์น๋ฐฉ๋ฒ
1. node js ์ค์น (LTS์ค์น)
Node.js โ ์ด๋์๋ JavaScript๋ฅผ ์คํํ์ธ์
Node.jsยฎ is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
2. ๋ช ๋ น์ด ์ ๋ ฅํ์ฌ ์ค์น ๋ฐ ์์ฑ (์ด๋ฐ์ ์๊ฐ ์ข ๊ฑธ๋ฆผ)
D:\cpu\react>npx create-react-app-blog
์๋ ๋ฌธ๊ตฌ
npx create-react-app blog
(blog๋ ํด๋๋ช
ํ ๊ฒ์ผ๋ก ์ง์)

3. cd๋ก ์์น ์ก๊ณ ์์
npm start
4. ํ์์๋ ํ์ผ์ ์ ํฌ์คํ ๋ณด๊ณ ์ ๋ฆฌ
++ ์๋ฌ๋ฐ๋ ์ต์ ๋ฒ์ ์ด ์๋์ฌ์ ์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋
์๋ ์ฝ๋๋ก ๋ฒ์ ํ์ธํ, ๋ฎ์ผ๋ฉด ์์ node์ฌ์ดํธ์์ ์ ๋ฐ์ดํธํด์ผํจ
node -v
npm -v
'๐ Fav' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐๋ฆฌ์กํธ ์ฑ ๊นํ ๋ฐฐํฌํ๊ธฐ (0) | 2025.01.20 |
---|---|
1-3. ๊นํ๋ธ ๋ฐ์คํฌํ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ + ์๋ฐ ํ์ผ ๋ฐฐํฌ + ๋งํฌ๋ค์ด๋ฐฉ๋ฒ (0) | 2024.06.30 |