/nomadbooks

Primary LanguageTypeScript

Nomad Books

Nomad Books Logo

Additional information or tagline

A brief description of your project, what it is used for and how does life get awesome when someone starts to use it.

Goals

  • 새 NextJS 프로젝트를 만들고, New York Times Best Seller 목록 탐색 App을 빌드하세요

Requirements

  • 홈페이지 (/) : 베스트셀러 전체 리스트를 보여주세요
  • 상세 페이지 (/list/[id]) : 베스트셀러 각 카테고리별 책 리스트를 보여주세요
  • 어바웃 페이지 (/about) : About 페이지
  • Layout Component를 사용해야 합니다
  • CSS Modules를 이용해 꾸며주어야 합니다.
  • 포기하지 마세요!

Notes

Preview

Submit

  • #4.0 ~ #4.6 을 시청하고 Vercel에 작업물을 배포하세요
  • 제출 URL 형태는 다음과 같습니다 [project-name].vercel.app
  • 제출기간 : 04/01(월) 06:00 까지

Logbook [of Day 39 ~ 42]

Day 39 (03/28)

Project Structure 뼈대잡기

CSS Reset 라이브러리 선정

Vercel 계정 생성

인터페이스 만들기 귀찮은 자 여기로 오라

Day 40 (03/29)

Naming Convention

  • References : https://basarat.gitbook.io/typescript/styleguide
  • 변수 : camelCase
  • 상수 : SCREAM_SNAKE_CASE
  • 함수 : camelCase
  • 클래스 : PascalCase
    • 클래스의 멤버 변수 : camelCase
    • 클래스의 메서드 : camelCase
  • 인터페이스 : PascalCase
    • 인터페이스의 멤버 변수 : camelCase
    • 인터페이스를 알리는 I를 사용하지 마십시오!(헝가리안 표기법 안써도 인터페이스임이 명확함)
  • 타입
    • 타입 이름 : PascalCase
    • 타입의 멤버 변수 : camelCase
  • 네임스페이스 : PascalCase
  • 열거형(enum)
    • 열거형 이름 : PascalCase
    • 열거형의 멤버 변수 : PascalCase
  • 파일
    • 일반적으로 : camelCase
    • 리액트 컴포넌트 : PascalCase
  • 모듈 : snake_case
  • URL : kebab-case
  • HTML Tag : kebab-case

언제 Server/Client 컴포넌트를 사용해야 하는가?

행위 서버 컴포넌트 클라이언트 컴포넌트
데이터 가져오기
백엔드 리소스에 (직접) 액세스
민감 정보(Access Token, API Key 등) 저장
서버에 대한 큰 의존성 유지 / 클라이언트 측 JavaScript 감소
상호작용 및 이벤트 리스너(onClick(), onChange()등) 추가
상태 및 수명주기 효과 사용(useState(), useReducer(), useEffect()등)
브라우저 전용 API 사용
상태, 효과 또는 브라우저 전용 API에 따라 달라지는 사용자 정의 후크를 사용
React 클래스 구성요소 사용

Day 41 (03/30)

Component 전략

Dark Mode in NextJS with TailwindCSS

Day 42 (03/31)

Deployment

  • Vercel Client 설치

    $ pnpm i -g vercel
    또는
    $ brew install vercel-cli
  • Vercel Build

    $cd ~/{ProjectDirectory} && vercel build
  • Vercel Deploy

    $cd ~/{ProjectDirectory} && vercel deploy
    💡 이미 Deploy 된 것을 최신 Build 버전으로 선택하려면 deploy 대신 아래 사용
    $vercel --prod
  • Connect Github Repository

    • 프로젝트 파일 스테이징 영역에 추가

      $cd ~/{ProjectDirectory} && git add .
    • 프로젝트 파일 커밋

      gitmoji가 없을 경우 설치
      $ brew install gitmoji
      $ gitmoji -c
      > 🚀 Deploy Stuff 선택
      커밋 제목, 타이틀 입력 후 commit!
    • Github Repository 연결

      프로젝트 생성 시 원격 Repository 연결이 없었다면 추가
      $ git remote add origin <원격 저장소 URL>
      원격 Repository에 변경사항 반영
      $ git push origin main