<< 학습 목표 >>

1. 프로젝트 내 컴포넌트들의 구조를 그릴 수 있다.

2. import 키워드에 대해서 설명할 수 있다.

3. export 키워드에 대해서 설명할 수 있다.


JSX와 컴포넌트 기초를 다지는 시간을 가져보자

 

지금 우리 프로젝트에서 화면에 컨텐츠가 보이는 구조와 과정은 다음과 같음

1. index.js 에서 화면에 보여줄 컴포넌트를 불러옴

2. 컴포넌트를 화면에 출력할 id가 root 태그를 불러옴

3. (2)에서 불러온 태그에 (1)에서 불러온 컴포넌트를 출력함


3권의 도서 정보를 출력하는 웹 페이지를 JSX와 컴포넌트 기초에서 배운 내용으로 만들어보자

이 웹 페이지의 구조는 다음과 같이 만들 것

 

먼저 각 도서의 정보를 출력할 컴포넌트를 만들자

3권의 도서 정보를 출력할 것이므로 컴포넌트는 3개를 만들 것

프로젝트 -> src -> chapter02 -> Book1.jsx, Book2.jsx, Book3.jsx 를 추가하자

<< Book1.jsx >>

더보기

import React from 'react';

function Book1() {
    return (
        <div>
            <h1>도서명 : 소플의 처음만난 리액트</h1>
            <h2>저자 : 이인제</h2>
            <h3>출판사 : 한빛미디어</h3>
            <hr/>
        </div>
    );
}

export default Book1;

 

<< Book2.jsx >>

더보기

import React from 'react';

function Book2() {
    return (
        <div>
            <h1>도서명 : 리액트를 다루는 기술</h1>
            <h2>저자 : 김민준</h2>
            <h3>출판사 : 길벗</h3>
            <hr/>
        </div>
    );
}

export default Book2;

 

<< Book3.jsx >>

더보기

import React from 'react';

function Book3() {
    return (
        <div>
            <h1>도서명 : 한 입 크기로 잘라 먹는 리액트</h1>
            <h2>저자 : 이정환</h2>
            <h3>출판사 : 인사이트(insight)</h3>
            <hr/>
        </div>
    );
}

export default Book3;

 

App.js 에서 각 컴포넌트를 불러와 출력하도록 하자

기존에 있던 App.js 는 사용하지 않고 Chapter02 안에 App.js 를 추가해 App 컴포넌트를 추가할 것

import React from "react";
import Book1 from "./Book1";
import Book2 from "./Book2";
import Book3 from "./Book3";

function App() {
    return (
        <div>
            <Book1 />
            <Book2 />
            <Book3 />
        </div>
    );
}

export default App;

 

이제 마지막으로 index.js 파일 내 코드를 다음과 같이 정리(1)하고 App 컴포넌트를 불러오자(2)

 

이제 리엑트 프로젝트를 실행시키면 다음과 같이 3권의 도서 정보가 출력됨


앞으로 각 글에서 실습할 때는 Book1, Book2, Book3처럼 별도의 컴포넌트를 생성해 실습할 것임

각 글에서 실습한 것들을 확인하기 위해서 챕터별 폴더 안에 App.js 를 추가해 실습한 컴포넌트를 App.js가 불러오도록 할 것임

App.js 파일 이름은 App1.js, App2.js 처럼 App(number).js 로 지을 예정

index.js 에서는 Chapter02에서 실습한 걸 확인하기 위해 챕터별 폴더 안에 App(number).js 를 불러와 App 컴포넌트를 호출해 실습한 것들을 화면에 출력할 것

 

말로 들으면 어렵지만 한, 두번 해보면 어렵지 않을 것


컴포넌트에 반복적으로 사용한 import, export에 대해서 알아보자

Book1 컴포넌트와 App 컴포넌트를 통해 import, export에 대해서 단계적으로 알아보자

 

<< Book1 컴포넌트 >>

컴포넌트 마다 첫번째 줄에 (1) 이 있는데 이는 "이 파일 안에서 리엑트 코드를 쓰겠다" 임

이를 생략해도 상관 없는데 이를 생략하면 프로젝트가 실행될 때 (1) 이 자동으로 추가됨

즉, 리엑트 코드를 사용하려면 반드시 추가해야함

