๐จโ๐ฉโ๐งโ๐ฆ ํ์ ์๊ฐ
Newbit์ ์ฌํ ์ด๋ ์๊ณผ ์ง์๊ณผ ๋ค์ํ ๊ฒฝํ์ ๊ฐ์ง IT ์ ๋ฌธ๊ฐ๋ค์ด ์์ ๋กญ๊ฒ ์ํตํ๊ณ ํจ๊ป ์ฑ์ฅํ ์ ์๋๋ก ๋๋ ์ง์ ๋ฉํ ๋ง ์ปค๋ฎค๋ํฐ ํ๋ซํผ์ ๋๋ค. ๋ฉํ ๋ ์์ ์ ์ธ์ฌ์ดํธ๋ฅผ ์นผ๋ผ๊ณผ ์ปคํผ์ฑ(1:1 ์๋ด) ํ์์ผ๋ก ๊ณต์ ํ๊ณ , ๋ฉํฐ(์ผ๋ฐ ์ฌ์ฉ์)๊ฐ ์ด๋ฅผ ๊ตฌ๋งคํ๊ฑฐ๋ ๊ตฌ๋ ํ์ฌ ์ฑ์ฅ์ ํ์ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ค๋ฌด์ ๋ง ๋ฐ์ ๋๋ ์ ์ ๊ฐ๋ฐ์์๊ฒ๋ ์ค์ ๊ฒฝํ์ด ๋ด๊ธด ์กฐ์ธ์ด ๊ฐ์ฅ ํ์ํฉ๋๋ค.
ํ์ง๋ง ๊ทธ๋ฐ ์ ๋ณด๋ ๊ฒ์์ผ๋ก ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
Newbit์ ์ค๋ฌด ๊ฒฝํ์ด ๋ด๊ธด ์ฝํ ์ธ ๋ฅผ ์ฐ๊ฒฐํ๊ณ , ๋ ๋์๊ฐ ์ฌ๋์ ์ฐ๊ฒฐํฉ๋๋ค.
๐โโ๏ธ ๋ฉํฐ์๊ฒ๋
-
์นผ๋ผ/์๋ฆฌ์ฆ์ 1:1 ์ปคํผ์ฑ์ ํตํด ๋ฏฟ์ ์ ์๋ ๋ฉํ ์ ์ค๋ฌด ์ง์์ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค.
-
์ ์ฌ ์ด๊ธฐ์ ์ด๋ ค์์ ๊ฒช๋ ๋ฌธ์ ์์ฑ, ์์ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋๋ก ๋์์ค๋๋ค.
-
๋ค์ํ IT ๊ด๋ จ ์ฃผ์ ๋ฅผ ์์ ๋กญ๊ฒ ์ด์ผ๊ธฐํ ์ ์๋ ์ปค๋ฎค๋ํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๐จโ๐ซ ๋ฉํ ์๊ฒ๋
- ๋ณธ์ธ์ ์ปค๋ฆฌ์ด ๊ฒฝํ์ ์ ๋ฆฌํด ์ฝํ ์ธ ๋ก ๋ง๋ค๊ณ ์์ตํํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ปคํผ์ฑ์ ํตํด ๋ฉํฐ์ ๊น์ด ์๋ ๊ต๋ฅ๋ฅผ ๋๋ ์ ์์ต๋๋ค.
์ด ๋ ํฌ์งํ ๋ฆฌ๋ ํํ BEYOND ๋ถํธ์บ ํ 15๊ธฐ 'LetsGetIt' ํ์ ํ์ต๊ณผ ํ์
์ ์ํ ํ๋ก์ ํธ ํ์ผ์ ๋ด๊ณ ์์ต๋๋ค.
๋ชจ๋ ๋ฌธ์์ ์ฝ๋์ ์์ ๋ ๋ด์ฉ์ ํ์ต ๋ชฉ์ ์ผ๋ก ์ค์ ๋ ๊ฐ์์ ๋ฐ์ดํฐ์ ํ๊ฒฝ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
| ์ด๋ฆ | ์ญํ | GitHub |
|---|---|---|
| ๊น๊ฒฝ๋ฏผ | ๋ฐฑ์๋, ํ๋ก ํธ์๋ ๊ฐ๋ฐ | gyeongmin03 |
| ๊น๊ธฐํ | ๋ฐฑ์๋, ํ๋ก ํธ์๋ ๊ฐ๋ฐ | Kihong12 |
| ๊น์ง์ | ๋ฐฑ์๋, ํ๋ก ํธ์๋ ๊ฐ๋ฐ | kimjy8937 |
| ๊น์ฑ์ | ๋ฐฑ์๋, ํ๋ก ํธ์๋ ๊ฐ๋ฐ | sezeme |
| ๋ฐ์ํ | ๋ฐฑ์๋, ํ๋ก ํธ์๋ ๊ฐ๋ฐ | 64etuor |
| ์ค์ ๊ฒฝ | ๋ฐฑ์๋, ํ๋ก ํธ์๋ ๊ฐ๋ฐ | oyk0510 |
๊ฒ์๊ธ ๋ชฉ๋ก์กฐํ โ ๊ฒ์๊ธ ์์ธ์กฐํ โ ๋๊ธ ์กฐํ โ ๋๊ธ ์์ฑ โ ๋๊ธ ์ญ์
ํ๋ก์ ํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ ์๋ ๋งํฌ์์ ํ์ธํ ์ ์์ต๋๋ค:
- MSA ์ํคํ ์ฒ ๊ตฌ์กฐ๋
- ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ
- ํ์ ์ ๋ณด ๊ด๋ฆฌ
- ๋ฉํ ํ๋กํ ๋ฐ ๊ฒ์
- ์ปคํผ์ฑ ์์ฝ ๋ฐ ๊ด๋ฆฌ
- ๋ฉํ ๋ฑ๊ธ ๋ฐ ๋ฆฌ๋ทฐ ์์คํ
- ์นผ๋ผ ์์ฑ ๋ฐ ์กฐํ
- ์๋ฆฌ์ฆ ๊ด๋ฆฌ
- ์ ๋ฃ ์ฝํ ์ธ ๊ฒฐ์
- ๋ค์ด์๋ชฌ๋(๊ฐ์ํํ) ์ถฉ์
- ์ฝํ ์ธ ๋ฐ ๋ฉํ ๋ง ์๋น์ค ๊ฒฐ์
- ๊ฒฐ์ ๋ด์ญ ๊ด๋ฆฌ
- ๊ฒ์ํ ์ด์
- ๋๊ธ ์์คํ
- ์๋ฆผ ์๋น์ค
Back-End
๐ฆ newbit-gateway/
โโโ src/
โโโ main/
โโโ java/com/newbit/newbitgateway/
โโโ dto/ # API ์๋ต DTO
โโโ error/ # JWT ์๋ฌ ์ฝ๋
โโโ exception/ # ๊ณตํต ์์ธ ํธ๋ค๋ฌ
โโโ filter/ # ์์ฒญ ํํฐ
โโโ jwt/ # JWT ํ ํฐ ๋ฐ๊ธ/๊ฒ์ฆ
๐งโ๐ป newbit-user-service/
โโโ src/
โโโ main/
โโโ java/com/newbit/newbituserservice/
โโโ auth/ # ์ธ์ฆ ๊ธฐ๋ฅ
โโโ client/ # ์ธ๋ถ ํต์ (Feign ๋ฑ)
โโโ common/
โ โโโ config/ # Feign, Swagger, JPA ์ค์
โ โโโ dto/ # ๊ณตํต DTO
โ โโโ exception/ # ์์ธ ์ฒ๋ฆฌ
โโโ security/
โ โโโ config/
โ โโโ filter/
โ โโโ model/ # JWT ํ ํฐ, ํธ๋ค๋ฌ ๋ฑ
โโโ user/
โโโ controller/
โโโ dto/
โโโ entity/
โโโ mapper/
โโโ repository/
โโโ service/
โโโ support/
๐งฉ newbit-feature-service/
โโโ src/
โโโ main/
โโโ java/com/newbit/newbitfeatureservice/
โโโ client/ # Feign ํต์
โโโ coffeechat/ # ์ปคํผ์ฑ
โโโ coffeeletter/ # ์ปคํผ์ฑ ํ๊ธฐ/๋ฉ์์ง
โโโ column/ # ์นผ๋ผ ๋๋ฉ์ธ
โโโ like/ # ์ข์์
โโโ notification/ # ์๋ฆผ
โโโ payment/ # ๊ฒฐ์
โโโ post/ # ๊ฒ์ํ
โโโ product/ # ์ํ ์ ๋ณด
โโโ purchase/ # ๊ฒฐ์ ๋ด์ญ
โโโ report/ # ์ ๊ณ
โโโ s3/ # S3 ํ์ผ ์
๋ก๋
โโโ security/ # ๋ณด์ ์ค์
โโโ settlement/ # ์ ์ฐ ๊ธฐ๋ฅ
โโโ subscription/ # ์๋ฆฌ์ฆ ๊ตฌ๋
Front-End
src/
โโโ api/ # ๊ธฐ๋ฅ๋ณ API ๋ชจ๋ (column.js, user.js ๋ฑ)
โโโ components/ # ๊ณต์ฉ UI ์ปดํฌ๋ํธ
โโโ config/ # Toast UI, ์๋ฆผ ๋ฑ ์ค์ ํ์ผ
โโโ router/ # Vue Router ์ค์
โโโ stores/ # Pinia ์ํ ๊ด๋ฆฌ
โโโ views/ # ๊ธ๋ก๋ฒ ๋ทฐ (AdminPage ๋ฑ)
โโโ App.vue # ๋ฃจํธ ์ปดํฌ๋ํธ
โ
โโโ features/ #
โโโ admin/ # ๊ด๋ฆฌ์ ํ์ด์ง (์น์ธ/๋ฐ๋ ค)
โโโ column/ # ์นผ๋ผ ๋ฑ๋ก/์์ /์์ฒญ/์กฐํ
โโโ series/ # ์๋ฆฌ์ฆ ์์ฑ/์์ /์ญ์
โโโ coffeechat/ # ์ปคํผ์ฑ ์ ์ฒญ ๋ฐ ๊ด๋ฆฌ
โโโ coffeeletter/ # ์ปคํผ์ฑ ํ์ ๋ฉ์์ง/ํผ๋๋ฐฑ
โโโ mypage/ # ๋ง์ดํ์ด์ง (๋ด ์ ๋ณด, ๊ตฌ๋งค๋ด์ญ)
โโโ payment/ # ๊ฒฐ์ ๋ฐ ๋ค์ด์๋ชฌ๋ ์ถฉ์
โโโ notification/ # ์๋ฆผ ๊ธฐ๋ฅ
โโโ post/ # ์์ ๊ฒ์ํ
โโโ product/ # ์ํ ์ ๋ณด
โโโ perk/ # ๋ฉํ ํํ/๋ฑ๊ธ ์์คํ
โโโ profile/ # ํ๋กํ ๋ณด๊ธฐ/์์
โโโ report/ # ์ ๊ณ ๊ธฐ๋ฅ
โโโ user/ # ๋ก๊ทธ์ธ/ํ์๊ฐ์
, ์ ์ ๊ด๋ฆฌ
| ์ด๋ฆ | COMMENT |
|---|---|
| ๊น๊ฒฝ๋ฏผ | ์ด๋ฒ ํ๋ก์ ํธ๋ ๋จ์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋์ด, Spring ๊ธฐ๋ฐ์ MSA ๊ตฌ์กฐ, JWT ์ธ์ฆ, ๊ทธ๋ฆฌ๊ณ Vue.js ํ๋ก ํธ์๋๊น์ง ์ ์ฒด ์์คํ ์ ์์ฐ๋ฅด๋ ์์ ์ด์๋ค. ๋๋ ์ ์ ๋๋ฉ์ธ์ ๋ฐฑ์๋ ๊ตฌํ์ ํ๊ณ , ํ๋ก ํธ์๋ ์ญ์ ์ ์ ๊ด๋ จ ๊ธฐ๋ฅ์ ๋งก์ ํ์๊ฐ์ , ๋ก๊ทธ์ธ, ๋ก๊ทธ์์ ๋ฑ ํ์์ ๊ธฐ๋ณธ์ ์ธ ๋ก์ง์ ๊ตฌํํ๋ค. ๊ฐ์ฅ ์ด๋ ค์ ๋ ๋ถ๋ถ์ ๋จ์ฐ Spring Security์๋ค. ์ฒ์์๋ ๋จ์ํ JWT ๊ธฐ๋ฐ ์ธ์ฆ๋ง ๊ตฌํํ๋ฉด ๋๊ฒ ์ง๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ค์ ๋ก๋ ๊ทธ ์ด์์ด์๋ค. Spring Security๋ Filter ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ๋์ํ๋ฉฐ, ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ(Authorization)๋ฅผ ๋ถ๋ฆฌํด ์ฒ๋ฆฌํ๋ค. ์ด ๊ตฌ์กฐ๋ฅผ ์์ ํ ์ดํดํ๋ ๋ฐ ๊ฝค ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ๊ณ , SecurityContextHolder, OncePerRequestFilter, PreAuthenticatedAuthenticationToken๊ณผ ๊ฐ์ ๋ฏ์ ๊ฐ๋ ๋ค๊ณผ๋ ๋ง์ฃผํด์ผ ํ๋ค. ๋จ์ํ ํ ํฐ์ ๊ฒ์ฌํ๋ ์์ค์ด ์๋๋ผ, Spring์ด ์์ฒญ์ ์ด๋ป๊ฒ ํ๋ฅด๊ฒ ํ๋์ง๋ฅผ ํ์ ํด์ผ๋ง ์ ๋๋ก ๋ ์ธ์ฆ ํ๋ฆ์ ๊ตฌ์ฑํ ์ ์์๋ค. ์์ง๋ ์๋ฒฝํ๊ฒ ์ดํดํ์ง๋ ๋ชปํ์ง๋ง, ์ด๋ฒ ๊ฒฝํ์ ํตํด ์ด๋ป๊ฒ ๋ค๋ค์ผ ํ ์ง ๊ฐ์ ํ์คํ ์ก๊ฒ ๋์๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ ๋์๊ฒ ๋จ์ํ ๊ธฐ๋ฅ ๊ตฌํ ์ด์์ ์๋ฏธ๊ฐ ์๋ค. ์ค์ ์๋น์ค๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง, ์ด๋ป๊ฒ ๊ฐ ๊ธฐ๋ฅ์ ๋๋๊ณ ์ฐ๊ฒฐํด์ผ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ํ์ ๊ณผ ์ค๊ณ๊ฐ ์ผ๋ง๋ ์ค์ํ์ง๋ฅผ ์ฒ์์ผ๋ก ์ ๋๋ก ์ฒด๊ฐํ๋ค. ๊ธฐ๋ฅ์ด ์๋ฒฝํ์ง๋ ์์์ง๋ง, ๊ทธ ๊ณผ์ ์์ ์ด์ ๋ณด๋ค ํจ์ฌ ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ๋์๋ค๊ณ ๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค ๋ถ์กฑํ ๋ถ๋ถ์ ์ฑ์์ฃผ๊ณ ํจ๊ป ๊ณ ๋ฏผํด์ค ํ์๋ค์๊ฒ ์์ฒญ ๊ณ ๋ง์์ ๋๋ผ๊ณ ์๋ค. ์์ผ๋ก ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด์ ๋ ๋ง์ ๋ ธ๋ ฅ์ ํด์ผ๊ฒ ๋ค. |
| ์ค์ ๊ฒฝ | ์ด๋ฒ ํ๋ก์ ํธ๋ MSA ๊ตฌ์กฐ๋ก ์๋ฒ๋ฅผ ๋๋๊ณ , ๋ฐฑ์๋์ ํ๋ก ํธ๋ฅผ ๋ชจ๋ ์ง์ ๊ตฌํํด๋ณธ ์๋ฏธ์๋ ๊ฒฝํ์ด์์ต๋๋ค. User, Feature, Gateway๋ก ๋๋์ด ๊ตฌ์ฑํ์ฌ ์๋น์ค ๊ฐ ํต์ ์ ์ํด Feign Client์ JWT ์ธ์ฆ์ ์ ์ฉํ๋ฉด์ ์ค์ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์กฐ๋ฅผ ์ฒดํํ ์ ์์์ต๋๋ค. ์ด๋ฒ์ ๊ฐ์ฅ ์ด๋ ค์ ๋ ๋ถ๋ถ์ ๋ฐฑ์๋ ๋ก์ง์ด ํ๋ก ํธ์ ์ฐ๋๋์์ ๋ ๋ฐ์ํ๋ ์์ธ์ฒ๋ฆฌ์์ต๋๋ค. DTO์ ๊ฐ์ด ์์ด ๋ฆฌ์คํธ๊ฐ ์ ๋จ๋ ๊ฒฝ์ฐ, null ํ๋ ๋๋ฌธ์ ๋๋๋ง์ด ๊นจ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ๋ณต์ด ๋์๊ณ , ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐฑ์๋ ์๋ต ๊ตฌ์กฐ๋ฅผ ๋ค๋ฌ๊ณ , ํ๋ก ํธ์์๋ fallback ์ฒ๋ฆฌ๋ฅผ ์ ๊ฒฝ ์ผ์ต๋๋ค. ํนํ, ๋ฐฑ์๋ ์์ ์ ๋จผ์ ์งํํ๊ธฐ ๋๋ฌธ์, ํ๋ก ํธ ๊ฐ๋ฐ ๋จ๊ณ์ ์์์ผ ์ถ๊ฐ์ ์ผ๋ก ํ์ํ ํ๋๋ค์ด ๋์ ๋ค์ด์ค๊ฒ ๋์๊ณ , ๊ทธ ๊ณผ์ ์์ ๋ฐฑ์๋ ์ค๊ณ๋ ๊ฒฐ๊ตญ ํ๋ก ํธ ์ฌ์ฉ์ฑ๊ณผ ํจ๊ป ๊ฐ์ผ ํ๋ค๋ ๊ฑธ ๋ชธ์ ๊นจ๋ฌ์์ต๋๋ค. ๋ํ ์ด๋ฒ ํ๋ก์ ํธ์์ PM ์ญํ ์ ๋งก์ผ๋ฉด์, ์๊ฐ๋ณด๋ค ๋ ์ฒด๊ณ์ ์ธ ๊ณํ ์๋ฆฝ์ด ์ค์ํ๋ค๋ ๊ฑธ ๋๊ผ์ต๋๋ค. ๋ง์ฐํ ๋์์ ์ผ์ ๋ง ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ๊ธฐ๋ฅ ๋จ์๋ก ๋จ๊ธฐ, ์ค๊ธฐ, ์ฅ๊ธฐ ๋ชฉํ๋ฅผ ์ธ๋ถํํด์ ๊ด๋ฆฌํด์ผ ํ๊ณ , ๊ทธ์ ๋ฐ๋ผ ํ์ ์ญํ ๋ถ๋ฐฐ, ์ฐ์ ์์ ์กฐ์ , ์ผ์ ์กฐ์จ๊น์ง ์ฑ๊ธฐ๋ ๊ฒ PM์ ํต์ฌ์ด๋ผ๋ ๊ฑธ ์ง์ ๊ฒช์ผ๋ฉฐ ๋ฐฐ์ ์ต๋๋ค. ๋จ์ํ ์งํ ์ํฉ์ ํ์ธํ๋ ์ญํ ์ด ์๋๋ผ, ์ ์ฒด ๋ฐฉํฅ์ ์ค๊ณํ๊ณ , ํ์ ์ ๋ฐ์ ์ธ ์ค์ฌ์ ์ก์์ฃผ๋ ์ฌ๋์ด PM์ด๋ผ๋ ๊ฑธ ์ด๋ฒ ๊ฒฝํ์ ํตํด ์ค๊ฐํ๊ฒ ๋์์ต๋๋ค. ์ด ๊ณผ์ ์ ๊ฑฐ์น๋ฉฐ ๋จ์ ๊ธฐ๋ฅ ๊ตฌํ์ ๋์ด, ์ค์ ์ฌ์ฉ์ ๊ด์ ์์ ๋ฐฑ์๋๋ฅผ ์ค๊ณํ๊ณ , ์๋น์ค ์ ์ฒด์ ํ๋ฆ์ ํ์ ํ๋ ๊ฒฝํ๊น์ง ํด๋ณผ ์ ์์๋ ํ๋ก์ ํธ์์ต๋๋ค. ์ ์ฒด์ ์ผ๋ก ํ๋ก ํธ์ ๋ฐฑ์๋๋ฅผ ์ค๊ฐ๋ฉฐ ์ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ฏผํ๊ณ , ์ค๊ณ๊น์ง ์ฑ๊ฒจ๋ณธ ๊ฒฝํ์ด๋ผ ์ ๋ง ๋ง์ด ์ฑ์ฅํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. |
| ๊น์ฑ์ | ์ด๋ฒ ํ๋ก์ ํธ๋ spring boot๋ถํฐ ์์ํด์ vue.js๊น์ง ์์ฐ๋ฅผ ์ ์๋ ํ๋ก์ ํธ์๋ค. ์ฐ๋ฆฌ ํ์ msa๊ตฌ์กฐ๋ฅผ ์ ์ฉ์์ผ ์งํํ๋ค. ์ค๋ฅ๊ฐ ์กฐ๊ธ ๋ ์์ฃผ ๋ฌ์ง๋ง ๊ทธ๋งํผ msa ๊ตฌ์กฐ์ ์ต์ํด์ง๋ ์๊ฐ์ด ๋์๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ด ๊ฐ์ฅ ์ด๋ ค์ ๋ค. ๊ผผ๊ผผํ์ง ๋ชปํด ๊ฒฝ๋ก๋ฅผ ํ๋ฆฌ๊ฑฐ๋ request/response ๊ฐ์ฒด๋ฅผ ์ ๋๋ก ๋ค๋ฃจ์ง ๋ชปํด ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ. ๋์ค์๋ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ ์ค๋ฅ๊ฐ ๋ฌ์ ๋ ๊ฒฝ๋ก๋ ๊ฐ์ฒด ํ๋ฆ์ ๋น ๋ฅด๊ฒ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ์์ ํ๋ ์ค์๋ ์ค๊ณ ์๋๋ ๋ผ ์ ์์๋ค. ๋๋ฉ์ธ ์ธก๋ฉด์์๋ ์ปคํผ์ฑ ๊ธฐ๋ฅ์ ๋งก์๊ณ ์ ์ ์ ํ๋์ ๋ฐ๋ผ ์ํ๊ฐ ๋ฐ๋๋ ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ์ ์ํ์ง ์์ ์ด๋ฐ์ ์ด๋ ค์์ ๊ฒช์๋ค. ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆฌ๋๋ผ๋ ์ฒ์๋ถํฐ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ ๋ฆฌ๋ ๊ธฐํ์ ์ค์์ฑ์ ๋ค์ ํ ๋ฒ ๊นจ๋ฌ์๋ค. ๋ด๊ฐ ๋งก์ ์ปคํผ์ฑ ๋๋ฉ์ธ ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ฐฑ์๋์์ ์ ๊ฒฝ ์ผ๋ ๋ถ๋ถ์ ui์์ ์ด๋ป๊ฒ ๊ตฌํ๋ ์ง ๋ฏธ๋ฆฌ ์๊ฐํด๋ณธ ๊ฒ์ด์๊ณ ํ๋ก ํธ ๊ตฌํ๊น์ง ๊ณ ๋ คํ์ฌ ์ต๋ํ ์ด๋ฏธ ๊ตฌํํด๋ ๋ฐฑ์๋๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๋๋ก ํ ๋ถ๋ถ์ด์๊ณ ํ๋ก ํธ ์์ ์ค์ ํฐ ์์ ์์ด ์์ ์ ์ผ๋ก ์ ์ง๋์๋ค. ํ๋ก ํธ์๋์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํ๋ค๊ณ ๋๋๋ค. ์ด๋ ดํํ๊ฒ ์ด๋ค ๊ธฐ๋ฅ์ธ์ง๋ง ์๊ณ ์ฌ์ฉํ๋ ํจ์๋ ์ปดํฌ๋ํธ๊ฐ ๋ง์๋๋ฐ, ์ด๋ฒ ํ๋ก์ ํธ ๋๋๊ณ ๋ณต๊ธฐํ๋ฉด์ ์ง์์ ๊ณ์ ๋ถ๋ ค๋๊ฐ๊ณ ์ถ๋ค. ํ์๋ถ๋ค๊ณผ ํ์ ํ๋ฉด์ ์ฌํ์์ ์ ๋ขฐ๋ฅผ ์๊ณ ์๋งํ ๊ด๊ณ๋ฅผ ์ ์งํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์๋ ์๋ฏธ์๋ ํ๋ก์ ํธ์๋ค. |
| ๋ฐ์ํ | ์ธ๊ฐ์ ์ ํ ๋ฉ์ปค๋์ฆ์ ์ ๊ฒฝ๊ณผํ๊ณผ ํ๋๊ฒฝ์ ํ ๊ด์ ์์ ๋ถ์ํ ๋ ํฅ๋ฏธ๋ก์ด ํจํด์ ๋ณด์ธ๋ค. ๋์ ๊ธฐ์ ํต๊ณผ ์ ์ ๋์ฝ ํผ์ง์ ์ํธ์์ฉ์ ์ต๊ด์ ํ๋ ํจํด์ ํ์ฑํ๋๋ฐ, ์ด๋ ์ผ์์ ์ ํ์์ '์ต์ ์๋์ง ์์น'์ ๋ฐ๋ฅด๋ ๊ฒฝํฅ์ผ๋ก ๋ํ๋๋ค. ์ฆ, ์ธ์ง์ ๋ถํ๋ฅผ ์ต์ํํ๋ ๋ฐฉํฅ์ผ๋ก ์์ฌ๊ฒฐ์ ์ด ์ด๋ฃจ์ด์ง๋ค. ๋ฒ ์ด์ง์ ์ถ๋ก ๋ชจ๋ธ์ ๋ฐ๋ฅด๋ฉด, ๊ฐ์ธ์ ๊ณผ๊ฑฐ ํ๋ ํจํด์ ์ฌ์ ํ๋ฅ (prior probability)๋ก ์์ฉํ์ฌ ์ดํ ์ ํ์ ํ๋ฅ ๋ถํฌ๋ฅผ ์กฐ๊ฑดํํ๋ค. ์ด๋ ๋ง์น ์๊ธฐ๊ฐํ ํ์ต ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ ์ฌํ๊ฒ, ํ๋ฒ ํ์ฑ๋ ํ๋ ํจํด์ด ์ง์์ ์ผ๋ก ๊ฐํ๋๋ ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ์์ฑํ๋ค. ๋ฐ๋ผ์ ํต๊ณ์ ์ผ๋ก '๊ฒ์ผ๋ฅธ' ํ๋ ํจํด์ ๋ณด์ธ ๊ฐ์ธ์ ๋ฏธ๋์๋ ๋์ผํ ํจํด์ ๋ฐ๋ณตํ ํ๋ฅ ์ด ๋์์ง๋ค. ์์ ์์ง์ ๋ํ ํ์์ ์ธ์ง์ฌ๋ฆฌํ์์ 'ํต์ ๋ ฅ ์ฐฉ๊ฐ(illusion of control)'์ผ๋ก ์ค๋ช ๋๋ค. ๋ค๋์ ์จ๊ทธ๋(Daniel Wegner)์ ์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด, ์์์ ์๋์ ํ๋ ์ฌ์ด์ ์ผ์์ ์ฐ๊ด์ฑ์ด ์ธ๊ณผ๊ด๊ณ๋ก ์ค์ธ๋๋ ๊ฒฝํฅ์ด ์๋ค. ์ค์ ๋ก fMRI ์ฐ๊ตฌ๋ค์ ์์ฌ๊ฒฐ์ ์ด ์์์ ์ธ์๋ณด๋ค ์ต๋ 7์ด ์ ์ ์ ๊ฒฝํ์ ์ผ๋ก ์ด๋ฏธ ๊ฒฐ์ ๋ ์ ์์์ ์์ฌํ๋ค. ์์ ์์ง๋ก ๋ฏฟ๋ ๋์ ์ ํ์ด ์ค์ ๋ง์ฑ์ ์ต๊ด์ ์์กด์ ์ํ ๊ฒ์ผ ์๋ ์์์ ์๋ฏธํ๋ค.์๊ธฐํฉ๋ฆฌํ ๋ฉ์ปค๋์ฆ์ ์ธ์ง๋ถ์กฐํ ์ด๋ก ์ผ๋ก ์ค๋ช ๊ฐ๋ฅํ๋ค. ์ธ๊ฐ์ ์์ ์ ํ๋๊ณผ ๋ฏฟ์ ์ฌ์ด์ ๋ถ์ผ์น๋ฅผ ๊ฒฝํํ ๋ ์ฌ๋ฆฌ์ ๋ถํธํจ์ ํด์ํ๊ธฐ ์ํด ์ธ๋ถ ์์ธ์ ์ฑ ์์ ์ ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค. ์ด๋ ์๊ธฐ๋ณด์กด์ ๊ท์ธ ์ค๋ฅ(self-serving attribution bias)์ ํ ํํ๋ก, ์คํจ๋ ์ธ๋ถ ์์ธ์, ์ฑ๊ณต์ ๋ด๋ถ ์์ธ์ ๊ท์ธํ๋ ์ฒด๊ณ์ ํธํฅ์ด๋ค.๊ฒฐ๊ตญ ์๊ธฐ์ธ์๊ณผ ๋ฉํ์ธ์ง๋ ์ด๋ฌํ ๊ฒฐ์ ๋ก ์ ํจํด์์ ๋ฒ์ด๋ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ์ ์ํ๋ค. ์ ๊ฒฝ๊ฐ์์ฑ(neuroplasticity)์ ์๋ฆฌ์ ๋ฐ๋ฅด๋ฉด, ์๊ธฐ์ธ์์ ํตํ ์๋์ ๊ฐ์ ์ ๋์ ์ ๊ฒฝํ๋ก๋ฅผ ์ฌ๊ตฌ์ฑํ ์ ์๋ค. ๋ฐ๋ผ์ ์์ ์ ํ๋ ํจํด์ ๋ํ ๊ฐ๊ด์ ๊ด์ฐฐ๊ณผ ์๊ธฐ๋นํ์ ์ฌ๊ณ ๋ ๊ธฐ์กด์ ๊ฒฐ์ ๋ก ์ ๊ฒฝ๋ก์์ ๋ฒ์ด๋ ์ง์ ํ ์๋ฏธ์ ์ ํ์ ์์ ๋ฅผ ํฅํ ์ฒซ๊ฑธ์์ด ๋ ์ ์๋ค.๊ฒฐ๋ก ์ ์ผ๋ก, ์ธ๊ฐ์ ์ ํ์ ์์ ํ ์์ ์ ์์ ํ ๊ฒฐ์ ๋ก ์ฌ์ด์ ์คํํธ๋ผ ์์ ์กด์ฌํ๋ค. ์๊ธฐ์ธ์์ ๊น์ด์ ๋ฉํ์ธ์ง ๋ฅ๋ ฅ์ด ์ด ์คํํธ๋ผ ์์์ ์ฐ๋ฆฌ์ ์์น๋ฅผ ๊ฒฐ์ ํ๋ฉฐ, ์ด๋ ๊ถ๊ทน์ ์ผ๋ก ์์ ์ ํ๋์ ๋ํ ์ฑ ์์ ๋ฒ์๋ฅผ ์ ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ฌ์ค์ ๋ฐ๋๋ก ๋งํ์๋ฉด, ์ฑ ์์ ๋ฒ์์ ๋ํ ์ธ์์ด ์๊ธฐ์ธ์์ ๊น์ด๋ฅผ ๊ฒฐ์ ํ๋ค๊ณ ๋ ํ ์ ์๋ค. ๊ณ ๋ก ์ ํ์ ์ด๋ช ์ด ์๋๋ผ, ์ค์ค๋ก์ ์ธ์์ ๊ฐ๊น๋ค. |
| ๊น๊ธฐํ | ์ด๋ฒ ๋ฐฑ์๋, ํ๋ก ํธ์๋ ํ๋ก์ ํธ์์ ๊ฒ์ํ ๊ธฐ๋ฅ ๊ตฌํ์ ๋ด๋นํ์ต๋๋ค. ์คํ๋ง ํ๋ ์์ํฌ๋ ์ฒ์ ์ฌ์ฉํด๋ณด๋ ๊ธฐ์ ์ด๋ผ ์ ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ ๊ฐ๋ฐ ๋ฐฉ์์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํ๊ณ , ์ด๋ฐ์๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํด์ผ ํ ์ง์กฐ์ฐจ ๋ง๋งํ์ต๋๋ค. ํ์ง๋ง ํ์๋ค์ ์ ๊ทน์ ์ธ ํผ๋๋ฐฑ๊ณผ ์ง์์ ์ธ ์ฝ๋ ๋ฆฌ๋ทฐ, ๊ทธ๋ฆฌ๊ณ ํจ๊ป ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์ ํตํด ์ ์ฐจ ์คํ๋ง์ ํต์ฌ ๊ฐ๋ ๊ณผ ๊ตฌ์กฐ์ ์ธ ํ๋ฆ์ ์ดํดํ๊ฒ ๋์์ต๋๋ค. ํนํ, ๊ฒ์ํ์ CRUD ๊ธฐ๋ฅ์ ์ง์ ๊ตฌํํ๋ฉด์ Swagger์ Postman์ ์ด์ฉํด API๋ฅผ ํ ์คํธํด๋ณด๊ณ , ์ค์ ๋ก ์ ๋ ฅํ ๊ฐ์ด ํ๋ฉด์ ์ถ๋ ฅ๋๋ ๊ฒฝํ์ ๊ต์ฅํ ํฅ๋ฏธ๋ก์ ์ต๋๋ค. ๊ทธ ๊ณผ์ ์ ํตํด "๋ด๊ฐ ๋ง๋ ๊ธฐ๋ฅ์ด ์ค์ ๋ก ์๋ํ๋ค"๋ ์ค๊ฐ์ด ๋ค์๊ณ , ๊ฐ๋ฐ์ ๋ํ ์์ ๊ฐ๋ ์์ฐ์ค๋ฝ๊ฒ ์๊ฒผ์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ์์ ๊ฐ์ฅ ์ธ์ ๊น์๋ ์ ์ MSA ๊ตฌ์กฐ๋ฅผ ์ ์ฉํด ๋ณธ ๊ฒฝํ์ ๋๋ค. ๊ธฐ์กด์ ๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ์ ๋ฌ๋ฆฌ, ์๋น์ค๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋๋์ด ๊ฐ๋ฐํ๊ณ ํต์ ํ๋ ๋ฐฉ์์ ์ง์ ๊ฒฝํํ๋ฉฐ ์๋น์ค ๊ฐ ์ฑ ์ ๋ถ๋ฆฌ, ๋ ๋ฆฝ ๋ฐฐํฌ, ํ์ฅ์ฑ์ ๊ฐ๋ ์ ์ค๊ฐํ ์ ์์์ต๋๋ค. ํนํ, Feign Client๋ฅผ ์ฌ์ฉํด ๋ค๋ฅธ ์๋น์ค์ ํต์ ํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ ํตํด ์๋น์ค ๊ฐ ์ฐ๊ฒฐ ๋ฐฉ์๊ณผ ์ฅ๋จ์ ์ ๋ฐฐ์ธ ์ ์์์ต๋๋ค. ๋ํ, Jira, GitHub, Discord๋ฅผ ํ์ฉํ ํ์ ๋ฐฉ์๋ ํฐ ๋์์ด ๋์์ต๋๋ค. Jira๋ฅผ ํตํด ๊ฐ ๊ธฐ๋ฅ๋ณ๋ก ํ ์ผ์ ์ธ๋ถํํ๊ณ , ํ์ฌ ์ด๋ค ์์ ์ด ์งํ ์ค์ธ์ง ํ๋์ ํ์ ํ ์ ์์์ผ๋ฉฐ, GitHub์ Discord๋ฅผ ์ฐ๋ํ์ฌ PR์ ์์ฑํ๊ฑฐ๋ ๋ฆฌ๋ทฐ๊ฐ ํ์ํ ๋ ์๋ ์๋ฆผ์ด ์ ์ก๋๋๋ก ์ค์ ํด, ์ปค๋ฎค๋์ผ์ด์ ์๋์ ์ ๋ฌด ์งํ ์๋๋ฅผ ๋์ผ ์ ์์์ต๋๋ค. ์ ๋ฐ์ ์ผ๋ก ์ด๋ฒ ํ๋ก์ ํธ๋ ๋จ์ํ ๊ธฐ๋ฅ ๊ตฌํ์ ๋์ด, ํ์ ์์ ์ค์ ์ฌ์ฉํ๋ ๊ธฐ์ ์คํ๊ณผ ํ์ ๋๊ตฌ๋ฅผ ์ง์ ์ฒดํํด ๋ณธ ์์คํ ๊ฒฝํ์ด์์ต๋๋ค. ํนํ, ์คํ๋ง์ ๋ํ ์ดํด๋์ ์์ ๊ฐ์ ์ป๊ฒ ๋ ์ , ๊ทธ๋ฆฌ๊ณ ํ์๋ค๊ณผ์ ์ํํ ํ์ ๊ฒฝํ์ด ์์ผ๋ก์ ๊ฐ๋ฐ ์ปค๋ฆฌ์ด์ ํฐ ๋์์ด ๋ ๊ฒ์ด๋ผ ํ์ ํฉ๋๋ค. |
| ๊น์ง์ | ์ด๋ฒ ํ๋ก์ ํธ์์๋ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ํ๋ซํผ์ธ NEWBIT์ ๋ฐฑ์๋ ๊ฐ๋ฐ๊ณผ ํ๋ก ํธ ๊ฐ๋ฐ์ ๋ด๋นํ์์ต๋๋ค. ๋จ์ํ CRUD ๊ธฐ๋ฅ ๊ตฌํ์ ๋์ด, ์ค์ ์ฌ์ฉ์ ํ๋ฆ์ ๋ง๋ ์๋น์ค ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๊ณ ๊ตฌํํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ผ์์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก๋ Spring Boot๋ฅผ ๊ธฐ๋ฐ์ผ๋ก JPA์ MyBatis๋ฅผ ํผํฉํ์ฌ ์ฌ์ฉํ์์ต๋๋ค. ๋ฐ์ดํฐ์ ๋ฑ๋ก, ์์ ์ JPA๋ฅผ ํตํด ์ฒ๋ฆฌํ๊ณ , ๋ณต์กํ ์กฐํ๋ ์ฑ๋ฅ ์ต์ ํ๊ฐ ํ์ํ ์ฟผ๋ฆฌ๋ MyBatis๋ก ๋ถ๋ฆฌํ์ฌ CQRS ๊ตฌ์กฐ๋ฅผ ์ ์ฉํ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ ๊ณ์ธต์ ์ฑ ์์ ๋ช ํํ ํ๊ณ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์ผ ์ ์์์ต๋๋ค. ๋ํ JWT ๊ธฐ๋ฐ ์ธ์ฆ์ Spring Cloud Gateway์ ํตํฉํจ์ผ๋ก์จ MSA ๊ตฌ์กฐ์์๋ ์์ ์ ์ธ ์ธ์ฆ ํ๋ฆ์ ๊ตฌ์ฑํ ์ ์์์ต๋๋ค. ๋ฐฑ์๋์์๋ ์ฃผ๋ก ๊ตฌ๋งค ๊ด๋ จ ๊ธฐ๋ฅ์ ๋ด๋นํ์๋๋ฐ ๊ฐ์ฅ ๊ณ ๋ฏผ์ด ๊น์๋ ๋ถ๋ถ์ ์ฌํ(๋ค์ด์๋ชฌ๋, ํฌ์ธํธ) ๊ด๋ฆฌ์์ต๋๋ค. ๋จ์ํ ๊ฐ ์ฆ๊ฐ ์ฒ๋ฆฌ๋ฅผ ๋์ด์, ํธ๋์ญ์ ์์ ์ฑ๊ณผ ์ด๋ ฅ ์ถ์ ์ด ํ์์ ์ด์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์นผ๋ผ ๊ตฌ๋งค๋ ์ปคํผ์ฑ ์ ์ฒญ ์ ์ฌ์ฉ์ ์ฌํ๋ฅผ ์ฐจ๊ฐํ๊ณ ํ์คํ ๋ฆฌ ํ ์ด๋ธ์ ์ ์ฅํ๋ฉฐ, ์ํ ์ ์ด๋ฅผ ์ผ๊ด๋๊ฒ ์ ์งํ๋ ๊ฒ์ด ํต์ฌ ๊ณผ์ ์์ต๋๋ค. MSA ๊ตฌ์กฐ๋ Gateway ์ธ์ฆ ์ฒ๋ฆฌ์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํ์ฌ ๊ตฌ์กฐ ์ค๊ณ์ ์๊ฐ์ด ๊ฑธ๋ ธ๊ณ , ์ผ๋ถ ๋๋ฉ์ธ์์๋ ๋ฆฌํฉํ ๋ง์ ์ถฉ๋ถํ ์งํํ์ง ๋ชปํ ๋ถ๋ถ๋ ์์ต๋๋ค. ํ๋ก ํธ์๋์์ ์ฐ๋ ๊ณผ์ ์์ ๋ช ์ฐจ๋ก ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์กฐ์ ์ด ํ์ํ๋ ์ ๋ ๊ฐ์ ์ด ํ์ํ ๋ถ๋ถ์ผ๋ก ๋๊ผ์ต๋๋ค. ํ์ ์ Jira์ Discord, Github๋ฅผ ์ฐ๋ํด์ ์งํํ์๋๋ฐ ์ด ๋๋ถ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด์์ ๋ธ๋์น๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋งค์ฐ ํธ๋ฆฌํ์ต๋๋ค. ์งง์ ์๊ฐ์์ ํ๋ก์ ํธ ์ค๊ณ๋ถํฐ ๋ฐฑ์๋ ๊ฐ๋ฐ, ํ๋ก ํธ ๊ฐ๋ฐ๊น์ง ๋๋ง์ณ์ผ ํ๋ ํ๋ก์ ํธ์๊ธฐ ๋๋ฌธ์ ๊ผผ๊ผผํ๊ฒ ์๊ฐํ๋ฉด์ ๊ฐ๋ฐํ ์๊ฐ์ด ๋ถ์กฑํ๊ธฐ๋ ํ๊ณ ์ด๊ธฐ ์ค๊ณ์๋ ๋ค๋ฅด๊ฒ ๊ตฌํ๋ ๋ถ๋ถ์ด๋ ์์ฑ๋์ง ๋ชปํ ๋ถ๋ถ๋ ์์ด์ ์์ฝ๊ธฐ๋ ํ์ง๋ง ์ ์ฒด์ ์ผ๋ก ์น ๊ฐ๋ฐ์ด ์ด๋ค์์ผ๋ก ์งํ๋๋์ง ํ๋ฆ์ ๋ฐฐ์ธ ์ ์๋ ์ข์ ๊ธฐํ์๊ณ ํ์๋ถ๋ค๋ ๋ค๋ค ํ๋ก์ ํธ์ ์ด์ฌํ ์ฐธ์ฌํ์๊ณ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ด ์์ผ๋ฉด ๊ผผ๊ผผํ ๋์์ฃผ์ ์ ๋ง์ด ๋ฐฐ์๊ฐ๋ ํ๋ก์ ํธ๊ฐ ๋์์ต๋๋ค. |
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค.











































