
๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ์ฃผ์ฐจ๋ ๋ง์ง๋ง 10์ฃผ๊น์ง Developํ ์๋๋ฆฌ์ค๋ฅผ ์ ํํ๊ณ , ํด๋น ์๋๋ฆฌ์ค์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ํด ์ ๋ฆฌํ๋ ํ ์ฃผ์๋ค.
๊ฐ ์กฐ๋ง๋ค ๊ฐ์ ์๋๋ฆฌ์ค๋ฅผ ์ ์ ํด์ ์งํํ๋ ๊ฒ์ด ๋ ์ข์ ๊ฒ์ด๋ผ๋ ์กฐ์ธ์ ๋ฃ๊ณ , ์ฐ๋ฆฌ ์กฐ๋ ์ ์ผ ๋์ด๋๊ฐ ๋์ ์ฃผ์ ์ธ "์ฝ์ํธ ์์ฝ ์๋น์ค"๋ฅผ ์ ํํ๋ค.
์๋๋ฆฌ์ค
์ฝ์ํธ ์์ฝ ์๋น์ค์์ ์ ์ผ ์ค์ํ๊ฒ ๊ตฌํํด์ผ ํ ๊ธฐ์ ์ ํต์ฌ์ ๋ฐ๋ก "๋๊ธฐ์ด"์ด๋ค.
์๋ฒ์ ํ์ ๋ ์์์ ๊ฐ์ง๊ณ ํธ๋ํฝ์ด ๊ธ์ฆํ์ ๋, ๋์ฒํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ๋๊ธฐ์ด์ ๋ง๋ค์ด์ ์๋ฒ์ ์ฒ๋ฆฌ์จ์ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
- ์๋น์ค๋ฅผ ์ด์ฉํ ํ ํฐ์ ๋ฐ๊ธ๋ฐ๋ API๋ฅผ ์์ฑํฉ๋๋ค.
- ํ ํฐ์ ์ ์ ์ UUID ์ ํด๋น ์ ์ ์ ๋๊ธฐ์ด์ ๊ด๋ฆฌํ ์ ์๋ ์ ๋ณด ( ๋๊ธฐ ์์ or ์์ฌ ์๊ฐ ๋ฑ ) ๋ฅผ ํฌํจํฉ๋๋ค.
- ์ดํ ๋ชจ๋ API ๋ ์ ํ ํฐ์ ์ด์ฉํด ๋๊ธฐ์ด ๊ฒ์ฆ์ ํต๊ณผํด์ผ ์ด์ฉ ๊ฐ๋ฅํฉ๋๋ค.
์์ ๊ฐ์ ๊ตฌํ ์คํ์ด ์ ์๋์ด ์์๊ณ , ์ฐ์ ์ด๋ค ์์ผ๋ก ๊ตฌํํด์ผ ํ ์ง ๊ณ ๋ฏผํด ๋ณด์๋ค.
1. JWT๋ฅผ ๋ฐ๊ธํ์ฌ ํด๋น payload์ ์ ์ ์ ์๋ณ์, ๋๊ธฐ ์์, ์์ฌ ์๊ฐ, ํ์ฑํ ์ฌ๋ถ ๋ฑ์ ์์ฑํ๋ค.
-> ์ด ๊ฒฝ์ฐ์ ๋ง์ฝ ๋๊ธฐ ์์๋, ํ์ฑํ ์ฌ๋ถ๊ฐ ๋ฐ๊พผ๋ค๋ฉด ํ ํฐ ์์ฒด๊ฐ ๋ณํ์ด ๋๊ฑฐ๋ ์๋ก ๋ฐ๊ธ๋ฐ์์ผ ํ๋ค. ๋ํ ์ด ๊ณผ์ ์์ ์ ์ ์ ๋ํ ์ธ์ฆ, ์ธ๊ฐ๊ฐ ์๋ ํด๋น ์ฝ์ํธ ๋๊ธฐ์ด์ ๋ํ ํ ํฐ์ด๋ฏ๋ก ๋๊ธฐ์ด์ ์ํ ๊ฒ์ฆ ๋ชฉ์ ์ด๋ผ๊ณ ์๊ฐ๋์๋ค. ๋ฐ๋ผ์ JWT๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์ด๋ฒ ๊ณผ์ ์ ๋ฐ๋์งํ ๋ฐฉํฅ์ ์๋๋ผ ์๊ฐํ๋ค.
2. ์ฝ์ํธ, ์ ์ ๋ณ UUID๋ฅผ ๋ฐ๊ธํ์ฌ ํด๋น ๊ฐ์ Key๋ก ๊ฐ์ง๋ ์ ์ ๋๊ธฐ์ด ํ ํฐ์ ๋ฐ๊ธํ๋ค.
-> ๊ฒฐ๋ก ์ ์ด ๋ฐฉ๋ฒ์ ์ฑํํ๋ค. ๊ณ ์ UUID๋ฅผ ๋ฐ๊ธํ ์ ์ ๊ฐ ํด๋น ๊ฐ์ ๊ฐ์ง๊ณ ์กฐํ๋ฅผ ํ๋ฉด ๋๊ธฐ์ด์ ๋ํ ๋ถ๊ฐ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์๊ฒ๋ ์ค๊ณํ๋ค. ์ฆ, ํ ํฐ์ key๊ฐ UUID๊ฐ ๋ ๊ฒ์ด๊ณ ๋ถ๊ฐ ์ ๋ณด๋ value๊ฐ ๋๋ ์์ด๋ค.
๋ชฉํ
์ด๋ฒ ๊ณผ์ ์์ ์ ์ถํด์ผ ํ ๊ฒ์ ์๊ตฌ์ฌํญ์ ๋ถ์ํ์ฌ, ์ํ์ค ๋ค์ด์ด๊ทธ๋จ, ER ๋ค์ด์ด๊ทธ๋จ, API ๋ช ์ธ, Mock API, ํจํค์ง ์ค๊ณ๋ฅผ ํ๋ ๊ฒ์ด์๋ค. ERD๋ ๊ทธ๋๋ ์์ฃผ ๊ทธ๋ ค๋ณด์์ง๋ง ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ์ง์ ๊ทธ๋ ค๋ณด๋ ๊ฒ์ ์ฒ์์ด์๋ค. ์ฝ์น๋๋ค๋ ์ค๋ฌด์์ ์ค๊ณ ๊ณผ์ ์ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ๊ฑฐ์ ํ์์ ์ผ๋ก ํ๋ค๋ ์๊ธฐ๋ฅผ ๋ฃ๊ณ ์ด๋ฒ ๊ธฐํ์ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ด ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ๊ทธ๋ฆฌ๋ ๊ฒ์ด ๋ณด๋ ์ฌ๋์ผ๋ก ํ์ฌ๊ธ ์์คํ ํ๋ฆ์ ๋ํด ์ ์ดํดํ ์ ์๋์ง ๊ณต๋ถํ๋ ์๊ฐ์ ๊ฐ์ก๋ค.
์๋ก ์๊ฒ ๋ ๊ฒ
์๊ตฌ์ฌํญ์ ์ ์ํ๋ฉฐ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ์ฒ์ ๊ทธ๋ ค๋ณด์๋ค. ํ์คํ ๋ด๊ฐ ๊ตฌํ์ ํ์๋ก ํ๋ API ๋์์ ๋ํด ์ง๊ด์ ์ผ๋ก ๋ณผ ์ ์์ด ๋์ค์ ์ฝ๋๋ก ๋ง๋ค ๋ ์ ์ฒด ํ๋ฆ์ ๋ํด ์ดํดํ๊ณ ๋ง๋ค ์ ์์ด ์์ฐ์ฑ์ด ์ข์์ง ๊ฒ ๊ฐ์ ์๊ฐ์ด ๋ ๋ค. ๋ฌธ์๊ฐ ์์ฑํ ๋ ๋๋ฌด ๊ท์ฐฎ๊ณ ๋นจ๋ฆฌ ์ฝ๋์น๊ณ ์ถ์ง๋ง, ์ด๋ฐ ๊ฒฝํ๋ค์ ๊ฐ์ง๊ณ ์ค๊ณ ๋ฌธ์ ์์ฑ์ด ์ผ๋ง๋ ํฐ ํ์ด ๋๋ ์ง๋ฅผ ์ง์ ๊นจ๋ซ๊ฒ ๋์์ผ๋ฉด ์ข๊ฒ ๋ค.
์์ผ๋ก ๊ฐ์ ํ ๊ฒ
์ด๋ฒ์ฃผ ์ฝ์น๋์ ํผ๋๋ฐฑ ๊ฒฐ๊ณผ ๋ด ์ค๊ณ์ ๋ฌธ์ ๊ฐ ๋๋ ๋ถ๋ถ์ด ์์๋ค.
1. ์ ์ ์ ๋๊ธฐ์ด์ ๊ฐ๊ฒฐํฉ
๊ธฐ์กด์๋ ๋๊ธฐ์ด ํ ์ด๋ธ์ userId๋ฅผ ํฌํจํด ๋์ด, ํ ํฐ๊ฐ์ ๊ฐ์ง๊ณ ์ด๋ค ์ ์ ์ธ์ง ์ฐพ์๊ฐ๋ ๋ฐฉ์์ ์๊ฐํ์๋ค. ํ์ง๋ง ์ฝ์น๋๊ป์ ์๋์ ๊ฐ์ ํผ๋๋ฐฑ์ ์ฃผ์ จ๋ค.
์ ๋ผ๋ฉด ์ ์ ์ ํ ํฐ์ ๊ฐ๊ฒฐํฉ ์ํค์ง ์์ ๊ฒ ๊ฐ์์. ์๋ฅผ ๋ค๋ฉด, ์ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋๊ธฐ์ด ํ ํฐ์ ๋งคํํ๋ ๊ฑฐ์ฃ . ์ฐ๋ฆฌ๊ฐ ์ํ์์ ๋ฒํธํ๋ฅผ ๋ฝ์ ๋, ์ฐ๋ฆฌ์ ์ ๋ถ์ฆ์ ์ ์ถํ์ง ์๋ฏ์ด, "์๋ฒ์ด ๋ ๋ฒํธํ" ( ์๋ฒ์ด ๋ ์ธ์ ) ๋ก ์ ์ฅ์ํค๊ณ , "์ ๋ถ์ฆ" ( ์ ์ ์ธ์ฆ ์ ๋ณด ) ๋ก ์๋น์ค๋ฅผ ์ด์ฉํ๊ฒ ํ ๊ฒ ๊ฐ์ต๋๋ค.
์์ ์์๋ฅผ ๋ฃ๊ณ ๊น์ ๊นจ๋ฌ์์ ์ป์๋ค. ์ง๊ธ๊น์ง ์๊ฐํ๋ ๊ฑด ๋๊ธฐ์ด์ ํ ํฐ์ ํตํด ์ด๋ค ์ ์ ์๊ฒ ๋ฐ๊ธ๋์๋์ง๋ฅผ ์์๊ฐ๊ฒ ํ๋๋ฐ, ํ ํฐ ์ฑ๊ฒฉ ์ ๊ทธ๋ฐ ์ญํ ๊น์ง ๊ฐ์ง๊ฒ ํ ํ์๊ฐ ์๋ ๊ฒ์ด๋ค. ์ ์ ์ ์ ๋ณด๋ ๋ณ๋์ ์ธ์ฆ(JWT ๊ฐ์)์ผ๋ก ์ฒดํฌ๋ฅผ ํ๋ฉด ๋๋ ๊ฒ์ด๊ณ , ํ ํฐ์ ๋๊ธฐ์ด ๊ทธ ์์ฒด์ ๋ํ ์ ๋ณด๋ง ์๋ฉด ๋๋ ๊ฒ์ด์๋ค. ํด๋น ํผ๋๋ฐฑ์ ๊ฐ์ง๊ณ ๋๊ธฐ์ด ํ ์ด๋ธ์ userId ํ๋๋ฅผ ์ ๊ฑฐํ์ฌ, ์ ์ ์ ๋๊ธฐ์ด์ ๊ฐ๊ฒฐํฉ์ ์ ๊ฑฐํ๋ค.
2. Restfulํ API ์ค๊ณ
์ฌ๊ธฐ์ ๋ง์ ๊ฐ์ ์์ธ์ด ์์๋ค. restfulํ ๊ฒ์ด ๋ฌด์ ์ผ์ง์ ๋ํ ๊น์ ๊ณ ๋ฏผ์ ํด๋ณธ ์ ์ด ์์๋ ๋ด ์ค์๋ค. ๋จ์ํ '๋ฉ์๋๋ง ์ ์งํค๋ฉด ๋๊ฒ ์ง', '๋์ฌ ํํ๋ก๋ง ์์ฑ ์ ํ๋ฉด ๋๊ฒ ์ง' ์๋๋ฐ, ๊ทธ ์ด์ธ์ ์ง์ผ์ผ ๋ ๊ท์น๋ค์ด๋, ์ผ๊ด์ฑ ์๋ ์ค๊ณ๊ฐ ์ด๋ฃจ์ด์ง์ง ์์์๋ค. ํนํ๋ uri์ ํํ๋๋ ์์๋ค์ ๋ํ ํํ๋ฅผ ๋ณต์ํํ๋ก ์์ฑํด์ผ ๋๋ค๋ ๊ฒ์ ๋์ณค๊ณ , ์ด ๋ถ๋ถ์ ๋ํด์ ์ข ๋ ๊ณต๋ถํ๊ณ ์ด๋ป๊ฒ ์์ฑํ ์ง ๋ ๊ณ ๋ฏผํด๋ด์ผ๊ฒ ๋ค.
๋ง์น๋ฉฐ
์ด๋ฒ ์ฃผ๋ ์ฌ์ด๊ฐ๋ ํ ์ฃผ๊ฐ ๋ ๊ฒ์ด๋ ๋ง์ ๋ค์๋๋ฐ, ์คํ๋ ค ์ฝ๋ ๊ตฌํํ๋ 1~2์ฃผ๋ณด๋ค ๋ ์ด๋ ต๊ณ ๊ณ ๋ฏผ์ด ๋ง์๋ ๊ฒ ๊ฐ๋ค. ์ด๋ฒ ์ฃผ ๊ฒฐ๊ณผ๋ ์ข์ง ์์์ง๋ง ํผ๋๋ฐฑ์ ๋ฐ์ํด์ ๋ฌธ์๋ฅผ ์์ ํ๊ณ , ๋ค์ ์ฃผ๋ถํฐ๋ ์ค์ ์์ด ์ ๊ตฌํํด์ผ๊ฒ ๋ค.
'๐ ์ผ์ > ๐ ์ผ์ ์ผ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํญํด ํ๋ฌ์ค ์ต์ข ํ๊ณ (+์ฃผ์ฐจ๋ณ ํ์ต๋ด์ฉ ์ ๋ฆฌ) (1) | 2024.12.15 |
---|---|
Chapter 2๋ฅผ ๋์๋ณด๋ฉฐ - ํญํด ํ๋ฌ์ค ํ๊ณ (5์ฃผ์ฐจ) (2) | 2024.10.25 |
Clean Architecture - ํญํด ํ๋ฌ์ค ํ๊ณ (2์ฃผ์ฐจ) (1) | 2024.10.06 |
TDD, ๋์์ฑ ์ฒ๋ฆฌ - ํญํด ํ๋ฌ์ค ํ๊ณ (1์ฃผ์ฐจ) (3) | 2024.09.29 |
ํญํด ํ๋ฌ์ค ๋ฐฑ์๋ 6๊ธฐ - ํ๊ณ (0์ฃผ์ฐจ) (1) | 2024.09.22 |