11๋ ๊ฒฝ๋ ฅ, ์ค๋๋ ๋งํผ ์ธํฐ๋ทฐ๋ ๋ฉด์ ์ ๊ฒฝ๋ ฅ์ง์๊ฒ ๊ธฐ์ด์ ์ธ ์ด๋ก ์ง๋ฌธ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. ์ฑํฅ์ ์ฉ์ด๋ฅผ ๋ฌ๋ฌ ์ธ์ฐ๊ธฐ๋ณด๋ค ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ ๋ฌด๋ฅผ ์ํํ๋ ํธ์ด๋ผ ์ฉ์ด์ ์ฝํ ํธ์ธ๋ฐ, ์๋ ๋ถํฐ ๊ท๋ชจ๊ฐ ์๋ ๊ธฐ์ ์ ์ด๋ ฅ์๊ฐ ํต๊ณผ๋๋ฉด ์ด๋ฐ ๋ถ๋ถ์ ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. ์ค๋ฌด ํ ๋ ๊ฐ๋ฐ์์ ์ํตํ๊ฑฐ๋ ๊ณ ๊ฐ์ฌ์ ์ํตํ๋ ๋ฐ๋ ๋ฌธ์ ๊ฐ ์์์ง๋ง ๋ ๋ค๋ฅธ ์๊ฐ์ ํ์ํ ์ ์๋ค๋ ์๊ฐ์ด ๋ค์ด ๋์ฉ๋์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
IaaS / PaaS / SaaS
ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋น์ค
- IaaS , AWS , infrastructure as a service
- PaaS , ๋ฏธ๋ค์จ์ด ์ ์ฐ์ค ๊ฐ์ ๊ฒ, Platform as a service
- ๊ด๋ จ ์ธํ๋ผ๋ฅผ ๋ง๋ค๊ณ ์ ์ง๋ณด์ํ๋ ๋ณต์กํจ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ, ์คํ, ๊ด๋ฆฌํ ์ ์๊ฒ ํ๋ ํ๋ซํผ
- SaaS , Slack, Software as a service , ํ์ฌ ๊ณต๊ธ์ ์ฒด์์ ์ ๊ณตํ๋ ์ํํธ์จ์ด๋ฅผ ์๋ฏธ
RESTAPI
์น์ ์ต์ ํ ๋์ด ์๋ ์ํคํ
์ณ. Representational State Transfer Application Program Interface์ ์ฝ์์
๋๋ค.
์์คํ
์๋ ๋ฐ์ดํฐ์ ๊ฐ์ ์์์ด ์๋๋ฐ ์ด ์์๋ค์ ํ์ฉํ๊ณ ์ถ์ ์ฌ๋ฌ ์์ฉ ์์คํ
์ด ์์ ๊ฒ์ด๊ณ , ๊ฑฐ๊ธฐ์ ์๋ง๊ฒ ์ ๊ณตํด์ผํฉ๋๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด ์ด๋ฆ์ ์ ํ์ฌ ์ ๋ฆฌํด๋๋ค๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ์ ๋ฆฌ ๋์ง ์์ ๊ฒ๋ค์ ์ ๋ฆฌํ์ฌ ์ด๋ฆ์ ๋ถ์ด๊ณ ๊ทธ๊ฒ์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ๊ตฌํํ ๊ฒ์ REST๋ผ๊ณ ํํํฉ๋๋ค. (๋ฐฑ์ค๋์ ํ๋ก ํธ์๋๊ฐ ์๋ก ์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ์ ๊ณต)
ํน์ง
1. URI ์ฌ์ฉ
2. ๋ฌด์ํ์ฑ , ์์
์ ์ํ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ์ง ์์. ๋จ์ ์์ฒญ ์ฒ๋ฆฌ → ์์ ๋๊ฐ ๋์์ง
3. ์บ์๊ฐ๋ฅ , ์น ํ์ค์ ๊ทธ๋๋ก ์ฌ์ฉ, HTTP๊ฐ ๊ฐ์ง ์บ์ฑ ๊ธฐ๋ฅ์ด ์ ์ฉ ๊ฐ๋ฅ.
4. ์์ฒดํํ๊ตฌ์กฐ, REST API ๋ฉ์์ง๋ง ๊ฐ์ง๊ณ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ๊ตฌ์กฐ
5. Client- Server ๊ตฌ์กฐ๋ก ์๋ก ํด์ผํ ์ผ์ด ๋ช
ํํ์ฌ ์์กด์ฑ์ด ์ค์ด๋ฌ.
6. ๊ณ์ธตํ ๊ตฌ์กฐ - REST ์๋ฒ๋ ๋ค์ค ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ ๋ ์ ์์. ๋ณด์, ๋ก๋๋ฐธ๋ฐ์ฑ, ์ํธํ ๊ณ์ธต์ ์ถ๊ฐํ์ฌ ๊ตฌ์กฐ์ ์ ์ฐ, PROXY ๋ฐ ๊ฒ์ดํธ์จ์ด ์ฐํ ๊ฐ๋ฅํ๋๋ก ๋คํธ์ํฌ ๊ตฌ์ฑ์ด ๊ฐ๋ฅ
๊ฐ์ธ์ ์ผ๋ก 5,6๋ฒ์ ๋ชจ๋ ์๋ฒ๊ฐ ๊ฐ๋ฅํ๊ฒ ์๋๊ฐ ๋ผ๋ ์๊ฐ์ ํ๊ณ ์๋ค..
URL๊ณผ URI ์ฐจ์ด
URL(Uniform Resource Locator)์ ์์์ด ์ค์ ๋ก ์กด์ฌํ๋ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ, URI(Uniform Resource Identifier)๋ ์์์ ์์น๋ฟ๋ง ์๋๋ผ ์์์ ๋ํ ๊ณ ์ ์๋ณ์๋ก์ URL๋ฅผ ํฌํจ.
URI๋ ์ค๊ณ ์ ์ฃผ์ํ ์ ์ด ๋ง๋ค.
- ๋ง์ง๋ง์๋ /๋ฅผ ํฌํจํ์ง ์๋๋ค.
- _์ ์ฌ์ฉํ์ง ์๋๋ค.
- ๊ฒฝ๋ก์๋ ์๋ฌธ์๊ฐ ์ ํฉํ๋ค.
- ๋ฆฌ์์ค ๋ช ์ ๋์ฌ๋ณด๋ค๋ ๋ช ์ฌ๋ฅผ ์ฌ์ฉ
์์ )
ํธ๋ํฝ๊ณผ ๋์ญํญ
- ํธ๋ํฝ : ์ผ์ ์๊ฐ ๋์ ์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ์
- ๋์ญํญ : ์ด๋น ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ ์
- ๋์ญํญ ์ธก์ ๋ฐฉ๋ฒ
- ๊ณ์ฐ ๋ฒ : (์ฉ๋ * ์ฌ์ฉ์์ * 8(bit)) / ์ฒ๋ฆฌ ์๊ฐ = bps(bit per second)
- ์ค๋ฌด : iperf3 ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ๊ฐ ์ค์น ํ ๋ช ๋ น์ด ์ฌ์ฉ
SSO(Single Sign On)
๋จ์ผ ๋ก๊ทธ์ธ
์ธ์ ๊ณผ ์ฟ ํค์ ์ฐจ์ด
- ์น ํต์ ๊ฐ ๋ฐ์ดํฐ ์ ์ฅ ๊ณต๊ฐ, ํด๋ผ์ด์ธํธ์ ์ ๋ณด ์ ์ง๋ฅผ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ ์ ์ฅ ์ฅ์์ด๋ค. (์ธ์ = ์๋ฒ, ์ฟ ํค = ํด๋ผ์ด์ธํธ)
- ์ธ์ ์ด ์ฟ ํค์ ๋นํด ๋ณด์์ด ๋์ง๋ง, ์๋ฒ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์๋ชจ๋๋ ์์์ด ํฌ๋ค. ํจ์จ์ ์ธ ์์ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฟ ํค์ ์ธ์ ์ ์ ์ ํ ์์ ๋ฐ ๊ธฐ๋ฅ์ ๋ณํ ์ฌ์ฉํ์ฌ ์น ์ฌ์ดํธ ์๋๋ ๋์ธ๋ค.
JWT(JSON Web Token) - OIDC(OpenID Connect)
์น ํ์ค์ ํ ํฐ ์์ฑ ๋ฐฉ์์ผ๋ก ํ์ํ ์ ๋ณด๋ฅผ ์๊ธฐ ํ ํฐ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค. ๋ณดํต json์ผ๋ก ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉํ๋ฉฐ ๊ตฌ์ฑ ํํ๋ header, payload, signature ํํ์ด๋ค.
JWT๋ ํ ํฐ ์์ฒด์ ์ ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๊ธฐ ๋๋ฌธ์ HTTP ํค๋์ ์ค์ด ์ ๋ฌํจ์ผ๋ก์จ ์ ์ ์ธ์
์ ์ ์งํ ํ์๊ฐ ์๊ณ ๊ฐ๋ณ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. JWT๋ ๋ฐ๊ธ ํ Verify Signature๋ก ๊ฒ์ฆ๋ง ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ์ ์ฅ์๊ฐ ํ์๊ฐ ์๋ค. ์ถ๊ฐ ์ ์ฅ์๊ฐ ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์, ์ ์ง ๋ณด์ ๋ฐ ์๋ฒ ํ์ฅ์ ํจ์ฌ ์ ๋ฆฌํ๋ค
์ฌ์ฉํ๋ ์๋น์ค ์
- ๋ค์ด๋ฒ OPEN API์์ ์ฌ์ฉ (๋งํฌ : ๋น๋ก๊ทธ์ธ ๋ฐฉ์)
๋จ์
- ์ด๋ฏธ ๋ฐ๊ธ๋ JWT ํ ํฐ์ ๋์ดํฌ ์ ์๋ค. ์ธ์ /์ฟ ํค๋ ์ ์์ ํ์ฉ ์ ์ง์ฐ๋ฉด ๋์ง๋ง, JWT๋ ํ ๋ฒ ๋ฐ๊ธ๋ ๊ฒฝ์ฐ ์ ํจ๊ธฐ๊ฐ๊น์ง ์ฌ์ฉํ ์ ์๋ค. ์ ์ฉ๋ ๊ฒฝ์ฐ ์ ํจ๊ธฐ๊ฐ ์ง๋๊ธฐ ์ ๊น์ง ์ ๋ณด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- payload ์ ๋ณด๊ฐ ์ํธํ๋์ง ์์ ๋์ฝ๋ฉ์ด ์ฝ๊ณ , ๊ทธ ์ ๋ณด๋ ๋๊ตฌ๋ ํ์ธํ ์ ์๋ค.
- ๋ฐ์ดํฐ๊ฐ ๋ง์์ง์๋ก ์๋ฒ์ ์์ ๋ญ๋น๊ฐ ๋ฐ์ํ๋ค.
JWT์ ๋ค๋ฅธ ๊ฒ์ ์ฐจ์ด
- ์ธ์ /์ฟ ํค๋ ์ธ์ ์ ์ฅ์์ ์ ์ ์ ์ ๋ณด๋ฅผ ๋ฃ๋ ๋ฐ๋ฉด, JWT๋ ํ ํฐ ์์ ์ ์ ์ ์ ๋ณด๋ค์ด ๋ค์ด๊ฐ๋ค๋ ์ ์ด ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด๋ค.
- JWT๋ ํ ํฐ์ ์ข ๋ฅ์ด๊ณ , OAuth๋ ํ ํฐ์ ๋ฐ๊ธํ๊ณ ์ธ์ฆํ๋ ํ์ค ํ๋กํ ์ฝ. ์ฆ OAuth๋ ๋น๊ต ์ OpenID๋ ๋น๊ตํด์ผ ํ๋ค
์ธ์ฆ(Authentication)๊ณผ ์น์ธ(Authorization)์ ์ฐจ์ด
์ ์ ํ์ธ๊ณผ ๊ถํ ๋ฐ๋ ๊ฒ
OAuth๋?
๋น๋ฐ๋ฒํธ ์ ๋ ฅ ํ์ ์์ด ํ API ์๋น์ค๋ฅผ ์ด์ฉํ์ฌ ๋ก๊ทธ์ธํ ๋ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ. ์ธํฐ๋ท ์ฌ์ฉ์๋ค์ด ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋ค๋ฅธ ์น์ฌ์ดํธ ์ ์์ ๋ค์ ์ ๋ณด์ ๋ํด ์น์ฌ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ๊ณตํต์ ์ธ ์๋จ์ผ๋ก์จ ์ฌ์ฉ๋๋ ์ ๊ทผ
๋ฑ์ฅ ๋ฐฐ๊ฒฝ
STEP 1. ID/PW ์ฌ์ฉ์ ๋ก๊ทธ์ธ → ๋น๋ฐ๋ฒํธ ๋
ธ์ถ ์ด์
STEP 2. OpenID ์ฌ์ฉ → ๊ณ์ ํ๋๋ก ๋ชจ๋ ์๋น์ค๋ฅผ? ์ 3์ ์๋น์ค๋ฅผ ๊ฐ์
ํด์ผ ํ๋ ๋ถ๋ด
STEP 3. ์ฌ์ฉ์๊ฐ ์ธ์ฆ ๊ถํ์ ์ปจํธ๋กคํ ์ ์๋๋ก OAuth ์ ๊ณต
์ฅ์
1. ๋ณด์, ๋น๋ฐ๋ฒํธ ๋ฏธ๋
ธ์ถ
2. ์ธ์ฆ๊ณผ API ๊ด๋ จ ๊ถํ ๋์์ ๊ฐ๋ฅ
OAuth 2.0์ 4๊ฐ์ง ๋ฐฉ์
- Authorization Code
- Implicit
- Resource Owner Password Credentials
- Client Credentials
1. ๊ถํ ๋ถ์ฌ(Authorization code Grant)
- ์์ ๋ง์ ์๋ฒ๋ฅผ ๊ฐ์ง๊ณ ๋์ํ๋ ์๋น์ค ์ผ ๊ฒฝ์ฐ ์ฌ์ฉ
- 3rd-party๋ฅผ ์ํ ์ธ์ฆ๋ฐฉ์์ ์ ๊ณต
- ๋ณดํต ๊ธฐ์ ๋ค API ์๋น์ค ์ ๊ณต ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ณด์ฌ์ง
๋ก๊ทธ์ธ ์์ ํ์ด์ง URL์ response_type=code๋ก ๋๊น
์ฌ์ฉํ๋ ์๋น์ค ์
- Slack API (๋งํฌ : https://api.slack.com/authentication/oauth-v2)
- ํฐ์คํ ๋ฆฌ OPEN API (๋งํฌ : https://tistory.github.io/document-tistory-apis/)
< ์ธ์ฆ → ์ธ์ฆ ์ฝ๋ → ์ธ์ฆ ์ฝ๋ ๋ฐ ๊ธฐํ ์ ๋ณด → ์ ๊ทผ ๊ฐ๋ฅํ token ์ ๊ณต → ์ ๋ณด ๋ฐ token ์ผ๋ก ๋ฐ์ดํฐ ์์ฒญ → ๋ณดํธ๋ ๋ฐ์ดํฐ ์ ๋ฌ >
2. ์์์ ์น์ธ (Implicit Grant)
- ๋ฐฑ์๋ ์๋ฒ ์์ด ์์ ํด๋ผ์ด์ธํธ๋ก ๋์ํ๋ ์ฑ ์ผ ๊ฒฝ์ฐ ์ฌ์ฉ, ์ฆ ๋ชจ๋ฐ์ผ๊ณผ ๊ฐ์ด ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉํ๋ flow์ ์ ํฉ
- ์ฃผ๋ก read only ์๋น์ค์ ์ฌ์ฉ
- client ID๊ฐ ํ๋์ฝ๋ฉ๋์ด ์์ด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋นํด ๋ณด์์ ๋จ์ .
- refresh ํ ๊ทผ์ด ๋ฐ๊ธ๋์ง ์์.
๋ก๊ทธ์ธ ์ ํ์ด์ง URL์ response_type=token์ผ๋ก
์ฌ์ฉํ๋ ์๋น์ค ์
- ๊ณผ๊ฑฐ ํฐ์คํ ๋ฆฌ Open API (๋งํฌ : Tistory API )
- Microsoft (๋งํฌ : ๋ง์ดํฌ๋ก์ํํธ Azure )
3. ํด๋ผ์ด์ธํธ ์๊ฒฉ ์ฆ๋ช ํ์ (Client Credentials Grant)
์ฑ์ด๋ ์๋น์ค ์์ฒด์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌํ๋ ๋ฐฉ์์ ๋๋ค.
์ฑ ์์ด๋์ ์ํฌ๋ฆฟ์ https๋ก ์ง์ ์ ๋ฌํด ํ ํฐ์ ๋ฐ์ต๋๋ค. ๋ฌผ๋ก javascript ์ฑ์ด๋ ๋ชจ๋ฐ์ผ์ผ ๊ฐ์ด ๊ฐ์ด ์ํฌ๋ฆฟ์ด ๋
ธ์ถ๋๋ ํ๊ฒฝ์์ ์ฐ๋ฉด ์ ๋ฉ๋๋ค. ํ์๋ง์์ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํ๋ค๊ณ ํ๋ค.
๋ก๊ทธ์ธ ์์ API์ POST๋ก grant_type=client_credentials
์ฌ์ฉํ๋ ์๋น์ค ์
- IBM Cloud Identity Portal (๋งํฌ : https://www.ibm.com/docs/ko/cip?topic=api-managing-keys )
- Spotify (๋งํฌ : https://developer.spotify.com/documentation/general/guides/authorization/client-credentials/)
4. ๋ฆฌ์์ค ์์ ์ ์ํธ ์๊ฒฉ ์ฆ๋ช ํ์ (Resource Owner Password Credentials Grant)
- ์๋น์ค์ ๊ฐ์ ์๊ฐ ์์ ์ ID/PW๋ฅผ ๊ฐ์ง๊ณ ์ ๊ทผํ๋ ๋ฐฉ์์ ์ ํฉ. ์ฑ ๋ก๊ทธ์ธ์ ์ํ ์ฃผ ์ฉ๋๋ก ์ฌ์ฉ
- ์ฌ์ฉ์์ ์ฑ ์ฌ์ด์ ๋์ ์ ๋ขฐ๊ฐ ํ์ฑ๋ ๊ฒฝ์ฐ์ ์ ํฉ
- ์ธ์ฆ์ฝ๋ ์์ด id์ password๋ฅผ ์ฌ์ฉํด์ access token์ ๋ฐ๊ธ๋ฐ์
- Authorization Server(๊ถํ ์๋ฒ)์ ์ ์ํด์ ์ธ์ฆํ๊ธฐ ๋๋ฌธ์ client id์ secret์ ํ๋์ฝ๋ฉํ๊ฒ ๋จ
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ํ์ด ์์ ์ ์์ผ๋, access token์ ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด์ ์ฌ์ฉ์ id์ password๋ ๋์์ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ํ์ ์ํธ ๋ณด์ ๊ฐ๋ฅ
- access token์ ๋ฐ๊ธ๋ฐ์ ์ดํ์ id์ password๋ฅผ ์ญ์ ํ ๊ฒ์ ๊ถ๊ณ ํ๊ณ ์์ต๋๋ค.
- ๋ก๊ทธ์ธ ์์ API์ POST๋ก grant_type=password
์ฌ์ฉํ๋ ์๋น์ค ์ (์ฐพ๋ ์ค..)
์ฐธ๊ณ
* access token : ๋ณดํธ๋ ๋ฆฌ์์ค์ ์ ๊ทผํ ๋ ๊ถํ ํ์ธ์ฉ
* ์์ ์ค Spotify ์๋น์ค๋ ๋ค์ํ ์ธ์ฆ ๋ฐฉ์ ์ ๊ณตํ๊ณ ์๋ค.
OAuth์ OpenID์ ์ฐจ์ด
OAuth๋ ๊ถํ์ ๋ชฉํ๋ก ์ค๊ณ, OpenID๋ ์ธ์ฆ์ ๋ชฉํ๋ก ์ค๊ณํ ํด์ด๋ค
SAML | OAuth 2.0 | OIDC | |
ํฌ๋งท | XNL | JSON | JSON |
๊ถํ(authorization) | O | O | X |
์ธ์ฆ(authentication) | O | O | O |
์์ฑ๋ ๋ | 2001 | 2005 | 2006 |
์ฌ์ฉ ์ฉ๋ | SSO for Enterprise * ๋ชจ๋ฐ์ผ์ ์ ํฉํ์ง ์์ |
API Service authorization | SSO for cunsumer apps |
ํ์ค ์ธ์ฆ ์คํด
- Bearer : OAuth 2.0, ์ฌ์ฉ์ ์ธ์ฆ์ด ์๋ ์ธ๊ฐ๋ฅผ ์ํ ์ธ์ฆ ๋ฐฉ์
- Basic : ID/PW๋ฅผ ํค๋์ Base64 ์ธ์ฝ๋ฉํ์ฌ ์ ์ก, ๋ณด์์ ์ทจ์ฝํ๋ฉฐ HTTPS๊ฐ ํ์
- Mutual : ์ธ์ฆ์๋ฅผ ์ด์ฉํ ์ธ์ฆ ๋ฐฉ์
- AWS4-HMAC-SHA256 : ์๋ง์กด์์ ์ ๊ณตํ๋ ์ธ์ฆ ๋ฐฉ์
NAT ( Network Address Translation)
๋คํธ์ํฌ ์ฃผ์ ๋ณํํ๋ ๊ธฐ๋ฅ. ๋์ , ์ ์ ์ด ์์ง๋ง ๋ณดํต ์ฌ์ฉํ๋ ๊ฑด dynamic NAT๋ผ๊ณ ์๊ฐํ๋ค.
๊ณต์ธ IP 1๊ฐ ↔ ์ฌ์ค IP N๊ฐ ๋ถ๋ฐฐํ์ฌ ์ฌ์ฉํ๋ ์์คํ , NAT๋ฅผ ์ฐ๋ ์ด์ ๋ ์ฌ๋ฌ ๋์ ํธ์คํธ๊ฐ ํ๋์ ๊ณต์ธ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ธํฐ๋ท์ ์ ์ํ๊ธฐ ์ํ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค. NAT๋ ๋ด๋ถ ๋คํธ์ํฌ์์ ์ฌ์ฉํ๋ IP ์ฃผ์์ ์ธ๋ถ์ ๋๋ฌ๋๋ ์ฃผ์๋ฅผ ๋ค๋ฅด๊ฒ ์ ์งํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ๋คํธ์ํฌ์ ๋ํ ์ด๋ ์ ๋์ ๋ณด์์ด ๊ฐ๋ฅํ๋ค.
SSL(Secure Sockets Layer)
๋ณด์ ๊ณ์ธต์ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ, ๋ณด์๋ HTTP ํต์ ์ ํจ
SSL ์ํธํ ํต์ ์ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๊ฐ ๋ณด์์ด ํฅ์๋ ํต์ ์ ํ๋ ๊ฒ์ผ๋ก ์๋ ๋จ๊ณ๋ก ์ด๋ค์ง๋ค.
- ํธ๋์ ฐ์ดํฌ Handshake (https://blog.naver.com/PostView.nhn?blogId=ucert&logNo=222083739966)
- ์ ์ก
- ์ข ๋ฃ
๋จ๊ณ๋ก ์ด๋ค์ง๋๋ค. ๋ณดํต ํธ๋ ์ ฐ์ดํฌ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค
STEP 1. ํด๋ผ์ด์ธํธ → ์๋ฒ์๊ฒ ๋ฉ์์ง ์ ์ก(์ํธํ ๋ฐฉ์ ์ ์ก)
STEP 2. ์๋ฒ → ํด๋ผ์ด์ธํธ์๊ฒ ๋ฉ์์ง ์ ์ก(์ํธํ ๋ฐฉ์ ๋ฐ ์ธ์ฆ์ ์ ๋ฌ, ๊ณต๊ฐํค ํฌํจ)
STEP 3. ํด๋ผ์ด์ธํธ์์ ํค๋ฅผ ์์ฑํ ํ → ์๋ฒ์๊ฒ ์ ๋ฌ ์ด๋ ์๋ฒ์์ ์ค ๊ณต๊ฐํค๋ก ์ํธํ
STEP 4. ํด๋ผ์ด์ธํธ ↔ ์๋ฒ ์ข
๋ฃ ๋ฉ์์ง ์ ๋ฌ
1. ๋ธ๋ผ์ฐ์ (=ํด๋ผ์ด์ธํธ)๊ฐ ์๋ฒ๋ก ์ต์ด ์ฐ๊ฒฐ ์๋ (์ํธํ ๋ฐฉ์ ์ ์ก)
2. ์๋ฒ๋ ๊ณต๊ฐํค(์ธ์ฆ์)๋ฅผ ๋ธ๋ผ์ฐ์ ์๊ฒ ๋๊ฒจ์ค (์ํธํ ๋ฐฉ์ ๋ฐ ๊ณต๊ฐํค ํฌํจ)
3. ๋ธ๋ผ์ฐ์ ๋ ์ธ์ฆ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ์ฌ ์ธ์
ํค ๋ฐ๊ธ ๋ฐ ๋ณด๊ด ํ ์ถ๊ฐ๋ก ๊ณต๊ฐํค๋ก ์ธ์
ํค ์ํธํํ์ฌ ์๋ฒ๋ก ์ ์ก
4. ์๋ฒ๋ ๊ฐ์ธํค๋ก ์ํธํ๋ ์ธ์
ํค๋ฅผ ๋ณตํธํ ํ์ฌ ์ธ์
ํค๋ฅผ ์ป์
6. ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๋ ๋์ผํ ์ธ์
ํค๋ฅผ ๊ณต์ ํ์ผ๋ฏ๋ก ๋ฐ์ดํฐ ์ ๋ฌ ์ ์ธ์
ํค๋ก ์/๋ณตํธํ ์งํ
TLS ( Transport Layer Security) : SSL์ ๋ ํฅ์๋ ๋ฒ์ ์ผ๋ก, tls ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ ์๋ค.
HTTP์ HTTPS ์ฐจ์ด ( Hyper Text Transfer Protocol (Secure))
์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ๊ฐ ISO Latin1 ์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก 'ํต์ 'ํ ์ ์๋๋ก ํ๋ ํ๋กํ ์ฝ. HTTP๋ ์ํธํ๊ฐ ์ถ๊ฐ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ทจ์ฝํ ๋ฐ๋ฉด, HTTPS๋ ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
* HTTPS ๋ฐ๊ธ ๊ณผ์
์ธ์ฆ๋ ๊ธฐ๊ด(Certificate Authority)์ ๊ณต๊ฐํค๋ฅผ ์ ์กํ์ฌ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ
- Comodo(Sectigo) - https://www.comodo.com/ (+ PositiveSSL, EssentialSSL, InstantSSL ...)
- Thawte by DigiCert - https://www.thawte.com/
- GeoTrust by DigiCert - https://www.geotrust.com/ (+ RapidSSL)
- Verisign - https://www.verisign.com/
- GoDaddy - https://godaddy.com/
- GlobalSign - https://www.globalsign.com/ (+ AlphaSSL)
- DigiCert - https://www.digicert.com/
FCM
๊ตฌ๊ธ์์ ์ ๊ณตํ๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ APP ๊ฐ์ PUSH ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ์ ์๋ ์๋น์ค์ด๋ค. ๊ณผ๊ฑฐ์๋ GCM์ด์์ผ๋ ์๋ก์ด ๋ฒ์ ์ผ๋ก Firebase Cloud Messaging์ผ๋ก ๋ณ๊ฒฝ๋๋ฉฐ, ๋ฌด๋ฃ๋ก ๋ฉ์์ง๋ฅผ ์์ ์ ์ผ๋ก ์ ์กํ ์ ์๋ ํฌ๋ก์ค ํ๋ซํผ์ด๋ค.
๊ฐ์ ๋ ์ ์
1. ๋ชจ๋ฐ์ผ ์น๊น์ง ํ์ฅ๋์ด ์ง์๋์๋ค.
2. ํด๋ผ์ด์ธํธ app ๋จ์์ ๊ตฌํํ๋ ๋ฑ๋ก & ๊ตฌ๋
๋ก์ง์ด FCM ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋์ด ๊ฐ๊ฒฐํ๋์๋ค.
3. PUSH ์ ์ก์ ์ํ ์๋ฒ ๊ตฌํ ์ญ์ ๊ฐ๊ฒฐํด์ก๋ค. ๊ณผ๊ฑฐ์๋ ํน์ ํจํค์ง๋ฅผ import๋ฅผ ํด์ ๊ตฌํํ์์ง๋ง, ์ง๊ธ์ ์ง์ ์์ผ ํต์ ์ ํตํด ๊ตฌ๊ธ ์๋ฒ์ ์์ฒญํ ์ ์๋ค.
SEO
SEO๋ Search Engine Optimization์ ์ฝ์ด๋ก ๊ฒ์ ์์ง ์ต์ ํ๋ผ๋ ๋ป์ด๋ค. ์น์ฌ์ดํธ๊ฐ ๊ฒ์ ๊ฒฐ๊ณผ์ ๋ ์ ๋ณด์ด๋๋ก ์ต์ ํํ๋ ๊ณผ์ ์ ๋งํ๋ค.
์ต์ ํํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
1. ๊ธฐ์ ์
์ฝํ
์ธ ๋งํฌ์
์ ์์ฑํ ๋ ์๋งจํฑ HTML์ ์ฌ์ฉ. ์์ธํ๊ธธ ์ํ๋ ์ฝํ
์ธ ๋ง ํฌ๋กค๋ฌ๊ฐ ๊ธ์ด๊ฐ ๊ฒ์
๋๋ค.
2. ์ฝํ
์ธ ์์ฑ
๋ฐฉ๋ฌธ์์ธต์ ๋ง๋ ์ธ์ด๋ก ์ฝํ
์ธ ๋ฅผ ์์ฑ. ์ด๋ฏธ์ง์ ๋๋ถ์ด ํ
์คํธ๋ฅผ ์ฌ์ฉํด, ํฌ๋กค๋ฌ๊ฐ ์ฃผ์ ๋ฅผ ์ดํดํ ์ ์๋๋ก ๋์ฐ์ธ์.
3. ์ธ๊ธฐ๋
๋ค๋ฅธ ์ ๋ช
ํ ์ฌ์ดํธ์์ ์ฌ๋ฌ๋ถ์ ์ฌ์ดํธ๋ก ๋งํฌ๋ฅผ ํ๋ค๋ฉด ๋ ๋ง์ ํธ๋ํฝ์ ๋ฐ์ ์ฌ๋ฆด ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋คํธ์ํฌ ๊ธฐ์ด ๊ฐ๋ ์ ์๊ธฐ ์ํด
๋์ ์ง PC์์ naver.com์ ์ ๊ทผ ๊ณผ์
1. ์น ํ์ด์ง์ naver.com ์
๋ ฅ
2. ์ฌ์ฉ์๊ฐ ์
๋ ฅํ naver.com์ DNS ์๋ฒ์์ ๊ฒ์ํจ
3. DNS ์๋ฒ์์๋ ๋๋ฉ์ธ ๋ค์์ ํด๋นํ๋ IP์ฃผ์๋ฅผ ์ฐพ์ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ URL ์ ๋ณด์ ํจ๊ป ์ ๋ฌ
4. IP ์ฃผ์๋ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์น ํ์ด์ง URL ์ ๋ณด๋ก ๋ณํ ์์ฒญ
5. ์์ฒญ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ HTTP ์๋ต์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
๋๋ฌด ๊ฐ๋ตํ๊ฒ ์ ์๋ ์ถ์ง๋ง ์ค๋์ ์ฌ๊ธฐ๊น์ง ํ๊ฒ ์ต๋๋ค. ๋ง์ ์ฌ์ดํธ๋ฅผ ๊ฒ์ํ๋ฉฐ ์ฐพ์๋ณด๊ณ ์ฝ๊ฒ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ๋
ธ๋ ฅํ์๋๋ฐ, ์ง๋๊ฐ๋ ๋ถ์ด ์ด ๊ธ์ ๋ณด๊ณ ๋์์ด ๋๊ธธ ๋ฐ๋๋๋ค.
'๋์งํธ ๊ฟํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB] CDC(Change Data Capture), ETL (0) | 2022.08.12 |
---|---|
์ ๋์ผ์ค ๊ด๊ณ ๊ฐ ๊ฐ์๊ธฐ ๋ ธ์ถ ๋์ง ์์ ๋, ์ ๋์ผ์ค ๊ด๊ณ ๋ฏธ๋ ธ์ถ ์ผ์ด์ค (4) | 2022.07.07 |
๊ฐ๋ ฅ ์๋ก๊ณ ์นจ์ ํตํด ์บ์ ๋น์ฐ๊ธฐ (0) | 2022.07.06 |
๋๊ธ