자동으로 추가되니 생략해도 상관은 없지만 왠만하면 수동으로 직접 추가해주는게 좋음

 

컴포넌트 마다 마지막 줄에 (2) 가 있는데 이는 "다른 파일에서 Book1 컴포넌트를 import 할 수 있게 해주겠다" 라는 것

따라서 컴포넌트 마지막 마다 반드시 추가해야함

 

<< App 컴포넌트 >>

컴포넌트를 불러올 때(1)는 반드시 ./ 부터 시작해야함

./ 는 현재 위치를 뜻하는 기호임

 

컴포넌트를 불러올 때 파일의 확장자는 생략함

 

컴포넌트를 불러오는 코드를 우리말로 해석해보면 현재 위치의 Book1.jsx 파일 내 컴포넌트를 불러오는데(1) 그 컴포넌트 명을 이 파일에서는 Book1 으로 사용하겠다(2) 임

아래 그림의 왼쪽에 App.js 에서 import Book1 이라고 했으므로 from으로 불러온 컴포넌트를 App.js 에서는 Book1 으로 사용하겠다는 것

 

 

만약 아래 그림의 왼쪽에 App.js 처럼 import Abc 라고 한다면 from으로 불러온 컴포넌트를 App.js 에서는 Abc 로 사용하겠다는 것이 됨

 

일반적으로는 처음의 App.js처럼 컴포넌트의 원래 이름과 import 해서 사용할 이름을 맞춰줌

728x90
LIST

'JS + React > React-Chapter01' 카테고리의 다른 글

Chapter01. 리엑트 프로젝트 분석  (0) 2023.03.29
Chapter01. 리엑트 프로젝트 만들기  (0) 2023.03.28
Chapter01. 리엑트 설치하기  (0) 2023.03.28
Chapter01. 리엑트란?  (0) 2023.03.28

<< 학습 목표 >>

1. 프로젝트 내 컴포넌트를 출력하는 태그를 찾을 수 있다.

2. 프로젝트 내 컴포넌트를 불러오는 JS 파일을 찾을 수 있다.

3. 프로젝트 내 컴포넌트를 찾을 수 있다.


웹 프로젝트 내 웹 페이지는 각자의 웹 페이지가 있지만

리엑트 웹 프로젝트 내 웹 페이지는 하나뿐임

그래서 SPA(Single Page Application) 라고 부름

 

리엑트는 화면에 보여줄 요소(Element / 컨텐츠)를 컴포넌트라고 부름

페이지별 컨텐츠를 컴포넌트로 만들어두고 컴포넌트를 id가 root인 div에 출력하는 방식

 

결국 따져보면 일반 웹 페이지는 페이지별 컨텐츠를 HTML 페이지에 만들어두는 것이고 리엑트 웹 페이지는 페이지별 컨텐츠를 컴포넌트에 만들어두는 것

 

페이지냐 컴포넌트냐의 차이일 뿐 결국 프로젝트의 규모가 커지면 페이지가 많아지듯 컴포넌트가 많아짐

그러나 리엑트는 그 이상의 많은 장점이 있음

그 장점에 대해서는 리엑트의 제일 마지막에 얘기할 것


리엑트 프로젝트가 어떤 구조로 되어있길래 SPA가 가능한지 프로젝트 구조를 살펴보자

우리가 만든 프로젝트를 열어보면 가장 위에 다음과 같이 3개의 폴더와 몇개의 파일이 보임

 

여기서 public 폴더(1)를 열어보면 다음과 같이 하위 파일들이 있음

 

여기서 index.html 파일을 열어보면 위에서 언급했던 아이디가 root인 div 태그(1)가 있음

이 div를 통해 내가 만든 컴포넌트가 상황에 따라 출력됨

 

이번에는 src폴더(1)를 열어보면 다음과 같이 하위 파일들이 있고 그 안에 index.js(2) 가 상황에 맞는 컴포넌트를 아이디가 root인 div에 출력하는 역할을 함

 

index.js 파일을 열어 보면 아래와 같은 코드들이 보임

출력할 컴포넌트를 불러오는 코드(1)

컴포넌트를 출력할 id가 root인 태그를 불러오는 코드(2)

id가 root인 태그에 불러온 컴포넌트 출력(3)

 

