React 코딩 #02 - 시작하기 (Getting Started)

in 코딩 카페4 years ago (edited)

이번 강의는 리액트 개발을 위한 환경 설정과 'Hello World' 앱을 만들어 보겠습니다.

Agenda

  1. 실행환경
  2. HTML 파일에 직접 코딩해보기
  3. React 환경 갖추기
  4. 리액트 앱 실행하기
  5. 리액트 앱 수정하기

1. 실행환경

React 는 별도의 설치파일 없이도 HTML 문서 내에서 직접 코딩해볼 수 있지만, 실 서비스에서 사용하려면 실행환경인 NodeJS와 패키지 관리 프로그램인 NPM 또는 Yarn 등이 필요합니다.

2. HTML 파일에 직접 코딩해보기

React 를 가장 빨리 경험해볼 수 있는 방법은 HTML 파일에 직접 코딩해보는 것입니다. HTML 파일에 작성한 예제 코드를 확인해보겠습니다. (이미지를 클릭하면 codepen.io 에서 직접 코딩해볼 수 있습니다)

image.png

위 코드 중 몇 가지를 행 단위로 살펴보겠습니다.

  • 02: 리액트와 관련된 핵심(core) 라이브러리
  • 03: 리액트 DOM 제어 라이브러리
  • 04: 자바스크립트의 최신 문법들을 하위 버전으로 변환(transpile)해주는 Babel 라이브러리
  • 11: Hello 라는 이름으로 리액트 클래스형 UI 컴포넌트 정의
  • 17: id="root"<p> 요소 안에 Hello 컴포넌트 표시

위 코드에서 <script> 태그로 추가한 라이브러리들은 리액트의 JSXES6 문법을 사용할 수 있게 해줍니다. JSX 와 ES6은 추후 다루도록 하겠습니다.

위 방법은, React 를 테스트 할 목적으로는 괜찮지만 실 서비스 개발을 위해서는 React 환경을 제대로 갖춰야 합니다.

3. React 환경 갖추기

개발을 위한 컴퓨터의 OS는 윈도우즈, 맥 또는 리눅스 계열 중 어떤 것이든 좋습니다. 각 OS 별로 설치방법은 다를 수 있지만 명령어와 코드는 동일하게 적용됩니다. 리액트 개발을 위한 NodeJS 및 NPM 설치 가이드는 인터넷에서 쉽게 찾을 수 있으므로 이 곳에서 다루지 않습니다. 참고로, NodeJS 는 최신 버전 보다는 지원 기간이 길고 안정적인 LTS(Long Term Support) 버전으로 설치하는 것이 좋습니다.

nojs_download_versions.png

NodeJS 와 NPM (또는 Yarn)을 설치했다면 create-react-app을 설치합니다. 터미널(OS console)을 열고 아래와 같이 명령문을 입력하세요.

  • NPM 을 이용한 설치

    npm install -g create-react-app

  • Yarn 을 이용한 설치

    yarn global add create-react-app

*맥OS 또는 리눅스에서는 전역(global) 위치에 설치할 때 권한 오류(permission denied)가 발생할 수 있으므로 명령문 앞에 sudo 를 추가해주세요.

create-react-app 을 성공적으로 설치했다면 이제 hello-react 라는 이름으로 리액트 앱을 생성해보겠습니다. create-react-app은 React 앱을 실행하는 데 필요한 라이브러리, 환결설정, 디렉토리 구조까지 모든 것들을 알아서 작업해줍니다.

4. 리액트 앱 실행하기

이제 진짜 React 앱을 구동할 준비가 되었습니다. 위에서 생성된 hello-react 폴더(directory)로 이동한 뒤 다음 명령문을 입력하세요.

npm start

또는

yarn start

위 명령이 정상적으로 실행되면 새로운 브라우저의 창이 열리고 리액트 앱이 구동됩니다. 만약 이미 열려 있었다면 자동으로 새로고침(refresh) 될 것입니다. 아래 화면이 보인다면 리액트 앱이 올바르게 시작된 것입니다.

image.png

5. 리액트 앱 수정하기

기본 리액트 앱을 생성하고 구동해보았으니 이제 내용을 수정해보도록 하겠습니다.

hello-react 폴더 안을 보면 src 라는 폴더가 있습니다. 이 폴더 안의 App.js 라는 파일을 엽니다.

/hello-react/src/App.js:
image.png

자, 이제 HTML 내용을 수정하여 브라우저에 Hello World!를 표시해보겠습니다.

개발환경이 구동 중인 상태에서 파일을 수정한 뒤 저장하면 브라우저에 바뀐 내용이 자동으로 반영됩니다. 즉, 브라우저를 새로고침(refresh) 할 필요가 없습니다.

App.js 안의 불필요한 내용들을 지운 뒤 <div className="App"> 요소(element)의 내용을 <h1>Hello Worl!</h1> 으로 수정합니다.

image.png

결과화면이 다음과 같은지 확인합니다.

image.png

첫 React 앱을 만드신 것을 축하드립니다!

위 예제는 리액트의 클래스형 컴포넌트를 구현한 것으로, ES6(EcmaScript 2015) 명세를 따르는 자바스크립트 문법을 사용했습니다.

다음은 함수형 컴포넌트의 사용 예를 보겠습니다.
먼저, 기존 앱의 불필요한 파일들을 제거하여 좀 더 단순한 형태로 만든 뒤 진행하겠습니다.

  • /public 폴더 안에는 index.html 파일만 남겨두고 다 제거합니다.
  • /src 폴더 안에는 index.js 파일만 남겨두고 다 제거합니다.
  • /node_modules 는 앱에 필요한 자바스크립트 패키지(라이브러리)들이 위치하고 있으므로 그대로 둡니다.
  • package.json 파일은 리액트 앱의 환경설정 파일이므로 남겨둡니다.

결국 코드와 관련된 파일은 index.htmlindex.js 입니다. 두 파일을 아래 예제와 같이 고친 후 결과를 확인합니다.

image.png

개발환경이 갖춰지지 않았다면 codepen 에서 확인해보세요.
(이미지를 클릭하여 직접 코딩해보세요)

image.png

행 단위로 몇 가지 알아보겠습니다.

  • HTML (/public/index.html)

    코드펜은 HTML 영역이 기본적으로 body 영역이므로 <html><body>태그가 생략되었습니다.

    • 01: id 속성이 "root"<div>요소입니다.
  • JS (/src/index.js)

    코드펜에서는 설정을 통해 React 와 Babel 라이브러리가 포함되어 있어서 코드에 import 가 생략되었습니다.

    • 01: App 이라는 함수형 컴포넌트를 정의합니다.
    • 02: <h1>Hello, world!</h1>를 반환합니다. (JSX 문법)
    • 05: DOM 의 <div id="root"></div> 요소 안에 <App/> 컴포넌트를 삽입합니다.

이상으로 간단한 React 앱의 클래스형 컴포넌트함수형 컴포넌트를 구현해 보았습니다. 다음 강의에서는 위 내용들을 좀 더 자세히 다루도록 하겠습니다.

*위 강의는 w3schools.com 의 내용을 포함하고 있습니다.

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 67435.35
ETH 3528.53
USDT 1.00
SBD 2.68