1. 기본 세팅
    1. ESLint

      기본적으로 Next.js는 ESLint가 설정되어 있다.

      {
        "extends": "next/core-web-vitals"
      }
      

      이는 공식 문서에서는 “엄격한 코어 웹바이탈 규칙 집합과 함께 Next.js의 기본 ESLint 구성으로 포함한다.” 라고 설명되어 있으며, ESLint 기본 설정이라고 생각하면 될 거 같다.

b. Prettier

이번 블로그 만들기에서는 prettier도 함께 적용해보려 한다.

먼저 공식 문서대로 설치를 진행.

yarn add --dev --exact prettier

다음으로 프로젝트에서 .prettierrc파일을 생성하여 규칙들을 정해준다.

{
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": true
}

prettier와 eslint를 함께 사용할 때 충돌할 수도 있기 때문에 공식 문서에서는 다음과 같은 절차를 따라 eslint-config-prettier를 설치하라고 한다.

yarn add --dev eslint-config-prettier

그리고 .eslintrc.json 파일에 extends를 추가해주도록 한다.

{
  "extends": ["next/core-web-vitals", "prettier"]
}

c. tailwind css 세팅

Next.js는 기본적으로 tailwind를 추천한다.

그 이유는 복합적으로 여러가지가 있다고 하는데,

첫번째로는 tailwind의 장점 때문이기도 하다. 개발 경험 향상이 큰 이유이다.

두번째로는 CSS in JS는 SSR에서 제대로 작동하지 않는다.

자세한 내용은 해당 블로그에서 참조하였다. 이후 다시 정리해보도록 하고 우선 프로젝트 세팅을 진행한다.

https://velog.io/@shinhw371/CSS-why-Nextjs-recommand-Tailwind

  1. 데이터 베이스 세팅

    1. Prisma

      사용이유?

      • Node.js 기반의 ORM 도구로 데이터베이스 상호작용 단순화하며 개발 생산성이 향상된다.
      • SQL쿼리를 직접 작성하는 대신 JS코드로 쿼리 작성하고, 타입 세이프한 쿼리 작성.

      위와 같은 이유와 더불어 프론트엔드 개발자가 SQL쿼리를 배우지 않아도 API 생성이 쉽다.

    2. Supabase

      사용이유

      • PostgreSQL기반 데이터베이스를 제공하여 스키마를 관리하고 복잡한 쿼리를 실행.
      • 오픈소스 백엔드 플랫폼.
      • 매우 간편하고, 경제적이다!
      • Firebase는 NoSQL기반으로 제약이 있지만 Supabase는 PostgreSQL기반.

    세팅하기

블로그 기본적 기능 완료 후

웹 성능 평가 및 측정

Core Web Vitals

Javascript

Javascript의 실행 속도에 대해서 고민해야하는 시점?

웹 렌더링 방법론