Today I Learn โ๐ผ
1. ๋ฐฐ์ก ์๋๋ฆฌ์ค ๋ฌธ์
ํ์ ๋ฏผ์ฒ ๋์ด ์์ฑํ ๋ฐฐ์ก ์์คํ ์ Kafka ์๋๋ฆฌ์ค์์ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋ฐฐ์ ์ด ์๋ฃ๋ ์ดํ์๋ ์คํ 4์์ ์ค์ผ์ค๋ง ์์ ์ผ๋ก ๋จ์ํ ์ฃผ๋ฌธ ์ํ๋ฅผ '๋ฐฐ์ ์ค'์์ '๋ฐฐ์ ์๋ฃ'๋ก ๋ณ๊ฒฝํ๋ ๋์๋ง ํ๊ณ ์์์ต๋๋ค.
๋ฌธ์ ์ : ์ค์ผ์ค๋ง ์์ ์์ ๋ฐฐ์ก ๊ธฐ์ฌ๋ฅผ ๋ฐฐ์ ํ๋ ๋ก์ง์ด ๋น ์ ธ ์์๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์๋ ๋นํจ์จ์ ์ด์์ต๋๋ค.
๋ฐฐ์ก ํ๋ก์ธ์ค ์ ์
์ ๋ ํ์๋ค์๊ฒ ์คํ 4์ ์ค์ผ์ค๋ง ์์ ์์ ๋ฐฐ์ ์ค → ๋ฐฐ์ ์๋ฃ๋ก ์ํ๋ง ๋ณ๊ฒฝํ๋ ๋์ , ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ ํํ๋ผ๊ณ ๊ฐ์ด๋๋ฅผ ์ฃผ์์ต๋๋ค:
- ๋ฐฐ์ ์์ ์ ํ ๋ฒ์ Bulk Insert๋ก ์ฒ๋ฆฌํ๊ฑฐ๋,
- Kafka๋ฅผ ํตํด ํ๋์ฉ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ.
์๊ฐ์ด ๋ถ์กฑํ๊ธฐ์ ์ด ๋ฌธ์ ๋ ์ฐ์ ์์๋ฅผ ๋ฎ์ถ๊ณ , ์ฃผ๋ฌธ ์์คํ
์์ ์ ๋จผ์ ์งํํ๊ธฐ๋ก ํ์ต๋๋ค.
๋ฐฐ์ก ์๋๋ฆฌ์ค ํ๋ก์ธ์ค ํด๊ฒฐ ๋ฐฉ์
- ์คํ 4์ ์ค์ผ์ค๋ง: ๋ฐฐ์ก ์๋ฒ๋ ์คํ 4์์ ํฌ๋ฉ ์ํ์ธ ์ฃผ๋ฌธ ๋ชฉ๋ก์ ๋ฐ์์ต๋๋ค.
- ์ฃผ๋ฌธ ์ฒ๋ฆฌ: ์ฃผ๋ฌธ ๋ชฉ๋ก์์ ํ๋ํ๋ ์ค๋ ์์ด๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฃผ๋ฌธ์ ์กฐํํ๊ณ , ๋ฐฐ์ก ๊ธฐ์ฌ๋ฅผ ๋ฐฐ์ ํฉ๋๋ค.
- ์ฃผ๋ฌธ ์ํ ๋ณ๊ฒฝ: ๊ฐ ์ฃผ๋ฌธ์ ์ํ๋ฅผ '๋ฐฐ์ฐจ์๋ฃ'๋ก ๋ณ๊ฒฝํ ํ, Kafka๋ฅผ ํตํด ์ฃผ๋ฌธ ์ํ ๋ณ๊ฒฝ ๋ฉ์์ง๋ฅผ ์ ์กํฉ๋๋ค.
- ์คํจ ์ฒ๋ฆฌ: ๋ง์ฝ ์ฒ๋ฆฌ์ ์คํจํ ์ฃผ๋ฌธ์ด ์๋ค๋ฉด ํด๋น ์ฃผ๋ฌธ๋ค์ ๋ชฉ๋ก์ ๋ฃ๊ณ ๋ค์ ์ฌ์๋ํฉ๋๋ค.
์ด ํด๊ฒฐ ๋ฐฉ์์ ๋ฌธ์ ๋ฐ์ ์ ์ฌ์๋ ๋ก์ง์ ํฌํจํ์ฌ ์์ ์ฑ์ ๊ฐํํ๋ฉฐ, Kafka๋ฅผ ํ์ฉํ ์ฃผ๋ฌธ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
2. DEV-product ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ๊ฐ์
๋ํ๋์ ์ฝ๋๋ฅผ ๋ฆฌ๋ทฐํ๋ ๊ณผ์ ์์ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค:
- ํ ์ฝ๋ ๊ท์น์ ๋ง์ง ์๊ฒ ์์ฑํ ๋ถ๋ถ์ด ์์์ต๋๋ค.(์ด๋ฏธ ํ๋ธapp์์ ๊ฐ์ด๋ ์ฝ๋ ์์ ์ ์์ฑํด๋ ์ํ์ ๋๋ค)
- Git ์ฌ์ฉ์ ๋ฏธ์ํ ๋ชจ์ต๋ ๋ณด์๋๋ฐ, ์ํ ์๋ฒ์ ๊ด๋ จ ์๋ ์ฝ๋๊ฐ PR๋ก ํจ๊ป ์ฌ๋ผ์ค๊ธฐ๋ ํ์ต๋๋ค.
- DEV-product PR๋ก ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํ์ง์๊ณ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ Discusstion์ ์์ฑํ์ต๋๋ค. Discustion ๋งํฌ
์ด์ Git ๋ธ๋์น ์ ๋ต๊ณผ PR ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์ค๋ช ํด์ฃผ์๊ณ , ์ํ๊ณผ ์ํ ์ฌ๊ณ ์๋น์ค๋ฅผ ๋ถ๋ฆฌํ๋ ์ค๊ณ์ ๋ํด ๋ค์ ๋ฉ๋์์ผฐ์ต๋๋ค.
๋ํ, ์ฝ๋ ์ ๋ฆฌ ๋ฐ ์คํ์ผ ๊ฐ์ด๋ ์ ์ฉ์ ์ํด ๊ตฌ๊ธ ์คํ์ผ๊ณผ ์๋ ๋ฆฐํธ๋ฅผ IntelliJ์ ์ค์นํ๋๋ก ๊ฐ์ด๋ํ์ต๋๋ค.
์ง์ ๋ฐ ๊ฐ์ ํ๋
- ๋ํ๋์๊ฒ Git ์ฌ์ฉ๋ฒ๊ณผ ๋ธ๋์น ์ ๋ต, ํ/ํธ์ ๋ฐฉ๋ฒ์ ์ค๋ช ํ์ต๋๋ค.
- ์ฝ๋ ์คํ์ผ์ ๋ง์ถ๊ธฐ ์ํด IntelliJ ์๋ ์ ๋ ฌ ๋ฐ import ์ ๋ฆฌ ๋จ์ถํค๋ฅผ ๊ณต์ ํ์ต๋๋ค.
- ํ ์ฝ๋ ๊ท์น์ ๋ง๊ฒ ์ํ ์๋ฒ์์ ์ํ๊ณผ ์ํ ์ฌ๊ณ ์๋น์ค๋ฅผ ๋ถ๋ฆฌํด์ ๋ค์ ์์ฑํ๋๋ก ์ ๋ํ์ต๋๋ค.
- Getter/Setter ์๋ ์์ฑ ์๋ฆฌ๋ฅผ ์ปดํ์ผ๋ ํด๋์ค ํ์ผ์ ํตํด ์ค๋ช ํ๋ฉฐ ์ดํด๋ฅผ ๋์์ต๋๋ค.
3. ์ฃผ๋ฌธ ์์คํ ๊ฐํธ
์ฃผ๋ฌธ ์์คํ ์ด Stateless๋ก ๊ฐํธ๋๋ฉด์ ๊ธฐ์กด์ CRUD ๊ธฐ๋ฅ๋ค์ด ๋ง์ด ์ฌ๋ผ์ ธ ์๋ ์ํ์๊ณ ,
Kafka ๋ฉ์์ง ์ก์์ ๋ก์ง๋ ๊ณตํต ๋ชจ๋๋ก ๊ตฌ๋ถ์ด ๋์ด ์์ง ์์์ต๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ๋ฉ์์ง ํ๋ก๋์, ๋ฉ์์ง ์ปจ์๋จธ, ๋ฉ์์ง ์๋น์ค๋ฅผ ๊ฐ๊ฐ ๋ถ๋ฆฌํ๊ณ , ์ ๋ต ํจํด๊ณผ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ ์ฉํ๋ผ๊ณ ํ์๋ค์๊ฒ ์ง์ํ์ต๋๋ค.
4. ์นดํ์นด ๋ฉ์์ง ๊ตฌ์กฐ ๊ฐ์
๋ฉ์์ง ๊ตฌ์กฐ์ ๊ด๋ จํด์๋ ์ ๊ฐ ์ง์ ์นดํ์นด ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด ์ค ์๋ ์์์ง๋ง, ํ์๋ค์ด ์ค์ค๋ก ๊ณ ๋ฏผํ๋๋ก ์ ๋ํ์ต๋๋ค.
์ผ์์ผ ๋ฐค 12์๋ถํฐ ์๋ฒฝ 4์๊น์ง ํ์๋ค์ ๋ฉ์์ง ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ฏผํ์ผ๋ฉฐ, ๋ฏผ์ฒ ๋๊ณผ ๋ํ๋์ด ๋ง์ด ๊นจ๋ฌ์ ๊ฒ ๊ฐ์์ต๋๋ค.
์์์ผ ์์นจ ํ์์์ ํ ๋ฒ ๋ ์ค๋ช ํด์ฃผ๊ณ PR์ ๋ฐ๊ธฐ๋ก ํ์ต๋๋ค.
์ดํ ๋ฏผ์ฒ ๋์ด ๋
ธ๋ ฅํ ์ฝ๋๋ฅผ ์ ๊ฐ ์กฐ๊ธ ์์ ํด์,
์ต์ข
์ ์ผ๋ก ๊ฒฐ์ ๋ Kafka ๋ฉ์์ง ๊ตฌ์กฐ๋ ์ฌ๊ธฐ์ ๋ฐ์๋์์ต๋๋ค.
7. ๋ฐฐ์ด ์
- ์นดํ์นด ๋ฉ์์ง ๊ตฌ์กฐ ์ค๊ณ์ ์์ด ํ์๋ค์ด ์ง์ ๊ณ ๋ฏผํ๊ณ ๊ฐ์ ํ๋ฉด์ ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ ์ ์์์ต๋๋ค.
- Git ๋ธ๋์น ์ ๋ต๊ณผ PR ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์ฒด๊ณ์ ์ผ๋ก ๊ฐ๋ฅด์ณ์ฃผ๋ ๊ฒ์ด ํ์ ์ ํจ์จ์ฑ์ ๋์ด๋ ๋ฐ ํฐ ๋์์ด ๋์ต๋๋ค.
- ์ฝ๋ ์คํ์ผ๊ณผ ์ผ๊ด์ฑ ์ ์ง๋ ํ ํ์ ์์ ๋งค์ฐ ์ค์ํ๋ฉฐ, ์ด๋ฅผ ์ํด ์ฝ๋ ๊ท์น๊ณผ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ์ง์์ ์ผ๋ก ๊ฐ์กฐํด์ผ ํฉ๋๋ค.
- ์ฝ๋ ๋ฆฌ๋ทฐ๋ ๊ฐ์ ์ ์ ๋ฌธ์๋ก ์ ๋ฌํ ๋, ๊ณต๊ฒฉ์ ์ผ๋ก ๋๊ปด์ง ์ ์๋ค๋ ์ ์ ๊นจ๋ฌ์์ต๋๋ค.
- ํ์๋ง๋ค ์ํฉ์ ๋ง์ถฐ ๊ตฌ๋๋ก ์ค๋ช ํ๊ฑฐ๋ ์ ๋ต์ ์ผ๋ก ์ ๊ทผํ๋ ๊ฒ์ด ๋ ํจ๊ณผ์ ์ผ ์ ์๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
- ํนํ, ๋ง๋ก ์ ๋ฌํ ๋๋ ๋ฌธ์ ์์ด ์ํต์ด ์ ์ด๋ฃจ์ด์ง๋ ๋ฐ๋ฉด, ์ฑํ ์ด๋ ๋ฌธ์๋ก ์ ๋ฌํ ๋๋ ๋ถ์๊ธฐ๊ฐ ์ธ์ฐ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ด์, ์์ผ๋ก๋ ์ฌ๋ ์คํ์ผ์ ๋ง๊ฒ ์ ๊ทผํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
'Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
mapper (0) | 2024.10.23 |
---|---|
gateway ๋ผ์ฐํ ์๋ฌ ํด๊ฒฐํ๊ธฐ (0) | 2024.10.16 |
@Component, @Configuration + @ConfigurationProperties (0) | 2024.10.02 |
ํ์ด์ง ์ฒ๋ฆฌ (0) | 2024.09.23 |
DDD Layered Architecture์ application service์ domain service์ ์ด๋ค ์ฝ๋๋ฅผ ๋ฃ์ด์ผ ํ๋ ๊ฑธ๊น? (0) | 2024.09.23 |