- Web์ด๋ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ปดํจํฐ๋ฅผ ํตํด ์ฌ๋๋ค์ด ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์๋ ์ ์ธ๊ณ์ ์ธ ์ ๋ณด ๊ณต๊ฐ์ ๋งํจ
- Web ์ข
๋ฅ
- Web Site (google, naver, daum) - ์ฌ์ดํธ๋ฅผ ๋ณผ ์ ์๊ฒ ํจ
- User Interface (Chrome, safari, Explorer) - ์ฌ์ฉ์์ ์ปดํจํฐ์์ ์์ฌ์ํต
- API (Web Service, Kakao Open API) - ์น ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉ
- Web
- HTTP - ์ดํ๋ฆฌ์ผ์ด์ ์ปจํธ๋กค (ํต์ ์ ํ๊ธฐ๋ก ํ ์ฝ์ํ ํํ)
- URL - ๋ฆฌ์์ค ์๋ณ์ (ํ๊ฐ์ ๋ฆฌ์์ค๊ฐ ์ฌ๋ฌ๊ฐ ๋ถ๊ฐ๋ฅ)
- HTML - ํ์ดํผ๋จธ๋์ด ํฌ๋งท
- HTTP
-
๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ๋กํ ์ฝ
-
ํ์ดํผํ ์คํธ ์ ์ก์ฉ ํ๋กํ ์ฝ -> ๋ค์ํ ์ปดํจํ ์ด์ ๋ค๋ฃฐ ์ ์๋ ๊ฒ์ ๋ชจ๋ ์ ์ก ๊ฐ๋ฅ
-
TCP๊ธฐ๋ฐ์ผ๋ก ํ REST์ ํน์ง์ ๋ชจ๋ ๊ตฌํํ๊ณ ์๋ Web๊ธฐ๋ฐ์ ํ๋กํ ์ฝ
-
Client - Sever์๊ฒ ์์ฒญ -> Server -> Client์๊ฒ ์๋ต
-
๋ฆฌ์์ค ์ทจ๋ R
-
๋ฆฌ์์ค ์์ฑ C (์์ฒญ์ ํ ๋๋ง๋ค ๋งค๋ฒ ๋ค๋ฆ) ( ์์ ํ์ง ์์)
-
๋ฆฌ์์ค ๊ฐฑ์ , ์์ฑ C/U (์์ ํ์ง ์์)
-
๋ฆฌ์์ค ์ญ์ D (์์ ํ์ง ์์)
-
- ์๋ฌ ์ฝ๋
-
100๋ฒ๋ -> ์ฒ๋ฆฌ์ค
-
200๋ฒ๋ -> ์ฑ๊ณต (201๋ฒ ๋ฐ์ดํฐ ์์ฑ)
-
300๋ฒ๋ -> ํด๋น ์ฝ๋๋ฅผ ๋ฐ์์ ๋ REspnse์ ์๋ก์ด ์ฃผ์๋ก ๋ค์ ์์ฒญ
-
400๋ฒ๋ -> ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์๋ฌ
-
500๋ฒ๋ -> ์๋ฒ ์ฒ๋ฆฌ์ค ์๋ฌ๊ฐ ๋ฐ์ํ์๋ -> ์ฌ์์ฒญ ํ๋ฉด ๋จ
-
200 ์ฑ๊ณต
-
201 ๋ฆฌ์์ค๋ฅผ ์์ฑ ์ฑ๊ณต
-
301 ๋ฆฌ๋ค์ด๋ ํธ, ๋ฆฌ์์ค๊ฐ ๋ค๋ฅธ ์ฅ์๋ก ๋ณ๊ฒฝ๋๋ฏธ์ ์๋ฆผ
-
303 ๋ฆฌ๋ค์ด๋ ํธ, Client์์ ์๋์ผ๋ก ์๋ก์ด ๋ฆฌ์์ค๋ก ์์ฒญ ์ฒ๋ฆฌ
-
400 ์์ฒญ ์ค๋ฅ ํ๋ผ๋ฏธํฐ ์๋ฌ
-
401 ๊ถํ ์์
-
404 ๋ฆฌ์์ค ์์ (ํ์ด์ง ์ฐพ์ง ๋ชปํจ)
-
500 ์๋ฒ ๋ด๋ถ ์๋ฌ (์๋ฒ ๋์ ์ฒ๋ฆฌ ์๋ฌ)
-
503 ์๋น์ค ์ ์ง (์ ๊ฒ ๋ฑ๋ฑ)
-
- ๊ณ์ธตํ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ๋ฐฉํ๋ฒฝ, ๊ฒ์ดํธ์จ์ด, Proxy ๋ฑ ๋ค๊ณ์ธต ํํ๋ฅผ ๊ตฌ์ฑํ ์ ์์ด์ผ ํ๋ฉฐ ํ์ฅ ํ ์ ์์ด์ผ ํ๋ค.
- ์ธํฐํ์ด์ค ์ผ๊ด์ฑ: ์ํคํ
์ฒ๋ฅผ ๋จ์ํ ์ํค๊ณ ์์ ๋จ์๋ก ๋ถ๋ฆฌํ์ฌ์ ํด๋ผ์ด์ธํธ, ์๋ฒ๊ฐ ๋
๋ฆฝ์ ์ผ๋ก ๊ฐ์ ๋ ์ ์์ด์ผ ํ๋ค.
- Rest ๋คํธ์ํฌ ์ํคํ
์ฒ ์๋ฆฌ
- Client, Server ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๋ถ๋ฆฌ๋์ด์ ธ ์์ด์ผ ํจ
- stateless ์์ฒญ์ ๋ํด์ ํด๋ผ์ด์ธํธ์ ์ํ๊ฐ ์๋ฒ์ ์ ์ฅํ์ง ์๋๋ค.
- ์บ์ ํด๋ผ์ด์ธใ
๋ ์๋ฒ์ ์๋ต์ ์บ์ ํ ์ ์์ด์ผ ํ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์บ์๋ฅผ ํตํด์ ์๋ต์ ์ฌ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ฉฐ, ์ด๋ฅผ ํตํด ์๋ฒ์ ๋ถํ๋ฅผ ๋ฎ์ถค
- Code On Demand ์๋ฐ ์ ํ๋ฆฟ, ์๋ฐ์คํฌ๋ฆฝํธ ํ๋์ ๋ฑ ํน์ ๊ธฐ๋ฅ์ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ฝ๋๋ฅผ ์ ๋ฌํ์ฌ ์คํ ํ ์ ์์ด์ผ ํ๋ค.
- ์ธํฐํ์ด์ค์ ์ผ๊ด์ฑ ์ธํฐํ์ด์ค ์ผ๊ด์ฑ์ด ์ ์ง์ผ์ก๋์ง์ ๋ฐ๋ผ REST๋ฅผ ์ ์ฌ์ฉํ๋์ง ํ๋จ์ ํ ์ ์๋ค.
- ์์ ์๋ณ
- ๋ฉ์์ง๋ฅผ ํตํ ๋ฆฌ์์ค ์กฐ์
- ์๊ธฐ ์์ ์ ๋ฉ์์ง
- ์ ํ๋ฆฌ์ผ์ด์ ์ํ์ ๋ํ ์์ง์ผ๋ก์ ํ์ดํผ๋ฏธ๋์ด
- ์์ ์๋ณ
- ์น ๊ธฐ๋ฐ์ REST์์๋ ๋ฆฌ์์ค ์ ๊ทผ์ URL์ ์ฌ์ฉํฉ๋๋ค.
- ๋ฉ์์ง๋ฅผ ํตํ ๋ฆฌ์์ค ์กฐ์
- Web์์๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ก ํ ์ ์์ต๋๋ค.
- HTML, XML,JSON,TEXT๋ฑ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์
- ๋ฆฌ์์ค ํ์ ์ ์๋ ค์ฃผ๊ธฐ ์ํด์ header๋ถ๋ถ์ content-type์ ๋ํด์ ์ด๋ ํ ํ์ ์ธ์ง๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
- Web์์๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ก ํ ์ ์์ต๋๋ค.
- ์๊ธฐ ์์ ์
- ์์ฒญ ํ๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌ ๋์ด์ ธ์ผ ํ๋์ง ์ถฉ๋ถํ ๋ฐ์ดํฐ๋ฅผ ํฌํจ ํ ์ ์์ด์ผ ํฉ๋๋ค.
- HTTP ๊ธฐ๋ฐ์ REST์์๋ HTTP Method์ Header์ ์ ๋ก ์ด๋ฅผ ํํํ ์ ์์ต๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
์ํ์ ๋ํ ์์ง์ผ๋ก์ ํ์ดํผ๋ฏธ๋์ด
- REST API๋ฅผ ๊ฐ๋ฐํ ๋์๋ ๋จ์ํ Client ์์ฒญ์ ๋ํ ๋ฐ์ดํฐ๋ง ๋ด๋ฆฌ๋ ๊ฒ์ด ์๋ ๊ด๋ จ๋ ๋ฆฌ์์ค์ ๋ํ Link ์ ๋ณด๊น์ง ๊ฐ์ด ํฌํจ ๋์ด์ผ ํ๋ค.๋ณด
- ์ด๋ฌํ ์กฐ๊ฑด๋ค์ ์ ๊ฐ์ถ ๊ฒฝ์ฐ REST Ful ํ๋ค๊ณ ๋งํ๊ณ ์ด๋ฅผ REST API๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- URI
- ์ธํฐ๋ท์์ ํน์ ์์์ ๋ํ๋ด๋ ์ฃผ์๊ฐ. ํด๋น ๊ฐ์ ์ ์ผ ํจ
- URL
- ์ธํฐ๋ท ์์์์ ์์, ํน์ ํ์ผ์ด ์ด๋์ ์์นํ๋์ง ์๋ณ ํ๋ ์ฃผ์
- URL์ URI์ ํ์ ๊ฐ๋
- URI ์ค๊ณ์์น (RFC-3986)
- ์ฌ๋์ ๊ตฌ๋ถ์(/)๋ ๊ณ์ธต ๊ด๊ฑ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉํ๋ค.
- URI ๋ง์ง๋ง ๋ฌธ์๋ก(/)๋ ํฌํจํ์ง ์๋๋ค.
- ํ์ดํ(-)์ URI ๊ฐ๋ ์ฑ์ ๋์ด๋๋ฐ ์ฌ์ฉํ๋ค.
- ๋ฐ์ค(_)์ ์ฌ์ฉํ์ง ์๋๋ค.
- URI ๊ฒฝ๋ก์๋ ์๋ฌธ์๊ฐ ์ ํฉํ๋ค.
- ํ์ผ ํ์ฅ์๋ URI์ ํฌํจํ์ง ์๋๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์์กด์ ์ธ ํ์ฅ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- ๊ตฌํ์ ์์กด์ ์ธ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- ์ธ์ ID๋ฅผ ํฌํจํ์ง ์๋๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Method๋ช ์ ์ด์ฉํ์ง ์๋๋ค.
- ๋ช ์ฌ์ ๋จ์ํ ๋ณด๋ค๋ ๋ณต์ํ์ ์ฌ์ฉํด์ผ ํ๋ค. ์ปฌ๋ ์ ์ ๋ํ ํํ์ ๋ณต์๋ก ์ฌ์ฉ
- ์ปจํธ๋กค๋ฌ ์ด๋ฆ์ผ๋ก๋ ๋์ฌ๋ ๋์ฌ๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค.
- ๊ฒฝ๋ก ๋ถ๋ถ ์ค ๋ณํ๋ ๋ถ๋ถ์ ์ ์ผํ ๊ฐ์ผ๋ก ๋์ฒด ํ๋ค.
- CRUD ๊ธฐ๋ฅ์ ๋ํ๋ด๋๊ฒ์ URI์ ์ฌ์ฉํ์ง ์๋๋ค.
- URI Query Parameter ๋์์ธ
- URI ์ฟผ๋ฆฌ ๋ถ๋ถ์ผ๋ก ์ปฌ๋ ์ ๊ฒฐ๊ณผ์ ๋ํด์ ํํฐ๋ง ํ ์ ์๋ค.
- URI ์ฟผ๋ฆฌ๋ ์ปฌ๋ ์ ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ด์ง๋ก ๊ตฌ๋ถํ์ฌ ๋ํ๋ด๋๋ฐ ์ฌ์ฉํ๋ค.
- API์ ์์ด์ ์๋ธ ๋๋ฉ์ธ์ ์ผ๊ด์ฑ ์๊ฒ ์ฌ์ฉํด์ผ ํ๋ค.
- ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์ ํฌํ ์๋ธ ๋๋ฉ์ธ์ ์ผ๊ด์ฑ ์๊ฒ ๋ง๋ ๋ค.
-
Spring Boot๋ ๋จ์ํ ์คํ๋๋ฉฐ, ํ ๋ก๋์ ์ ํ ์์ค์ ์คํ๋ง ๊ธฐ๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.
-
Spring Boot ์ดํ๋ฆฌ์ผ์ด์ ์๋ Spring ๊ตฌ์ฑ์ด ๊ฑฐ์ ํ์ ํ์ง ์๋ค.
-
Spring Boot java -jar๋ก ์คํํ๋ Java ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋ค.
-
์ฃผ์ ๋ชฉํ
- Spring ๊ฐ๋ฐ์ ๋ํด ๋น ๋ฅด๊ณ , ๊ด๋ฒ์ํ๊ฒ ์ ์ฉ ํ ์ ์๋ ํ๊ฒฝ
- XML ๊ตฌ์ฑ ์๊ท์ฌํญ์ด ์ ํ ์์
-
Spring Boot ์๊ฐ
- ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ ์์๋ค๋ง ๋ชจ์๋์๋ค.
- ๊ฐ๋จํ ์ค์ ์ผ๋ก ๊ฐ๋ฐ ๋ฐ ์ปค์คํ ์ด ๊ฐ๋ฅํ๋ค.
- ๊ฐ๋จํ๊ณ ๋น ๋ฅด๊ฒ ์ดํ๋ฆฌ์ผ์ด์ ์คํ ๋ฐ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค
- ๋๊ท๋ชจํ๋ก์ ํธ(์ด์ํ๊ฒฝ)์ ํ์ํ ๋น ๊ธฐ๋ฅ์ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ค
- ์ค๋ ๊ฒฝํ์์ ๋์ค๋ ์์ ์ ์ธ ์ด์์ด ๊ฐ๋ฅํ๋ค.
- Spring์์ ๋ถํธํ ์ค์ ์ด ์์ด์ก๋ค.(XML ์ค์ ๋ฑ๋ฑ)