🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발8편. GitHub Actions로 Jest 테스트 자동화 — “테스트는 사람의 손을 떠나야 한다”지난 글에서 우리는 Jest 커버리지를 100%까지 끌어올리며테스트 품질을 수치로 관리하는 방법을 배웠습니다.이제 진짜 실무에서 중요한 단계로 갑니다.테스트 자동화(CI: Continuous Integration) —즉, “코드가 커밋될 때마다 테스트가 자동으로 실행되는 환경”을 구축해봅시다.🎯 목표GitHub Actions로 Jest 테스트 자동화커버리지 리포트 자동 생성PR(풀 리퀘스트)마다 테스트 통과 여부 자동 표시실패 시 병합 차단1️⃣ GitHub Actions란?GitHub Actions는 GitHub 저장소 내에서 실..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발7편. 테스트 커버리지 100% 달성하기 — “테스트의 양보다 질을 높여라”이제 /users API는 완전히 동작하고, 에러 핸들링까지 갖춰졌습니다.하지만 “테스트가 충분한가?” 라는 질문엔 아직 답하지 못했죠.이번 글에서는 Jest의 커버리지(coverage) 를 통해프로젝트의 테스트 품질을 측정하고, 불필요한 테스트 없이 100% 커버리지에 도달하는 전략을 다룹니다.🎯 목표Jest 커버리지 리포트 이해하기불필요한 테스트 없이 100% 라인 커버리지 달성테스트 제외 파일(jest.config.js 설정)함수 분리 / 리팩터링으로 커버리지 향상1️⃣ Jest 커버리지 리포트 활성화package.json에 아래 옵션이 이미 있다면..
NestJS + Prisma로 JWT 인증 & 게시글 CRUD 구현하기(Express 기능을 Nest 구조로 완전 이식하기)지난 글에서는 Express 프로젝트를 NestJS + TypeScript + Prisma 구조로 리팩토링했습니다.이제 본격적으로 실전 기능 ― “회원가입 + 로그인 + 인증된 게시글 CRUD” ― 를 NestJS 스타일로 구현해봅니다.이 편은 사실상 Express 버전에서 만든 기능을 완전히 Nest 모듈 구조로 재현하는 단계입니다.(즉, Express의 기능 = NestJS 구조로 이전)🧭 이번 목표기능 설명회원가입bcrypt 암호화, 이메일 중복 검사로그인JWT 발급 (Access Token)인증 미들웨어@UseGuards() 로 보호된 API 구성게시글 CRUD사용자 인증 ..
NestJS + TypeScript로 리팩토링하기 (Express 프로젝트 진화편 1)(Express 구조를 그대로 가져와 확장 가능한 백엔드로 성장시키기)지금까지 우리는 Node.js + Express + MySQL + Redis + Docker + CI/CD 로실제 서비스 가능한 백엔드를 완성했습니다.하지만 프로젝트가 커질수록 이런 문제가 생깁니다.“라우터, 컨트롤러, 미들웨어가 뒤섞여 복잡하다.”“DTO나 타입이 없어서 유지보수가 어렵다.”“코드가 길어지면 의존성 관리가 힘들다.”이 문제를 해결하기 위한 다음 단계가 바로 NestJS + TypeScript 리팩토링 입니다.🧭 이번 글의 목표항목 목표1️⃣NestJS 설치 및 프로젝트 초기 세팅2️⃣Express 프로젝트 구조 비교 및 이전 전략3..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발6편. 예외 처리와 에러 핸들링 테스트 — “실패를 통과시켜야 진짜 TDD다”지난 글에서 우리는 Prisma + SQLite로 실제 DB를 연결하고테스트 가능한 통합 환경까지 완성했습니다.이제 TDD의 핵심 주제 중 하나인 에러 처리(Error Handling) 를 다룰 차례입니다.TDD는 “성공”만 검증하는 게 아니라, “예상된 실패”도 반드시 통제해야 합니다.이걸 해내면, 여러분의 API는 “깨지지 않는 서비스”로 발전합니다.🎯 목표Express에서 에러 핸들링 구조 정립비즈니스 예외 vs 시스템 예외 구분Jest로 실패 케이스 테스트하기supertest로 API 레벨에서 4xx/5xx 응답 검증1️⃣ Express 에러 핸..
Express + MySQL 사이드프로젝트 아키텍처 완성편(기술문서로 정리하는 ‘실전 백엔드 운영 구조’)이제 여러분은 하나의 완전한 백엔드 서비스를 스스로 구축했습니다.Express, MySQL, JWT 인증, Swagger, Docker, CI/CD, Redis 캐시, PM2 프로세스 관리까지…이 글은 그 모든 과정을 정리하고 시각화하는 마지막 단계입니다.이번 편의 목표는 단순합니다."내 프로젝트를 누가 봐도 구조가 명확하고, 실제 서비스로 동작 가능한 시스템임을 설명할 수 있도록 만든다."🧭 이번 글에서 정리할 것구분 내용1️⃣전체 시스템 아키텍처 다이어그램2️⃣데이터 흐름 및 요청 처리 구조3️⃣운영 및 배포 파이프라인4️⃣모듈별 역할 및 의존 관계5️⃣향후 확장 전략 (NestJS, TypeS..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발5편. SQLite + Prisma로 실제 DB 연결 및 통합 테스트앞선 4편에서는 UserService와 UserRepository를 분리하고 Jest Mock을 사용해DB 없이 로직을 테스트하는 구조를 만들었습니다.이번에는 드디어 진짜 데이터베이스(SQLite) 를 붙여 통합 테스트 (Integration Test) 를 해봅니다.이 단계부터 “실제 데이터가 저장되고 조회되는 흐름”이 테스트로 검증됩니다.🎯 목표Prisma ORM을 이용해 SQLite 메모리 DB 설정테스트용 데이터베이스 분리 (test.db vs dev.db)테스트 실행 시 DB 초기화 및 자동 롤백/users API를 실제 DB 기반으로 통합 테스트1️⃣ ..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발4편. 비즈니스 로직 분리와 Mock(모의 객체) 테스트지난 3편까지는 /users API를 하나의 app.js 안에 전부 구현했습니다.하지만 실제 서비스에서는 비즈니스 로직(Service) 과 데이터 접근(Repository) 을 분리하지 않으면 유지보수가 불가능해집니다.오늘은 이 구조를 분리하면서 Jest Mock 기능으로 DB 없이 테스트하는 방법을 배웁니다.이건 실무에서도 테스트 속도를 10배 이상 빠르게 만드는 핵심 기술이에요.🧩 목표 구조src/ ├── app.js # 라우팅 ├── server.js # 실행 ├── routes/ │ └── user.routes.js ├─..
Redis 캐싱 + PM2 프로세스 관리로 Express 운영 최적화하기(트래픽이 늘어도 죽지 않는 Node.js 서버 만들기)지난 글에서는 GitHub Actions + Nginx + Docker Compose 를 통해자동으로 배포되는 Blue-Green 환경을 완성했습니다.이제 운영 단계에서 가장 중요한 문제를 다룰 차례입니다:“서비스는 잘 돌아가는데, 트래픽이 늘면 왜 이렇게 느려질까?”“서버가 갑자기 멈춰서 docker-compose를 다시 올려야 한다…”이 문제의 해답이 바로 오늘의 두 가지 주제입니다.Redis 캐싱 (Cache Layer)PM2 프로세스 매니저🧭 이번 목표항목 목표Redis 연동DB 부하를 줄이고 조회 속도 향상PM2 도입Express 앱을 멀티 프로세스로 관리캐시 무효화게..
GitHub Actions + Nginx Blue-Green 배포 자동화(코드를 Push하면 서버가 자동으로 교체되는 백엔드 배포 구조)이제 우리는 로컬에서 docker-compose up 한 줄로 Express + MySQL 환경을 완성했습니다.다음 단계는 “자동 배포” 입니다.이번 글에서는 GitHub Actions + Nginx + Docker Compose 를 이용해코드를 push하면 자동으로 서버에 배포되고, 서비스 중단 없이 Blue-Green 방식으로 전환되는 구조를 만듭니다.🧭 목표main 브랜치에 코드 push → GitHub Actions 트리거서버에서 Docker Compose 빌드 및 실행Nginx 리버스 프록시가 Blue → Green 버전 자동 전환DB는 그대로 유지, API만..
- Total
- Today
- Yesterday
- 웹개발
- REACT
- rag
- 딥러닝
- 쿠버네티스
- Prisma
- 프론트엔드개발
- node.js
- NestJS
- frontend
- Redis
- ai철학
- seo 최적화 10개
- Docker
- Next.js
- 백엔드개발
- 압박면접
- nextJS
- 개발블로그
- SEO최적화
- llm
- flax
- fastapi
- JAX
- Express
- PostgreSQL
- CI/CD
- DevOps
- 포스트휴먼
- Python
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |

