🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발(보너스 15편) API Rate Limiting을 TDD로 구현하기“초당 10번씩 두들기는 클라이언트, 어떻게 막을까?”이제 슬슬 진짜 서비스 냄새가 나죠.로그인도 있고, 권한도 있고, Redis 기반 Refresh Token도 있고, Google OAuth까지.근데 여기서 하나 빠진 게 있습니다.실제 서비스 운영해 보면 거의 100% 한 번은 맞닥뜨리는 문제.“어떤 클라이언트가, 혹은 버그난 코드가,1초에 수십 번씩 API를 두들기기 시작했다…”그 순간부터 로그는 폭주하고,Redis/DB는 과부하 걸리고,서버는 비명을 지릅니다.그래서 필요한 게 바로:👉 API Rate Limiting (요청 제한 / Throttling)이번..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발(보너스 14편) Google OAuth 로그인 TDD로 구현하기“Social Login도 테스트가 설계서를 대신한다”기업 서비스의 70% 이상은 소셜 로그인을 사용합니다.그중에서도 Google OAuth2는 가장 많이 쓰이는 방식이죠.하지만 OAuth는인증 코드(authorization code)access tokenid_tokenredirectstate 검증등 구조가 복잡해서 테스트 기반으로 설계하지 않으면 금방 난장판이 됩니다.오늘은 이 Google OAuth 로그인 흐름을완전히 테스트로부터 구현하는 방식(TDD) 으로 만들어봅니다.🎯 오늘 완성할 기능기능 설명Google 로그인 URL 생성state 포함Google Cal..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발(보너스 13편) Redis 기반 Refresh Token 저장 — “실무에서 진짜 쓰는 인증 구조”지난 11–12편까지 우리는JWT Access Token + Refresh Token 구조RBAC(Role-Based Access Control)까지 완벽하게 TDD 기반으로 구축했습니다.하지만 지금까지는 Refresh Token을 DB(SQLite/Prisma) 에 저장했어요.이건 학습용으론 괜찮지만, 실무에서는 거의 쓰지 않습니다.왜냐면…❌ DB 저장 방식의 문제매 요청마다 DB 읽기 → 부하 증가로그아웃 시 DELETE 쿼리 비용 발생Refresh Token은 “짧은 TTL이 있는 세션 데이터”인데 DB는 그 목적에 적합하지 ..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발(보너스 12편) RBAC 권한 시스템을 TDD로 설계하기“관리자 권한, 일반 사용자 권한… 테스트로 먼저 잠궈놓자”이제 진짜 실무에서 반드시 부딪히는 주제입니다.바로 권한(Authorization) 문제죠.어떤 API는 모든 로그인 사용자가 접근 가능해야 하고,어떤 API는 관리자(admin)만 접근 가능해야 합니다.이걸 코드에서 if 조건으로 난사하면 프로젝트는 바로 난장판 됩니다.그래서 실무에서는 “RBAC(Role-Based Access Control)” 방식을 사용합니다.오늘은 이 RBAC를 TDD로 설계하는 방식을 배웁니다.요구사항 → 테스트 작성 → 코드 구현 → 리팩터링,이 TDD 루틴 그대로 갑니다.🎯 이번 글에..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발(보너스 11-2편) Refresh Token + Access Token 인증을 TDD로 설계하기“세션 유지 기간을 늘리는 가장 실무적인 방식”지난 글에서 JWT Access Token 기반 로그인을 TDD로 설계했다면,이제는 한 단계 더 올라갑니다.실무에서는 Access Token만으로 인증을 운영하지 않습니다.토큰이 짧은 만료 시간을 가지면사용자가 너무 자주 로그아웃되는 문제가 생기죠.반대로 유효기간을 너무 길게 잡으면 보안 취약성이 커집니다.그래서 등장한 방식이 바로:👉 Access Token + Refresh Token 구조이번 글에서는 이 구조를 TDD로 완전히 구현합니다.테스트로 먼저 요구사항을 잠그고,그 요구사항을 ..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발(보너스 11편) JWT 인증을 TDD로 설계하기 — “로그인도 테스트로 먼저 만든다”시리즈는 10편으로 끝났지만,당신이 “다음글”이라고 한 순간… 나는 바로 감이 왔어요.이제 인증(Authentication) 파트를 다룰 때가 됐다.모든 서비스는 결국 “로그인”과 “권한 체크”로 귀결됩니다.그리고 이 인증 시스템을 TDD로 설계할 수 있게 되면,여러분은 백엔드 개발자로서 한 단계 위로 올라갑니다.그래서 이번 글은 JWT 로그인 API를 테스트로부터 구현하는 과정을 다룹니다.🎯 오늘 완성할 기능기능 설명POST /auth/signup유저 생성 + 비밀번호 해시POST /auth/login로그인 + JWT 발급보호된 라우트“인증된..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발10편. 실무에서 TDD를 지속시키는 법 — “테스트를 문화로 만드는 방법”이 시리즈의 마지막 글입니다.우리는 지금까지 9편에 걸쳐, 테스트 없는 프로젝트가 어떻게 불안한지,그리고 “테스트가 주도하는 개발” 이 어떤 식으로 코드를 더 강하게 만드는지를 체험했습니다.하지만 진짜 어려운 건 지금부터입니다.테스트를 ‘한 번 하는 습관’이 아니라, ‘팀의 문화’로 만드는 것.이번 글에서는 그걸 이야기하려 합니다.🎯 오늘의 목표주제 내용1실무에서 TDD가 무너지는 이유2테스트를 조직 내에 정착시키는 방법3테스트 코드 품질 관리 전략4코드 리뷰에서 테스트를 다루는 기준5장기적으로 유지 가능한 TDD 문화 만들기1️⃣ 왜 TDD는 실무에서 ..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발9편. 실전 프로젝트: Todo API를 테스트 주도 개발(TDD)로 완성하기이제 드디어 시리즈의 핵심입니다.앞에서 배운 모든 내용을 실제 하나의 완전한 API — “Todo 리스트” 로 통합해봅시다.이 프로젝트는 단순한 CRUD가 아닙니다.테스트가 사양을 정의하고, 코드가 그 테스트를 통과하며 탄생하는 구조입니다.즉, “테스트가 설계 문서이자 보증서”가 됩니다.🎯 목표단계 내용1테스트로 API 사양 정의2Express + Prisma 구조 설계3Jest 테스트로 구현 검증4예외 처리 및 Validation 추가5커버리지 100% 달성6CI 자동 테스트 파이프라인 적용1️⃣ 테스트로 요구사항 정의하기먼저 “무엇을 만들어야 하는가..
NestJS + Prisma + Redis + PM2 운영환경 완성편(실제 서비스 수준으로 안정화된 백엔드 런타임 만들기)이제 개발은 끝났다.NestJS + Prisma + MySQL + Redis + Docker + Swagger까지 완벽히 세팅했으니,남은 건 “운영 환경”에서 이걸 안 끊기게, 안 느려지게 유지하는 일이다.이번 글에서는 “진짜 서비스 환경”에서 필요한 운영 최적화를 전부 다룬다.실무용 포인트: 단순히 docker compose up으로 돌아가는 게 아니라,서버 재부팅 후 자동 기동트래픽 급증 시 스케일 대응캐시와 DB 성능 튜닝장애시 자동 복구까지 구성한다.🧭 이번 편 목표항목 내용1️⃣PM2 Cluster 모드로 Nest 실행2️⃣Redis 캐싱 + TTL 전략 최적화3️⃣Dock..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발8편. GitHub Actions로 Jest 테스트 자동화 — “테스트는 사람의 손을 떠나야 한다”지난 글에서 우리는 Jest 커버리지를 100%까지 끌어올리며테스트 품질을 수치로 관리하는 방법을 배웠습니다.이제 진짜 실무에서 중요한 단계로 갑니다.테스트 자동화(CI: Continuous Integration) —즉, “코드가 커밋될 때마다 테스트가 자동으로 실행되는 환경”을 구축해봅시다.🎯 목표GitHub Actions로 Jest 테스트 자동화커버리지 리포트 자동 생성PR(풀 리퀘스트)마다 테스트 통과 여부 자동 표시실패 시 병합 차단1️⃣ GitHub Actions란?GitHub Actions는 GitHub 저장소 내에서 실..
- Total
- Today
- Yesterday
- Python
- node.js
- PostgreSQL
- JAX
- 백엔드개발
- fastapi
- CI/CD
- 포스트휴먼
- 프론트엔드개발
- nextJS
- Prisma
- Next.js
- 쿠버네티스
- 개발블로그
- seo 최적화 10개
- DevOps
- 웹개발
- Docker
- 압박면접
- Express
- frontend
- flax
- NestJS
- ai철학
- rag
- llm
- REACT
- Redis
- 딥러닝
- SEO최적화
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |

