🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발3편. CRUD API를 테스트로 설계하기 — /users 엔드포인트 만들기지난 글에서는 /health 엔드포인트를 만들며 **“테스트가 먼저, 구현은 나중”**이라는 TDD의 기본 감각을 익혔습니다.이제부터는 진짜 서비스를 구성하는 CRUD(Create, Read, Update, Delete) 로직을 다뤄봅시다.이번 글에서는 가장 기초적인 /users API를 대상으로,**“테스트로부터 API를 설계하는 법”**을 실습합니다.🧩 목표우리가 만들 API는 다음과 같습니다.기능 메서드 경로 설명유저 생성POST/users이름(name)과 이메일(email)을 받아 유저 생성유저 목록 조회GET/users현재 등록된 모든 유저 반환..
Docker Compose로 Express + MySQL 통합 개발환경 구축하기(로컬과 서버가 완전히 똑같은 백엔드 환경)솔직히 말해서, 백엔드 개발할 때 가장 골치 아픈 부분은 “환경 차이”입니다.내 로컬에서는 잘 되는데, 서버에서는 DB 연결이 안 된다거나, 포트가 겹친다거나…이 모든 문제를 해결하는 게 바로 Docker Compose예요.이번 글에서는 지금까지 만든 Node.js + Express + MySQL 백엔드를한 방에 올리고, 내릴 수 있는 실행 가능한 docker-compose.yml 환경을 완성합니다.🧭 목표Express, MySQL을 컨테이너 기반으로 묶기.env로 환경설정 관리docker-compose up 한 줄로 서버 전체 실행컨테이너 간 네트워크로 통신 (localhost가 ..
Express API 문서화(Swagger) + 테스트 자동화(Jest, Supertest) — 협업 가능한 백엔드로이번 편은 “내가 만든 API를 팀원과 미래의 나도 믿고 쓸 수 있게” 만드는 작업이다.두 가지에 집중한다:Swagger로 API 문서 자동화Jest + Supertest로 엔드투엔드(HTTP) 테스트 자동화나는 주니어 시절, “문서 없는 API + 수동 테스트”로 매번 실수를 반복했다.그래서 이 글에서는 바로 복붙해서 돌아가는 구조로 정리했다.실제 코드로, 지금 만든 프로젝트에 그대로 붙이면 끝난다.0) 사전: 앱 구조를 테스트 친화적으로 리팩터링테스트가 가능한 구조의 핵심은 서버 리스닝과 앱 객체를 분리하는 것.app.js는 Express 앱만 export,server.js는 liste..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발3편. CRUD API를 테스트로 설계하기 — /users 엔드포인트 만들기지난 글에서는 /health 엔드포인트를 만들며 **“테스트가 먼저, 구현은 나중”**이라는 TDD의 기본 감각을 익혔습니다.이제부터는 진짜 서비스를 구성하는 CRUD(Create, Read, Update, Delete) 로직을 다뤄봅시다.이번 글에서는 가장 기초적인 /users API를 대상으로,**“테스트로부터 API를 설계하는 법”**을 실습합니다.🧩 목표우리가 만들 API는 다음과 같습니다.기능 메서드 경로 설명유저 생성POST/users이름(name)과 이메일(email)을 받아 유저 생성유저 목록 조회GET/users현재 등록된 모든 유저 반환..
Express + MySQL 게시글 CRUD 구현 (JWT 인증 연동)🧭 이번에 만들 기능 요약기능 설명 인증 여부게시글 전체 조회모든 게시글 조회❌게시글 작성로그인한 사용자만✅게시글 수정작성자 본인만✅게시글 삭제작성자 본인만✅1️⃣ posts 테이블 생성MySQL에서 실행하세요.CREATE TABLE posts ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(200) NOT NULL, content TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id));user_id → 게시..
Express + MySQL 게시글 CRUD 구현 (JWT 인증 연동)🧭 이번에 만들 기능 요약기능 설명 인증 여부게시글 전체 조회모든 게시글 조회❌게시글 작성로그인한 사용자만✅게시글 수정작성자 본인만✅게시글 삭제작성자 본인만✅1️⃣ posts 테이블 생성MySQL에서 실행하세요.CREATE TABLE posts ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(200) NOT NULL, content TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id));user_id → 게시..
Express + MySQL + JWT 로그인 시스템 완성하기(회원가입부터 인증 미들웨어까지)🧭 들어가기 전에지금까지 만든 API들은 아무나 호출할 수 있었죠.이제부터는 인증(Authentication) 과 인가(Authorization) 개념이 들어갑니다.인증(Authentication): “이 사람이 진짜 회원인지?”인가(Authorization): “이 회원이 이 자원에 접근해도 되는지?”JWT는 인증 토큰으로, 사용자가 로그인하면 서버가 토큰을 발급해주고,이후 요청마다 토큰을 헤더에 담아서 보내도록 하는 방식이에요.1️⃣ bcrypt, jsonwebtoken 설치비밀번호 암호화와 JWT 생성을 위한 라이브러리를 설치합니다.npm install bcrypt jsonwebtoken2️⃣ User 테..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발2편. Express 서버 구축과 API 테스트 (Supertest)이번 편부터 실제 서버를 테스트가 이끄는 흐름으로 만들어요.목표는 아주 단순합니다: /health 엔드포인트를 테스트로 보장하는 것.작지만, 이게 TDD의 첫 벽돌입니다.0) 시작하기 — 의존성 설치# 1편에서 만든 폴더 기준npm install expressnpm install --save-dev jest supertestpackage.json을 아래처럼 업데이트합니다. (Jest 환경/스크립트 포함){ "name": "tdd-express-jest", "version": "1.0.0", "description": "Node.js + Jest TDD 기초 ..
🧪 Node.js + Express + Jest로 배우는 테스트 기반 개발1편. Jest 환경 세팅과 첫 번째 테스트 코드 작성TDD(Test Driven Development).많은 개발자들이 이 단어를 들으면 “좋다는 건 아는데... 막상 해본 적은 없다”고 말합니다.저도 처음엔 그랬습니다.하지만 어느 순간, 테스트 없이 개발하는 게 오히려 더 불안하더라고요.이 시리즈의 목표는 단순합니다.Node.js + Express + Jest 조합으로, 테스트가 주도하는 개발 흐름을 체득하는 겁니다.단순한 이론이 아니라 직접 실행 가능한 코드 중심으로 설명하겠습니다.1️⃣ Jest란?Jest는 Facebook(현 Meta)에서 만든 자바스크립트 테스트 프레임워크입니다.Node.js 환경에서 단위 테스트, 통합..
Express 에러 핸들링 & 미들웨어 구조 만들기(실무에서 서버가 죽지 않게 하는 방법)🚨 1. 에러 핸들링이 왜 중요한가?백엔드 초보자들이 가장 많이 하는 실수 중 하나는 이거예요.const [rows] = await pool.query("SELECT * FROM none_table");이 코드가 터지면?UnhandledPromiseRejectionWarning → 서버 크래시!운영 중인 서비스에서 이런 일이 발생하면,누군가의 요청 한 번으로 서버 전체가 죽는 겁니다.그래서 우리는 “모든 에러를 잡고, 표준화된 응답”을 주는 구조를 만들어야 합니다.🧩 2. 에러 미들웨어 기본 형태Express에는 app.use((err, req, res, next) => { ... }) 형태로에러 전용 미들웨어를..
- Total
- Today
- Yesterday
- DevOps
- node.js
- 프론트엔드개발
- PostgreSQL
- frontend
- CI/CD
- 백엔드개발
- 웹개발
- Prisma
- Redis
- flax
- Next.js
- Express
- 딥러닝
- ai철학
- llm
- 압박면접
- 쿠버네티스
- 포스트휴먼
- 개발블로그
- seo 최적화 10개
- nextJS
- rag
- fastapi
- JAX
- Python
- Docker
- NestJS
- REACT
- 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 |

