Home > Backend Development > πŸ“š[Backend Development] API λͺ…μ„Έμ„œ 개발 κ³Όμ • 5단계

πŸ“š[Backend Development] API λͺ…μ„Έμ„œ 개발 κ³Όμ • 5단계
Backend Ddevelopment API Layer Architecture

πŸ“š[Backend Development] API λͺ…μ„Έμ„œ 개발 κ³Όμ • 5단계

API λͺ…μ„Έμ„œ μ„€κ³„λŠ” μš”κ΅¬μ‚¬ν•­ 뢄석뢀터 μ‹œμž‘ν•˜μ—¬ μ μ§„μ μœΌλ‘œ κ΅¬μ²΄ν™”ν•˜λŠ” μˆœμ„œλ‘œ μ§„ν–‰λ©λ‹ˆλ‹€.

βœ… 1. μš”κ΅¬μ‚¬ν•­ 뢄석 및 κΈ°λŠ₯ μ •μ˜.

κ°€μž₯ λ¨Όμ € β€˜λ¬΄μ—‡μ„ λ§Œλ“€ 것인가’λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
κ°œλ°œν•  κΈ°λŠ₯ λͺ©λ‘μ„ ꡬ체적으둜 μž‘μ„±ν•˜κ³ , 각 κΈ°λŠ₯에 ν•„μš”ν•œ 데이터가 무엇인지 νŒŒμ•…ν•©λ‹ˆλ‹€.

  • μ‚°μΆœλ¬Ό : κΈ°λŠ₯ λͺ©λ‘ (예: μƒν’ˆ λͺ©λ‘, μƒν’ˆ 검색, μ£Όλ¬Έ 생성 λ“±)

βœ… 2. λ¦¬μ†ŒμŠ€ 식별 및 URL 섀계

κΈ°λŠ₯ λͺ©λ‘μ„ λ°”νƒ•μœΌλ‘œ APIκ°€ λ‹€λ£° 핡심 λŒ€μƒ, 즉 λ¦¬μ†ŒμŠ€(Resource) λ₯Ό μ‹λ³„ν•˜κ³  URL을 μ„€κ³„ν•©λ‹ˆλ‹€.
RESTful 원칙에 따라 URL은 μžμ›μ˜ β€˜λͺ…사’λ₯Ό, HTTP MethodλŠ” β€˜λ™μ‚¬β€™λ₯Ό λ‚˜νƒ€λ‚΄λ„λ‘ κ΅¬μ„±ν•©λ‹ˆλ‹€.

  • μ‚°μΆœλ¬Ό : API μ—”λ“œν¬μΈνŠΈ λͺ©λ‘ (POST /products, GET /products, PATCH /products/{productId} λ“±)

βœ… 3. 데이터 λͺ¨λΈλ§ (Request/Response DTO 섀계)

각 μ—”λ“œν¬μΈνŠΈκ°€ μ£Όκ³  받을 λ°μ΄ν„°μ˜ ꡬ체적인 ν˜•νƒœλ₯Ό μ„€κ³„ν•©λ‹ˆλ‹€.
μ΄λ•Œ μš”μ²­(Request)κ³Ό 응닡(Response)에 μ‚¬μš©ν•  DTO(Data Transfer Object)의 ν•„λ“œ, 데이터 νƒ€μž…, ν•„μˆ˜ μ—¬λΆ€ 등을 μ •μ˜ν•©λ‹ˆλ‹€.

  • μ‚°μΆœλ¬Ό : 각 API별 Request/Response DTO의 상세 ꡬ쑰

βœ… 4. μƒνƒœ μ½”λ“œ 및 μ—λŸ¬ 처리 μ •μ˜

APIκ°€ μ„±κ³΅ν–ˆμ„ λ•ŒλΏλ§Œ μ•„λ‹ˆλΌ, λ‹€μ–‘ν•œ μ‹€νŒ¨ 상황(μž…λ ₯κ°’ 였λ₯˜, κΆŒν•œ μ—†μŒ, μ„œλ²„ 였λ₯˜ λ“±)에 λŒ€ν•œ μ–΄λ–€ HTTP μƒνƒœ μ½”λ“œλ₯Ό λ°˜ν™˜ν•˜κ³ , μ–΄λ–€ μ—λŸ¬ λ©”μ‹œμ§€λ₯Ό 보여쀄지 μƒμ„Έν•˜κ²Œ μ •μ˜ν•©λ‹ˆλ‹€.

  • μ‚°μΆœλ¬Ό : μƒνƒœ μ½”λ“œλ³„ 응닡 ν˜•μ‹(201 Created, 400 Bad Request, 404 Not Found λ“±)

βœ… 5. κ²€ν†  및 λ¬Έμ„œν™”

μ™„μ„±λœ 섀계λ₯Ό λ°”νƒ•μœΌλ‘œ μ΅œμ’… API λͺ…μ„Έμ„œλ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.
νŒ€μ›λ“€κ³Ό ν•¨κ»˜ κ²€ν† ν•˜λ©° ν”Όλ“œλ°±μ„ 톡해 섀계λ₯Ό κ°œμ„ ν•˜κ³  ν™•μ •ν•©λ‹ˆλ‹€.
이 λ‹¨κ³„μ—μ„œ Swagger/OpenAPI와 같은 도ꡬλ₯Ό μ‚¬μš©ν•΄ λ¬Έμ„œλ₯Ό μž‘μ„±ν•˜λ©΄ ν˜‘μ—…μ— 맀우 νš¨μœ¨μ μž…λ‹ˆλ‹€.

  • μ‚°μΆœλ¬Ό : μ΅œμ’… API λͺ…μ„Έ λ¬Έμ„œ (Swagger, Notion, Confluence λ“±)