App.js 파일(1)을 열어보면(2) return 안에 출력할 컨텐츠(3)가 보임

 

출력할 컨텐츠를 다음과 같이 바꾸면(3) 화면에는 Hello React! 가 보임


여기까지 리엑트 프로젝트의 구조를 알아봤음

 

화면에 보여줄 컨텐츠는 컴포넌트 라는 요소로 추가를 하고 index.js에서 컴포넌트를 불러와 상황에 맞는 컴포넌트를 호출하면는 구조임

 

또 A 컴포넌트에서 B 컴포넌트를 호출해 A 컴포넌트의 특정 부분을 B 컴포넌트로 채울 수 있음

리엑트는 웹 페이지를 마치 레고 블록 조립하듯 할 수 있게 해준다는 장점도 있음

728x90
LIST

'JS + React > React-Chapter01' 카테고리의 다른 글

Chapter02. 리엑트와 친해지기  (0) 2023.03.29
Chapter01. 리엑트 프로젝트 만들기  (0) 2023.03.28
Chapter01. 리엑트 설치하기  (0) 2023.03.28
Chapter01. 리엑트란?  (0) 2023.03.28

<< 학습 목표 >>

1. 프로젝트에 리엑트를 설치할 수 있다.

2. 리엑트 프로젝트를 생성할 수 있다.

3. 리엑트 프로젝트를 실행시킬 수 있다.


프로젝트를 생성하고 프로젝트에 리엑트를 설치할 수 있는 준비가 끝났음

프로젝트를 생성하고 프로젝트에 리엑트를 설치하자

 

전 글에서 언급했지만 리엑트는 프로젝트 마다 설치하는 것

그리고 리엑트는 npm 으로 설치함

 

npm으로 리엑트를 설치할 프로젝트를 지정하면 프로젝트가 생성되고 해당 프로젝트에 리엑트가 설치됨

괜히 말로 들으면 복잡하니 직접 실습해보자

 

우선 여러분의 컴퓨터 바탕화면 또는 어딘가에 리엑트 학습을 위한 폴더를 생성하자

그 후 vs code 내 상단 [ 파일 ] (1) -> [ 폴더 열기 ] (2) 후 해당 폴더를 선택하자

이제 리엑트 프로젝트를 생성하면 해당 폴더 안에 생성될 것


리엑트 프로젝트를 생성하기 위해 터미널을 열자

vs code 상단 [ 터미널 ] (1) -> [ 새 터미널 ] (2)

 

vs code 하단을 보면 [ 터미널 ] 콘솔(1)이 열렸을 것

터미널에 표시되는 경로를 주의 깊게 보자

터미널에 표시 되는 경로가 위에서 만든 폴더의 경로가 아니라면 위에서 폴더 선택이 되지 않은 것이니 다시 위 내용을 보고 폴더 선택을 하고 터미널 콘솔을 열여야함

 

터미널 콘솔에 [ npx create-react-app (프로젝트명) ] 명령을 입력하면 리엑트 프로젝트가 만들어짐

npx create-react-app first-project 명령을 입력해 리엑트 프로젝트를 생성하자

리엑트 프로젝트가 생성되는데 시간이 다소 소요되는데 그 이유는 해당 프로젝트에 리엑트를 설치하기 때문

 

! 여기서 알 수 있는 점 !

프로젝트를 생성하고 프로젝트에 리엑트를 설치한다고했는데 간단하게 위 명령을 입력해 프로젝트를 생성하고 프로젝트에 리엑트를 설치한 것

 

! 여기서 주의할 점 !

리엑트 프로젝트명에는 가급적 대문자가 들어가지 않는 것이 좋음

프로젝트 이름을 다른 이름으로 만든다면 대문자를 빼고 소문자로만 만들자

 

리엑트 프로젝트가 설치됬다면 아래와 같은 메세지가 보일 것


리엑트 프로젝트를 실행시켜보자

여기서 개발 경험이 있는 분들은 "프로젝트만 만들었지 그 안에 뭘 추가한건 아닌데?" 라고 생각할 수 있음

리엑트 프로젝트를 생성하면 샘플 페이지가 들어있기 때문에 프로젝트를 실행시키면 샘플 페이지가 보임

 

리엑트 프로젝트를 실행시키는 방법은 이미 알고 있음

