https://www.gravatar.com/avatar/ae865e906009289b557c2cfb13b7b394?s=240&d=mp

iamkimlog

λ§Žμ€ ν”Όλ“œλ°± λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. πŸ™

REST의 Uniform Interface μ΄ν•΄ν•˜κΈ°

μš°λ¦¬λŠ” RESTful ν•œ API λ₯Ό κ°œλ°œν•˜λ €κ³  λ…Έλ ₯ν•©λ‹ˆλ‹€. 근데 ‘μ™œ’ RESTful ν•œ API λ₯Ό κ°œλ°œν•΄μ•Όν• κΉŒμš”? λ°”λ‘œ ‘독립적 μ§„ν™”’ λ₯Ό μœ„ν•΄μ„œ 라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ 각각 λ…λ¦½μ μœΌλ‘œ μ§„ν™”ν•˜λ„λ‘ ν•˜κΈ° μœ„ν•΄ RESTful ν•œ API λ₯Ό λ§Œλ“€μ–΄ λ‚˜κ°€μ•Ό ν•©λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” RESTful ν•œ API λ₯Ό κ°œλ°œν•˜κΈ° μœ„ν•΄ κΌ­ μ•Œμ•„μ•Ό ν•˜λŠ” REST 의 μ œμ•½μ‘°κ±΄ 쀑 ν•˜λ‚˜μΈ Uniform Interface 에 λŒ€ν•΄ μ •λ¦¬ν•΄λ΄€μŠ΅λ‹ˆλ‹€. RESTλŠ” λΆ„μ‚° ν•˜μ΄νΌ λ―Έλ””μ–΄ μ‹œμŠ€ν…œ(μ›Ή)을 μœ„ν•œ μ•„ν‚€ν…μ²˜ μŠ€νƒ€μΌμž…λ‹ˆλ‹€. μ•„ν‚€ν…μ²˜ μŠ€νƒ€μΌμ΄λΌλŠ” 것은 μ‹œμŠ€ν…œμ˜ ꡬ쑰와 ꡬ성 μš”μ†Œ κ°„μ˜ 관계, μƒν˜Έμž‘μš©, 섀계 원칙 등을 μ •μ˜ν•˜λŠ” 일련의 원칙과 κ·œμΉ™μ˜ μ§‘ν•©μΈλ°μš”.

REST의 Resource, Representation μ΄ν•΄ν•˜κΈ°

REST 에 λŒ€ν•΄ 잘 μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ” Resource (μžμ›), Representation (ν‘œν˜„) 에 λŒ€ν•΄ 잘 μ΄ν•΄ν•˜κ³  μžˆμ–΄μ•Ό ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” REST 의 Resource 와 Representation 에 λŒ€ν•΄ 정리해 λ΄€μŠ΅λ‹ˆλ‹€. Resource REST μ—μ„œ λ¦¬μ†ŒμŠ€λŠ” ‘이름을 뢙일 수 μžˆλŠ” λͺ¨λ“  정보’라고 ν•©λ‹ˆλ‹€. λ¦¬μ†ŒμŠ€λŠ” λ¬Έμ„œλ‚˜ 이미지가 될 μˆ˜λ„ 있고 날씨 정보, ν˜„μ‹€ μ„Έκ³„μ˜ μ–΄λ–€ 객체 λ“± λͺ¨λ“  것이 λ¦¬μ†ŒμŠ€κ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€. 둜이 ν•„λ”©μ˜ REST λ…Όλ¬Έμ—μ„œλŠ” λ¦¬μ†ŒμŠ€λ₯Ό μ •λ³΄μ˜ 핡심 좔상화 (Key abstraction of information) 라고 ν‘œν˜„ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.