[260115] REST API 와 λ¬΄μƒνƒœμ„±(state less)

2026. 1. 15. 19:15Β·ν”„λ‘œκ·Έλž˜λ°

REST API λž€ (Representational State Transfer API)

  • μ›Ήμ—μ„œ 데이터λ₯Ό μ „μ†‘ν•˜κ³  μ²˜λ¦¬ν•˜λŠ” 방법을 μ •μ˜ν•œ μΈν„°νŽ˜μ΄μŠ€ 
  • REST 아킀텍쳐 μŠ€νƒ€μΌμ˜ 섀계 원칙을 μ€€μˆ˜ν•˜μ—¬μ„œ λ§Œλ“  μΈν„°νŽ˜μ΄μŠ€ 
  • HTTP URI λ₯Ό 톡해 μžμ›(resource) 을 λͺ…μ‹œν•˜κ³  HTTP Method λ₯Ό 톡해 ν•΄λ‹Ή μžμ›μ— λŒ€ν•œ CRUD operation 을 μ μš©ν•˜λŠ” 것을 의미 
  • νŠΉμ§•: λ‹¨μˆœν•˜κ³  λ¬΄μƒνƒœμ΄λ©°, ν™•μž₯ κ°€λŠ₯ν•˜κ³  κ²½λŸ‰ν™”λΌμžˆμ–΄μ„œ 웹에 μ΄μƒμ μž„. 
  • ν΄λΌμ΄μ–ΈνŠΈ (μ›Ή λΈŒλΌμš°μ €) 와 같은 HTTP λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλ²„ μΈ‘ λ¦¬μ†ŒμŠ€μ™€ μƒν˜Έμž‘μš©ν•˜λ„λ‘ ν—ˆμš©ν•¨. 
  • ꡬ성 μš”μ†Œ: "λˆ„κ°€(μžμ›), 무엇을(ν–‰μœ„), μ–΄λ–€ ν˜•νƒœλ‘œ ν•  것인가"
ꡬ성 μš”μ†Œ μ„€λͺ… μ˜ˆμ‹œ
μžμ› (Resource) λͺ¨λ“  것을 'λͺ…사' ν˜•νƒœμ˜ URI둜 ν‘œν˜„ /users, /posts/10
ν–‰μœ„ (Verb) HTTP Methodλ₯Ό 톡해 ν–‰μœ„λ₯Ό μ •μ˜ GET, POST, PUT, DELETE
ν‘œν˜„ (Representation) 데이터λ₯Ό μ£Όκ³ λ°›λŠ” ν˜•μ‹ 보톡 JSON (κ°€μž₯ 많이 씀)

 

REST λž€ 

  • " μ†Œν”„νŠΈμ›¨μ–΄ 아킀텍쳐" 쀑 ν•˜λ‚˜λ‘œ 2000λ…„ Roy Fielding μ΄λΌλŠ” μ‚¬λžŒμ΄ 박사 논문에 ν¬ν•¨ν•œ κ°œλ….
  • 인터넷과 같은 λ„€νŠΈμ›Œν¬λ₯Ό 톡해 두 μ‹œμŠ€ν…œ(클라-μ„œλ²„) κ°„μ˜ 데이터 ν‘œν˜„ 및 톡신을 μœ„ν•œ λͺ¨λΈ. 
  • http 의 μž₯점을 κ·ΉλŒ€ν™” ν•˜λŠ” 아킀텍쳐 μŠ€νƒ€μΌμž„. 
  • μ›Ή API λ₯Ό κ΅¬μΆ•ν•˜λŠ” 방법에 λŒ€ν•œ 일련의 κ·œμΉ™ 및 μ§€μΉ¨. 

REST 의 κ°€μž₯ 큰 νŠΉμ§• : λ¬΄μƒνƒœμ„± (Stateless) 

  • μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ κ³Όκ±° μš”μ²­μ΄λ‚˜ μƒνƒœλ₯Ό κΈ°μ–΅ν•˜μ§€ μ•ŠμŒ. 
  • 즉, 이전 μš”μ²­μ΄ λ‹€μŒ μš”μ²­μ— 영ν–₯을 μ£Όμ§€ μ•ŠλŠ”λ‹€. 
  • μž₯점: μ„œλ²„κ°€ μ‚¬μš©μž 정보λ₯Ό κ΄€λ¦¬ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, μ„œλ²„λ₯Ό μ—¬λŸ¬λŒ€ λ‘λŠ” μˆ˜ν‰ ν™•μž₯ (scale-out) 에 맀우 μœ λ¦¬ν•¨. 
  • BUT, ν΄λΌμ΄μ–ΈνŠΈλŠ” λ§€ μš”μ²­λ§ˆλ‹€ 인증 단계가 ν•„μš”ν•¨(ex. JWT)  

 

