πŸŒ™ HTTP μš”μ²­ & REST API κ°œλ… 정리

EthAnalogΒ·2025λ…„ 8μ›” 21일

Spring Boot

λͺ©λ‘ 보기
5/16
post-thumbnail

βœ… μ–΄λ–€ κΈ°λŠ₯을 λ§Œλ“œλŠ” 것인가?

  • μ„œλ²„κ°€ μœ μ € μš”μ²­μ„ λ°›κ³  μ‘λ‹΅ν•˜λŠ” κΈ°λ³Έ ꡬ쑰 이해
  • @GetMapping, @PostMapping λ“±μœΌλ‘œ URL + λ©”μ„œλ“œ μ‘°ν•©ν•΄ API λ§Œλ“€κΈ°
  • 쒋은 URL μž‘λͺ…법, RESTful API κ°œλ… 읡히기

πŸ‘‰ μ™œ 이걸 λ°°μ›Œμ•Ό ν•˜μ§€?

  • μ„œλ²„ κ°œλ°œμžλŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ 보낸 HTTP μš”μ²­μ„ μ •ν™•νžˆ μ΄ν•΄ν•˜κ³  μ²˜λ¦¬ν•΄μ•Ό 함
  • REST API κ°œλ…μ€ λ©΄μ ‘ 단골 질문이며, μ½”λ“œ μž‘μ„± μ‹œ 일관성 μžˆλŠ” API 섀계 기쀀이 됨
  • 쒋은 URL 넀이밍은 ν˜‘μ—… μ‹œ 개발자/λ””μžμ΄λ„ˆ λͺ¨λ‘κ°€ λΉ λ₯΄κ²Œ 이해할 수 있게 함

πŸ“š κ°œλ… 정리

κ°œλ…μ„€λͺ…
HTTP μš”μ²­ν΄λΌμ΄μ–ΈνŠΈ(λΈŒλΌμš°μ €)κ°€ μ„œλ²„μ— "데이터 달라/λ³΄λ‚΄μ€„κ²Œ"라고 μ „λ‹¬ν•˜λŠ” ν–‰μœ„
Methodμš”μ²­ μ’…λ₯˜: GET(쑰회), POST(등둝), PUT/UPDATE(μˆ˜μ •), DELETE(μ‚­μ œ)
URLμ„œλ²„μ˜ μ£Όμ†Œ, μš”μ²­ λŒ€μƒμ„ λ‚˜νƒ€λƒ„
APIμ„œλ²„μ˜ κΈ°λŠ₯ λ‹¨μœ„ (URL + Method μ‘°ν•©)
REST API일관성 있고 예츑 κ°€λŠ₯ν•œ API 섀계 원칙 (Uniform, Stateless, Cacheable λ“±)
ControllerAPI λͺ¨μ•„λ‘” 클래슀, μœ μ € μš”μ²­μ„ μ•ˆλ‚΄ν•˜λŠ” μ—­ν• 

βš™οΈ κ΅¬ν˜„ 흐름 및 μ½”λ“œ

@Controller
public class BasicController {

  @GetMapping("/hello")
  @ResponseBody
  String hello() {
    return "μœ μ €μ—κ²Œ 보내쀄 데이터";
  }
}
  • @GetMapping("/hello") β†’ /hello μ£Όμ†Œλ‘œ λ“€μ–΄μ˜¨ GET μš”μ²­ 처리
  • @ResponseBody β†’ ν•¨μˆ˜μ˜ 리턴값을 κ·ΈλŒ€λ‘œ HTTP 응닡 본문에 λ‹΄μ•„ 전달
  • return "..." β†’ λΈŒλΌμš°μ € 화면에 λ¬Έμžμ—΄ κ·ΈλŒ€λ‘œ ν‘œμ‹œλ¨

πŸ’‘ 이런 곳에 ν™œμš©ν•  수 μžˆμ–΄μš”

  • λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€ λͺ©λ‘ 쑰회 (GET /posts)
  • μƒν’ˆ λ“±λ‘ν•˜κΈ° (POST /items)
  • νšŒμ› 정보 μˆ˜μ • (PUT /users/{id})
  • κΈ€ μ‚­μ œ (DELETE /posts/{id})

✍️ 개인 정리 및 회고

  • APIλŠ” κ²°κ΅­ μ„œλ²„ μ‚¬μš© μ„€λͺ…μ„œλΌλŠ” 점이 μ™€λ‹ΏμŒ
  • 쒋은 URLκ³Ό λ©”μ„œλ“œ 쑰합은 νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ ν•„μˆ˜
  • REST APIλŠ” "μ‘Έμ—…λ…Όλ¬Έ μˆ˜μ€€μ˜ 원칙"μ΄μ§€λ§Œ, κΈ°λ³Έ 예절처럼 μ•Œμ•„λ‘λ©΄ 신뒰감 μžˆλŠ” 개발자처럼 보일 수 있음

πŸ”‘ 였늘 배운 핡심 3쀄 μš”μ•½

  1. μ„œλ²„ κΈ°λŠ₯ ν•˜λ‚˜ = URL + Method μ‘°ν•© = API
  2. REST APIλŠ” μΌκ΄€μ„±Β·κ°„κ²°μ„±Β·μ˜ˆμΈ‘ κ°€λŠ₯성을 μ§€ν–₯ν•˜λŠ” 섀계 원칙
  3. @GetMapping, @PostMapping으둜 APIλ₯Ό 직접 μ„€κ³„ν•˜κ³  μš”μ²­-응닡 흐름을 μ œμ–΄ν•  수 μžˆλ‹€

0개의 λŒ“κΈ€