00. 사이드 프로젝트 세팅

2024. 10. 5. 19:15·스터디/사이드 프로젝트

사이드 프로젝트를 시작해 보려고 우선 Git에 레포지토리 및 프로젝트를 생성했습니다.

이 프로젝트의 목적은 Next.js와 TypeScript를 공부하는 것입니다. React도 아직 기초에 불과하지만, 개발을 하면서 하나씩 알아가려 합니다.

사이드 프로젝트 Git

Next.js 프로젝트 생성

npx create-next-app@latest [프로젝트명]
cd [프로젝트명]

npm run dev

 

우선 프로젝트가 실행되는 것을 확인했습니다.

Next.js의 특징

  • 서버 사이드 렌더링(SSR) : 페이지 요청 시 서버에서 렌더링하여 사용자에게HTML 전달. SEO에 유리하고, 초기 로딩 속도가 빨라진다는 장점이 있다.
  • 파일 기반 라우팅 : pages 디렉토리 안에 파일을 생성함으로써 자동으로 라우팅을 설정할 수 있다. 각 파일의 이름이 URL 경로와 매핑

TypeScript의 장점

  • 타입 안정성 : 변수 정의 시 타입을 명시할 수 있어, 런타임 오류를 줄이고 코드의 안정성을 높여준다.

프로젝트 구조

App Router를 사용해 보려고 설정하였습니다.

  • app : 페이지와 라우트를 정의하는 기본 디렉토리. 파일 추가 시 자동으로 라우팅 설정
  • page.tsx : 기본 페이지 컴포넌트 정의
  • layout.tsx : 모든 페이지에 공통 적용할 레이아웃 정의
  • not-found.tsx : 특정 경로에 대한 404 페이지 정의
  • public : 정적 파일(이미지, 폰트 등) 저장하는 곳
  • styles : CSS 파일을 관리하는 디렉토리

공통 레이아웃 설정하기

import 시 경로 @

import Header from '@/components/Header';
  • Next.js에서 제공하는 절대 경로를 나타내는 기호
  • 코드의 가독성과 유지보수성을 높일 수 있습니다.

오류

Warning: In HTML, <div> cannot be a child of <html>.
This will cause a hydration error.

 

Next.js가 SSR을 사용하는데, 이때 서버에서 렌더링된 HTML과 클라이언트에서의 컴포넌트가 일치하지 않아서 문제가 발생했다. 아직 Next.js에 익숙하지 않아서 React로 잘 하던 것도 자꾸 오류가 나는데 얼른 익숙해지도록 노력해야겠다..

경로 매개변수 전달

  • 서버 컴포넌트에서는 클라이언트 훅을 사용하지 않고, 매개변수를 인수로 받아 처리
  • 매개변수는 params 객체를 통해 접근

'스터디 > 사이드 프로젝트' 카테고리의 다른 글

01. 포트폴리오 사이트 1차 완료  (2) 2024.10.18
00. 포트폴리오 사이트의 시작  (3) 2024.10.15
03. Supabase 연동  (0) 2024.10.11
02. Vercel로 배포하기  (0) 2024.10.07
01. Zustand로 상태관리 하기  (1) 2024.10.06
'스터디/사이드 프로젝트' 카테고리의 다른 글
  • 00. 포트폴리오 사이트의 시작
  • 03. Supabase 연동
  • 02. Vercel로 배포하기
  • 01. Zustand로 상태관리 하기
개발자 화진
개발자 화진
https://github.com/HwajinLee3114
  • 개발자 화진
    lhjin.log
    개발자 화진
  • 전체
    오늘
    어제
    • 분류 전체보기 (31)
      • 개발 (10)
        • FE (9)
        • BE (0)
      • Algorithm (0)
      • 기술면접 (4)
      • 스터디 (14)
        • 사이드 프로젝트 (7)
        • Udemy) NextJS 15 & React (3)
        • Udemy) TypeScript with Reac.. (1)
      • ETC (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    NextJS
    유데미 스터디
    Next.js
    프론트엔드 아키텍처
    lazy loading
    supabase
    코딩앙마
    javascript
    모노레포
    사이드프로젝트
    Frontend
    ThemeProvider
    Zustand
    자바스크립트
    멀티레포
    아키텍처
    티스토리챌린지
    multirepo
    React
    오블완
    pnpm
    유데미 코리아
    유데미
    Typescript
    유데미 러닝크루
    vercel
    인프런
    fe
    프론트엔드
    udemy
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
개발자 화진
00. 사이드 프로젝트 세팅
상단으로

티스토리툴바