์ค์ฅ๋
์ธต ์๊ณ์ ์ง์ ์๊ธ ์ค๊ฐ์ฐฉ์ทจ ๊ทผ์ ์ ์ํ ๊ตฌ์ธ๊ตฌ์ง ์๋น์ค, ๋ค์์ก
2025.09.06 ~ 2025.09.21
[SKTHON] ์๊ฒฝ๋ํ๊ต ๊ต๋ด ํด์ปคํค ๋์ ์์
ํด๊ฒฐํ๊ณ ์ ํ๋ ์ฌํ ๋ฌธ์
๋ฒ์ ์ผ๋ก๋ ๊ตฌ์ง์์๊ฒ 1%์ดํ์ ์ค๊ณ์์๋ฃ๋ฅผ ๋ถ๊ณผํ ์ ์์ง๋ง,
๋ฒ์ ํ์ ์ ์ ์ฉํ์ฌ ๊ตฌ์ง์์๊ฒ ์๊ธ์ 10%~30%์ ์์๋ฃ๋ฅผ ์์๊ฐ๋ ๋ชป๋ ์ฐฉ์ทจ ๊ดํ์ด ๋ง์ฐํด์์ต๋๋ค.
์ง์ ์๊ฐ์๋ฅผ ์ฃผ๋ก ์ด์ฉํ๋ ์ ์๋ ์ค์ฅ๋ ์ธต์ ์ค๊ณ์์๋ฃ ์ฐฉ์ทจ๋ ์ด๋ค์ ์๊ณ๋ฅผ ์ํํ๋ ์ฌ๊ฐํ ์ฌํ๋ฌธ์ ์ ๋๋ค.
ํ์ฉํ ํต์ฌ ๊ธฐ์
Spring BootยทNext.jsยทOCRยทEmbedding Model GPT-4oยทGemini API
๊ธฐ๋ํ๋ ์ฌํ์ ์ํฉํธ
๊ตฌ์ง์ ๋ถ๋ค๊ป ๊ณผ๋ํ ์ค๊ณ์์๋ฃ๋ฅผ ๋ถ๊ณผํ๋ ์ฐฉ์ทจ์ ๊ดํ์ ๊ทผ์ ํ์ฌ,
50๋ ๊ตฌ์ง์ ๋ถ๋ค๊ป์ ์ ๋นํ ์๊ธ์ ๋ณด์ฅ๋ฐ๊ณ ์์ ์ ์ผ๋ก ์ผํ์ค ์ ์๋ ๊ณ ์ฉ ํ๊ฒฝ์ ๋ง๋ค์ด ๋๋ฆฝ๋๋ค.
์ ์๋ ์ค์ฅ๋ ์ธต์ ์๊ธ ์ค๊ฐ์ฐฉ์ทจ๋ฅผ ์์ ๊ณ ,
๋ ์ด์ ์คํ๋ผ์ธ์ด ์๋ ์จ๋ผ์ธ์์ ๊ณต์ ํ๊ณ ๊ฐํธํ๊ฒ ์ผ์๋ฆฌ๋ฅผ ์ฐพ๊ฒํ๋ ์์ค์ผ์ค์ ๋๋ค.
| PM | Design |
|---|---|
| ์ฌ์ํ | ์ํจ์ง |
![]() |
| FE Developer | FE Developer |
|---|---|
| ๋ฐํ๊ฒฝ | ํ์คํธ |
| BE Developer | BE Developer | BE Developer |
|---|---|---|
| ๋ฐ์ฃผ์ฉ | ์ ์ฑ๋ฆฐ | ์ฌ์ํ |
- ๐ Start: Start New Project [:tada:]
- โจ Feat: ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐ [:sparkles:]
- ๐ Fix: ๋ฒ๊ทธ ์์ [:bug:]
- ๐จ Design: CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ [:art:]
- โป๏ธ Refactor: ์ฝ๋ ๋ฆฌํฉํ ๋ง [:recycle:]
- ๐ง Settings: Changing configuration files [:wrench:]
- ๐๏ธ Comment: ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ [:card_file_box:]
- โ Dependency/Plugin: Add a dependency/plugin [:heavy_plus_sign:]
- ๐ Docs: ๋ฌธ์ ์์ [:memo:]
- ๐ Merge: Merge branches [:twisted_rightwards_arrows:]
- ๐ Deploy: Deploying stuff [:rocket:]
- ๐ Rename: ํ์ผ ํน์ ํด๋๋ช ์ ์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ์์ ๋ง์ธ ๊ฒฝ์ฐ [:truck:]
- ๐ฅ Remove: ํ์ผ์ ์ญ์ ํ๋ ์์ ๋ง ์ํํ ๊ฒฝ์ฐ [:fire:]
- โช๏ธ Revert: ์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑ [:rewind:]
๐ชด Branch Convention (GitHub Flow)
main: ๋ฐฐํฌ ๊ฐ๋ฅํ ๋ธ๋์น, ํญ์ ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ๋ฅผ ์ ์งfeature/{description}: ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น- ์:ย
feature/social-login
- ์:ย
- ๋ธ๋์น ๊ณต์ X โ ํน์ํ ๊ฒฝ์ฐ ํ์๋ค์๊ฒ ์๋ฆฌ๊ธฐ
- ํ์์ด ์ง ์ฝ๋ ๋ฆฌ๋ทฐ ์์ด ์์ X โ ์์ ์ PR ๋จ๊ธฐ๊ณ ๋ฆฌ๋ทฐ ํ์
- ex) ๋ณธ์ธ์ด ์ ์ํ ํด๋์ค ์๋ ๊ณณ์์ ์ฝ๋ ์์ฑ ์ ํ์๋ค๊ณผ ๋ ผ์
Flow
developย ๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑ. โdevelop๋ธ๋์น๋main๋ธ๋์น์์ ์์ฑ- ์์ ์ ์๋ฃํ๊ณ ์ปค๋ฐ ๋ฉ์์ง์ ๋ง๊ฒ ์ปค๋ฐ ํ ํธ์.
develop์ผ๋ก ๋ณํฉ ์ Pull Request๋ฅผ ์์ฑ / ํ์๋ค์ ๋ฆฌ๋ทฐ.- ๋ฆฌ๋ทฐ๊ฐ ์๋ฃ๋๋ฉดย
developย ๋ธ๋์น๋ก ๋ณํฉ. - ๋ณํฉ ํ, ๋ฐฐํฌ ํ์ ์
main๋ธ๋์น๋ก Pull Request๋ฅผ ์์ฑ / ํ์๋ค์ ๋ฆฌ๋ทฐ ์งํ - ๋ณํฉ ํ ๋ฐฐํฌ.
์์:
# ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ
git checkout -b feature/social-login
# ์์
์๋ฃ ํ, main ๋ธ๋์น๋ก ๋ณํฉ
git checkout main
git pull origin main
git merge feature/social-login
git push origin main- Docker Desktop ์คํ
- Build ํ๊ธฐ ์ spotless ์ ์ฉ
./gradlew spotlessApply - ์ ํด์ง ์ปจ๋ฒค์
์ ์งํค๊ณ ์๋์ง ๊ฒ์ฌ (spotelesscheck)
./gradlew spotlessCheck - spring boot build
./gradlew build - Docker Desktop ์คํ์ค ์ธ์ง ํ์ธ
docker info - Docker๋ก ๋น๋ํ๊ธฐ
docker build -t "๋ณธ์ธ dockerhub repo ์ด๋ฆ"/helfoome . - Docker Hub login(IDE terminal์์ ์คํ)
docker login - Docker Image Tag
docker tag "๋ณธ์ธ dockerhub repo ์ด๋ฆ"/helfoome "๋ณธ์ธ dockerhub repo ์ด๋ฆ"/helfoome:latest - Docker Image Push
docker push "๋ณธ์ธ dockerhub repo ์ด๋ฆ"/helfoome:latest
- ์คํ ์ค์ธ ์ปจํ
์ด๋ ๋ชฉ๋ก ํ์ธ
docker ps - ์ปจํ
์ด๋ ์ค์ง ์คํ ์ค์ธ ์ปจํ
์ด๋์ CONTAINER ID๋ฅผ ์ฐพ์์ ์ค์ง.
docker stop <CONTAINER ID> - ์ปจํ
์ด๋์ ์ญ์ ๊ฐ ํ์ํ ๊ฒฝ์ฐ
docker rm <CONTAINER ID> - ์ด๋ฏธ์ง ์ญ์ ๊ฐ ํ์ํ ๊ฒฝ์ฐ
docker rmi <IMAGE ID or IMAGE NAME>
- submodule ์์ โ ํ์๋ค์๊ฒ ์๋ฆฌ๊ธฐ
- submodule ๊ฒฝ๋ก๋ก ์ด๋ ํ
main์ผ๋ก push (๋ธ๋์น ์์ฑ X) - ๋ฃจํธ ๊ฒฝ๋ก๋ก ๋์์ ํด๋น ๋ธ๋์น๋ก push
- commit message :
"submodule push"๋ก ํต์ผ
- commit message :
git submodule update --remote๋ก ์๋ธ๋ชจ๋ ์ต์ ํ- ๋ฃจํธ ๊ฒฝ๋ก์์ ๋ฐ๋ ๋ด์ฉ ํค๋น ๋ธ๋์น๋ก push
-
- commit message :
"submodule latest"๋ก ํต์ผ
- commit message :
-
