๐ ํ๋ก์ ํธ ํ๊ณ
Readhub ์ ์๋์๊ด ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์
ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ๋๋ ์ ์ ์ ๋ฆฌํ๋ฉด์, ๋๋ ๋๊น์ง ์ด๋ป๊ฒ ๋ฐ์ ํ ์ ์์์ง ํ๊ณ ํ๋ ์๊ฐ์ ๊ฐ์ง๋ ค๊ณ ํ๋ค!
๐ ํ๋ก์ ํธ ๋ชฉํ
- ์จ๋ณด์ง ์์๋ ์๋ก์ด ์คํ/๊ธฐ์ ๋ค์ ์ ์ฉํด๋ณด๊ธฐ!
- ์ํํธ์จ์ด ์ค๊ณ, ๊ฐ๋ฐ, ํ ์คํธ๋ ๋ฌผ๋ก ๋ฐฐํฌ๊น์ง ๊ฒฝํํด ๋ณด๊ธฐ!
- ๋ณต์ก๋๊ฐ ์๋ ํ๋ก์ ํธ ๋์ !
๐ง ์งํ ์ํฉ
์ ์
- Spring Security & JWT ๊ธฐ๋ฐ ๋ก๊ทธ์ธ ๊ตฌํ
- ์นด์นด์คํก ์์ ๋ก๊ทธ์ธ ๊ตฌํ → ์นด์นด์ค ๊ณ์ ์ ํตํ ๊ฐํธ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ ๋ฐ ํ์ ์๋ ์์ฑ
- Redis๋ฅผ ํ์ฉํ์ฌ ๋ก๊ทธ์์ ์ ํ ํฐ์ ๋ธ๋๋ฆฌ์คํธ ์ฒ๋ฆฌ ๋ฐ ์ฌ์ฉ ์ค์ด๋ Access Token๊ณผ Refresh Token์ ๋ฌดํจํ
- ์ ์ /๊ด๋ฆฌ์ ๊ถํ ๋ถ๋ฆฌ ๋ฐ ์ธ์ฆ ์ฒ๋ฆฌ
๋์
- ๋์ ๋ฑ๋ก / ์์ / ์ญ์ / ๊ฒ์ ๊ตฌํ
- ์ธ๊ธฐ ๋์ ์กฐํ (์กฐํ์ ๊ธฐ๋ฐ)
- ๋์ ์ํ ๋ณ๊ฒฝ (๋์ถ ๋ถ๊ฐ๋ฅ ๋์ ์ฒ๋ฆฌ)
- ๋์ถํ ๋์์ ๋ด์ฉ ์กฐํ -> ํ์ด์ง๋ณ ์กฐํ
๋์ถ / ๋ฐ๋ฉ
- ๋์ ๋์ถ ๋ฐ ๋ฐ๋ฉ
- ๋์ถ ์ทจ์ / ์ฐ์ฅ ์ ์ฒญ ๊ธฐ๋ฅ
- ๋์ถ ๋์ ํํฉ ๋ฐ ๋ชฉ๋ก ์กฐํ
์์ฝ
- ๋์ ์์ฝ ์ ์ฒญ / ์ทจ์
- ์์ฝ ๋ชฉ๋ก ์กฐํ
๋ฆฌ๋ทฐ
- ๋ฆฌ๋ทฐ ๋ฑ๋ก / ์์ / ์ญ์ / ์์ธ ์กฐํ
- ๋์๋ณ ๋ฆฌ๋ทฐ ๋ชฉ๋ก ์กฐํ
๊ด๋ฆฌ์
- ์ ์ฒด ๊ฐ์ธ ์ ์ ๋ชฉ๋ก ์กฐํ
- ํน์ ์ ์ ์ ๋ณด ์กฐํ ๋ฐ ์ํ ๋ณ๊ฒฝ
- ์ ์ฒด ๋์ถ ์์ฒญ ๋ชฉ๋ก ์กฐํ
- ๋จ์ฒด ์ ์ ์กฐํ ๋ฐ ๊ด๋ฆฌ
๐ ์ํ ์ (Keep)
์ด๋ฒ ํ๋ก์ ํธ์์๋ Spring Security & JWT ๋ก๊ทธ์ธ๋ฟ๋ง ์๋๋ผ ์นด์นด์คํก ์์
๋ก๊ทธ์ธ๋ ํจ๊ป ๋์
ํ๊ณ
JWT ๊ธฐ๋ฐ์ ๋ก๊ทธ์์ ์ฒ๋ฆฌ๋ฅผ ์ํ Redis ์ฐ๋๊น์ง ๊ตฌํํ๋ค. ์นด์นด์คํก ๋ก๊ทธ์ธ์ ๊ตฌํํ๋ฉฐ OAuth2 ์ธ์ฆ์
์ธ์ฆ ์ฝ๋ ๋ฐ๊ธ -> ํ ํฐ ๊ตํ -> ์ฌ์ฉ์ ์กฐํ ํ๋ฆ์ ์ดํดํ๋ฉฐ ํด๋ผ์ด์ธํธ - ์๋ฒ์ ํ๋ฆ์ ์กฐ๊ธ ๋ ์ดํดํ๊ฒ ๋์๋ค.
๊ทธ๋ฆฌ๊ณ JWT ์ธ์ฆ ๋ฐฉ์๊ณผ ํตํฉํ์ฌ ์ ์ง๋ณด์์ ์ข ๋ ์ฉ์ดํ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ๋ ์ํ ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค..!
๋ํ ๋ ๋์ค๋ฅผ ํ์ฉํ์ฌ ๋ก๊ทธ์์์ ๊ตฌํํ๋ฉฐ, JWT๋ ์ํ๋ฅผ ๊ฐ์ง์ง ์์ ์๋ฒ์์ ๋ฌดํจํํ์ง ๋ชปํ๊ณ ์ด ๋ถ๋ถ์
ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๋์ค๋ฅผ ์ฌ์ฉํด ๋ธ๋๋ฆฌ์คํธ ๋ฑ๋ก ๋ฐฉ์์ผ๋ก ๋ฌดํจํํ๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์๊ณ ๊ตฌํํ๋ฉด์ ๋จ์ ์บ์๋ก
์๊ฐํ๋ ๋ ๋์ค๊ฐ ํ ํฐ ์ธ์ ๊ด๋ฆฌ ๊ฐ์ ์ธ์ฆ ๋ณด์์๋ ์ฐ์ด๋ ์ ์ฅ์ ์ญํ ๋ ํ๋ค๋ ๊ฒ์ ์ฒด๊ฐํ๊ฒ ๋์๋ค..!
๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ๋ง๋ฃ ์ฒ๋ฆฌ์ ๋ํ ์ค์์ฑ๊ณผ ์์ธ ์ฒ๋ฆฌ ์๋น์ค ์์ ์ฑ ์ฆ ๋ณด์์ ๋ํ ์ดํด๊ฐ ํ์ธต ์ฌ๋ผ๊ฐ ๊ฒ ๊ฐ๋ค
๋ก๊ทธ์ธ -> ๋ก๊ทธ์์ ์ด ์ ์ฒด์ ํ๋ฆ์ ์ดํดํ๊ณ ํ๋์ ์ธ์ฆ ์์คํ ์ผ๋ก ํตํฉ์ ์ผ๋ก ์ค๊ณํ๊ณ ํ ํฐ ๊ด๋ฆฌ ์ ๋ต์ ๊ณ ๋ฏผํ๋ฉฐ
์ ์ ํ๋ก์ ํธ๋ณด๋ค๋ ์ค์ ์๋น์ค์ ๊ฐ๊น๊ฒ ๊ตฌํํ ๋ฐฐ์ด ๊ฒ ์ธ์ฆ ์์คํ ์ ๋ํ ๊น์ด๋ฅผ ๋ํ๊ณ ๋ง์ด ๋ฐฐ์ด ์ข์ ๊ฒฝํ์ด์๋ค.
๐๋ฌธ์ ์ (Keep)
๊ธฐ์ ์ ์ผ๋ก ๋ง์ ๋ฐฐ์์ด ์์์ง๋ง ์์ฌ์ด ๋ถ๋ถ๋ ๋ช ๊ฐ์ง ์๋ค..!
์ฒซ ๋ฒ์งธ,
์กฐ๊ธ ๋ ์ธ์ฌํ ๊น ์ปค๋ฐ ๊ด๋ฆฌ๋ฅผ ํ์์ผ๋ฉด ํ๋ ๋ถ๋ถ์ด ์์ฝ๋ค.
๊ตฌํ์ ๋น ์ ธ์ ๊ธฐ๋ฅ๋จ์๋ก ์ธ์ธํ๊ฒ ์ปค๋ฐํ๋ ค๊ณ ํ์ง๋ง ํ๋์ ์ปค๋ฐ์ ๋๋ฌด ๋ง์ ๋ณ๊ฒฝ์ฌํญ๊ณผ ๊ตฌํ์ด ๋ด๊ธฐ๊ฒ ๋์๋ค.
ํ ํ๋ก์ ํธ ์์๋ ๋ค๋ฅธ ํ์์ด ๋ณผ ๊ฒ์ด๋๊น ํ๋ฉด์ ์กฐ๊ธ ๋ ์ ๊ฒฝ ์ผ์๋ ๊ฐ์๋ฐ ๊ฐ์ธํ๋ก์ ํธ ๋ค ๋ณด๋ ์ธ์ธํ ์ ๊ฒฝ์ ์ฐ์ง ๋ชปํ ๊ฒ ๊ฐ๋ค.
์ด ๋ฌธ์ ๋ฅผ ๊นจ๋ซ๊ฒ ๋ ์ ์ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๋ณด๋ฉฐ ๋ฉ์์ง์ ๋จ๊ฒจ์ง ๋ถ๋ถ๊ณผ ๋ค๋ฅธ ๋ด์ฉ์ด ํฌํจ๋์ด ์์๊ณ ์ด๋ค ๊ธฐ๋ฅ์ ๋ํด ๋ฌธ์ ๊ฐ ์๊ฒผ์
๋ ์ถ์ ํ๋๋ฐ ํ์ ์ด ํ๋ค์ด ๋ง์ ์๊ฐ์ด ์์๋์๋ค..!
๋ ๋ฒ์งธ,
์๋ก์ด ๊ธฐ๋ฅ ์ ์ฉ๊ณผ ๊ตฌํํ ๊ฒ์ด ๋ง์ ๋น ๋ฅด๊ฒ ํด์ผ์ง!๋ผ๋ ์๊ฐ์ ๋ก๊น ์ด๋ ํ ์คํธ ์ฝ๋ ์์ฑ์ ๋์ค์ ํด์ผ์ง๋ผ๊ณ ์๊ฐํ๋ฉฐ ์ฐ์ ์์์์
๋ฐ๋ฆฌ๊ฒ ๋์๋ค. ํ์ง๋ง ๋น ๋ฅด๊ฒ ๊ตฌํ๋๋ค๋ผ๊ณ ์๊ฐํ์ง๋ง ์๋ฌ๊ฐ ์๊ฒผ์ ๋ ํด๊ฒฐํ๋ฉฐ ๋๋ผ๊ฒ ๋์๋ค.
๋๋ฒ๊น ์ ๋ง์ ์๊ฐ์ด ์์๋์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ ํ์ธํ๋ฉฐ ์ฒดํฌํ๋ค ๋ณด๋ ์คํ๋ ค ๊ฐ๋ฐ ํจ์จ์ฑ์ด ๋จ์ด์ก๋ค๋ ์๊ฐ์ด ๋ง์ด ๋ค์๋ค..!
๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ฅ์ ํ๋์ฉ ๊ตฌํํ๋ฉฐ ํฌ์คํธ๋งจ์ผ๋ก ํ์ธํ๋ฉฐ ๊ตฌํํ์ง๋ง ๊ธฐ๋ฅ๋ค์ด ๋ง์์ง๋ฉด์ ์ด๋ ์๊ฐ ์ด์ ๊ธฐ๋ฅ์ด ๊นจ์ง๊ณ ์์ ํ๋ ๋ถ๋ถ์ด ์๊ธฐ๋ค ๋ณด๋ ํ ์คํธ์ฝ๋๋ ์์ฑํ๋ค๋ฉด ์๋์ผ๋ก ๊ฒ์ฆํ์ฌ ๋์น๋ ๋ถ๋ถ ์์ด ์ข ๋ ๊ผผ๊ผผํ ํ ์คํธ๊ฐ ๋์ง ์์์๊น..!๋ผ๊ณ ์๊ฐํ๋ค.
๊ฐ๋ฐ ํ๊ธฐ๋ก ๊ฐ๋ฉด์ ์ ์ง๋ณด์, ๋ฐฐํฌ ์ ๊ฒ์ฆ, ์์ ์ฑ์ ์ํด ์์ ์ฒ๋ผ ๋ค์ ํ ์คํธ ์ฝ๋ ์์ฑ์ ์ต๊ด ํ์ง ์์ ๊ฒ์ด ์์ฌ์ ๋ค..
โ๏ธ ์๋ํ ๋ถ๋ถ (Try)
- ์์ ๋ด์ฉ์ ์ ๋ฆฌํ๋ฉฐ ๊ธฐ๋ฅ๋ณ๋ก Git์ ์ปค๋ฐํ๋ ์ต๊ด ๋ค์ด๊ธฐ
- ์๋น์ค, ์ปจํธ๋กค๋ฌ์ ๋ก๊ทธ ๋จ๊ธฐ๊ธฐ
- ํ๋์ ๊ธฐ๋ฅ ๊ตฌํ ํ ๋ฐ๋ก๋ฐ๋ก JUnit ํ ์คํธ์ Mock ๊ฐ์ฒด๋ฅผ ํ์ฉํ ์๋น์ค ๋จ์ ํ ์คํธ ์์ฑ
- Artillery์ด๋ Jmeter ํ ์คํธ๋ก ๋ ์์ธํ ํ๊ฒฝ์ค์ ๊ณ ๋ ค
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋ํ ๊ณ ๋ฏผ ํด์๋ ๊ฒ์ฒ๋ผ ๋์น์ง ์๊ธฐ
- ์ง๊ธ์ฒ๋ผ ์ ์ง๋ณด์ ์ฉ์ดํ ์ฝ๋ ์์ฑ์ ์ง์คํ๊ธฐ
๐๏ธ ์์ผ๋ก์ ๊ณํ
- ์๋ฆผ ๊ธฐ๋ฅ ๊ตฌํ (ApplicationEventPublisher -> ๋ ๋์ค์ ์ฅ)
- ๊ฐ์ธ๋ณ ๋ง์ถค ์ถ์ฒ ๋์ ์ ๊ณต
- ์ฐํ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํ
- ํต๊ณ๊ธฐ๋ฅ ๊ตฌํ → ๋์ถ ๊ฑด์/ ์ฐ์ฒด๋์ / ๋์ถ ์ํ๋ณ ๋์ ์กฐํ/ ๊ฐ์ฅ ๋ง์ด ๋์ถ๋ ๋์ ์กฐํ/ ์นดํ ๊ณ ๋ฆฌ๋ณ ์ธ๊ธฐ ๋์ ์กฐํ
- ์ฐ์ฒด๊ธฐ๋ฅ ๊ตฌํ → ๋์ฌ๋ถ๊ฐ ์ทจ์ ์น์ธ/์ฐ์ฒด์ํ ๋ณ๊ฒฝ/์ฐ์ฒด ์๋ ๋ฑ๋ก
- MSA ์๋น์ค ๋ถํ
- AWS ๋ฐฐํฌ
๐ฅ๋ง์ง๋ง์ผ๋ก
์ด๋ฒ ํ๋ก์ ํธ๋ ๋จ์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ ๊ฒ์ด ์๋๋ผ ๋ด๊ฐ ์ ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ ์ด ๊ธฐ์ ์ ์ ํํ๋์ง ๊ผญ ์๋ฉด์
์ ์ฉํ๋ ๊ฒ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ๊ฐ์ฅ ์ค์ํ๊ฒ ์๊ฐํ ๋ชฉํ์๋ค.!
ํ๊ณ ๊ธ์ ์ฐ๋ฉฐ ์ด ํ๋๋ฅผ ์ ์งํ๊ณ ์๋์ง ์ ๊ฒํด ๋ณด๋ฉฐ ์ฒ์์ ๋จ์ํ๊ฒ ์์ํ์ง๋ง ์ ์ ํ์ฅ๋๋ฉด์ ์์ฑ๋์ด ๊ฐ๋ ํ๋ก์ ํธ๋ฅผ
๋ณด๋ฉฐ ๋ง์ด ์ฑ์ฅํ๊ณ ๋ชฉํ๋ฅผ ์ ์งํ๊ณ ์๋ค๋ ์๊ฐ์ด ๋ค์ด ๋ฟ๋ฏํ ๋ง์์ด ๋ค์๋ค!
๋ฌด์กฐ๊ฑด ๊ธฐ๋ฅ์ ๋ง๋ค๊ธฐ๋ณด๋ค๋ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๊ณ ํ๋ฆ์ ํ์ ํ๋ฉฐ ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ง์ง ๋ด ์ฝ๋๋ผ๋ ๋๋๊ณผ ์ฌ๋ฏธ์๋ค๊ณ ์๊ฐํ๋ค!!
์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ ํญ์ ์ ์ง๋ณด์๋ฅผ ์ํด ๋์์์ด ๊ณ ๋ฏผํ๊ณ , ํด๊ฒฐํด ๊ฐ๋ฉฐ ๋ง์ด ์ฑ์ฅํ๋ค๋ ์๊ฐ๋ ๋ค๊ณ ๋ง์ ๊ฒ์ ๋๊ผ๋ค.
์์ผ๋ก ์ ์ฉํด๋ณด๊ณ ์ถ์ ๊ธฐ์ ๋ ๋ง๊ธฐ ๋๋ฌธ์ ์ฒ์์ ์๊ฐํ๋ ํ๋๋ฅผ ์์ง ๋ง๊ณ ์ด์ฌํ ๋์๊ฐ์ผ๊ฒ ๋ค๋ ๋ค์ง์ ํ๊ฒ ํ ์๊ฐ์ด์๋ค.
๋ค์ ํ๊ณ ๊ธ์ ์์ฑํ ๋๋ ์กฐ๊ธ ๋ ์ฑ์ฅํด ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ณธ๋ค..!!