개발을 시작하기 전에 정해야 할 것들
미니 블로그에 필요한 기능
전체 화면 디자인
create-react-app을 사용해 프로젝트 생성
프로젝트 디렉터리에 들어가서 앱 실행하기
(한번에 두 개의 패키지 설치)
설치된 것을 확인할 수 있다.
PostList: 글 목록 컴포넌트
PostListItem : 글 항목 컴포넌트
: 사용자가 입력을 할 수 있게 해주는 Component
: Bottom up방식으로 작은 부분부터 구현!
미니 블록에 필요한 UI Component
: html에서 제공하는 button 태그로 사용해도 되지만, 별도의 리액트 컴포넌트로 만드는 이유는 버튼의 스타일을 변경하고 버튼의 들어갈 텍스트도 props로 받아서 좀 더 쉽게 사용할 수 있게 하기 위해서이다.
원한다면 부가적인 기능들을 추가할 수 있다.
: 사용자로부터 text를 입력받을 수 있는 컴포넌트, 보통 입력을 받을 때 input 태그를 사용하지만, 여러 줄에 걸친 텍스트를 입력 받아야 하기 때문에 textarea 태그를 사용함.
: 작은 컴포넌틈 먼저 작성
: Map 함수를 사용하여 글의 개수만큼 PostListItem 컴포넌트를 생성함.
: 글 작성을 위한 페이지
: 글을 볼 수 있게 해주는 컴포넌트이기 때문에, 글과 댓글을 보여줘야하고, 댓글 작성 기능도 제공해야함.
페이지 간 이동은?
: 라우팅은 App.js 파일에 포함되어 있는 App 컴포넌트에 구현하게 되는데 App 컴포넌트가 가장 처음으로 렌더링 되는 컴포넌트이기 때문
리액트는 기본적으로 index.js 파일을 렌더링 함.
처음으로 렌더링할 부분을 지정할 수 있음!
여기에서는 처음으로 웹 사이트에 접속하면 App 컴포넌트가 렌더링 되도록 함.
App 컴포넌트는 브라우저 라우터 컴포넌트로 둘러싸여 있기 때문에 현재 경로를 탐색해서 해당되는 페이지 컴포넌트가 렌더링 됨.
하나의 글을 클릭하면
해당 글과 댓글을 볼 수 있음
npm run build
build 폴더 생성
index.html, 이미지, css 파일, js bundle 파일이 각각 들어가게 됨.
npm install -g serve
: static 파일들을 서빙 해주는 역할을 하는 파일
-g : global 모드로 설치 -> 각 프로젝트 내에 설치하는 것이 아닌 현재 사용 중인 컴퓨터 다른 경로 어디에서든지 사용할 수 있음.
설치 이후
serve -s build //빌드 폴더 기반으로 웹 애플리케이션을 서빙함.
실행했을 때
권한 문제가 발생함!
권한 문제 해결할 때 참고한 블로그
이후 성공적으로 서브가 실행됨
해당 주소로 접속하게 되면 개발 모드에서 실행할 때와 동일하게 미니 블로그가 나옴.