HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 4기 교육생
/
🐤
장현석팀
/
🕹️
Vue To React 프로젝트
🕹️

Vue To React 프로젝트

Vue 영화 검색 과제 진행하기

기술 스택

CRA React + JavaScript + Context-API + hook + browser-router + emotion + axios
 

코드 스타일 통일

  1. ESLint + Prettier + husky + lint-staged
  1. 커밋 메시지 템플릿 적용
  1. PR 메시지 템플릿 적용
 

PR rule

  • 최대 300 line 맥시멈
pr 템플릿
 

Commit rule

하나의 커밋은 하나의 기능만
  • 노드 패키지 종속성 추가하는 코드 한 줄이어도 커밋 하나
  • 메서드 하나 만들면 커밋 하나
 

Branch rule

  • git-flow 브랜치 전략 사용하기
https://techblog.woowahan.com/2553/
  • feature/movie-component
  • feature/page-routing
 

API 연결

  • api 호출 할 수 있도록 기반 코드 작성

기능 명세 작성

요구사항 작성이 필요
 

use-flow

  1. 메인 페이지에 접속한다
      • 과거 검색 기록이 있으면 보여주거나, 없으면 빈 페이지 출력
      • 영화 리스트 아이템이 보여진다.
  1. Search bar 에 검색어를입력한다
      • 콤보박스를 통해서 필터링된 영화 리스트 추천 검색어를 보여준다.
  1. input 이 변경될 때마다 API 호출 검색 페이지를 출력한다
      • 검색어 변경이 있을 때마다API 호출 dedounce 적용
  1. filter 기능 추가
      • 다양한 filter input 을 넣을 수 있다.
  1. 페이지네이션 구현
      • 버튼 식으로 구현하기
      • 또는 Intersection Observer 로 무한 스크롤
  1. 영화 아이템을 클릭하면, 영화 상세 페이지를 보여준다
      • 페이지로 구현하기
      • 별점 기능
      • parallax-scrolling 구현
      • 감독, 배우 구글 검색 연결
 
 

할 일 우선 순위

⇒ 기한: 1차는 수요일 코어타임 이후까지….
  • 매일 있었던 일 보고하기
 
  1. API 세팅 및 연결(axios) - 승희님!
    1. feature/axios-setting
      feature/context-api
      • axios 추가
      • Context API + custom hook
      • 모듈화
  1. Searchbar 컴포넌트 - 혜진님!
    1. feature/search-bar-component
      • Search 기능???
      • event handler???
      • enter 키를 통해 검색 페이지 출력
      → 캔디(콤보) 박스 컴포넌트도 만드는 것으로
      • 콤보박스는 debounce
  1. Movie List 컴포넌트 - 원지님!
    1. feature/movie-list-component
      • Movie Item 컴포넌트 만들기
      → 페이지 네이션(페이지 넘버 또는 무한 스크롤 원하는 대로)
      → 가능하다면 반응형도…?
  1. 영화 상세페이지 (CSS가 약한 사람) - 노철님!
      • id 는 라우터를 통해 받도록(params)
      • 별점 컴포넌트
      • parallax-scrolling 구현
      • 보여지는 디자인은 각자 알아서
  1. 라우팅 기능(brower-router 또는 원하는 라이브러리 사용) - 지성님!
      • 라우팅 학습
      • 라우팅 기능도 모듈화 할 수 있다면 좋을 것 같아여
      • main 페이지의 검색 기록 토대로 API 요청
      • Not Found 페이지 처리
      • 로딩 컴포넌트 만들기
 
 

후순위

  1. 필터링 기능
  1. 검색 기록
  1. 정렬 기능 (Gird → Flex view)
 

네이밍 규칙

변수명 규칙

약어 사용하지 않기
ex) information → info 로 사용 금지
 
  • 컴포넌트는 꼭 propTypes 추가하기
  • 주석을 지양하고, 주석 없이도 이해할 수 있는 메서드를 작성하려고 노력하기
  • 컴포넌트 내부에만 사용되는 상수는 파일 상단에 위치
 

꼭 지켜야하는 것은 아니지만, 지키면 좋을 클린 코드 규칙

→ 코드 리뷰할 때 중점적으로 봐주기
  • 함수는 최대한 하나의 일만 할 수 있도록
  • 함수는 10라인 이상 작성하는 것은 지양하기
  • 함수 depth 는 3 depth 이상은 지양하기
 

url

/
/movies/:id
 

UI 를 부르는 이름

  • Searchbar
  • MovieList(ul) + MovieListItem(li)
  • CandyBox
 
핸들러 이름
  • handleClick - onClick
 

CSS

  • emotion
  • mixin variables 추가하기
  • BEM 표기법 사용