πŸ’» Node.js API μ„œλ²„ TIP

Hyeonio_oΒ·2025λ…„ 9μ›” 29일

BackEnd

λͺ©λ‘ 보기
8/9
post-thumbnail

Node.js둜 API μ„œλ²„λ₯Ό κ°œλ°œν•˜λ‹€ 보면 λˆ„κ΅¬λ‚˜ ν•œ 번쯀 Express.js둜 β€œHello World”λ₯Ό 찍어본 κ²½ν—˜μ΄ μžˆμ„ κ²λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ‹€λ¬΄μ—μ„œλŠ” λ‹¨μˆœνžˆ μ„œλ²„λ₯Ό λ„μš°λŠ” 것보닀 ꡬ쑰화, ν™•μž₯μ„±, μœ μ§€λ³΄μˆ˜μ„±μ΄ 훨씬 μ€‘μš”ν•©λ‹ˆλ‹€.

이번 κΈ€μ—μ„œλŠ” κ°„λ‹¨ν•œ Todo API μ˜ˆμ‹œλ₯Ό λ°”νƒ•μœΌλ‘œ, μ‹€λ¬΄μ—μ„œ 자주 λΆ€λ”ͺνžˆλŠ” λ¬Έμ œμ™€ κ·Έ ν•΄κ²° νŒμ„ κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€.


1. Express μ„œλ²„λŠ” μ΅œμ†Œν•œμ˜ ꡬ쑰λ₯Ό κ°–μΆ”μž

초보 λ‹¨κ³„μ—μ„œλŠ” λͺ¨λ“  μ½”λ“œλ₯Ό index.js에 λͺ°μ•„ λ„£κ³€ ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 규λͺ¨κ°€ 컀지면 μœ μ§€λ³΄μˆ˜κ°€ νž˜λ“€μ–΄μ§‘λ‹ˆλ‹€.

πŸ‘‰ μΆ”μ²œν•˜λŠ” μ΅œμ†Œ κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

/src
  /routes
    todoRoutes.js
  /controllers
    todoController.js
  index.js
  • Routes: URLκ³Ό λ©”μ„œλ“œ μ •μ˜
  • Controllers: μ‹€μ œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직

2. μ˜ˆμ™Έ μ²˜λ¦¬λŠ” λ°˜λ“œμ‹œ 해라

μ‹€λ¬΄μ—μ„œλŠ” μ—†λŠ” λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­ν•˜κ±°λ‚˜, 잘λͺ»λœ μš”μ²­ λ°”λ””κ°€ λ“€μ–΄μ˜€λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.

// μ˜ˆμ™Έ 처리 μ—†λŠ” 경우 β†’ μ„œλ²„ λ‹€μš΄ κ°€λŠ₯
app.post("/todos", (req, res) => {
  const { task } = req.body;
  if (!task) return res.status(400).json({ message: "Task is required" });
});

πŸ‘‰ 항상 μš”μ²­ κ°’ 검증(validation)을 ν•˜κ³ , μ—λŸ¬ 미듀웨어λ₯Ό λ§Œλ“€μ–΄ 곡톡 μ²˜λ¦¬ν•˜λŠ” 게 μ’‹μŠ΅λ‹ˆλ‹€.


3. λ°μ΄ν„°λ² μ΄μŠ€ 연동 κ³ λ €ν•˜κΈ°

μ‹€μŠ΅μ—μ„œλŠ” λ©”λͺ¨λ¦¬μ— 데이터λ₯Ό μ €μž₯ν–ˆμ§€λ§Œ, μ‹€λ¬΄μ—μ„œλŠ” DB 연결이 ν•„μˆ˜μž…λ‹ˆλ‹€.
Node.jsμ—μ„œ κ°€μž₯ 많이 μ“°λŠ” DBλŠ” MongoDB(Mongoose), PostgreSQL(Sequelize/Prisma) μž…λ‹ˆλ‹€.

  • μž‘μ€ ν”„λ‘œμ νŠΈ β†’ MongoDB
  • νŠΈλžœμž­μ…˜μ΄ μ€‘μš”ν•œ ν”„λ‘œμ νŠΈ β†’ PostgreSQL/MySQL

4. ν™˜κ²½ λ³€μˆ˜μ™€ λ³΄μ•ˆ

μ ˆλŒ€ DB URL, API Key 등을 μ½”λ“œμ— 직접 μ“°μ§€ λ§ˆμ„Έμš”.
.env νŒŒμΌμ„ 두고 dotenv νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•˜λ©΄ μ•ˆμ „ν•˜κ²Œ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

require("dotenv").config();
const DB_URL = process.env.DB_URL;

5. ν™•μž₯μ„± μžˆλŠ” μ„œλ²„λ₯Ό μœ„ν•΄

  • 미듀웨어 뢄리 (인증, λ‘œκΉ…, CORS)
  • async/await 기반의 μ—λŸ¬ 핸듀링 νŒ¨ν„΄
  • Docker둜 배포 κ³ λ €
  • ν…ŒμŠ€νŠΈ μ½”λ“œ (Jest, Supertest) μž‘μ„±

⭐ 결둠

Node.js와 Express둜 API μ„œλ²„λ₯Ό λ§Œλ“œλŠ” 건 λ‹¨μˆœν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ‹€λ¬΄μ—μ„œλŠ” ꡬ쑰화, λ³΄μ•ˆ, ν™•μž₯성이 차이λ₯Ό λ§Œλ“­λ‹ˆλ‹€.
μ²˜μŒμ—λŠ” κ°„λ‹¨ν•œ 예제λ₯Ό λ§Œλ“€μ–΄λ³΄κ³ , 점차 DB μ—°κ²° β†’ 인증 β†’ λ°°ν¬κΉŒμ§€ κ²½ν—˜μ„ λ„“ν˜€ λ‚˜κ°„λ‹€λ©΄ λΉ λ₯΄κ²Œ μ„±μž₯ν•  수 μžˆμ„ κ²λ‹ˆλ‹€. πŸš€

0개의 λŒ“κΈ€