본문 바로가기
반응형

분류 전체보기166

[Spring] 2주차: 스프링 부트와 AOP 입문 2주차: 스프링 부트와 AOP 입문목표: 스프링 부트(Spring Boot)가 어떻게 복잡한 스프링 설정을 자동화하고 개발 생산성을 높여주는지 이해합니다. 또한, 애플리케이션의 공통 관심사를 효과적으로 분리할 수 있는 AOP(관점 지향 프로그래밍)의 기본 개념을 학습하고 실제 코드에 적용해 봅니다.1. 스프링 개발의 혁신: 스프링 부트 (Spring Boot)1.1 스프링 부트 이전의 문제점 (XML 지옥)1주차에서 우리는 스프링의 핵심인 IoC/DI를 배웠습니다. 하지만 전통적인 스프링 프레임워크는 다음과 같은 불편함이 있었습니다.복잡한 설정: DispatcherServlet, ViewResolver, DataSource 등 웹 애플리케이션을 하나 실행하기 위해 수많은 빈(Bean)을 XML 파일이나 .. 2025. 9. 19.
[Spring] 1주차: 스프링의 핵심 - IoC/DI와 스프링 컨테이너 1주차: 스프링의 핵심 - IoC/DI와 스프링 컨테이너목표: 스프링 프레임워크의 가장 근본적인 설계 사상인 IoC(제어의 역전)와 DI(의존성 주입)를 완벽하게 이해합니다. 개발자가 직접 객체를 생성하고 연결하던 방식에서 벗어나, 왜 스프링에게 그 제어권을 넘겨야 하는지 체감하고, 스프링 컨테이너와 빈(Bean)의 개념을 익힙니다.1. 프로그래밍의 패러다임 전환: 제어의 역전 (IoC)1.1 기존 방식의 문제점스프링이 없던 시절, 우리는 보통 다음과 같이 코드를 작성했습니다.// OrderService.java (주문 서비스)public class OrderService { // 주문을 처리하려면 어떤 데이터베이스에 저장할지 알아야 합니다. // OrderService가 직접 `MySqlOr.. 2025. 9. 19.
[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.
반응형