
๐ฅ AWS Cognito Flow(with. KakaoTalk)
reference: https://haandol.github.io/2021/01/31/cognito-kakao-login.html

1. User -> Web Page โ๏ธ
Sign in via Kakao โ๏ธ
2. User -> KakaoTalk โ๏ธ
Redirect with Auth code โ๏ธ
3. KakaoTalk -> Web Page โ๏ธ
Callback with Tokens โ๏ธ
4. Web Page -> Amazon API Gateway โ๏ธ
Auth with API โ๏ธ
5. Amazon API Gateway -> AWS Lambda โ๏ธ
Invoke with Kakao Token โ๏ธ
6. AWS Lambda -> KakaoTalk API โ๏ธ
Fetch Email โ๏ธ
7. AWS Lambda -> AWS Cognito UserPool โ๏ธ
Sign in โ๏ธ
8. AWS Cognito UserPool -> AWS Lambda โ๏ธ
Invoke Hook Passively โ๏ธ
9. AWS Cognito UserPool -> Google โ๏ธ
Sign in via Google โ๏ธ
10. ํ์ต ๋ชฉํ โ๏ธ
๐ต OAuth 2.0 flow์ ๋ํด ์ดํดํ๋ค.
๐ต AWS Lambda, Amazon API Gateway, AWS Cognito์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ดํด์ ๋๋ฌํ๋ค.
๐ต ๊ถ๊ทน์ ์ผ๋ก, ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ ๋ฐ AWS ์ํ๊ณ์ ๋ํ ์ดํด๋๋ฅผ ๋์ธ๋ค.
๐ต ์ฝ์ธ ์ํฉ ์ฌ์ดํธ ํ๋ก์ ํธ ๋ด์์, ์ ๋ด์ฉ์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌํํ๋ค.
๐ฅ ํ๊ณ
์ต๊ทผ ๋ฉฐ์น ๊ฐ, ๋จธ๋ฆฟ์์ ์ ์ํ ํ๋(่ฉฑ้ ญ)๋ ๋ค๋ฆ ์๋ '๋ฌธ์ ์ ์(Problem Definition)'์๋ค. "์ ์คํค, ๋ฌธ์ ์ ์๊ฐ ์ค์ํ๋ค๋ ๊ฑด ์ญ๋ถ ๊ณต๊ฐํด. ๊ทผ๋ฐ ๋๋์ฒด ๋ฌธ์ ์ ์๊ฐ ๋ญ๋ฐ 10๋์."
๋ฌธ์ ๋ ์๋ ๋ง๋ก '๋นก์ด ๋ ์ํฉ'์ด๋ค. ํด๊ฒฐํ์ง ๋ชปํ ๋์ ๋๋ ์ํฉ์ ์ง์นญํ๋ ๋จ์ด์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ์(Definition)๊ฐ ๋๋์ฒด ๋ญ์ง?
์์ธ ๋๋๋ '๋ญ๋ง์ฃผ์ ์ ์ธ'์์ ์ ์(Definition)๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํํํ๋ค.
"The first line of defense against the chaos of mental disintegration."
์ ์(Definition)๋, ์ ์ ๋ถ์ด์ ํผ๋์ ๋ง์ ์ธ์ฐ๋ ์ต์ ์ ์ด๋ผ๋ ๊ฒ์ด๋ค.
๋ถ์ด์์ ํํธ๋ฅผ ์ป์๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ ์ ์๋, ์ธ์์ ์กด์ฌํ๋ ๋ค์ํ '๋น๊ตฌ์กฐํ'๋ ๋ฌธ์ ๋ฅผ '๊ตฌ์กฐํ'ํ๋ ๊ณผ์ ์ด๊ฒ ๋ค. ํ๋ง๋๋ก, ๋นก์ด ๋ ์ํฉ์ ๋๋ฆ๋๋ก์ ๋ชฉ์ฐจ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ฌธ์ ์ ์์ด๋ค. ์ดํ ๋จ๊ณ๋ ์ด์ TIL์์ ์ธ๊ธํ๋ฏ, ๋ถํ ์ ๋ณต(divide and conquer)์ด๋ค.
๋ฌธ์ ์ flow๋ฅผ ๊ฑด์กฐํ๊ฒ(=๊ฐ์ ์ ์ต๋ํ ๋ฐฐ์ ํ๊ณ ) ๋ฐ๋ผ๋ณธ ๋ค ๋๋ฆ์ ๊ตฌ์กฐ๋ฅผ ์ค์ ํ๊ณ , ๊ตฌ์กฐ๋ก๋ถํฐ ํ ๋น๋๋ ๋ฌธ์ ๋ฅผ ๋ ์์ ๋จ์๋ก ๋ถํ ํ ๋ค, ์ต์ข
์ ์ผ๋ก๋ ๋ชจ๋ ์กฐ๊ฐ์ merge ํ๋ ๊ฒ. ์ด๊ฒ์ด ๋ฐ๋ก ๋ฌธ์ ์ ์์ ํด๊ฒฐ์ด๋ค. ๊ฐ๋ฐ์ ์ญ์ ์ง๋ฆฟํด. ๋น๋จ ๊ฐ๋ฐ์๋ง ์ ์ฉ๋๋ ๋ด์ฉ์ ์๋๊ฒ ์ง๋ง.