리엑트 프로젝트를 생성하고 나온 메세지 중 이 메세지(1)가 리엑트 프로젝트를 실행시키는 메세지임

 

터미널 창에 먼저 cd first-project 입력 후 엔터

그 다음 npm start 입력 후 엔터를 쳐보자

 

잠시 기다리면 웹 페이지가 열리며 다음과 같은 화면이 보일 것


여기까지 리엑트 프로젝트를 생성하고 리엑트 프로젝트를 실행시켰음

 

리엑트 프로젝트를 생성하는 명령과 리엑트 프로젝트를 실행시키는 명령을 잘 기억해두자

728x90
LIST

'JS + React > React-Chapter01' 카테고리의 다른 글

Chapter02. 리엑트와 친해지기  (0) 2023.03.29
Chapter01. 리엑트 프로젝트 분석  (0) 2023.03.29
Chapter01. 리엑트 설치하기  (0) 2023.03.28
Chapter01. 리엑트란?  (0) 2023.03.28

<< 학습 목표 >>

1. node를 설치할 수 있다.

2. vs code를 설치할 수 있다.


게임을 하려면 게임을 설치해야하고 카카오톡을 하려면 카카오톡을 설치해야하는 것처럼 리엑트로 개발을 할것이기 때문에 리엑트를 설치해야함

리엑트는 npm 으로 설치해야하는데 npm 역시 설치해야함

npm은 별도로 설치할 수도 있지만 Node.js(이하 node)를 설치하면 같이 설치 되기 때문에 node를 설치하자

node는 JS로 SPA를 개발할 수 있게 해주는 환경이라고 생각하면 됨

 

인터넷에 node.js로 검색(1) 해 첫 번째 검색 결과(2)인 node 공식 홈페이지로 들어가자

검색 결과가 다르다면 주소창에 https://nodejs.org/en 를 직접 입력해도 됨

 

node 공식 홈페이지에 들어오면 바로 보이는 [ ~ LTS ] 를 선택(1)

LTS란 Long Term Support의 약자로 해당 버전을 장기간 지원해주는 버전임

이 글을 보는 시점에 따라 18.15.0 LTS가 아닐 수 있는데 이는 큰 의미는 없음

 

곧바로 설치 프로그램이 다운 받아지며 설치 프로그램을 다운 받아 실행시켜 설치하면 되므로 별도 이미지 첨부는 하지 않음

 

여기까지 리엑트를 설치하기 위해 node를 설치했음

 

리엑트 설치는 리엑트를 적용하고 싶은 프로젝트 마다 별도로 설치해야하므로 개발툴까지 설치 후 프로젝트를 만들 때 설치하겠음


이번에는 개발툴인 VS Code를 설치하자

지난 글에서 리엑트를 톱에 비유했는데 개발툴은 작업대 라고 할 수 있음

나무를 자르기 위해서 톱만 있어도 되겠지만 적절한 작업대 위에 나무를 올려두고 톱질을 한다면 톱질이 더 수월할 것

 

리엑트로 웹 페이지를 만들 수 있지만 VS Code 안에서 리엑트로 웹 페이지를 만들면 더 수월하게 만들 수 있음

 

인터넷에 vs code로 검색(1) 해 첫 번째 검색 결과(2)인 vs code 공식 홈페이지로 들어가자

검색 결과가 다르다면 주소창에 https://code.visualstudio.com/ 를 직접 입력해도 됨

 

vs code 공식 홈페이지에 들어오면 바로 보이는 [ Donwload for Windows ] 클릭(1)

그러면 페이지가 이동하지만 잠시 기다리면 vs code 설치 프로그램이 다운로드 됨

 

vs code 역시 다운로드 받은 설치 프로그램을 실행시켜 설치하므로 설치 과정은 생략함


vs code 를 실행시켜 보면 모두 영문임

한글 언어팩을 설치해 vs code를 한글화 하자

 

vs code 내 왼쪽에서 확장 프로그램 메뉴(1) 클릭 -> korean 으로 검색(2) -> 한글 언어팩 설치(3)

 

한글 언어팩을 설치한 후 vs code 를 껐다 키자

한글화가 됬을것

만약 한글화가 안됬다고 해도 문제는 전혀 없음

