KB์ ์๋ก์ด ์ ์์์์ฆ ์๋น์ค KB๋ฆฌํ! KB๋ฆฌํ์ Receipt, Reward, Benefit์ ํฉ์ฑ์ด๋ก, ์์์ฆ์ ๋์งํธํ๋ฅผ ํตํด ํํ์ ๋๋ ค์ฃผ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
์ ์์์์ฆ ๊ธฐ๋ฐ์ ํ๊ณยท์ธ๋ฌด ์๋ํ ๋ฐ ๋ณดํ ์ฒญ๊ตฌ ์ง๊ฐ ์๋น์ค โKB ๋ฆฌํโ์ ์๋์ ๊ฐ์ ๋ชฉ์ ์ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค.
- ํ๊ฒฝ๋ถ์ ๋ฐ๋ฅด๋ฉด 2018๋ ๊ธฐ์ค, ์ฐ๊ฐ ์ฝ 128์ต ๊ฑด์ ์ข ์ด์์์ฆ ๋ฐํ
- ์๋ชฉ ์ฝ 128,900 ๊ทธ๋ฃจ ๋ฒ๋ชฉ ์ถ์ฐ โ ์ ์์์์ฆ์ผ๋ก ์ ํ ์, ์ฐ๋ฆผ ๋ณดํธ ๋ฐ ์์ ์ ๊ฐ์ ์ง์ ์ ๊ธฐ์ฌ
- ์ข ์ด์์์ฆ์ ๊ฐ์ด์ง๋ก ์ ์๋์ด ์ฌํ์ฉ ๋ถ๊ฐ
- ์๋น์๋ ์ธ์ ์ด๋์๋ ๋์งํธ ๋ฐฉ์์ผ๋ก ์์์ฆ ์ด๋ ๊ฐ๋ฅ โ ์๋น์ ํธ์์ฑ ๋ฐ ์ ๊ทผ์ฑ ์ฆ๋
- ์๊ธฐ๋ก ๊ด๋ฆฌํ๋ ์์์ฆ์ ๋์งํธ ์ ํ โ ์ ์ถ๊ธ ๋ด์ญ์ ์ฒด๊ณ์ ๊ด๋ฆฌ
- ์ ์์์์ฆ์ ํตํ ๋น์ฉ ์ฆ๋น ์๋ํ โ ์ธ๋ฌดยท์๊ธ ๊ด๋ฆฌ ํจ์จ์ฑ ํฅ์
- ์๋ฃ๋น ๋ฉ์ ์์์ฆ์ ์ ์ํ ํ ๋ณดํ์ฌ๋ก ์๋ ์ ์ก โ ๊ธฐ์ ๋ณต์ง ์์คํ ๊ณผ์ ์ฐ๊ณ๋ก ๊ด๋ฆฌยท์ด์ ๋น์ฉ ์ ๊ฐ
- ๊ฐ์ธ ์ ๋ณด ์ ์ถ ๋ฐฉ์ง โ ์ข ์ด์์์ฆ ๋ถ์ค ๋ฐ ํ๊ธฐ ์ ๋ฐ์ํ ์ ์๋ ํผ์ฑ, ์ค๋ฏธ์ฑ ๋ฑ์ ๋ฒ์ฃ ์ํ ์ต์ํ
- ์๋น ๊ธฐ๋ก์ ์ฅ๊ธฐ ๋ณด๊ด ๊ฐ๋ฅ โ ๋ณ๋์ ๋ณด๊ด ๋ ธ๋ ฅ์์ด ์ ์ ๋ฐฉ์์ผ๋ก ์ฅ๊ธฐ์ ์ธ ์๋น ๊ธฐ๋ก ํ์ธ ๊ฐ๋ฅ
- ์๋น ํจํด ๋ถ์ โ ์นดํ ๊ณ ๋ฆฌ ๋ถ๋ฅ๋ฅผ ํตํด ๊ฐ์ธ์ ์๋น ํจํด ์ฑํฅ, ์ง์ถ ํจํด ์๊ฐํ โ ์์ฐ ๊ด๋ฆฌ ๋ฐ ์๋น ์ต๊ด ๊ฐ์ ์ ๊ธฐ์ฌ
- ์์์ฆ ๋ง์ผ๋ก ์๋ก์ด ๊ฐ์น ์ฐฝ์ถ โ ์๋น ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ๋ง์ถคํ ๊ธ์ต ์ํ ์ฐ๋ โ ๊ตญ๋ฏผ์ํ์ ์ ๊ท ๊ณ ๊ฐ์ผ๋ก ์์ฐ์ค๋ฌ์ด ์ ํ ์ ๋
- ๋ณ์ยท์ฝ๊ตญ ๋ฑ์์ ๋ฐ์ํ ๋ฉ์ ๋ด์ญ์ ๋ณดํ์ฌ๋ก ์๋ ์ ์ก โ ์ฌ์ฉ์ ๋ถํธ ์ต์ํ
๋ณธ ํ๋ก์ ํธ๋ IT's Your Life 6๊ธฐ ์ค๋ฌด ์ญ๋ ํ๋ก์ ํธ์ด๋ฉฐ, ๊ธ์ต ์ฃผ์ ๋ฅผ ๊ธฐ๋ฐํ ํ๋ก์ ํธ ์ค๊ณ์ ๊ฒฝํ, ์์ฑ์ ๋ชฉํ๋ก ํฉ๋๋ค.
2025.07.09 ~ 2025.08.21
| ๊ตฌ๋ถ | ๊ธฐ์ ์คํ |
|---|---|
| Core | Spring Legacy, Java17, Lombok |
| ๋ณด์/์ธ์ฆ | Spring Security, JWT (JwtTokenProvider), BCryptPasswordEncoder, CORS |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค | MySQL, MyBatis |
| ํ ์คํธ | JUnit5 |
| ๋ฌธ์ํ | Swagger v2(Springfox) |
| ๋ฐฐํฌ/์ธํ๋ผ | Docker, GitHub Actions, AWS EC2, Nginx, Letโs Encrypt(Certbot) |
| ๊ธฐํ | Firebase Cloud Message (ํธ์์๋ฆผ) |
ํด๋ฆญํด์ ์์ด์ดํ๋ ์์ ํ์ธํ์ธ์
git clone https://github.com/KB-PBL-GGABEES/kb_refit_server.git
cd kb_refit_serverJava 17 (Temurin ๊ถ์ฅ)
Gradle(๋ํผ ์ฌ์ฉ ๊ถ์ฅ: ./gradlew)
MySQL 8+ (๋ก์ปฌ ๋๋ Docker)
- pos ์๋ฎฌ๋ ์ดํฐ๋ฅผ ํ์ฉํ ์ ์์์์ฆ ๋ฐ๊ธ ๊ณผ์ ์๋ฎฌ๋ ์ด์
- ์ผ๋ฐ ์ฌ์ฉ์ ๋ฐ ์ฌ์ ์ ์ฌ์ฉ์ ์ ์ ๊ฒฐ์ ๋ด์ญ ์ฐ๊ณ
- ์ ์ ์์์ฆ ๋ด์ญ ๊ธฐ๋ฐ ์๋น ์นดํ ๊ณ ๋ฆฌ ๋ถ์
- ๋ฐฐ์ง ์์คํ ์ ํตํ ๋ง์ถคํ ํํ ๋ฆฌ์๋ ์ ๊ณต
- ์๋ฃ ์์์ฆ ์ฐ๊ณ ์ค๋น ๋ณดํ๊ธ ์ฒญ๊ตฌ ๊ฐ์ํ
- ๋ณดํ์ฌ ์ฐ๊ณ ์ง๋ฃ๋น ์ธ๋ถ ์ฐ์ ๋ด์ญ ์ก์ ๊ณผ์ funnel ๊ตฌ์กฐ๋ก ์ฐ๊ณ
- ์ฌ์ ์ฒด ์ฐ๊ณ ๊ฒฝ๋น ์ฒ๋ฆฌ ๊ณผ์ ๊ฐ์ํ
- ๋ฒ์ธ ์นด๋ ์ฌ์ฉ ๋ฐ๋ ค ๋ฐ ํ์ ์กฐ์น ๊ณผ์ ๊ฐ์ํ
๐ฅ ํ์
์ฒ์์ผ๋ก ๊ธ์ต๊ถ ํ๋ก์ ํธ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ฐธ์ฌํ๋ฉด์ ๋ง์ ๊ฒฝํ์ ์์ ์ ์์์ต๋๋ค. ๋จ์ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๊ทธ์น์ง ์๊ณ , ํ ๋ด ์ง์ ๊ณต์ ์ ๋ฌธ์ํ์ ์ง์คํ์ฌ ํจ๊ป ์ฑ์ฅํ ์ ์๋๋ก ๋ ธ๋ ฅํ์ต๋๋ค. ๋ํ ํ๋ก ํธ์๋์์ ์ํํ ํ์ ์ ์ํด API ์ค๊ณ์ ํต์ ๋ฐฉ์์ ํธ์์ฑ์ ๊ณ ๋ฏผํ์ผ๋ฉฐ, ๋ค์ํ ์ํฉ์์๋ ์์ ์ ์ผ๋ก ๋์ํ ์ ์๋๋ก JUnit5 ๊ธฐ๋ฐ ํ ์คํธ ์ฝ๋์ QA sheet๋ฅผ ์์ฑํด ๊ฒ์ฆ์ ๊ฐํํ์ต๋๋ค.
ํนํ ์ธํ๋ผ ๋ฆฌ์์ค๊ฐ ์ ํ๋ ํ๊ฒฝ์์๋ ํจ์จ์ ์ธ ๋ฐฐํฌ ๋ฐ ์ธํ๋ผ ๊ตฌ์ฑ์ ์ต์ ํํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋ฌด์ฌํ ์ด์ํ ์ ์์์ต๋๋ค. ํ ๋ฌ์ด๋ผ๋ ์งง์ ๊ธฐ๊ฐ ๋์ ์ฝ์ง ์์ ๋์ ์ด์์ง๋ง, ๊ณํ๋๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉฐ ๋ง์ ์ฑ์ฅ์ ์ด๋ฃฐ ์ ์์๋ ๊ฐ์ง ๊ฒฝํ์ด์์ต๋๋ค.
- Spring Legacy ์ ๋ฐ์ ์ธ ์ธํ
- Spring Security ์ ์ฉ
- JWT ๊ธฐ๋ฐ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ
- ์ ์์ง๊ฐ ๊พธ๋ฏธ๊ธฐ(์ง๊ฐ ๋ธ๋๋, ๋ฐฐ์ง ์ฐฉ์ฉ, ๋ฐฐ์ง ํ๋ฆฌ์ ) ๊ธฐ๋ฅ ๊ตฌํ
- JavaMailSender & OpenCSV ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ CSVํ์ผ๋ก ๋ง๋ค์ด ์ด๋ฉ์ผ์ ์ฒจ๋ถ ํ ๋ณด๋ด๋ ๊ธฐ๋ฅ ๊ตฌํ
- FCM ์ค์๊ฐ ์๋ฆผ ๊ธฐ๋ฅ ๊ตฌํ
- EC2 & Docker & Nginx & Github Actions ์ฌ์ฉํ์ฌ Blue-Green ๋ฌด์ค๋จ๋ฐฐํฌ
- Letโs Encrypt(Certbot) ์ฌ์ฉํ์ฌ Https ์ ์ฉ
Spring Legacy์์ FCM ์ฐ๋ ๊ณผ์ ์์ ์์ ํ ํฐ์ผ๋ก๋ ํ ์คํธ๊ฐ ๋ถ๊ฐ๋ฅํด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ , ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Firebase ํด๋ผ์ด์ธํธ SDK ๊ธฐ๋ฐ ํ ํฐ ๋ฐ๊ธ์ฉ ์น ํ์ด์ง(get_fcm_token.html + service worker)๋ฅผ ๋ง๋ค์ด ๋ก์ปฌ ์๋ฒ(https:// ๋์ localhost)์์ ์คํํ์ฌ ์ ํจํ FCM ํ ํฐ์ ๋ฐ๊ธ๋ฐ์ ์ ์์ ์ผ๋ก ์๋ฆผ ์ ์ก์ ๊ฒ์ฆํ๋ค๋ ํธ๋ฌ๋ธ์ํ ์ ๋๋ค.
ํ๋ก์ ํธ ์์ ์ ๊ฒฝํ์ด ๋ถ์กฑํด์ ๊ฑฑ์ ์ด ๋ง์๋ ๊ฒ ์๊ทธ์ ๊ฐ์๋ฐ ๋ฒ์จ ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ ๋๊ฐ ๋์๋ค์. ์ข์ ๋ณ์๋ช ๊ณผ ์๋ํฌ์ธํธ์ ๋ํด ๊ณ ๋ฏผํ๋ฉด์ ํ์ ์ ๊ธฐ์ด๋ถํฐ ์์ํด Spring๊ณผ MyBatis๊น์ง, ๋ง์ ๊ฒ์ ๋ฐฐ์๊ฐ๋ ์๊ฐ์ด์์ต๋๋ค. ์ข ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ๋ ์ ์๋๋ก ๋ง์ด ๋์์ฃผ๊ณ ์์ ๊ฐ ๋ถ์ด๋ฃ์ด ์ค ํ์๋ค ๋๋ฌด ๊ณ ๋ง์์. ๋ค์์๋ ์ง์ง ๋ ์ํ ์ ์๋๋ฐ! ์ฐ๋ฆฌ ๋ ๊ฐ์ด ํด์... ์ฆ๊ฑฐ์ ์ต๋๋ค ๐
- ์ ์์์์ฆ ๋ฐ๊ธ ๋ฐ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ฆฌ์๋ ์ ๋ฆฝ ๋ฐ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ
- ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ยท๋์ ํํฐ๋ง
- QA
https://velog.io/@ezzangs/Refit-๋ฐฑ์๋-๊ฐ๋ฐ-ํธ๋ฌ๋ธ์ํ
- DB, Backend ์์ฐจ ์์ ์ ์ํ UTC ์๊ฐ ๋ณด์
- ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ๊ฐ๋ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ฟผ๋ฆฌ๋ฌธ์ ๋ฃ์ด ์ ๋์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ
์ง๊ธ๊น์ง ๊ฒฝํํ ํ๋ก์ ํธ ์ค ๊ฐ์ฅ ํฐ ๊ท๋ชจ์์ต๋๋ค. ํ๋ก ํธ์ ๋ฐฑ ๋ชจ๋ ๋ฏธ์ํ ์ํ์์ ์์ํ๋ค ๋ณด๋ ๋๋ ค์์ด ๊ฐ๋ํ์ง๋ง '๋ชจ๋ฅด๋ฉด ๋ฌผ์ด๋ณด์, ๋ฐฉํฉํ์ง ๋ง๊ณ ๋ถ๋ชํ์'๋ผ๋ ๋ง์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ์ต๋๋ค. ์ด๋ฐ์๋ ์์ ๊ธฐ๋ฅ ํ๋๋ฅผ ๊ตฌํํ๋ ๋ฐ๋ ๋ง์ ์๊ฐ์ด ์์๋์๊ณ , ๋ถ์กฑํจ์ ์ฑ์ฐ๊ธฐ ์ํด ๋ค์ ํ ์ผ์ ๋ฏธ๋ฆฌ ์ค๋นํ๊ณ ๊ณต๋ถํ๋ ์ต๊ด์ ๋ค์์ต๋๋ค. ๋๋ถ์ ์ผ์ ์ ๋ง๊ฒ ์์ฑํ ์ ์์์ผ๋ฉฐ ๋จ์ ๊ธฐ๋ฅ ๊ตฌํ ๋์ด ์ค๊ณ์ ๊ตฌ์กฐํ, ์์ธ ์ฒ๋ฆฌ, ํ์ด์ง, ์ฟผ๋ฆฌ ์ต์ ํ ๋ฑ ๋ค์ํ ์์ ๋ค์ ๋๊น์ง ํด๋๋ค๋ ์์ ๊ฐ๋ ์ป์ ์ ์์์ต๋๋ค.
ํ๋ก์ ํธ๋ฅผ ํตํด ๊ธฐ์ ์ ์ธ ์ฑ์ฅ๋ฟ ์๋๋ผ ํ์ , ํ์ํฌ์ ๊ฐ์น๋ฅผ ๋ฐฐ์ธ ์ ์์์ต๋๋ค. ํนํ ๋ฌธ์ํ์ ์ฝ๋ ๋ฆฌ๋ทฐ, ๊น ์ ๋ต์ ํตํด ํ ๊ฐ๋ฐ ๋ฌธํ์ ์ค์์ฑ์ ๊น์ด ์ฒด๊ฐํ ๊ฐ์ง ๊ฒฝํ์ด์์ต๋๋ค.
- ์ฌ์ฅ๋ API(๊ฒฝ๋น ์ฒ๋ฆฌยท๋ฒ์นด ์กฐํ) ์ ๋ฐ ๊ตฌํ ๋ฐ ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ยท๋์ ํํฐ๋ง ์ ์ฉ
- ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฌธ์ (WBS/Gantt) ์์ฑ
- ๊ธฐ์ ๋ช ์ธ์ ์์ฑ
๋ฐฐํฌ ์๋ฒ์์ receiptId์ receiptProcessId๊ฐ ๋ค๋ฅด๊ฒ ์ ์ฅ๋์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ํ๋ก ํธ์์๋ receiptId๋ง ์ ๋ฌ, ๋ฐฑ์๋๋ ์ด๋ฅผ receiptProcessId๋ก ์ค์ธํด ์๋ชป๋ ์์์ฆ์ด ์ฒ๋ฆฌ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๋ก์ปฌ ํ ์คํธ ํ๊ฒฝ์์๋ ๋ ๊ฐ์ด ์ฐ์ฐํ ๊ฐ์์ ๋ฌธ์ ๊ฐ ๋๋ฌ๋์ง ์์์ผ๋ฉฐ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋ก ํธ ์์ฒญ์ receiptId ๊ธฐ์ค์ผ๋ก ํต์ผํ๊ณ ๋ฐฑ์๋์์ ๋งคํํ๋๋ก ๋ก์ง์ ์์ ํ๋ค.
์ฒซ ๋ฒ์งธ ์ค์ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก์ ๋ง์ ์ค๋ฌด ๊ฒฝํ๊ณผ ๊ธฐ์ ์ ์ธ ์ฑ์ฅ์ ์ด๋ฃจ์์ต๋๋ค. ๋จ์ํ ๊ฐ์ธ ํ๋ก์ ํธ๊ฐ ์๋,ย ์ฑํฅ์ด ๋ค์ํ ์ฌ๋ฌ ํ์๊ณผ ํ์ ํ๋ ํ๊ฒฝ์์ ์งํ๋๋ค ๋ณด๋ ์ปค๋ฎค๋์ผ์ด์ ๋ฅ๋ ฅ๊ณผ ํ์ ์ ๋ํ ์ดํด๋ ํจ๊ป ์ฑ์ฅํ ์ ์์๋ ์ ์ด ํนํ ์๋ฏธ ์์์ต๋๋ค.
ํนํ Refit ํ์์ ๋ณ์ ์์์ฆ์ ์ ๋ฐ์ ์ธ ๊ธฐ๋ฅ๊ณผ ์ค์ ๋ณดํ ์ฒญ๊ตฌ, ์์ ์ฒ๋ฆฌ ์์ฒญ ๋ฑ ํต์ฌ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ฉด์, ์ฌ์ฉ์๊ฐ ๋ ํธ๋ฆฌํ๊ฒ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋๋ก ๊ณ ๋ฏผํ๋ ๊ฒฝํ์ด ์ธ์ ๊น์์ต๋๋ค.ย
๋จ์ํ ๊ธฐ์ ์ ์ธ ๋ถ๋ถ๋ง ๊ณ ๋ฏผํ๋ ๊ฒ์ด ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ณ ๋ คํ๋ฉฐ ํ์๋ค๊ณผ ํ๋ฐํ ์ํตํ๊ณ ๋จธ๋ฆฌ๋ฅผ ๋ง๋๋ฉฐ ๊ณ ๋ฏผํ๋ฉฐ ํด๊ฒฐํด ๋๊ฐ๋ ๊ฒฝํ์ ์๊ฐ๋ค์ด ์ ์๊ฒ๋ ํฐ ์ฑ์ฅ ๋๋ ฅ์ด ๋์์ต๋๋ค. (refitํ์๋ค ๋ค๋ค ๋๋ฌด ๊ฐ์ฌํ์ต๋๋ค!๐)
- ๊ตฌ๋งค ํญ๋ชฉ ์นดํ ๊ณ ๋ฆฌ ๊ธฐํ ๋ฐ ์ ๋ฆฌ
- ํ๋ก์ ํธ ํ์ ๋ด์ฉ ์ ๋ฆฌ ๋ฐ ๋ฌธ์ํ
- ๋ณ์ ์์์ฆ API (๋ชฉ๋ก ์กฐํ, ์์ธ ์กฐํ, ๋ณดํ์ฌ ์กฐํ, ์ธ๋ถ์ฐ์ ๋ด์ญ ํ์ผ๋ช
์กฐํ)โจ
์ ๋ฐ ๊ตฌํ ๋ฐ ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ยท๋์ ํํฐ๋ง ์ ์ฉ - ์ค์ ๋ณดํ ์ฒญ๊ตฌ ์์ฒญ API ๊ธฐ๋ฅ ๊ตฌํ
- ์์ ์ฒ๋ฆฌ API ๊ธฐ๋ฅ ๊ตฌํ
- OpenAPI ๊ธฐ๋ฐ ์ฌ์ ์ ์ง์ ํ์ธ ๊ธฐ๋ฅ ๊ฐ๋ฐ
- try-catch ๊ธฐ๋ฐ ํตํฉ ์์ธ ์ฒ๋ฆฌ ์ ์ฉ
- ๋ณ์ ์์์ฆ(๋ณดํ ์ฒ๋ฆฌ) ๋ฐ ์์ ์ฒ๋ฆฌ์ ๋ํ JUnit5 ํ ์คํธ ์ฝ๋ ์์ฑ
๊ตญ์ธ์ฒญ OpenAPI ์ฌ์ ์ ์ง์ ํ์ธ ๊ธฐ๋ฅ์์ ๋ฐ์ดํฐ ์ค๋ณต ์ฝ์ ๊ณผ ๋ก์ง ๋ถ์ผ์น ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์์ธ์ Insert ์ค์ฌ ์ค๊ณ, DTO ํ์ ๋ถ์ผ์น, ์์ธ ์ฒ๋ฆฌ ๋ถ์กฑ์ด์์ผ๋ฉฐ, ํด๊ฒฐ์ฑ ์ Insert ๋ก์ง ์ ๊ฑฐ ํ ์กฐํ ๊ธฐ๋ฐ ๊ฒ์ฆ์ผ๋ก ์ ํ, DTO ์ผ๊ด์ฑ ์ ์ง, ๋ฐฉ์ด์ ์ฝ๋ฉ ์ ์ฉ์ด์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ํ๋ณด์ ์ฝ๋-DB ๋๊ธฐํ์ ์ค์์ฑ์ ํ์ธํ์ต๋๋ค.













