커스텀 서버
- Next.js는 자체 서버를 제공하기 때문에 별도 서버 준비 필요 X
- 단, 어떤 경우에서는 별도 웹서버가 필요하기도 함
- 커스텀 웹 서버에서 실행할 수 있는 직관적 API 제공
커스텀 서버가 필요한 경우
- Next.js 웹 애플리케이션을 기존 서버에서 실행하는 경우 (리팩터링)
- 멀티테넌시 지원이 필요한 경우
- 멀테테넌시란? 단일 인스턴스가 여러 고객에게 서비스를 제공하는 아키텍처
ex. 웹메일 등
- 더 세밀한 제어가 필요한 경우
커스텀 서버의 단점
- 커스텀 서버는 Next.js에 최적화된 Vercel에 배포할 수 없음
- 더 많은 코드를 작성하고 유지보수해야함
테스트란?
- 단위 테스트
- 코드의 각 함수가 제대로 작동하는지 확인하기 위한 테스트
- 엔드 투 엔드 테스트 (e2e 테스트)
- 애플리케이션에 대한 사용자 상호 작용을 흉내내서 특정 작동이 발생했을때 적절한 응답을 하는지 확인하기 위한 테스트
- 통합 테스트
- 애플리케이션에서 서로 구분되어있는 영역이 함께 잘 작동하는지 확인하기 위한 테스트
- 서로 연관된 함수와 모듈을 한데 묶어 적절한 출력을 만들어내는지 검사함
Jest를 이용한 단위 및 통합 테스트
yarn add -D jest
❗ 주의점
Next.js는 pages/ 안의 모든 .js 관련 파일을 애플리케이션 페이지로 간주하므로 테스트 파일을 pages/ 안에 두면 안됨