영화리뷰기록사이트 만들기 루틴. 각 프레임워크의 역할
먼저, 웹이 돌아가는 큰 그림
-
브라우저(크롬): 웹페이지를 보여주는 극장 스크린.
-
서버: 자료를 보관하는 도서관.
-
HTTP 요청: “이 책 빌려주세요!” 하고 보내는 신청서.
-
API: 서버에 “이런 정보 주세요”라고 묻는 창구.
-
JSON: 서버가 보내주는 정리된 표(데이터) 파일.
웹의 3기둥 (이건 무조건)
-
HTML: 화면에 뼈대 만들기. (제목, 사진, 버튼)
-
CSS: 뼈대에 옷 입히기. (색, 크기, 배치)
-
JavaScript(JS): 화면을 움직이게 하기. (클릭하면 열기/닫기, 목록 불러오기)
메모: HTML=뼈, CSS=옷, JS=근육(움직임)
React / Vue / Svelte (프레임워크·라이브러리)
-
공통 역할: 레고 블록처럼 화면을 “조각(컴포넌트)”으로 나눠 빠르게 조립하게 도와주는 도구.
-
React: 전 세계에서 가장 많이 쓰는 레고. 블록 종류가 많고 생태계가 큼.
-
Vue: 설명서가 친절한 레고. 진입이 쉬움.
-
Svelte: 가벼운 레고. 성능에 강점.
메모: 세 도구 모두 “컴포넌트로 쪼개서” 만든다 → 선택은 취향+팀 표준.
Vite, Webpack (개발서버/번들러)
-
역할: 개발 중에 즉시 새로고침(HMR) 해 주고, 배포용으로 파일을 최적화/압축해 주는 포장기.
-
Vite: 빠른 포장기(요즘 표준).
npm run dev
하면 개발 서버가 켜짐. -
Webpack: 예전부터 널리 쓰던 포장기.
메모: Vite = 개발할 때 빠르게, build = 배포용 포장.
Tailwind CSS (스타일)
-
역할: CSS를 **짧은 단어(유틸 클래스)**로 빠르게 쓰게 해주는 옷장 정리 도우미.
예)bg-gray-100 p-4 rounded
→ 회색배경, 패딩, 둥근모서리.
메모: 디자인 시스템이 없을 때 빠르게 예쁘게 만들기 좋음.
React Router / Vue Router (길찾기)
-
역할: 사이트 안에서 페이지 이동을 흉내 내는 지도 앱.
-
SPA(한 장짜리 앱)인데도 주소가
/movie/1
처럼 바뀌는 척 하게 해줌.
메모: “어떤 주소에 어떤 화면을 보여줄지” 규칙표.
상태관리(공용 가방)
-
문제: 여러 화면이 **같은 정보(로그인, 장바구니)**를 함께 써야 함.
-
Redux Toolkit: 모든 화면이 같이 보는 큰 가방. 규칙대로 꺼내고 넣음.
-
React Query: 서버에서 가져온 데이터를 영리하게 캐시하고 자동 새로고침.
메모: 앱상태(권한/카트)=Redux, 서버데이터(API목록)=React Query → 역할 분리.
npm, node_modules (도구 장터·창고)
-
npm: 라이브러리를 다운받는 앱 마켓.
-
node_modules: 받은 라이브러리가 쌓이는 창고 폴더(자동 생성).
-
자주 쓰는 명령:
-
npm i 라이브러리
설치 -
npm run dev
개발 서버 실행 -
npm run build
배포용 포장
-
메모: 창고가 망가져도
npm i
하면 다시 채워짐.
Git / GitHub (저장·협업)
-
Git: 내 코드의 시간여행 저장소(버전관리).
-
GitHub: 인터넷에 올려 백업/협업하는 장소.
-
핵심 명령:
-
git add .
변경 모으기 -
git commit -m "메시지"
저장 -
git push
올리기
-
메모: 큰 변화마다 커밋을 남겨 두면 복구가 쉽다.
API & 데이터 (밖에서 정보 가져오기)
-
API 부르기:
fetch("주소")
혹은axios.get("주소")
-
JSON 읽기:
res.json()
→{ title: "...", items: [...] }
-
예시: 영화 검색 API에서 목록을 받아 카드로 뿌림.
메모: API는 약속된 질문/답변 형식.
Firebase / Auth (로그인)
-
역할: 회원가입/로그인/로그아웃을 빨리 붙이는 문지기.
-
구글/이메일 등 소셜 로그인도 쉽게.
메모: 비밀키는
.env
파일에, 깃에 올리지 않기!
배포(사람들이 보게 만들기)
-
GitHub Pages: 정적 사이트 배포(React는 HashRouter가 편함).
-
Vercel/Netlify: Next.js/SPA 배포가 아주 쉬움.
-
순서:
npm run build
→ 배포 설정 → 접속 링크 공유.
메모: 배포 후 강력 새로고침으로 캐시 지우고 확인.
자주 묻는 질문(초·중학생 버전 Q/A)
Q. React랑 Vue, 뭐가 달라요?
A. 둘 다 레고예요. React는 가장 큰 마트, Vue는 쉬운 설명서가 강점. 어느 걸 써도 “조각으로 나눠 만들기”는 같아요.
Q. Vite는 왜 써요?
A. 빨리 달리는 개발 자동차라서요. 저장하면 화면이 즉시 바뀌고, 배포용으로 예쁘게 포장도 해 줍니다.
Q. Redux가 꼭 필요해요?
A. “모든 화면이 같이 보는 가방(공용 상태)”이 필요할 때만. 서버에서 가져오는 목록은 React Query가 더 편해요.
Q. Tailwind는 뭐가 좋아요?
A. CSS를 짧은 단어로 빠르게 조합해서, 디자인 뼈대 잡기가 빨라요.
Q. npm이랑 node_modules는요?
A. npm은 앱 마켓, node_modules는 내 폴더 속 창고. npm i
하면 창고에 쌓여요.
1장 요약 메모(복붙용)
-
HTML=뼈, CSS=옷, JS=움직임
-
React/Vue=레고(컴포넌트로 조립)
-
Router=지도(주소↔화면 규칙)
-
Redux=공용 가방(앱 상태), React Query=서버 데이터 캐시
-
Tailwind=옷장(스타일 빠르게)
-
Vite=개발 자동차+포장기(Dev/Build)
-
npm=마켓, node_modules=창고
-
API=창구, JSON=정리된 답장
-
Firebase Auth=문지기(로그인)
-
배포=사람들에게 보여주기(GH Pages/Vercel)
댓글
댓글 쓰기