꼭 한글화를 하고 싶다면 인터넷에 검색을 해서 직접 찾아보자

 

728x90
LIST

<< 학습 목표 >>

1. 라이브러리를 설명할 수 있다.

2. SPA에 대해서 설명할 수 있다.


리엑트(React)는 JavaScript(이하 JS) 라이브러리(Library)임

프로그래밍에서 라이브러리는 철물점에 비유할 수 있음

 

나무를 잘라야하는데 톱이 없다면?

어떻게든 직접 나무를 자를 순 있겠지만 깨끗하게 잘리지 않고 자르는데 굉장히 오래 걸림

가장 효율적인 방법은 철물점 가서 톱을 사와 자르는 것임

철물점에 가는 시간, 톱을 사는 추가 비용이 발생하겠지만 효율적인 방법 중 하나임

 

프로그램을 개발하면서 어떤 기능이 필요하다면?

어떻게든 그 기능을 직접 만들 순 있겠지만 실수로 인해 기능상 문제가 있을 수 있고 만드는데 시간이 굉장히 오래 걸릴 수 있음

가장 효율적인 방법은 그 기능을 불러다 사용하는 것임

그 기능을 불러다 사용하기 위해서는 기능을 찾는 시간, 기능을 불러다 사용하기 위해 공부해야하는 시간과 수고가 발생하겠지만 효율적인 방법 중 하나임


웹 사이트의 규모가 커지면 웹 페이지가 굉장히 많아지게 됨

네이버를 예로 들어보자

네이버는 1차 메뉴만 봤을 때 메일부터 웹툰까지 그리고 이 외에도 굉장히 많은 메뉴가 존재함

각 메뉴 마다 페이지가 존재해야함

또 각 1차 메뉴 안에서 또 각 2차, 3차 메뉴가 있으므로 네이버 서비스의 페이지는 수백개가 넘을 것

(이 예는 저의 생각을 표현한 예시로 사실이 아닙니다)

 

이렇게 페이지가 점점 많아지는 불편함을 해결하기  위해 나온게 SPA(Single Page Application)임

SPA란 페이지가 하나만 있는 서비스로 페이지에서 보여줄 컨텐츠가 바뀌었을 때 웹 페이지를 다시 로드하지 않고도 보여줄 수 있는 기술임

 

SPA 기능을 사용하면 하나의 페이지에서 여러 컨텐츠를 보여줄 수 있음이 SPA 기능이 필요할 때 개발자가 직접 개발할 수 있겠지만 굉장히 시간이 오래 걸림몇 시간 정도가 아니라 몇 개월에서 평생이 걸릴 수 있음

 

이럴 때 SPA 라이브러리를 찾아 SPA 라이브러리를 공부하고 적용한다면 효율적으로 적용할 수 있을 것대신 SPA 라이브러리를 찾는 시간과 SPA 라이브러리를 공부하는 시간이 소요되긴 하겠지만 직접 개발하는 것 보다 비교가 안될 정도로 훨씬 빨리 SPA 기능을 적용할 수 있을 것


SPA 라이브러리(또는 프레임워크)로 유명한 것들은 엥귤러(NGULAR), 리엑트(React), 뷰(Vue)가 있음

여기서 우리는 리엑트를 배움

 

이 카테고리는 HTML, CSS, JS 공부를 끝내고 리엑트를 공부하려는 사람들을 위한 카테고리임

리엑트에 대해서 이미 알고 있거나 리엑트를 더 깊게 공부하려는 분과는 맞지 않음

 

리엑트(React)는 HTML, CSS, JS에 대한 사전 지식이 필요함

만약 HTML, CSS, JS를 잘 모른다면, 또는 리엑트 공부를 따라오면서 어려운 부분을 만나면 HTML, CSS, JS 공부를 하고 오자

 

보통의 블로그나 책의 설명을 보면 리엑트에 대해서 설명하고 장,단점이나 역사를 설명하는데 리엑트를 사용해보지 않았는데...

페이지가 많은 대규모 서비스를 개발 해본적이 없는데...

이런 부분들을 이해할 수 있을까?

괜히 지면 차지가 아닐까 싶음

 

리엑트의 장, 단점은 리엑트를 다 배우고 난 뒤에 이해할 수 있으니 다 배우고 난 후 장, 단점을 보자

728x90
LIST