-
Notifications
You must be signed in to change notification settings - Fork 11
Daily Scrum
๊น์ฌํ
์ด์ฌํ ์ง ์ผ๋ง ๋์ง ์์ ์ง ์ ๋ฆฌ์ ๊ฐ๊ตฌ ์ค๋น๋ก ๊ณ ์ ์ค์ด๋ค. ๊ทธ๋ก ์ธํด ์๊ฐ์ ํ๋ก์ ํธ์ ๋ ํฌ์ํ์ง ๋ชปํด ํ์๋ค์๊ฒ ๋ฏธ์ํ๋ค. ๋นจ๋ฆฌ ์ง ์ ๋ฆฌ๋ฅผ ๋ง์น๊ณ ํ๋ก์ ํธ์ ๋ ์ด๋ฐ์งํด์ผ ํ ๋ฏํ๋ค. ํ์๋ค๊ณผ ํจ๊ป ๊ธฐํ์ ๋ง๋ฌด๋ฆฌํ๊ณ ๊ฐ์ธ์ ์ผ๋ก๋ ๋งค์ผ ์ฌ์ฉํ๊ฒ ๋ typescript์ ํต์ฌ ์ฃผ์ ์ธ OAuth์ ๋ํด์ ๊ณต๋ถํ ์์ ์ด๋ค.
๋จ์ ํธ
ํ๋ก ํธ ๋๋ํํธ ์์ฑ์ ์ํด ํผ๊ทธ๋ง๋ฅผ ๊ณต๋ถํ๋ค. ํ์ฌ ๋ฌด๋ฃ ๋ฒ์ ์์๋ 3๋ช
์ด์์ด ๋์ ํธ์ง์ ํ ์ ์๋ ์ด์๊ฐ ์์ด, ์ฐจํ์ ํ๋ก๋ฒ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ ํด์ผํ ์๋ ์์ ๊ฒ ๊ฐ๋ค.
์ด์ ๋ ํผ๊ทธ๋ง์ ๋ํ ๊ณต๋ถ๋ฅผ ์์ํ์๊ณ , ์ค๋ ๋ด๋ก ๊ณต์ getting started ๊ฐ์๋ฅผ ๋ค ๋ณผ ๊ฒ์ด๋ค.
์ ํ์ง
์ค๋๋ง์ ์์ ํผ๊ณคํ๋ค. ๋ฉฐ์น ๊ณ ์ํด์ผ ๋ค์ ์ ์ํ ๊ฒ ๊ฐ๋ค.
SNS๊ฐ ์ฒ์์ด๋ค. Feature ๋ฝ์๋ด๋ ๋ฐ ์ด๋ ค์์ด ๋ง์์ง๋ง ํ์๋ค์ ๋์์ผ๋ก ํด๊ฒฐํ ์ ์์๋ค.
์ด๋ฒ ํ๋ก์ ํธ์ OAuth ์๋น์ค ๊ธฐ๋ฅ์ ์ ๊ณตํ ์์ ์ด๊ธฐ์ OAuth 2.0 RFC๋ฌธ์๋ฅผ ์ฝ๊ณ ์๋ค.
์ ์์
๋ฉ์ธํ์ด์ง์ ์ฌ์ฉ์ํ์ด์ง ์๋๋ฆฌ์ค๋ฅผ ์์ฑํ๋ค. ์ค๋์ ๊ฒ์๋ฌผ ์์ธ ํ์ด์ง์ ํ๋กํ ๋ณ๊ฒฝ ํ์ด์ง ์๋๋ฆฌ์ค๋ฅผ ์์ฑํด์ผ ํ๋ค. ๋ค๊ฐ์ด ๊ธฐํ์๋ฅผ ์์ฑํ๊ณ RFC6749๋ฅผ ๊ณต๋ถํ๋ฉด ์ข๊ฒ ๋ค.
๊น์ฌํ
์ต๊ทผ์ ์ด์ฌ๋ฅผ ํด์ ๊ฐ๊ตฌ๋ฅผ ์ ๋ฆฌํ๋ ๋ฐ ๋ง์ ์๊ฐ์ ์ฐ๊ณ ์๋ค.
OAuth ๊ณต์๋ฌธ์๋ฅผ ๋ฒ์ญํ์ฌ ํ์๋ค๊ณผ ๊ณต์ ํ๊ณ ์๋ค. ์ต๋ํ ๋ฒ์ญํ์ฌ ๊ณต์ ํ ์์ ์ด๊ณ ์๊ฐ์ ์ฌ๋ ฅ์ด ๋์ง ์์ผ๋ฉด ํ์์ ์ธ ์์๋ค์ ํํด ๋ฒ์ญํ ์์ ์ด๋ค.
๋จ์ ํธ
Figma ๊ธฐ๋ณธ ๊ฐ์๋ฅผ ํ์ตํ์๊ณ ์ด๋ฅผ ์ ๋ฆฌํ์ฌ ๋๋ฃ๋ค๊ณผ ๊ณต์ ํ ์์ ์ด๋ค.
์ค์ต์ ํตํด Figma์ ์ฌ์ฉ๋ฒ์ ์ตํ๊ณ , ํ๋ก์ ํธ์ ๊ธฐ๋ณธ UI ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ ์์ ์ด๋ค.
๋ฆฌ์กํธ์ state ๊ณต๋ถ ์ค, useState๋ฅผ ์ ๋ชป ์ฐ๊ณ ์์ด์ ์ด์ ๋ํด ๊ณต๋ถํ๋ ์ค์ด๋ค.
์ ํ์ง
์ด์ ํผ๊ณคํด์ ์นผํดํ๋๋ฐ ํ๋์ ์ผ๋ก ์๊ธฐํ๋ณต! ์ต์ ์ค๋ก๋๋ฏผ์จ์์ค...
OAuth์ grant ํ์
์ ๋ํด์ ๊ณต๋ถํจ. Implicit ๋ฐฉ์์ด๋ pkce ๋ฐฉ์์ด ์๋๋ฐ ์ด์ ๋ํด ๊ณต๋ถํจ. ๊ทผ๋ฐ ๋จธ๋ฆฌ์๋ ์ ์ ๋จ์์ ๋ค์ ๊ณต๋ถํ ์์ ์.
์ ์์
๊ฐ๊ธฐ์ ๊ฑธ๋ ค์ ์ปจ๋์
์ด ์ข์ง ์๋ค. ์ค๋ ๋ฐค์ ์ฅํ์ ์ผ๊ณ ๋ฐ๋ปํ๊ฒ ์์ ๋นจ๋ฆฌ ์ปจ๋์
์ ํ๋ณตํด์ผ๊ฒ ๋ค. ํ์๋คํํ
๋ฏธ์ํ๋ค ใ
.
OAuth์ Client Registeration Flow์ ๋ํด์ ๊ณต๋ถํ์๊ณ , ๋๋จธ์ง RFC ๋ด์ฉ๋ค์ ํ์ตํ ์์ ์ด๋ค.
๋จ์ ํธ
ํ๋ฉด ๊ธฐํ์์ ๋ฃ์ ํ๋กํ ํ์
์ Figma๋ฅผ ํตํด ๋ง๋ค์๋ค. ์ฌ์์น๊ตฌ๊ฐ ํฌํ ์ต ์ฅ์ธ์ด์ด์ ๋ง์ ๋์์ ๋ฐ์ ์ ์์๋ค. ์ง์ ํ ์ฌ๋๊พผ์ด๋ค.
์ค๋์ ๊ฐ๋ฐ์ ํ์ด์ง UI ํ๋กํ ํ์
์ ๋ง๋ค ์์ ์ด๊ณ , ๋ถ์กฑํ React ๊ณต๋ถ๋ฅผ ๋ง๋ฌด๋ฆฌํ ์์ ์ด๋ค.
์ ์์
ํ๋ฉด ๊ธฐํ์์ ๋ฃ์ ๋ก๊ทธ์ธ & ํ์๊ฐ์
UI ํ๋กํ ํ์
์ Figma๋ก ๋ง๋ค์๋ค. ์์ ์ ์์
๋ฌผ์๋ํด ์๋นํ ๋ฟ๋ฏํดํ๋ ์ค์ด๋ค.
Modal UI์ Tool Tip UI ํ๋กํ ํ์
์ ๋ง๋ค๊ณ OAuth ๋ฌธ์์ ๋๋จธ์ง ๋ถ๋ถ์ ๊ณต๋ถํ ์์ ์ด๋ค.
๊น์ฌํ
์ด์ ๋ชจ ๊ธฐ์
์ AI๋ฉด์ ์ ์ณค๋ค. ์ด์ ํ ์ผ์ ๋๋ถ๋ถ ๋ง๋ฌด๋ฆฌํด์ ๊ฐ์ธ์๊ฐ์ ํฌ์ํด ํ ํ๋ก์ ํธ์ ํ์ํ ๊ธฐ์ ์คํ์ ๊ณต๋ถ ํ ์์ ์ด๋ค.
์ค๋์ ํ๋ฉด ๊ธฐํ์๋ฅผ ๋ฐํ์ผ๋ก ํ์ง์ดํ๊ณผ Feature List๋ฅผ ๋ฝ์ ์์ ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ ์ ์ฌ์ผ๋ก๋ ์์ธ์ง ์ผ์ฑ๋ณถ์์ ์ง์ ์๋ฆฌํด ์ค๋นํ๋ค. ๋๋ฌด ๊ธฐ๋ํ๋ ์ค!!!
์ ํ์ง
์ด์ ๋ญ ํ๋์ง ๋์ด๊ฐ ๋ค์ด ๊ธฐ์ต์ด ์ ์๋์ง๋ง OAuth์ grant type๋ณ access token ๋ฐ๊ธ flow์ ๋ํด์ ๊ณต๋ถํ์๊ณ , ์งฌ์งฌ์ด ํ์
์คํฌ๋ฆฝํธ๋ฅผ ๊ณต๋ถํ๋ค.
์ค๋์ ์ฌํ์ด์ ํผ์ณ๋ฆฌ์คํธ๋ฅผ ํจ๊ป ๋ฝ๊ณ ๋ด์ผ ์์ ๊ธฐํ์ ๋ฐํ ์ค๋น๋ฅผ ํ ๊ฒ์ด๋ค.
๋จ์ ํธ
์ด์ ํผ๊ทธ๋ง ์กฐ๊ธ ๋ ํ๋ค๊ฐ ์ ๋ค์์. ์ค๋ ์์์ด์ ํ๋ฉด๊ธฐํ์ ๋ถ์กฑํ ๋ถ๋ถ์ ์ฑ์ธ ์์ .
์ ์์
์ง๊ฐ์ ์กฐ๊ธ ์ฐ๋ค๋๊ฒ ๋ฐ๋ก ์ ๋ค์ด๋ฒ๋ ธ์. ์ค๋ ์ ํธ์ ํ๋ฉด๊ธฐํ์ ๋ถ์กฑํ ๋ถ๋ถ์ ์ฑ์ธ ์์
๊น์ฌํ
์ด์ CS์คํฐ๋์์ ๋งํฌ๋ ๋ฆฌ์คํธ์๋ํด ๊ณต๋ถํ๊ณ ์ ๋
์ ๋จน๊ณ ์ ๋ค์์. ์ค๋ ํ์ง์ดํ๊ณผ ๋น ์ง ํผ์ณ๋ฆฌ์คํธ๋ฅผ ์ฑ์ธ ์์ .
์ ํ์ง
์ง์ณ์ ์ ๋ค์์. ์ค๋ ์ฌํ์ด์ ๋น ์ง ํผ์ณ๋ฆฌ์คํธ๋ฅผ ์ฑ์ธ ์์ ์ด๊ณ OAuth๋ฅผ ์งฌ์งฌ์ด ๊ณ์ํด์ ๊ณต๋ถํ ๊ฒ. eslint์ prettier ์ค์ ์ ์ ์, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋์ํด์ ํจ๊ปํ๊ธฐ๋ก ํจ.
์ ์์
์ฃผ๋ง์ ์๋ฐ๋ฅผ ํ๋๋ผ ๊ทธ๋ํํ์ ๊ณต๋ถ๋ฅผ ๋ชปํ์ต๋๋ค...
์ฌ์ด๋ ํ๋ก์ ํธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณค๋๋ฐ ํ๋ก์ ํธ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ๋ชธ์ ๋๋. ๋ด๊ฐ ์ง ์ฝ๋๋ฅผ ๋๋ฃ๊ฐ ๊ณ ์ณค๋๋ฐ ๋ค์ ๋ด๊ฐ ๊ณ ์น ์ํฉ์ด ์์ ๋ ์ฝ๋๊ฐ ์๊ทธ๋ ๊ฒ ๋๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋๋ผ. ์ด๋ฐ ์ํฉ์ ๋ฐฉ์งํ๋ฉด์ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐํจ.
๋จ์ ํธ
์ด๋ฒ์ฃผ๋ง์ ํน ์ฌ์์. ํ ์์ผ์ ๋ฆ์ ์๋ค๊ฐ ์นดํ์ ๋๊ฐ์ ๊น rebase์ ๋ํด์ ๊ณต๋ถํ์.
๊ทธ๋ฆฌ๊ณ ์ทจ๋ฏธ์ํ์ ์ฆ๊น. ์ผ์์ผ์๋ ํ์๋ฅผ ๋ง์น๊ณ ์ ์ฅ์ ์ฌ๋ฌ๊ฐ์. ์ท์ ์ฌ๊ณ ์ ๋
์ ๋จน์์. ์ด๋ฒ ์ฃผ๋ง์ ๋ค๊ฐ์ค๋ ์ด๋ฒ ์ฃผ๋ฅผ ์ํด ํ๋ณตํ๋ ์๊ฐ์ ๋ณด๋์.
๊น์ฌํ
ํ ์์ผ์ ๊ฐ๊ธฐ๋ชธ์ด์ ๊ฑธ๋ ค ํน ํด์์ ์ทจํจ. ์ผ์์ผ์๋ ๊ฐ๊ตฌ ์กฐ๋ฆฝ๊ณผ ์ด์ฟ์ง์ ์ ๋ฆฌ๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ ๋๋จธ์ง ์๊ฐ์๋ ๋ฆฌ์กํธ์๋ํด์ ๊ณต๋ถํจ. ์ด๋ฒ ์ฃผ๋ถํฐ๋ ๊ฑด๊ฐ๊ด๋ฆฌ์๋ ์ ๊ฒฝ์จ์ ํ๋ก์ ํธ์ ์ฐจ์ง์ด ์๋๋ก ํด์ผ๊ฒ ์
์ ํ์ง ๊ฐ๊ธฐ๋ชธ์ด๋ก์ธํ ๊ฒฐ์
์ ์์
OAuth๊ณต๋ถ๋ฅผ ๋ค์ ์์ํด์ผํ ๊ฒ ๊ฐ๋ค. ์์ง OAuth์ ๋ํ backlog๋ฅผ ์์ฑํ์ง ๋ชปํ ๊ฒ์ด ๋ง์์ ๊ฑธ๋ฆฐ๋ค. ํ์ง๋ง ์กฐ๊ธํดํ์ง์๊ณ ํ ์ผ์ ์ฐจ๊ทผ์ฐจ๊ทผ ํด์ผ๊ฒ ๋ค.
๋จ์ ํธ
์ด์ ๋ฐค์๋ ํฝ์ด๋ฒ์ฏ์ ์ ๋จน๊ณ ์ค๋ ์์นจ๋ ๋จน๊ณ ์๋ค. ๋์ ์ ์ ์์ ๋จน์์(๋์ ๋์ฐฉ!). ์ด์ ๋ฐค ์ง์์ CI ์ค์ ์ ํ๋ ค ํ์ผ๋, ๋ ๋ด๊ธธ๋ก ์์ด eslint prettier ์ค์ ๋ง ๊ณต๋ถํ๋ค ์ค๋ค.
๊น์ฌํ
์ด์ ๋ฐ์ฐฌ๊ฑฐ๋ฆฌ๋ฅผ ์ฌ๋ ค๊ณ ํ๋๋ฐ ์ ์ก์ ์ด ๋ค ๋ฌธ์ ๋ซ์์. ๊ทธ๋์ ์ค๋์ ๊ณ๋์ฅ์ ์ค๋นํจ. ํ๋ก์ ํธ์ ์ฐ์ผ ๊ธฐ์ ์คํ๋ค ์ข ๋ ๊ณต๋ถ ์ค์ด๊ณ ์์ง ์ข ๋ ํด์ผํ ๊ฒ ๊ฐ์. ๋นจ๋ฆฌ ๊ฐ์ธ์ผ์ ๋ง๋ฌด๋ฆฌ ์ง๊ณ ํ๋ก์ ํธ์ ์ง์คํ๊ณ ์ถ์. ํ์๋ค์๊ฒ ๋ฏธ์ํจ.
์ ํ์ง
์ฃผ๋ง์ ๊ฑธ๋ฆฐ ๊ฐ๊ธฐ์ ์ฌํ๋ก ์ด์ ๋ ๋ถ์ฐธํจ. ํ๋ฃจ ํน ์ฌ๋ฉด์ ์์ํ์์. ํ์๋ค์๊ฒ ๋ฏธ์ํ๋ค. ์์ผ๋ก ๋ ๋ฏธ์ํ ์์ ์ด๋ค. ํ์๋ค์ด ๋ฐฐ์ฆ๊ณผ ์ฌ๊ณผ์ฆ์ ์ฃผ์ด์ ๊ฐ๋ ๋จน์๋ค.
์์ง ๋ชธ ์ํ๊ฐ ์ ์์ ์ด์ง ์์ง๋ง ์ค๋ ๋ ์ด์ฌํ ํด์ ํ์๋ค์๊ฒ ๋ฏผํ ๋ผ์น์ง ์์ ๊ฒ์ด๋ค.
์ค๋์ ๋ชป ๋คํ OAuth ๊ณต๋ถ์ ๊ฐ๋ฐํ๊ฒฝ์ธํ ์ ๋ํด ํ์๋ค๊ณผ ๋ ผ์ํ ์์ ์ด๋ค.
์ ์์ ์ด์ OAuth์ Redirection URL์ ๋ํ ๋ด์ฉ์ ๊ณต๋ถํ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ง์ ๊ฐ์ Side Project ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณค๋ค. ์กฐ๋ง๊ฐ ๋ฐฐํฌ๋ฅผ ํ ์ ์์ ๊ฑฐ ๊ฐ๋ค.
์ค๋์ react๋ฅผ ๊ณต๋ถํ๋ฉด์ component๋ฅผ ๊ฐ๋ฐ ํ ๊ฒ์ด๋ค.
๋จ์ ํธ ๋ชฉ๊ฐ๊ธฐ ๊ฑธ๋ ธ๋ค. ๊ฐ๊ธฐ๋ ์ญ์ ๋๊ณ ๋๋ ๊ฒ ๊ฐ๋ค. ์ด์ ๋ styled component ๊ณต๋ถ๋ฅผ ํ์๊ณ , ์ด์ ๋ค ๋ง๋ฌด๋ฆฌ ๋ชปํด์ ์ค์ ์ค์ ๋ ํ ๊ฒ์ด๋ค. ์คํ์๋ ์ค์ ์ ์ธํ ํ styled component๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ๋ฐ์ ๋ค์ด๊ฐ ๊ฒ์ด๋ค. ์์์ง ๋ง๋ ๋ณถ์์ ์๋ํ์ผ๋, ์ฌ๋ฃ๊ฐ ๋ถ์กฑํ์ฌ ์ถฉ๋ถํ ๋ง์ ์ด๋์ด๋ด์ง ๋ชปํ์๋ค. ๊ธ์ผ์ ๊ณ ์ถ์ฅ๊ณผ ์ผ์ฐน๊ณผ ๋ฌผ์ฟ์ ์ฌ์ ์์ค๋ฅผ ์ ์ํด๋ณผ ๊ฒ์ด๋ค.
๊น์ฌํ ์ด์ ์ํ๊ฐ ๋ค์ด๊ฐ ์ผ๋ณธ์ ๊ณ๋๋ง์ด๋ฅผ ์๋ํ์ผ๋ ๋ง์์ ๋ค์ง์์. ๊ทธ๋์ ์ถํ ์ฌ๋์ ์์ . ์ด์ git flow์ ๋ฆฌํ๊ณ , ์ด๊ฒ์ ๋ฐํ์ผ๋ก wiki์ ์ ๋ฆฌํ๊ฒ ์. ๊ทธ๋ฆฌ๊ณ ๋ฆฌ์กํธ ๊ณต๋ถํด์ ์ค๋ ํ ๋น๋ฐ์ ์ปดํฌ๋ํธ ์ ์ํ๊ฒ ์ต๋๋ค.
p.s. : ์ค๋ ๋งฅ๋ถ ์๋ฆฌ๋๋ฉด ์ธ์ถํจ. ์ ๋ฐ ์๋ฆฌ ๋ค ๋์ผ๋ฉด...:pray:
์ ํ์ง ์ด์ ๋ณด๋ค ๋ชธ์ด ๋ง์ด ๋์์ก๋ค. ๋ํต์ด ์ฌ๋ผ์ ธ์ ๊ฐ๋ฐ์๋ ์ง์ฅ์ ์ฃผ์ง ์์ ๊ฑฐ ๊ฐ์ ๋คํ์ด๋ค.
์ค์ ์๋ ์ด์ ๊น๋ฐํ๊ณ ๋น ํธ๋ฆฐ Graphql ๊ด๋ จ ์ค์ ๋ค์ boilerplate์ ์ ์ฉํ ๊ฒ์ด๊ณ , ์คํ์๋ ์ด์ ํ ๋น๋ฐ์ Component ๊ฐ๋ฐ ๋ฐ Travis๋ฅผ ํตํด ์๋๋ฐฐํฌ ์ค์ ์ ์๋ฃํ ๊ฒ์ด๋ค.
์ ์์
๋ฐค์ ๊ฐ๋ฐํ๋ ๊ฟ์ ๊พธ์์ต๋๋ค. ๋๋์ด ์ง์ ํ ๊ฐ๋ฐ์๊ฐ ๋ ๊ฑฐ ๊ฐ์ ๋งค์ฐ ๊ธฐ์ฉ๋๋ค...
์ค๋์ ์ด์ ๋ฏธ์ฒ ๋ค ๋ชปํ backlog ๊ฐ๋ฐ์ ํ ๊ฒ์ด๊ณ , ๊ฐ๋ฐ ์๋ฃ ํ git-flow์ ๋ํด ๊ณต๋ถํ ์์ ์ ๋๋ค.
๋จ์ ํธ
์ด์ ๋ฐค์ ์์ธ์ง ์ผ์ฑ๋ณถ์์ ๋ง๋ค์๋๋ฐ ์ํ ์์ง์ ์๋ชปํด์ ๋ญํจ๋ฅผ ๋ดค๋ค. ์ํ ์์ง์ด ์ค์ํจ์ ๋๊ผ๋ค.
์ด์ ์ ์ ๋ ผ์๊ฐ ์์๋ git-flow์ merge ์ ๋ต์ ๋ํด ๋ค์๊ธ ๊ณต๋ถํ์๊ณ , ํ์๋ค๊ณผ ๊ณต์ ํ ์์ ์ด๋ค.
ํ ๋น๋ฐ์ backlog๋ฅผ ์ค๋ ๋ง์ ์ํํ ์์ ์ด๋ค.
๊น์ฌํ
์ด์ ํด๊ทผ ์ดํ ํน ์ฌ์์ต๋๋ค.
์ด์ ์ฝ์ดํ์์ ์ด์ฌํ ๊ณต๋ถํ React์ Hook API๋ค์ ์ด์ฉํด ์ฃผ์ด์ง backlog์ ๊ฐ๋ฐํ ๊ฒ์ด๊ณ , git-flow์ ๋ํด ์ ๋ฆฌํ ๊ฒ์ ํ์๋ค์๊ฒ ๊ณต์ ํ ์์ ์ด๋ค.
์ ํ์ง
์ด์ ์ฝ ๋จน๊ณ ํน ์ค์ต๋๋ค. ์์ง๊น์ง ์ปจ๋์
์ด 100% ํ๋ณต๋์ง ์์ ๊ฑฐ ๊ฐ์ต๋๋ค. ๊ธ์ฃผ๊น์ง ํ๋ณต์ ์ ๋
ํ ๊ฒ์
๋๋ค.
์ด์ ์ฒ์์ผ๋ก ๊ฐ๋ฐ์ ์์ํ์๋๋ฐ, ์ด๋ป๊ฒ ํจ์จ์ ์ผ๋ก ์งค ๊ฒ์ธ๊ฐ์ ๋ํด ๊ณ ๋ฏผํ๋ค๊ฐ ๋ ์ง์ฒด๋๋ ๋๋์ด๋ค. ์ผ๋จ์ ๊ตฌํ๋ถํฐ ํ๋๋ก ํด์ผ๊ฒ ๋ค.
๋ค๋ฅธ ํ์๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ ๋น๋ฐ์ backlog๋ฅผ ์ํํ ์์ ์ด๋ค.
์ ์์
ํ ์์ผ์ ๊ฒฐํผ์์ ๋ค๋
์ค๊ณ ๊ทธ ๋ด์ ํน ์ฌ์๋ค. ์ด์ ๋ 15์๊ฐ ์ด์์ ์๋ฉด์ ํ๊ณ graphql getting started์ DB์ค๊ณ์ ๋ํ ์๊ฐ์ ํ๋ค.
์ปจ๋์
์ด ๋ง์ด ํ๋ณต๋ ๊ฒ ๊ฐ์์ ์ด๋ฒ์ฃผ๋ ํ๊ธฐ์ฐจ๊ฒ ํ ์ ์์๋ฏ!! (์ด ๊ธ์ ์ฑ์ง๊ฐ ๋๋ค.) ํ์ง๋ง ๋์๋ฝ์ ์ธ์ค์ง ๋ชปํ๋ค...์ฃผ๋ฅต...
๋จ์ ํธ
ํ ์์ผ์ ์ผ์ฑ ์ญ๋ํ
์คํธ๋ฅผ ์น๋ฌ ๊ฐ๋๋ฐ, ์ฐฝ์์ง์์ ์ผ์ด ์๊ฒจ์ ์ํ ๋ชป์น๊ณ ๋์ด. ๋ฐ๋ก ๋ฒ์ค ํ๊ณ ์ฐฝ์ ๊ฐ๋ค๊ฐ. ์ผ์์ผ ๋ฐค์ ์ฌ๋ผ์๋ค. ๊ทธ๋์ ๋ฉด์ ์ค๋น๋ฅผ ๋ชปํ๋คใ
ใ
๋๋ฌด ์ฌํ๋คใ
ใ
๊น์ฌํ
(์ฐฝ์์์ ์ฌ๋ผ์ค๋ ์ค)
์ ํ์ง
์ฃผ๋ง์๋ ๋ถ์กฑํ๋ git์ ๋ํด ๊ณต๋ถ๋ฅผ ํ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๊ณํ DB๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Seqeulize cli๋ฅผ ์ด์ฉํด migration ํ์ผ๊ณผ model ๋ค์ ์์ฑํ์๋ค.
์ค๋์ ์ฃผ๋ง๋์ ๋ค๋ฅธ ํ์๋ค์ด ์ฃผ์๋ DB ์ค๊ณ์ ๋ํ ํผ๋๋ฐฑ์ ๋ฐ์ํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋๋จธ์ง model๋ค์ ๊ตฌ์ฑํ ์์ ์ด๋ค.
์ ์์
์ด์ ์ง์๊ฐ์ ๊ณต๋ถ๋ฅผ ํ๋ คํ๋๋ฐ ๋๋ฌด ํผ๊ณคํด์ ํ์ง ๋ชปํ๋ค. ์ ๋ง ์ํ๊น๋ค. ์ค๋ ์ฝ์ดํ์์ ์ง์คํด์ ํ ์ผ์ ๋ชจ๋ ํ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ์จ์ผ ๋ธ๋ผ์ฐ์ ํ์ฅ์ฑ์ด ์ถ์๋์๋ค! ๋๋ฌด ๊ธฐ๋ปค๋ค! ์ด๋ง์ ๊ฐ๋ฐ์๋ฅผ ํ๋๊ตฌ๋ ์๊ฐํ๋ค. ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ์์ฑํด์ ๋ฐฐํฌ๋๋ฉด ์ข๊ฒ ๋ค.
๋จ์ ํธ
์ก์ ์ด ๊นจ์ง๋ ๊ฟ์ ๊ฟจ๋ค. ๋ง์์ด ์ํ ๋ค. ์ค๋ฆฌ์ฝ ์ผ์ด์ค์ ์ ๋ฆฌ์ก์ ํ๋ฆ์ ๋ถ์๋๋ฐ ์ ๊นจ์ก์๊น? ๋ฉด์ ์ค๋น๋ฅผ ํ๊ณ ์๋๋ฐ ๋ด์ฉ ํ๋ํ๋๊ฐ ๊น์ด์ ์ด๋ป๊ฒ ๊ณต๋ถํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ด์ ๋ฉํ์ด ํ๋ค๋ค. ์ค๋๊ณผ ๋ด์ผ์ ๋ฉด์ ์ค๋น๋ฅผ ๋ณํํด์ ํ๋๋ก ํ๊ฒ ๋ค.
๊น์ฌํ
์ด์ ์ง์ ๊ฐ์ ํด์์ ์ทจํ๋ค. ์ค๋ ์์นจ์ ์ค๋ฉด์ ๋ชฉ์ ์ด์ง ์๋ํ๋ค. ๋ ์ฌํด์ ธ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ์ ๊ฒฝ์จ์ผ๊ฒ ๋ค. ์ค๋์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐํ์ผ๋ก ๊ธฐ์กด๋ด์ฉ์ ์์ ํ๊ณ ์ด์ด์ ์ปดํฌ๋ํธ ๊ฐ๋ฐ์ ํ ์์ ์ด๋ค.
์ ํ์ง
์ด์ ๋ ์ํ๋ผ์ด์ฆ ์ธํ
๋ง๋ฌด๋ฆฌ๋ฅผ ํ๋ค. ์ง์ ๊ฐ์๋ ํผ๊ณคํด์ ๋ฐ๋ก ์ค๋ค. ์ปจ๋์
์กฐ์ ์ด ์๋นํ ์ด๋ ต๋ค. ์์ง๊น์ง๋ ๊ฐ๊ธฐ์ด๋ค. ์ค๋์ ์ผ๋จ ๋ฐ๋ชจ ์๋๋ฆฌ์ค๋ฅผ ์์ฑํ๊ณ ์ด๊ฒ์ ๋ฐํ์ผ๋ก ํ ๋น๋ ๋ฐฑ๋ก๊ทธ๋ฅผ ๊ฐ๋ฐํ ์์ ์ด๋ค.
์ ์์
์ ๋ ์ด์ ํดํ์ ์ ์ํ๋ค๊ฐ ํ๊ฐ ๋ฌ์ต๋๋ค. ํ์ง๋ง ์ ๋ ํด๋์ต๋๋ค. ์ ๊ฐ div ๋ ๊ฐ๋ฅผ ์ฌ์ฉํด์ ๋ชจ์์ ์์๊ฒ ์์ฑํ์ฃ . ๊ทธ๋ฐ๋ฐ ํดํ๋ง๋ค ํ์ดํ์ ์์น๋ฅผ ์กฐ์ ํด์ค์ผํ๋ ์ด์๊ฐ ์์ต๋๋ค. ํดํ์ ์ ๋ง ์ฌ์ฉํ๋ ๊ด์ฐฎ๊ฒ ์ฃ ...? ํํซ.. ๊ณตํต ๋ชจ๋๋ก ํ ์ ์๋๋ก ๋
ธ๋ ฅํ๊ฒ ์ต๋๋ค. ์ค๋์ ๊ฒ์ ๊ธฐ๋ฅ์ ์์ฑํ๊ณ ์๋ฆผ๊ธฐ๋ฅ์ ์์ํ ๊ฒ ์
๋๋ค!
๋จ์ ํธ
์ ๋ ์ด์ JS ์ฌํ ๋ฌธ๋ฒ๊ณผ ์ด์์ฒด์ ๋ฅผ ํ์ต๋๋ค. ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฃผ๋ก ๊ณต๋ถ๋ฅผ ํ ๋ฌ๋๋ฐ, ์ด์์ฒด์ ๋ณด๊ณ ํ๋ ค๋ค๊ฐ ์ ๋ค์์ต๋๋ค. ๊ทธ๋์ ์ค๋ ๋ฉด์ ์ ์ด์์ฒด์ ์์ฃผ๋ก ์ค๋นํ๋ ค ํฉ๋๋ค. ๊ฒฝํ์ด๋ผ ์๊ฐํ๋ ค ํฉ๋๋ค. ๊ธฐ๋ํ๋ฉด ์ค๋ง์ด ํฌ๊ธฐ ๋๋ฌธ์ ์ฆ๊ธฐ๊ณ ์ค๊ฒ ์ต๋๋ค.
๊น์ฌํ
์ด๋ฒ์ ์ง์๊ฐ์ ์ฌ์์ต๋๋ค. ์ค๋ ๊ณต๋ถ๋ฅผ ์ด์ฌํ ํ๋ ค๊ณ ํฉ๋๋ค. ์ด์ ๋ง๋ค๋ ์ปดํฌ๋ํธ ๊ณ์ ๋ง๋ค์ด์ ํ๋ฆฌํ์คํธ ๋ ๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค. ์ ์ ์๋ฆฌ์ ๋ํ ์ด์ ์ด ์๊ณ ์์ต๋๋ค. ์๋ฆฌ์ ์ด์ ์ ๋ค์ ์ฝ๋๋ก ์ฎ๊ฒจ์ค๋๋ก ํ๊ฒ ์ต๋๋ค.
์ ํ์ง
์ด์ ์ ์์์จ๊ฐ ๋ง๋ ๋ชจ๋ฌ์ ๊ณตํต ๋ชจ๋๋ก ๋๋์์ต๋๋ค. ํ์ง๋ง ๊ทธ๋ฌ๋๋ผ ์ ํผ์ณ๋ ๋ง์ด ๋ชปํ์ต๋๋ค. ๊ทธ๋์ ์ด์ ์ง์๊ฐ์ ๋ ํ๋ ค๊ณ ํ์ง๋ง ์ฝ๊ธฐ์ด์ ๋ฐ๋ก ์ค์ต๋๋ค. ์ค๋์ ์ด์ ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ ๋น๋ฐ์ ๋ฐฑ๋ก๊ทธ๋ฅผ ์ด์ฌํ ์ํํ ๊ฒ์ด๊ณ ์๋น๊ตฐ ์ฐ๊ธฐ ์ ์ฒญ์ ํด์ผํฉ๋๋ค.
์ ์์
์ด์ ๊ทธ๋ํํ์์ ์ข์ ํ๊ณ ์ง์๊ฐ์ ๋ฐฑ์ ์ ๊ณ ํ๋ก ํธ์ ๋งค์งํ๋ค. ๊ทธ๋์ ๋ค๋น๊ฒ์ด์
UI๋ฅผ ์์ฑํ๋ค. ์ค๋์ ๋ง์์ ๋ค์ก๊ณ ๋ค์ ๊ทธ๋ํํ์์ ํด์ ๋ฐฑ๊น์ง ํ๊ณ ๋ค๋น๊ฒ์ด์
์ ์์ ํ ์์ฑํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
๋จ์ ํธ
์ด์ ๋ฉด์ ์ ๋ดค๋ค. ๋ฐฑ์๋๋ฅผ ์ง์ํ์ง ๋ชจ๋ฅด๊ณ ํ๋ก ํธ์ ๋งค์งํ๊ณ ์๋ค๊ณ ํ๋ค. ์ง๋ฌธ์ด ๋๋ฌด ๋ง์์ ํ๋ค์์ง๋ง, ์ด๋ ค์ด ์ง๋ฌธ์ ์์๋ค. ๋ค์ ๋ฉด์ ์ ์ด ๋ฉด์ ์ ํ ๋๋ก ์ค๋น๋ฅผ ์ ํ ์ ์์ ๊ฒ ๊ฐ๋ค. ์ค๋์ ๊ทธ๋์ ๋ชปํ๋ ๊ฐ๋ฐ์ ๋ชฐ์์ ํ ์์ ์ด๋ค. ๊ฒ์๋ฌผ ํ์ด์ง๋ ์์ฑํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ณ ์๋ค.
๊น์ฌํ
์ด์ ๋ฐค์ ์ผ์ฑ๊ณฑ์ฐฝ์ ๋จน์๋ค. ๋๋ฌด ๋ง์์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐค์ ๋
ผ์ํ๋ GraphQL์ ๋ํด ์์๋ณด๊ธฐ์ํด GraphQL๊ณผ Apollo-client์ ๋ํด์ ํ์ตํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฆฌ์กํธ๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ํ์ตํ๊ณ ์ธ์คํ๊ทธ๋จ์ CSS๋ฅผ ๋ถ์ํ์ฌ FollowButton ์ปดํฌ๋ํธ๋ฅผ ์ ์ํ๋ค. ์ธ์คํ๊ทธ๋จ์์ width์ height์ ์ฃผ์ง์๊ณ flex๋ก๋ง layout์ ๊ตฌ์ฑํ๊ฒ ์ธ์์ ์ด์๋ค. ์ค๋์ ๊ฐ์ธํ์ด์ง ๊ฐ๋ฐ์ ํ ์์ ์ด๋ค.
์ ํ์ง
์ด์ GraphQL์ ๋ํ ์๊ตฌ์ฌ์ ํ๊ณ ํด๊ทผํ์๋ค. ๊ณผ์ฐ ํ๋ก์ ํธ์ ์ ์ฉํ๋ ๊ฒ์ด ์๊ฐ์ ์ธ ์ธก๋ฉด์์ ๊ฐ๋ฅํ ๊ฐ์ ๋ํ ์๊ตฌ์ฌ์ด์๋ค. ํ์ง๋ง ๊ณต์๋ฌธ์๋ฅผ ๋ณด๊ณ ์ฒ์ฒํ ์๊ฐํด๋ณด๋ ์ถฉ๋ถํ ๊ฐ๋ฅํ๋ค๋ ๊ฒฐ๋ก ์ ์ด๋ฅด๋ ๊ณ ํ์ ์๊ฐ์ ์ด๋ฅผ ์ดํํ ์๊ฐ์ด๋ค.
์ค๋์ ๋ฉ์ธํ์ด์ง์ ๋ฐฑ๋ก๊ทธ ์ค ๋ฐฑ์๋ ๋ถ๋ถ์ ์ ์ธํ ํ๋ก ํธ์๋ ๋ถ๋ถ์ ์งํํ ์์ ์ด๋ค.
์ ์์
์ด์ ๊ฒ์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ๋ฅผ ์๋ฃํ๋ค. graphql์ ์ฒ์ ํ๋ ๊ฒ์ด๋ผ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ํ๊ธฐ ์ํด ์๊ฐ์ ๋ ํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค. ์ค๋์ ์๋ฆผ์ ๋ํ ๊ฐ๋ฐ์ ํด์ผํ๋ค. ์ฃผ๋ง์๋ ๋ฆฌํฉํ ๋ง์ ํ๊ณ ์๋ก์ด ๊ฒ์๋ฌผ ํ์ด์ง๋ฅผ ๋ง๋ค ๊ฒ์ด๋ค. ์ค๋์ ๋๋ฌด ํผ๊ณคํ์ง๋ง 7์๊น์ง ๋ฒ๋ํ๊ณ ์ง๊ฐ์ ์ผ์ฐ ์ฌ์ด์ผ๊ฒ ๋ค.
๋จ์ ํธ
์๋ฅ ํฉ๊ฒฉ๋ฅ ์ด ์๊ฐ๋ณด๋ค ๋๋ค. ๊ฐ๋ฐ๊ณผ ๋ฉด์ ์ค๋น๋ฅผ ๋ณํํด์ผํ ๊ฒ ๊ฐ๋ค. ์ด์ ๋ฐค์๋ ๊ฐ๋ง์ ์น๊ตฌ๋ค์ ๋ง๋ ์์ฃผ๋ฅผ ์ฆ๊ฒผ๋ค. ์์นจ์ ๋ผ์ง๊น์น์ฐ์ ์ฌ๊ณ ์ถ์๋๋ฐ, ์ํ์์ ๋ฏธํธ๋ณผ์ ์๋ค. ์ฃผ๋ง์ค์๋ ๋๋ ๊ฒฐํผ์ ํผ๋ก์ฐ์ด ์์ด ๋ถ์ฐ์ ๋ด๋ ค๊ฐ๋ค. ์ผ์ดํฐ์์ค์์ CS ๊ณต๋ถ๋ ๊ฐ๋ฐ์ ํด์ผํ ๊ฒ ๊ฐ๋ค.
๊น์ฌํ
์ค๋ ์ ์ฌ์ ๊ณ๋์ฅ์ด๋ค. ์ด์ ๋ ๋ฆฌ์กํธ Context API ๊ณต๋ถ๋ฅผ ํ์ต๋๋ค. ์ปดํฌ๋ํธ๋ ๋ง๋ค๋ ค๊ณ ํ๋๋ฐ, ์ ๋ค์์ต๋๋ค. ์ค๋ ์ฃผ๋ณ๋์น๋ฅผ ๋ณด๋ฉด์ ๊ฐ๋ฐ์ ์๊ทผ์ฌ์ฉ ํ๊ฒ ์ต๋๋ค. ์ด๋ฒ ์ฃผ ์ฃผ๋ง์ ๋๋์ด ๋ค๋ฅธ ์ผ ์๋ ์จ์ ํ ์ฃผ๋ง์
๋๋ค. ๊ธฐ์ ๋ถ์ฑ๋ฅผ ๊ฐ๋ ์๊ฐ์ ๊ฐ์ง๋๋ก ํ๊ฒ ์ต๋๋ค.
์ ํ์ง
์ด์ ๋ฉ์ธํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์์ํ์๊ณ , ์ ์ฒด์ ์ธ ๋ ์ด์์ ๊ตฌ์ฑ์ ์๋ฃํ์ต๋๋ค. ์์ง ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ ํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ค๋์ ํ์ง ๋ชปํ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ๋ง๋ฌด๋ฆฌ ํ ์์ ์
๋๋ค.
์ด์ ์ปดํฌ๋ํธ ๋ง์ดํธ ์ดํ ํน์ ์์ ์ ์ํํ๊ณ ์ถ์๋๋ฐ ๋ป๋๋ก ๋์ง ์์ ๊ณ ๋ฏผ์ด ์์๋๋ฐ, ๊ฒ์์ ํด๋ณด๋ useEffect๋ผ๋ hooks api๋ฅผ ์ฌ์ฉํ๋ฉด ํด๊ฒฐ๋ ๊ฑฐ ๊ฐ์ ์ด๋ฅผ ์ ์ฉํด๋ณผ ์์ ์ ๋๋ค.
๊น์ฌํ
ํ ์์ผ์ ๋จธ๋ฆฌ๋ฅผํ๊ณ ๋ฆฌ์กํธ api์ฐ๋ํ๋ ๋ฒ๊ณผ ๋ฆฌ์กํธ ๋ผ์ฐํฐ๋ฅผ ๊ณต๋ถํ๋ค. ์ผ์์ผ์๋ ppt๋ฅผ ์ ์ํ๊ณ ์ด์ ์ ๋ง๋ค๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์๋ค. ์ค๋์ ๊ทธ๋ํํ์์ ๊ณต๋ถํ๊ณ ๊ฐ์ธํ์ด์ง์ ๊ฒ์ ๊ฒฐ๊ณผํ์ด์ง๋ฅผ ๋ง๋ค ์์ ์ด๋ค.
๋จ์ ํธ
ํ ์์ผ์ ์์นจ๋ถํฐ ๋๋์ ๊ฒฐํผ์ ํผ๋ก์ฐ ๋๋ฌธ์ ๋ถ์ฐ์ ๋๋ ค๊ฐ๋ค๊ฐ ๋ฐค ๋ฆ๊ฒ ๋์ฐฉํ๋ค. ๊ธฐ์ฐจ์์ ์ฝ๋ฉ์ ํ๋ ค ํ์ง๋ง, ๊ฑฐ์ ๋ชปํ๋ค. ์ผ์์ผ์๋ ์ฌ์์น๊ตฌ์ 100์ผ์ด๋ผ ๊ณต๋ถ ์ํจ. ์ ์ฌ ์์๋ฐฑ ๋จน๊ณ , ์ปคํ๋ง ๋ง์ท๋ค. ๋น๊ฐ ์์ ๋ฐฑํ์ ๋์๋ค๋๊ฐ ๊ฒจ์ธ ์๊ตญ๋ณด๊ณ ์์ ๊ฐ์ ๋ฉ์ดํํ๋ค. ๊ธ์ผ ์ฝ๋ฉ ํ
์คํธ๊ฐ 2๊ฐ ์์ง๋ง ๋ํํ
๋ ์ฝ๊ธฐ ๋๋ฌธ์ ์ ํ ๊ฑฑ์ ์ด ๋์ง ์๋๋ค. ์ค๋์ ์์ธ ํ์ด์ง API๋ฅผ ๋ค ๋ง๋ค๊ธฐ ์ ์๋ ์ ๋ค์ง ์๊ฒ ๋ค.
์ ํ์ง
์ฃผ๋ง์ DB ์๋ฒ ๊ตฌ์ถํ๊ณ ์ปจ๋์
์กฐ์ ํ์๋ค.
์ค๋์ ๋ฉ์ธ ํ์ด์ง API๋ฅผ ์๋ฃํ ์์ ์ด๊ณ , ์ด๋ฅผ ํด๋ผ์ด์ธํธ์ ์ฐ๋ํด์ ๋ฉ์ธํ์ด์ง๋ฅผ ๋ชจ๋ ์์ฑํ ์์ ์ด๋ค.
์ ์์
์์ ์ ์ฑ์ฐฌ๋์ด useEffect ์์ fetch๋ฅผ ํจ์๋ก ๋ง๋ค์ด์ ์ฐ์ง ๋ง๋ผ๊ณ ํ ์ ์ด ์์ด์ ์ ๊ทธ๋ฐ๊ฐ ๊ถ๊ธํด์ ๊ณต๋ถ๋ฅผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊นจ์ฐ์น ๋ค์์ ๋์ ๊ฒ์ ๊ธฐ๋ฅ์ ๋ฒ๊ทธ๋ฅผ ๊ณ ์น๊ณ ๋ฆฌํฉํ ๋ง์ ํ๋ค. ๋ฆฌํฉํ ๋ง์๋ ์คํจํ๋ค. ์ค๋์ ์๋ฆผ๊ธฐ๋ฅ์ ๋ค ๋ง๋ค๊ณ ๋ฆฌํฉํ ๋ง์ ๋ค์ ์๋ํ๊ฒ ๋ค.
์ค๋ ๋ฐ์ฐฌ์ ์์์๋ ๋ฏธ๋๊ฒ ๋ฐ์ฐฌ์ ๋๋ค. ์ด์ GraphQL๊ณต๋ถ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ค. ์ค๋ ๊ฐ์ธํ์ด์ง ์ ์์ ๋ค์ด๊ฐ ์์ ์ ๋๋ค. ์๋ฆฌ๋ ๋ดํฌ ๋ ํ ์์ ์ ๋๋ค.
์ค๋ ์งํ์ฒ ์ ํ๋๋ฐ 2ํธ์ ์์ ๋คํํ ์๋ฆฌ์ ์์๋ค!! ๊ทธ๋์ ์ ์ ์๋ ค๊ณ ํ๋๋ฐ ๋ฅ..์๋ ๋ฐฐ๊ฐ ๋๋ฌด ์ํ์ ์ ์ ์ ๋ชป์ค๋ค. ์ด์ ๋ ๋๊ธ ๋ฌ๊ธฐ๋ฅผ ์์ฑํ๋ค. ์ค๋์ ๋ต๊ธ=๋๋๊ธ ๊ธฐ๋ฅ์ ๋ชจ๋ ๋ง๋ค ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ข์์ ๋ฒํผ์ ํ์ฑํ์ํฌ ๊ฒ์ด๋ค. ๋ง์ฝ ์๊ฐ์ด ์๋ค๋ฉด ์คํผ๋๊น์ง ์ถ๊ฐํ ๊ฒ์ด๋ค. ์ฃํด ์ค์ ๊ฑ๋ ์ฝ๋ค.
์ด์ GraphQL์ ์ฌ์ฉํด์ ๊ฒ์๋ฌผ ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ API๋ ์์ฑํ์๊ณ , ์ด๋ฅผ Front์ ์ฐ๋ํ๋ ๊ฒ๊น์ง๋ ์๋ฃํ๋ค. ํ์ง๋ง ์ฌ๋ฌ ๋ฒ๊ทธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๊ณ ์น ์์ ์ด๊ณ , ์ด๊ฒ์ด ์๋ฃ๋๋ฉด ๋ฉ์ธํ์ด์ง์ ๊ด๋ จ๋ API๋ฅผ ์์ฑํ์ฌ ๋ฉ์ธํ์ด์ง๋ฅผ ๋ง๋ฌด๋ฆฌํ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ์ด ๋จ์ผ๋ฉด ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ์์ํ ์์ ์ด๋ค.
๋๋ ์ค๋ ์งํ์ฒ 2ํธ์ ์์ ์๋ฆฌ์ ์์๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋์ ๋ฐ์ง ์์์ ๋ค๋ฆฌ๊ฐ ํ๋ค๊ฑฐ๋ฆฌ์ง ์๋๋ค. ํคํค ๋ค๋ฆฌ์ ํ์ ์๊ปด์ ์ฝ๋ฉ์ ํด์ผ๊ฒ ๋ค! ์ด์ ๋ ์๋ฆผ๊ธฐ๋ฅ์ ์์ฑํ์๋ค. ์๋ก์ด ์๋ฆผ ํ์ ๊ธฐ๋ฅ์ ์ถํ์ ๋ค๋ฅธํ์ด์ง๋ฅผ ๋๋ด๊ณ ํด์ผํ ๊ฒ ๊ฐ๋ค. ์ค๋์ ์๋ก์ด ๊ฒ์๋ฌผ ํ์ด์ง๋ฅผ ๋ง๋ค ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ ๋ฆฌํฉํ ๋ง์ ์ธ์ ํ์ง...? ๊ธ์์ผ ์ ์๋ ํ ๊ฒ์ด๋ ๊ฑฑ์ ๋ง๊ธธ^^
์ด์ ๊ฐ์ธํ์ด์ง๋ฅผ ๋๋ด๊ณ ์ถ์์ง๋ง, ํ๋ก ํธ ๋ถ๋ถ๋ง ๊ตฌํ๋์ฑ ํ๋ฃจ๊ฐ ๊ฐ๋ฒ๋ ธ์ต๋๋ค. ์ค๋ ์์ฒญ ๋ค ์ฒ๋ฆฌํ๊ณ ๊ฒ์๊ฒฐ๊ณผํ์ด์ง ๊ฐ๊ฒ ์ต๋๋ค.
์ด์ useFetch ํจ์๋ฅผ ๋ฆฌํฉํ ๋ง ํ๊ณ ๋๊ธ ๋ ๋ณด๊ธฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ท๊ฐํ์ฌ ๋ฉด์ ์ค๋น๋ฅผ ํ๋ค. ์ค๋ ๋ฉด์ ์ ์์ฑ backend์ธ๋ฐ, AWS ์ง๋ฌด์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ ๊ธฐ๋๋ ํ์ง ์๊ณ ์๋ค. ๋ฉด์ ๊ฒฝํ ์คํ ํ๋ ์๊ณ ์ค๊ฒ ๋ค.
์ด์ ๋ฉ์ธํ์ด์ง ๊ธฐ๋ฅ์ ๋ค ์์ฑํ๋ค๊ณ ์๊ฐํ์ง๋ง ์ง์์ ํ ์คํธ๋ฅผ ํ๋๋ฐ ๋ฒ๊ทธ๊ฐ ํฐ์ก๋ค. ์ด๋ฅผ ๊ธํ ์์ ํ๊ณ PR๋ฅผ ๋ ๋ฆด ์์ ์ด๋ค. ๋ฒ๊ทธ๋ฅผ ๋ค ์์ ํ๊ณ ๋๋ฉด, ๋ก๊ทธ์ธ/ํ์๊ฐ์ ๊ธฐ๋ฅ์ ๋ง๋ค์ด์ ๋ด์ผ ๋ฐ๋ชจ์ ์ฌ์ฉํ ์ ์๋๋ก ํ ์์ ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฅํ๋ฉด ๋ฐ๋ชจ์ฉ ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค ์์ ์ด๋ค.
์ด์ graphql๋ก ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ ํ๋ ๊ฒ์ ์๋ํ๋ค. ํ์ง๋ง ์คํจํ๋ค. graphql์ apollo์์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ ํ ์ ์๋๋ณด๋ค..... ๋ฐฉ๊ธ ํ์๋ฅผ ํ๋๋ฐ ๊ฒฐ๋ก ์ ์ผ๋จ api๋ก ๊ทธ๋ฅ ์ ๋ก๋ ํ๊ธฐ๋ก ํ๋ค. ํํซ. ์ค๋์ ์๋ก์ด ๊ฒ์๋ฌผ ํ์ด์ง๋ฅผ ์์ฑํ๊ฒ ๋ค!
์ด์ ์ค๋๋ง์ ์๋ฆฌ๋ฅผ ํ๋ค. ์๋ ์์กฐ์ ์ ์คํจํด์ ๊ณ ๊ธฐ 4์ธ๋ถ์ ๋๊ฒ ์ฌ์๋๋ ๊ณ ๊ธฐ๋ฅผ ๋ค ๊ตฝ๊ณ , ๋ผ์ง๊ณ ๊ธฐ 1kg ์ฌ๋๊ฒ ์ฝ๊ฐ ๋ง์ด ๊ฐ๋ ค๊ณ ํด์ ๋ค ๊ตฌ์ ๋ค. ์์งํ ์ด๊ฒ๋ค ์๋ง๋ค์์ผ๋ฉด ์์ฒญ ๋ค ์์ฑํ์ํ ๋ฐ... ๊ทธ๋๋ ์ด์ฌํ ๋ง์ ํ๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ์๊ฐ๊ณผ ๊ตฌ์ฑ์ด ๋ค๋ฅธ ๊ฒ์ ๋ฐ๊ฒฌํ๊ณ ๋น ๋ฅด๊ฒ ์ ๋ค์๋ค. ์ค๋ ์์นจ์ ํ ์ด๋ธ์ ์กฐ์ธํด์ ๊ธฐ๋ฅ์ ๋ง์ ๊ตฌํํด์ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ ๋ ธ๋ค.
์ด์ ๋ฐค์ ์์์ง ์ผ์ฑ ๋ณถ์์ ๋ง๋ค์๋ค. ์์ค๋ ์๋ฒฝํ๊ณ ์ํ์ ๋น์จ๋ ์ ์ ํ๋ค. ํ์ง๋ง. ์ ํต๊ธฐํ์ด ์ง๋์์ด์ ๋ค ๋ฒ๋ ธ๋ค. ๋ชน์ ํ๊ฐ ๋ฌ์ง๋ง, ์ง์ ์ ํ๊ณ ์ํ๋ฅผ ์ด์ด ์ฐ์ด ๊ณ๋๋ง์ด๋ฅผ ๋ง๋ค์๋ค. ๊ทธ๋ฐ๋ฐ, ๋ฉํ์ ๋๊ณ ์๋ฆฌ๋ฅผ ํด์ ๊ทธ๋ฐ์ง. ๊ฐ์ ํ๋ ๊ฒ์ ๊น๋นกํ๋ค. ์ค๋์ ํ์ง์ดํ์ด ๋ง๋ ํ์ด์ง๋ฅผ ์์ธ ํ์ด์ง์ ํฉ์น ๊ฒ์ด๋ค.
์ด์ ๋ฉ์ธํ์ด์ง๋ฅผ ์์ฑํ๊ณ ์ง์ ๋์๊ฐ์ ๊ฐ๊ธฐ์ฝ ๋จน๊ณ ์ผ์ฐ ์ค์ต๋๋ค. ์๋ ๋ฐ๋ชจ์ฉ ๋๋ฏธ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ ์์ ์ด์์ง๋ง ์ฝ ๊ธฐ์ด์ผ๋ก ์ธํด ๋ฒํฐ์ง ๋ชปํ๊ณ ์ค์ต๋๋ค.
์ค๋์ ๋ฉ์ธํ์ด์ง์ ๋ฌดํ ์คํฌ๋กค๋ง์ ๊ตฌํํ์ฌ ํ์ด์ง๋ค์ด์ ์ด ๋๋๋ก ํ ์์ ์ ๋๋ค.
์ด์ ์ง์ ๋์ฐฉํ์๋ง์ ์ ์ด๋ค์๋ค. ์๊ณ ์ผ์ด๋์ ๋ชปํ๊ณ ๊ฐ ํฌ๋กญํ ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์ ๋ณด๋ด๋ ์์ ์ ํ๋ค. ์ฐ์ฌ๊ณก์ ๋์ ์์ ์ ์๋ฃํ๊ณ ๋๋ฌผ์ด ๋ ๋ปํ๋ค. ๋๋ฌด ๊ธฐ๋ปค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ ๋ณธ๋ฌธ ๋ด์ฉ๊ณผ ์ ์ ๋ฅผ ํจ๊ป ๋ด์์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ ์๋ฃํ๋ค. ์ ๊ฒ์๋ฌผ ํ์ด์ง์ ๊ณ ๋ฏผ์ ํด์ํ๊ทธ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ๋ถํด์ ํ ์ด๋ธ์ ๋ด์์ง์ธ๋ฐ ์ด๊ฒ์ ์ฃผ๋ง์ ๊ณ ๋ฏผํ๊ณ ์ค๋์ ๊ฒ์๊ธฐ๋ฅ์ ์๋ณผ ๊ฒ์ด๋ค.
์ฃผ๋ง์ ์ง๋ ํ์ผ์ ๋ชป์ฌ์๋ ์ ์ ๋ง์ด ์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง๋ค์๋ ์ปจํ ์ด๋์ ๋ฐ์ํ๋ ๋ฒ๊ทธ๋ฅผ ์กฐ๊ธ ๊ณ ์ณค๋ค. ์ค๋์ ๊ธฐ์กด ํ์ด์ง ๋ฏธ์์ฑ๋ ๋ถ๋ถ ์์ฑํ๊ณ ๋ฒ๊ทธ๋ฅผ ์์ ํด์ผ๊ฒ ๋ค. ์ถ๊ฐ์ ์ผ๋ก ๊ฒ์๊ฒฐ๊ณผ ํ์ด์ง ์ ์ํ๊ณ ํ๋ก ํธ ๋ฐฑ์๋ ๊ธฐ์ ์ ๋ถ๋ถ์ ์ ํธ์ ํ์ด์ค์ ๋ง์ถฐ์ ํจ๊ป ๊ณต๋ถํด์ ์ ์ฉํ๋๋ก ํ๊ฒ ๋ค.
์ฃผ๋ง์ ๋๋ ๊ฒฐํผ์์ ๊ฐ๋ค ์๋ค. ๊ทธ๋ฆฌ๊ณ ์์ผ์ด๋ผ์ ๋์๋ค. ์ผ์์ผ์ ์ํด๋ก๋ฅผ ์ ๋ฐ์ ์ผ๋ก ๊ณต๋ถํ์์ผ๋ ์ด๋ ๋คํ ์๋์ด ์๋ค. ์ผ๋จ ์๋ฒ์ ์ํด๋ก๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ํ์ฌ ๊ตฌ์กฐ์์๋ ์ฝ๊ฐ ๋ค์ ํ๋ค๋ฏํ๋ค. ๋ผ๋๊ฒ ๋์ ๊ฒฐ๋ก ์ด๋ค. ์ค๋์ ์์ธํ์ด์ง์ ๊ธฐ๋ฅ์ ๋ค ๋ถ์ด๊ณ ์ํด๋ก ํด๋ผ์ด์ธํธ๋ฅผ ํ๋ณผ ์๊ฐ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฒ์ฃผ๋ ๋ง์ฝ ๋๋ค๋ฉด ์๋ผ์คํฑ ์์น์ ํน์ ๋ฉํ ๋ฆฌ์ผ ์ ์์ด๋ฅผ ๊ณต๋ถํ๊ณ ์ถ์ง๋ง ๋ ์ค ํ๋๋ ํฌ๊ธฐํ ๊ฐ๋ฅ์ฑ์ด ์๋นํ ๋๋ค.
์ฃผ๋ง์ ๋ฉ์ธํ์ด์ง์ ๋ฌดํ ์คํฌ๋กค๋ง์ ๊ตฌํํ์๊ณ , docker ์ค์ ๋ฐ nginx ์ค์ ์ ์์ ํ์ฌ pull request๋ฅผ ๋ ๋ ธ๋ค. ๋ฌดํ ์คํฌ๋กค๋ง์ ๊ตฌํํ๋ฉด์ ๋ช ๊ฐ์ง ์ด์๊ฐ ์์๊ณ , ๊ทธ ๋ถ๋ถ์ ๋ํด์ ์ค๋ ํ์๋ค๊ณผ ์๋ ผํ ์์ ์ด๋ค.
ํ์ง๋ง ์ ์ผ ์ค์ํ๋ OAuth ๊ณต๋ถ๋ฅผ ํ๋๋ ์ ํ๋ค. ๋ชปํ ๋งํผ ์ค๋ ์ด์ฌํ ๊ณต๋ถ๋ฅผ ํด์ ํผ์ณ๋ฆฌ์คํธ๋ฅผ ๋ค ๋ฝ์์ผ๊ฒ ๋ค. ์๋ฌด๋ฆฌ ๋ฆ์ด๋ ๋ด์ผ๊น์ง๋ ๋ฝ์์ผ ๋์ง ์์๊น ์ถ๋ค.
์ฃผ๋ง์ ๊ฒ์์ ๋ํ ๋ถ๋ถ ๋ฆฌํฉํ ๋ง์ ์งํํ๋ค. ๋ฆฌํฉํ ๋ง์ ๋ง์น ํ ์ฑ๋ฅ ๊ฐ์ ์ ํ๋ ค๊ณ ํ์ผ๋ ์๊ฐ์ด ๋ถ์กฑํ๋ค. ์๋ํ๋ฉด ๋ฆฌํฉํ ๋ง์ ํ ๊ฒ์ด ๋๋ฌด ๋ง์๋ค. ๊ทธ๋๋ ์ด์ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด ์๋ค๊ณ ๋์จ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฒ์ฃผ์๋ ๋๋จธ์ง ๋ง๋ค์๋ ๋ถ๋ถ์ ํ๋์ฉ ๋ฆฌํฉํ ๋ง ํ ๊ฒ์ด๋ ๊ธฐ๋ค๋ ค ์ฃผ๊ธธ ๋ฐ๋๋ค. ๋ฆฌํฉํ ๋ง์ 7์ ์ดํ์ ํ๊ณ 7์๊น์ง๋ OAuth๋ฅผ ํด์ผํ๋ค. ๊ทธ๋์ OAuth grant type์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๋ค.
๋ ๋ง์ด์ผ~ ์ด์ ์ง๊ฐ๋๊ธธ์~ ๋ถ์ด๋นต์ด๋ ํ์ฝ์ผํค๋จน์์ด~~ ๊ทผ๋ฐ ๋ถ์ด๋นต์ ๋ณ๋ก์์.. ํ์ฝ์ผํค๋ ๋ง์์ด! ์ด์ ๋ RFC6749์ node-oauth2-server์ token handler ์คํฐ๋! ์ค๋์ oauth ๊ตฌํ์ ์์ํด๋ณด๊ฒ ๋ค. ํ์ดํ !!
์ฃ์ธ ๋จ์ ํธ ์ค๋๋ ๊น์น์ฐ๊ฐ์ ๋๋ค. ๋จธ๋ฆฌ ๋ฐ๊ฒ ์ต๋๋ค. ์ด์ ๋ ์ํด๋ก ๊ณต๋ถ์ ์ฌ์ธํ๋ค. ๊ทธ๋ฐ๋ฐ, ํ ๊ฒ ๋๋ฌด ๋ง๋ค. quering & mutation & pagination ๊น์ง๋ ํ์ ์ ํ๋๋ฐ, Local state management ๋ ์์ด ๋๋ฌด ๋ง๊ณ ๋์ด๋๊ฐ ์์ด์ ์ผ๋จ ๋ณด๋ฅํ๋ค. ์ค๋์ useFetch ๋ก ๋ง๋ ๋ชจ๋ ๋ถ๋ถ์ Apollo ํ ์ผ๋ก ๋ฐ๊ฟ ๊ฒ์ด๋ค. ์ฌ๊ฑด์ด ๋๋ค๋ฉด ํ์๊ฐ์ / ๋ก๊ทธ์ธ ์์์ ํด์ผ๊ฒ ๋ค.
์ด์ ๋ 11์๊น์ง ๋จ์์ ๊ฐ๋ฐ์คํ์ ์ฌ์ฉํ๋ ์ด์ ์ ๊ฐ ์๋ฆฌ์ ๋ํด์ ๊ณต๋ถํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ง์๊ฐ์๋ ์ค๋์ ์ปจ๋์ ์์ํด ๋น ๋ฅธ์ทจ์นจ ์ค์ํ์ต๋๋ค. ์ค๋์ ๊ฐ์ฅ๋ผ์ง๋ถ๊ณ ๊ธฐ๋ฅผ ์ฑ๊ฒจ์์ต๋๋ค. ์ ์ฌ๋จน๊ณ ์ถ๋ค!
์ด์ ๋ RFC 6749์ node-oauth2-server ๋ชจ๋์ ๋ถ์ํ๊ณ , ์ด๋ฅผ ์ฐธ๊ณ ํ์ฌ OAuth์ feature list๋ฅผ ๋ฝ์๋ค. ์ข ๋ ์์ธํ ๋ถ์ํด์ feature list๋ฅผ ๋ณด์ถฉํ๊ณ , ์ค๋๋ถํฐ OAuth ๊ตฌํ์ ์ ์์๋๊ณผ ํจ๊ป ์์ํ ์์ ์ด๋ค.
๋๋ ์ค๋ ์์นจ์ ์ค๊ณ ์ถ์ง ์์๋ค. ํ์ง๋ง ์์ฒญ๋ ์์ง๋ก ๋์ฐฉํ๋ค. ์ด์ ๋ ํด๋ผ์ด์ธํธ ๋ ์ง์คํธ๋ ์ด์
์๋ํด ๊ฐ๋ฐ์ ํ๋ค. ํ
์คํธ ์ฝ๋๋ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ์ด์ฌํ ํ ๊ฒ์ ์ฒ์์ด์๋ค. ๋๋ ์ง์ ํ ๊ฐ๋ฐ์๊ฐ ๋๋๊ฑธ๊น...? ์ค๋์ ๊ทธ๋ํธํ์
์ ๋ํด ๊ฐ๋ฐ์ ํ ๊ฒ์ด๋ค. ๊ทผ๋ฐ ํ์ง๋์ด ํธ๋ค๋ฌ๊น์ง ํด์ผํ๋ค๊ณ ํ๋ค... ํผ๊ณคํ๋ค... ํ์ดํ
...
(์ค๋ ์ค...)
์ด์ ์ํด๋ก ํด๋ผ์ด์ธํธ๋ฅผ ๊ณต๋ถํ๊ณ ํ๋ก์ ํธ์ ์ ์ฉํ๋ คํ์์ผ๋, ์ฝ์ง์์ ๋ค์ ๊ณต๋ถ ์ค์ด๋ค. ์ง์ ๊ฐ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํด์ ๊ณต๋ถํ๋ค. ํธ์ด์คํ , ํ๋ก๋ฏธ์ค, ํด๋ก์ , ์ด์ฑํฌ/์ด์จ์ ๋ฑ ์ฌ๋ฐ๋ ์๊ฐ์ด์๋ค. ์ค๋์ ๋ฌธ์ ์กฐ๊ธ ์ฝ๋ค๊ฐ ์ต๋ํ ๊ธฐ๋ฅ๊ตฌํ์ ์ง์คํ ์์ ์ด๋ฉฐ ์ผ๊ณฑ์ ์ดํ์๋ ๋ฐํ์ฐ์ต์ ํ ๊ฒ์ด๋ค.
์ด์ ๋ RFC 6749์ ๋์์๋ Error Response์ ๋ํ Error ํด๋์ค๋ค์ ์์ฑํ์๋ค. ์ด์ ์์๋์ด ์์ฑํ ํด๋ผ์ด์ธํธ ๋ฑ๋ก๋ถ๋ถ๊ณผ ์ค๋ ๊ฐ๋ฐํ Token ์์ฑ ๊ธฐ๋ฅ์ ์๋ฃํ๋ฉด ๋ฐ๋ก Grant type ๊ฐ๋ฐ์ ๋์ ํ ์์ ์ด๊ณ , Grant type ๊ฐ๋ฐ์ด ์ผ์ฐ ๋๋๋ฉด ๋ฐ๋ก ํธ๋ค๋ฌ ๋ถ๋ถ์ ๊ฐ๋ฐํ ๊ฒ์ด๋ค.
์ปจ๋์ ์กฐ์ ์ ์ํด ์ฌ์๋ค. ์ด์ ํ๋ณต์ด ๋ ๋ฏ ํ๋ ํ์ ๋ด์ด ์ํด๋ก์ ๋์ ํ๊ฒ ๋ค!!! ์๋ก์ด ๊ฒ์๋ฌผ ํ์ด์ง๋ฅผ ๊ฐ์ ํ๊ณ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ผํ๋ค. ์์นจ์ ์๋ก์ด ๋ฐ์ฐฌ๊ฐ๊ฒ์์ ๊ณ๋๋ง์ด๋ฅผ ์๋๋ฐ ๋ค๋ฅธ๋ฐ๋ณด๋ค ์ฒ์๋น์๋ค..... ๋ง์๊ธธ ๊ธฐ๋ํ๋ค.
reactivirtualized๋ฅผ ๊ณต๋ถํ์์ผ๋, ๋ฌดํ ์คํฌ๋กค๊ณผ ๋๊ธฐํ์ ํฐ ๋ฌธ์ ๊ฐ ์๋ค. ์ผ๋จ์ ๋ฐฐ์ ํ๊ณ ๋ฌดํ ์คํฌ๋กค ์ต์ ํ์ ์ง์คํ ๊ณํ์ด๋ค. ์ด์ ๋๋์ด ๋ฐ์ฐฌ๊ฐ๊ณ์์ ๋ฐ์ฐฌ์ ์ฃผ๋ฌธํ๋ค. ํ์ฌ ์ ์ก ํ ํฉ์ ๊ฐ์ ธ์๋๋ฐ, ๋์๊ฐ ๋ฒ์์น ์๋ค. ์ค๋์ ๋ฌดํ ๊ธฐ๋ฅ ๊ฐ์ ๊ณผ ๋ค๋ฅธ ํ์ด์ง์ ์ํด๋ก ๋์ ์ ๊ณํ์ค์ด๋ค.
(๋ฉด์ ์ค)
์์ ์ปจ๋์ ์ด ์ข์ง ์์ ์ฌ๋ฌ๋ชจ๋ก ๊ฐ๋ฐ์ ์ง์ค์ด ์ ๋์ง ์๋๋ค. ๋ค์ ๋ง์์ ๋ค ์ก๊ณ ๊ฐ๋ฐ์ ๋ชฐ์ ํ ์ ์๋๋ก ๋ ธ๋ ฅํด์ผ ํ ๋ฏ...
์ค๋์ OAuth์ Authorization Server ๊ตฌํ์ ์๋ฃํ ์์ ์ด๋ค. ๋นจ๋ฆฌ ์ด ๋ถ๋ถ์ ์๋ฃํ๊ณ SNS ๊ธฐ๋ฅ์ผ๋ก ๋์ด๊ฐ์ ๋๋ฃ๋ค๊ณผ ํจ๊ป ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ ๊ฒ์ด๋ค.
๋ฏธ์ํ๋ค. ์ด์ ๋๋ฌด ํ๊ธฐ์ซ์ด์ ๋ง์ด ๋ชปํ๋ค...ํํ ์ค๋์ ์ด์ฌํ ํ๊ฒ ๋ค. ์ด์ ๋ฐค์ ๋ถ์บ ์ด ๋๋๋ฉด ์คํํธ์ ์์ ์๋ฐํ๊ฒ ๋๋ ์ ์๋ฅผ ๋ฐ์๋ค. ํ์ง๋ง ์ ๋ฌด๊ฐ ์๋ฐ๊ฐ ์๋๋ผ ์ง์์ ๋๋์ด ๋ค์ด์ ํ ๊น๋ง๊น ๊ณ ๋ฏผ์ด ๋๋ค. ์ค๋์ ์๊ฒ์๋ฌผ bug์ ๊ฒ์์ Impvํ ๊ฒ ์ด๋ค.
๋๋ 1์ ๋์งธ์ฃผ์ ํ๋งํ์ดํผ์ ์ถ๊ทผํ๋ค. ๊น์นซ๊ตญ์ ์์ ํด์ผ๊ฒ ๋ค. ์ด์ ๋๋์ด cursor ๊ธฐ๋ฐ ์คํฌ๋กค์ ์์ฑํ๋ค. ์์ง ๋ฒ๊ทธ๊ฐ ์์ง๋ง, ์ฐจ์ฐจ ๊ณ ์น๊ฒ ๋ค. ์ค๋์ ๊ฐ์ธ ์ ๋ณด ํ์ด์ง๋ฅผ ๋ฐ๋์ ๋ค ๋ง๋ค์ด์ผ ํ๋ค. ๋ถ๋ด์ค๋ฝ์ง๋ง ๋ ํ ์ ์๋ค. ์ค๋ ๋ฐ์ฐฌ์ ์ ์ก์ด๋ค.
์ด๋จธ๋๊ป์ ๋ณด๋ด์ฃผ์ ๋ญ ๊ตญ๋ฌผ? ๋จน๋๊ฒ ๋จ์์์๊น์์ ๋ฐฅ์ ๊ฑฐ๊ธฐ์ ์กธ์ฌ ๋ญ์ฃฝ ๋น์ทํ๊ฒํด์ ๊ฐ์ ธ์๋ค. ๊ทธ๋ฐ๋ฐ ๋ฐค ์ฌ์ด์ ํํ๋ถ์ด ๋ญ ๋ก์ด ๋ง๋ค์ด์ก๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ธ๊ฐ์ข ํ ๊ป... ์์น๋ฅผํ๊ณ ์์ํด์ ๊ฐ์ ์๋ณด๊ณ ํ๋๋ ์๋ฌด๋ง์ด ์๋๋ค... ๊ทธ๋ฅ ๋ฐฅ ํผ์ฌ๊ป... ์ด์ ์ง์๊ฐ์ ๊ฒ์๊ฒฐ๊ณผํ์ด์ง ๊ฒฐ๊ณผ ๋์์ค๋ ๊ฒ๊น์ง ํ์ธํ๋ค. ์ค๋ ์ค์ ์ค์ผ๋ก ๊ฒ์๊ฒฐ๊ณผํ์ด์ง๋ฅผ ๋๋ด๊ณ ๋ค์ ํ ์ผ์ ํ๊ฒ ๋ค. ์ค๋ ์ ์ฌ์ ๋ญ๋ก๊ณผ ์ด์ ๋จน๋ ๊ณ ๊ธฐ๋จ์๊ฑฐ๋ค. ๋.
์ด์ ํ์๊ฐ์ ๊ตฌํ์ ํ๋ค๊ฐ ๋ฉํ์ด ๋ฐ์ด๋ฌ๋ค. ์ฟ ํค ๊ด๋ จ ์ด์๊ฐ ์์ด์ ์ด๋ฅผ ๋ค์ ๊ผผ๊ผผํ ์ดํด ํด๊ฒฐํ ์์ ์ด๋ค. ํ์๊ฐ์ ์ด ๋ค ๋๋๋ฉด, ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ์ฌ ํ์๊ฐ์ /๋ก๊ทธ์ธ ํผ์ณ๋ฅผ ๋ง๋ฌด๋ฆฌํ ๊ฒ์ด๋ค.
์ง์์๋ ๋์ฐฉํ์๋ง์ ์ ์ด ๋ค์๋ค. ์ค๋์ ๊ฒ์, ์๋, ์๊ฒ์๋ฌผ ๋ฑ๋ก์ ์กฐ๊ธ์ฉ ์๋ bug๋ฅผ ํด๊ฒฐํ๊ฒ ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ํ์ด์ง๋ฅผ ์๋ณด๋ฉด ํ๋ฃจ๊ฐ ๋ค ๊ฐ ๊ฒ ๊ฐ๋ค. ์ค๋๋ถํฐ ์ผ๊ทผ์ ํด์ผ๋ ๊ฒ ๊ฐ๋ค.
setting ํ์ด์ง์ UI๋ทฐ๋ฅผ ๋๋ถ๋ถ ์์ฑํ์๋ค. ์คํ์๋ setting ํ์ด์ง์ ๊ตฌ์กฐ๋ฅผ ์์๋๊ณผ ํจ๊ป ํ์ด ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์์ฑํ๊ฒ ๋ค. ๋ณธ ์์ ์ด ๋๋๋ฉด UI๋ฅผ ์์ฑํ๊ณ backend ๋ก์ง๊น์ง ๋ถ์ผ ๊ณํ์ด๋ค. ์ฌ์ฌ ํ๋ก์ ํธ ๋ฐ๋ชจ ์ค๋น๋ ๋ณํํด์ผํ ๊ฒ ๊ฐ๋ค. ๋ถ๋ด๊ฐ์ด ์ค๋ฉ์ค๋ฉ ๊ธฐ์ด ๋์ค์ง๋ง ํ๋ฌ๋ง ๋ ๋ฒํ จ ๋ณด์.
์ด์ ๋ ์ง์๊ฐ์ ๋ฐ๋ก ์ฝ๋ฉ์ ํ์ง ๋ชปํ๋ค. ๊ทธ๋งํผ ์ค๋ ์ฝ๋ฉ์ ๋ ๋ง์ดํ๋๋กํ๊ฒ ๋ค. ์ ์ฌ์ ์ง๋ ์ฃผ์ ๋ง๋ค์ด๋ ๊ณ ๊ธฐ๋ฅผ ๊ฐ์ ธ์๋ค. ๋ง์๊ฒ ๋ค.. ๋ฒ์จ ๊ธฐ์ ๋คํธ์ํน๋ฐ์ด๊ฐ ์๋ฐํ๋ค. ๊ธฐ๋ฅ์ ๋นจ๋ฆฌ ๊ตฌํํ๊ณ ๋ฒ๊ทธ๋ ์ก์ ํ์ ๋คํธ์ํน๋ฐ์ด ์ค๋น๋ ํด์ผ๊ฒ ๋ค.
์ด์ ํ์๊ฐ์ /๋ก๊ทธ์ธ ๋ฐฑ์๋ ๋ถ๋ถ์ ๋ง๋ฌด๋ฆฌํ๊ณ , ํ์๊ฐ์ /๋ก๊ทธ์ธ UI๋ถ๋ถ์ ์์ฑํ ์์ ์ด๋ค. ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ์ด ์คํจํ์ ๋ ์๋ฌ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ ์ง ๊ณ ๋ฏผํ๊ณ ์ด๋ฅผ ๋ฐ์ํ ๊ฒ์ด๋ค.์์ ์์ ์ด ๋๋๋ฉด, ๊ฒ์๋ฌผ์ ํด์(์ฌ๋)ํ๊ทธ ๊ธฐ๋ฅ์ ๊ตฌํํ ์์ ์ด๋ค.
๊ธฐ์ ๋คํธ์ํน ๊ด๋ จ ๊ณต์ง๋ฅผ ๋ฃ๊ณ ๋์ ๊ฑฑ์ ๋ฐ, ๊ธฐ๋ ๋ฐ์ด๋ค. ์ต๋ํ ๋ฒ๊ทธ์์ด ๋ง๋ค๊ณ ์ฒ ์ ํ ๋ฐ๋ชจ ์ค๋น๊ฐ ํ์ํ ๋ฏํ๋ค.