κ²°κ΅­ μ½”λ”©ν•˜λŠ” μž…μž₯μ—μ„œ λ΄€μ„λ•Œ rest ful ν•˜κ²Œ κ°œλ°œν•œλ‹€λŠ” 것은 !!

URI(μžμ›)λ₯Ό λͺ…μ‚¬λ‘œ 잘 μ •ν•˜κ³ , HTTP Method(ν–‰μœ„)λ₯Ό λͺ©μ μ— 맞게 μ§μ§€μ–΄μ£ΌλŠ” 것

 

 

좜처 

https://www.redhat.com/ko/topics/api/what-is-a-rest-api

 

REST API μ •μ˜: Representational State Transfer의 의미

REST API(RESTful API, λ ˆμŠ€νŠΈν’€ API) κ°œλ…, μž‘λ™ 원리, ν™œμš© 사둀에 λŒ€ν•΄ μ„€λͺ…ν•©λ‹ˆλ‹€. REST μ•„ν‚€ν…μ²˜ μ œμ•½μ„ μ€€μˆ˜ν•˜λŠ” APIλŠ” μ›Ή μ„œλΉ„μŠ€ ꡬ좕에 ν•„μˆ˜κΈ°μˆ λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€

www.redhat.com

 

https://wikidocs.net/blog/@dragonhappy9/1262/

 

[REST&RESTful] REST API μ΄ν•΄ν•˜κΈ°

[REST&RESTful] REST API μ΄ν•΄ν•˜κΈ°

wikidocs.net

 

'ν”„λ‘œκ·Έλž˜λ°' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[260121] PostgreSQL 데이터 νƒ€μž… μ’…λ₯˜  (0) 2026.01.21
[260115] HTTP λž€ (http 인증, http 응닡 μ½”λ“œ λ“±)  (0) 2026.01.15
[260113] νŠΈλžœμ μ…˜μ΄λž€? (Transaction)  (0) 2026.01.13
버전 κ΄€λ¦¬λž€? Git μ‰½κ²Œ μ΄ν•΄ν•˜κΈ°, Gitκ³Ό GitHub 차이  (0) 2025.11.16
'ν”„λ‘œκ·Έλž˜λ°' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [260121] PostgreSQL 데이터 νƒ€μž… μ’…λ₯˜
  • [260115] HTTP λž€ (http 인증, http 응닡 μ½”λ“œ λ“±)
  • [260113] νŠΈλžœμ μ…˜μ΄λž€? (Transaction)
  • 버전 κ΄€λ¦¬λž€? Git μ‰½κ²Œ μ΄ν•΄ν•˜κΈ°, Gitκ³Ό GitHub 차이
jennnnna
jennnnna
  • jennnnna
    πŸ’»πŸ€Jennna's BLOG
    jennnnna
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (74) N
      • 컴퓨터 (1)
        • Operating system 운영체제 (8)
      • ν”„λ‘œκ·Έλž˜λ° (5)
        • JAVA (6)
        • PHP (1)
        • Android (7)
        • Apache (1)
        • Python (0)
      • 곡뢀 (15)
        • μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ 곡뢀기둝 (12)
        • TIL (3)
      • AI (2) N
      • TTS (1)
      • LLM (2)
      • RAG (1)
      • μ–΄ν•™ (5)
        • English (5)
        • Japanese (ζ—₯本θͺž) (0)
      • κΈ€μ“°κΈ° (5)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • λ°©λͺ…둝
  • 링크

  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    μžλ°”κΈ°μ΄ˆ
    ν‹°μŠ€ν† λ¦¬μ±Œλ¦°μ§€
    μ •μ²˜κΈ°
    μΉ΄νŽ˜μ•Œλ°”
    μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ν•„κΈ°
    λΉ„μ „κ³΅μžκ°œλ°œμž
    cs곡뢀
    μš΄μ˜μ²΄μ œκ³΅λΆ€
    μžλ°”κ³΅λΆ€
    μ˜€λΈ”μ™„
    μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬
    λ¬΅μ€μ§€μ°ΈμΉ˜κΉ€λ°₯
    μžλ°”λ…ν•™
    μž₯μΈν•œκ³Ό
    운영체제
    μžλ°”κ³΅μ‹λ¬Έμ„œ
    λΉ„μ „κ³΅μžcs곡뢀
    μ•ˆλ“œλ‘œμ΄λ“œ
    CS지식
    μ•ˆλ“œλ‘œμ΄λ“œκ°œλ°œ
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.5
jennnnna
[260115] REST API 와 λ¬΄μƒνƒœμ„±(state less)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”