ํด๋ผ์ด์ธํธ - ์๋ฒ ์ํคํ ์ฒ(2ํฐ์ด ์ํคํ ์ฒ) // Client Server Architecture (2 Tier Architecture)
์ํ ์ ๋ณด๋ฅผ ์ธํฐ๋ท ์ด๋๊ฐ์ ์กด์ฌํ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์จ๋ค.
๐ค๋ง์ฝ ์๋ฒ๊ฐ ๋ฐ๋ก ์กด์ฌํ์ง ์๊ณ , ์ ๋ถ ์ฑ ์์ ๋ด๊ฒจ ์๋ค๋ฉด?
โฅ ๋์์์ด ์ฑ์ ์ ๋ฐ์ดํธํด์ผํ๋ค. ์ฑ์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์๊ฒ ์ํ ์ ๋ณด๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ๋ฌํ๊ธฐ ์ด๋ ต๋ค.
๋ํ ๊ฒฐ์ ๋ ๋ถ๊ฐ! (๊ฒฐ์ ๋ ์ํ ์๋ฒ์ ์ฐ๊ฒฐํด์ ํ๋๊ฑฐ๋๊น)
์ํ ์ ๋ณด ๊ฐ์ ๋ฆฌ์์ค๊ฐ ์กด์ฌํ๋ ๊ณณ๊ณผ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฑ์ ๋ถ๋ฆฌ์ํจ ๊ฒ์ 2ํฐ์ด ์ํคํ ์ณ / ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฑ์ด ํด๋ผ์ด์ธํธ,
๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ ๊ณณ์ ์๋ฒ
์๋ฒ๋ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌ๋ง ํด์ฃผ๊ณ , ๋ฆฌ์์ค๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ด ๋ฐ๋ก ์๋ค. ์ฌ๊ธฐ๊ฐ ๋ฐ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค!
โฅ ํด๋ผ์ด์ธํธ-์๋ฒ-์ํคํ ์ณ ํํ๋ฅผ 3 Tier ์ํคํ ์ณ๋ผ๊ณ ํ๋ค.
ํ๋ก ํธ์๋์ ์์ญ - ํด๋ผ์ด์ธํธ/๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฑ (์ ์ ์์ ์ ๋ฐ์ ์ธ ์ํธ์์ฉ)
๋ฐฑ์๋์ ์์ญ - ์๋ฒ & ๋ฐ์ดํฐ๋ฒ ์ด์ค/ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌํด์ฃผ๋ ์ฑ & ๋ฆฌ์์ค ์ ์ฅ ๊ณต๊ฐ (์ฌ์ฉ์ ์ธ์ฆ, ์์คํ ์ค๊ณ)
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ํ๋ ๋ฐฉ๋ฒ์ธ API
ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ ์์ฒญ๊ณผ ์๋ต์ผ๋ก ๊ตฌ์ฑ๋๋ค.
ํ๋กํ ์ฝ์ ํต์ ๊ท์ฝ์ด๋ค. (์ฌ๋ฌ๊ฐ์ง ํ๋กํ ์ฝ์ด ์๋ค.)
์น ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก HTTP๋ผ๋ ํ๋กํ ์ฝ์ ์ด์ฉํด์ ๋ํํ๋ค.
์์ฉ ๊ณ์ธต์ ์ฃผ์ ํ๋กํ ์ฝ
- HTTP: ์น์์ html, json๋ฑ์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ๋กํ ์ฝ
- HTTPS : HTTP์์ ๋ณด์์ด ๊ฐํ๋ ํ๋กํ ์ฝ
- FTP: ํ์ผ ์ ์ก ํ๋กํ ์ฝ
- SMTP: ๋ฉ์ผ์ ์ ์กํ๊ธฐ ์ํ ํ๋กํ ์ฝ
- SSH: CLIํ๊ฒฝ์ ์๊ฒฉ ์ปดํจํฐ์ ์ ์ํ๊ธฐ ์ํ ํ๋กํ ์ฝ
- RDP: Windows ๊ณ์ด์ ์๊ฒฉ ์ปดํจํฐ์ ์ ์ํ๊ธฐ ์ํ ํ๋กํ ์ฝ
- WebSocket: ์ค์๊ฐ ํต์ ,Push๋ฑ์ ์ง์ํ๋ ํ๋กํ ์ฝ
์ ์ก ๊ณ์ธต์ ์ฃผ์ ํ๋กํ ์ฝ
- TCP: HTTP, FTP ํต์ ๋ฑ์ ๊ทผ๊ฐ์ด ๋๋ ์ธํฐ๋ท ํ๋กํ ์ฝ // ์๋ฐฉํฅ ์ฐ๊ฒฐ ์๋น์ค, ์คํธ๋ฆผ์์ฃผ, ์ ๋ขฐ์ฑ
- UDP: (์๋ฐฉํฅ์ TCP์๋ ๋ค๋ฅด๊ฒ) ๋จ๋ฐฉํฅ์ผ๋ก ์๋ํ๋ ํค์ฌ ๋ ๋จ์ํ๊ณ ๋น ๋ฅด์ง๋ง, ์ ๋ขฐ์ฑ์ด ๋ฎ์ ์ธํฐ๋ท ํ๋กํ ์ฝ // ๋น์ฐ๊ฒฐํ ์๋น์ค, ๋น ๋ฅธ์๋/์ฌ๋ฌ์ฌ์ฉ์/๋ฐ๋ณต, ์๋
API(Application Programming Interface)๋?
์ปดํจํฐ์๊ฒ ์์ฒญํ ๋๋ ์ ํํ ์ฃผ๋ฌธ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์์ฒญํด์ผํ๋ค.
์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฆฌ์์ค๋ฅผ ์ ํ์ฉํ ์ ์๋๋ก ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ API๊ฐ ํ๋ค.
์ฝ๊ฒ ์ค๋ช ํด์ API๋ ๋ฉ๋ดํ๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ ๊ฑธ๋ก ์๊ฐํ๋ฉด ๋๋ค.
์ธํฐ๋ท์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋์๋ HTTP๋ผ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉฐ, ์ฃผ์(URL, URI)๋ฅผ ํตํด ์ ๊ทผํ ์ ์๋ค.
HTTP ์์ฒญ์๋ ๋ฉ์๋๋ผ๋ ๊ฒ์ด ์กด์ฌํ๋ค.
๋ฆฌ์์ค๋ฅผ ๊ทธ์ ๋ฌ๋ผ๊ณ (GET) ์์ฒญ๋ ๊ฐ๋ฅํ๊ณ , ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํด ๋ฌ๋ผ๊ณ (CREATE) ์์ฒญํ๊ฑฐ๋, ์ง์๋ฌ๋ผ๊ณ (DELETE) ์์ฒญํ ์๋ ์๋ค. CRUD ๊ฐ๊ฐ์ ํ๋๊ณผ ์ผ์นํ๋ HTTP ๋ฉ์๋์ ์ข ๋ฅ๊ฐ ์กด์ฌํ๋ค.
<HTTP API ๋์์ธ์ ์ ํ๊ธฐ ์ํด ๊ผญ ๊ธฐ์ตํด์ผ ํ 5๊ฐ์ง ๋ฉ์๋>
์ฐธ๊ณ
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
HTTP ๋ฉ์๋๋ CRUD ํ๋์ ๋ฐ๋ผ ๋ชฉ์ ์ ๋ง๊ฒ ์จ์ผํ๋ค!!