๐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ฒญ ํ๋ฆ
- ๋ธ๋ผ์ฐ์ ์ https://google.com์ ์ ๋ ฅํ๋ค.
- ์ด๋ฏธ ๋ฐฉ๋ฌธํ ๊ธฐ๋ก์ด ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ค๋ฉด IP ์ฃผ์๋ฅผ ์บ์ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์จ๋ค.
- ์บ์: ๋ธ๋ผ์ฐ์ ์บ์ → hosts ํ์ผ → DNS Cache (OS, router, ISP)
- ์บ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฐพ์ง ๋ชปํ๋ค๋ฉด DNS ์๋ฒ์ ์์ฒญ์ ๋ณด๋ธ๋ค.
- Root → Top-level(.com) → Second(google.com) → Third(maps.google.com)
- ํ DNS ์๋ฒ์์ ๋ค๋ฅธ DNS ์๋ฒ๋ก ์ฌ๊ท์ ์ผ๋ก ์ง์ํ๋ค.
- IP ์ฃผ์๋ฅผ ์ฐพ์ผ๋ฉด ํด๋น ์ฃผ์์ HTTPS ์์ฒญ์ ๋ณด๋ธ๋ค.
- ์น์๋ฒ์ ์์ฒญ์ด ๋์ฐฉํ๋ค.
- ์น์๋ฒ๋ ์ ์ฅ์์ ์์ฒญ์ ๋ณด๋ด ํ์ด์ง ๊ด๋ จ ๋ฐ์ดํฐ๋ค์ ๊ฐ์ ธ์จ๋ค.
- ๋ฐ์ดํฐ๋ค์ ๊ฐ์ ธ์ค๋ ์ค์ ๋น์ง๋์ค ๋ก์ง์ด ์๋ํ๋ค.
- ๋ก์ง๋ค์ ํตํด ์์ฒญ๋ฐ์ ๋ฐ์ดํฐ๋ค์ด ์ฒ๋ฆฌ๋๊ณ ๋ธ๋ผ์ฐ์ ์ ์๋ตํ๋ค.
- ์๋ต๋ฐ์ ๋ฐ์ดํฐ๋ค๋ก ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
๐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ 3๋จ๊ณ ๊ณ์ธต ๊ตฌ์กฐ
- Presentation Layer
- ๋ธ๋ผ์ฐ์ ๋ฑ์ ์ด์ฉํด ์ ์ ์ ์ง์ ์ ์ผ๋ก ์ ์ดํ๋ค.
- Web Server๊ฐ ์ด ์์ญ์ ํฌํจ๋๋ฉฐ, ์ ์ ์ธํฐํ์ด์ค ์์๋ค์ ํฌํจํ๋ค.
- Application Layer
- Business Layer, Business Logic ํน์ Domain Logic์ด๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
- ๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ ์ ์ ์ ์์ฒญ์ ๋ฐ์์ ์ฒ๋ฆฌํ๋ค.
- Application Server๊ฐ ์ด ๊ณ์ธต์ ํฌํจ๋๋ค.
- ๋ฐ์ดํฐ ์ ๊ทผ์ ์ํ ๊ฒฝ๋ก๋ฅผ ๊ท๊ฒฉํํ๋ ๋ฑ์ ๊ณผ์ ์ด ์ด ๊ณ์ธต์ ์์ฑ๋๋ค.
- Data access layer
- Persistence layer๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ฑฐ๋ ์ ์ฅ์ ๋ด๋นํ๋ค.
- Application Layer๋ ์ด ๊ณ์ธต๊ณผ ๋ฐ์ ํ ์ฐ๊ด์ ๊ฐ์ง๊ณ ์๋ค.
- ์ด ๋จ๊ณ๋ฅผ ํตํด Application Layer์ ๋ก์ง๋ค์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ ํน์ ์ ์ฅํ ์ง๋ฅผ ๋ ์ต์ ํํ ์ ์๋ค.
- Cross-cutting
- ์ฃผ๋ก ๋ณด์, ํต์ , ์ด์ ๊ด๋ฆฌ ๋ฑ์ ์ํ ์์
- Third-party integrations
- ์ 3์ API ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- OAuth 2.0์ ์ด์ฉํ ์์ ๋ก๊ทธ์ธ, PG ์ฌ๋ฅผ ์ด์ฉํ ๊ฒฐ์ฌ ๊ธฐ๋ฅ ๋ฑ
๐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํ ๋ฐฉ์
Single Page Application
- ์ ์ ์ ์ ๋ ฅ์ด๋ ์์ฒญ์ ์ํ ์ฝํ ์ธ ๋ ์ ๋ณด์ ์ต์ ํ๊ฐ ํ์ด์ง๋ฅผ ์๋ก ๋ถ๋ฌ์ค์ง ์๊ณ ํ์ฌ ํ์ด์ง์์ ์ด๋ฃจ์ด์ง๋ค.
- CSR (Client Side Rendering)
Microservice Architecture
- ์๊ณ ๊ฐ๋ฒผ์ด ํน์ ํ ํ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ง์คํ ์น ์ ํ๋ฆฌ์ผ์ด์
- ๊ฐ ๊ธฐ๋ฅ ์์๋ค์ด ์์กด์ ์ผ๋ก ์ค๊ณ๋์ง ์๋๋ค. ๋ฐ๋ผ์ ๋ค์ํ ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- MSA ์ ๋๋ก ์ดํดํ๊ธฐ
- ์นด์นด์ค ์ด๋ชจํฐ์ฝ ์๋น์ค๋ ์ MSA๋ฅผ ์ ํํ๋?
Serverless Architecture
- ์๋ฒ์ ๊ธฐํ ๊ธฐ๋ฐ ๊ธฐ๋ฅ๋ค์ ์ธ๋ถ์ 3์์ธ ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต์์๊ฒ ์ํํ๋ ๋ฐฉ์
๐ ์ฟ ํค, ์ธ์
- ์ฟ ํค
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ ์ ์ ์ ์ ๋ณด๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ณด๊ดํ๋ค.
- ๋ค์ ์ ์๋ถํฐ๋ ์ ์ ์ ์ ๋ณด๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ณด๋ด์ ์ ์ ๋ฅผ ์๋ฒ๊ฐ ์๋ณํ๊ฒ ํ๋ค.
- ์ฟ ํค์ ๋ด๊ธด ๋ด์ฉ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ ๊ฐ ์ค์ ํ๋ ํญ๋ชฉ๋ค์ ๋ํด ์ ์ฅ์ ํด์ ๋ค์์ ์ด์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋ํ๊ฒ ๋์์ค๋ค.
- ์ธ์
- ์ธ์ ์ ๊ฒฝ์ฐ ์๋ฒ์ Session-Id๋ผ๋ ๊ณ ์ ์์ด๋๋ฅผ ํ ๋นํด์ ์ ์ ๋ฅผ ์๋ณํ๋ค.
- ๋จ์ํ๊ณ ์ ์ถ์ด ๋๋ฉด ์ ๋๋ ์ ๋ณด๋ ์๋ฒ์์ ๊ด๋ฆฌ๋ฅผ ํ๋ฉด์ ์ธ์ ID์ ๋งค์นญ ํด์ ์ ์ฅํด ๊ด๋ฆฌํ๋ค.
- ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์, ์ธ์ ์ ๋ณด๋ ์ฟ ํค์์ ๊ด๋ฆฌํ๊ณ , ์ค์ ๋งค์นญ ๋๋ ๊ฐ๋ค์ ์๋ฒ ์ธก์์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.