본문 바로가기
반응형

백엔드/네스트10

[NestJS] 10장: 테스팅 - 견고한 애플리케이션 만들기 10장: 테스팅 - 견고한 애플리케이션 만들기테스트는 코드의 품질을 보장하고, 리팩토링이나 기능 추가 시 발생할 수 있는 예기치 않은 버그(회귀, Regression)를 방지하는 안전망 역할을 합니다. NestJS는 Jest 테스팅 프레임워크와 Supertest 라이브러리를 기반으로 한 강력한 테스팅 환경을 기본으로 제공합니다.1. 핵심 개념테스팅의 종류:단위 테스트 (Unit Tests): 가장 작은 코드 단위(함수, 메소드, 클래스)를 개별적으로 테스트합니다. 의존성은 모의(mock) 객체로 대체하여 해당 단위의 로직에만 집중합니다.통합 테스트 (Integration Tests): 여러 개의 단위(클래스, 모듈)가 함께 상호작용하는 방식을 테스트합니다. 실제 데이터베이스나 외부 서비스와의 연동을 테스.. 2025. 9. 19.
[NestJS] 9장: 설정 및 로깅 - 애플리케이션 환경 관리하기 9장: 설정 및 로깅 - 애플리케이션 환경 관리하기프로덕션 수준의 애플리케이션은 다양한 환경(개발, 스테이징, 프로덕션)에서 동작해야 하며, 각 환경에 맞는 설정 값을 가져야 합니다. 또한, 애플리케이션의 동작 상태를 추적하고 디버깅하기 위한 로깅(Logging) 시스템도 필수적입니다. NestJS에서 이를 효과적으로 관리하는 방법을 배웁니다.1. 설정 관리 (@nestjs/config)@nestjs/config는 NestJS 공식 설정 관리 모듈로, .env 파일이나 환경 변수를 애플리케이션에서 쉽게 사용할 수 있도록 도와줍니다.라이브러리 설치:npm install @nestjs/config.env 파일 생성: 프로젝트 루트에 .env 파일을 만들고 환경별 설정 값을 정의합니다. .gitignore에 .. 2025. 9. 19.
[NestJS] 8장: 인증 - 사용자를 확인하고 보호하기 8장: 인증 - 사용자를 확인하고 보호하기보안은 모든 애플리케이션의 핵심입니다. 이번 장에서는 사용자가 누구인지 확인하는 인증(Authentication) 시스템을 구축하는 방법을 배웁니다. NestJS는 Passport.js 라이브러리와의 통합을 통해 유연하고 확장 가능한 인증 전략을 쉽게 구현할 수 있도록 지원합니다. 여기서는 가장 널리 사용되는 JWT(JSON Web Token) 기반 인증을 다룹니다.1. 핵심 개념인증(Authentication): "당신은 누구인가?"를 확인하는 과정입니다. (예: 아이디/비밀번호로 로그인)인가(Authorization): "당신이 이 작업을 수행할 권한이 있는가?"를 확인하는 과정입니다. (예: 관리자만 접근 가능한 페이지)Passport.js: Node.js를.. 2025. 9. 19.
[NestJS] 7장: 실전 프로젝트 - Todo 리스트 API 서버 만들기 7장: 실전 프로젝트 - Todo 리스트 API 서버 만들기지금까지 배운 NestJS의 핵심 개념(모듈, 컨트롤러, 프로바이더, DI, TypeORM, 파이프 등)을 모두 활용하여 할 일(Todo) 목록을 관리하는 완전한 CRUD API 서버를 구축합니다.1. 프로젝트 목표 및 구조기능 요구사항:Todo 목록 조회 (완료/미완료 필터링 기능 포함)특정 Todo 조회새 Todo 생성 (내용 유효성 검사 포함)Todo 내용 및 완료 상태 수정특정 Todo 삭제기술 스택:프레임워크: NestJS데이터베이스: TypeORM + SQLite (간단한 파일 기반 DB로 설정이 쉬움)유효성 검사: class-validator, class-transformer프로젝트 구조: todo-api/ ├── src/ │ .. 2025. 9. 19.
[NestJS] 6장: 데이터베이스 연동 (with TypeORM) 6장: 데이터베이스 연동 (with TypeORM)대부분의 웹 애플리케이션은 데이터를 영구적으로 저장하기 위해 데이터베이스를 사용합니다. NestJS에서 가장 널리 사용되는 ORM(Object-Relational Mapping) 라이브러리인 TypeORM을 사용하여 데이터베이스와 상호작용하는 방법을 배웁니다.1. 핵심 개념ORM (Object-Relational Mapping):객체 지향 프로그래밍 언어(TypeScript/JavaScript)의 객체(Object)와 관계형 데이터베이스(Relational Database)의 테이블을 자동으로 매핑(연결)해주는 기술입니다.복잡한 SQL 쿼리를 직접 작성하는 대신, user.save(), userRepository.find() 와 같은 객체 지향적인 코드로.. 2025. 9. 19.
[NestJS] 5장: 미들웨어, 파이프, 가드 - 요청 처리의 수문장들 5장: 미들웨어, 파이프, 가드 - 요청 처리의 수문장들NestJS는 Express의 미들웨어 개념을 포함하면서, 파이프(Pipe), 가드(Guard)라는 추가적인 요청 처리 메커니즘을 제공합니다. 이들은 각각의 명확한 역할을 가지고 컨트롤러에 도달하기 전 요청을 처리하는 수문장 역할을 합니다.1. 핵심 개념미들웨어 (Middleware):Express의 미들웨어와 거의 동일합니다. 라우트 핸들러가 실행되기 전에 호출되는 함수입니다.주로 요청/응답 객체를 조작하거나, 로깅, 서드파티 라이브러리(예: helmet, cors) 연동 등 라우트 핸들러와 직접적인 관련이 적은 횡단 관심사(cross-cutting concerns)를 처리하는 데 사용됩니다.@Injectable() 클래스로 구현하거나 간단한 함수.. 2025. 9. 19.
반응형