์์ ๊ณผ ์ฅ์๋ฅผ ์ฐ๊ฒฐํด ์ง๋ ์์ ๊ธฐ๋กํ๊ณ ๊ณต์ ํ๋ PLIMAP์ ๋ฐฑ์๋ API์ ๋๋ค.
| ํ์ | ๋ด๋น ์์ญ |
|---|---|
| ์ฃผ๋ณด๊ฒฝ | ๐ ์ธํ๋ผ ๋ฐ ํด๋ผ์ฐ๋ |
| ์ด์๋ฆผ | ๐ฅ MemberยทAuth ๋๋ฉ์ธ, ํ์ ๋ฐ ์์ ๋ก๊ทธ์ธ |
| ๊น๋ฏผ์ฃผ | ๐บ๏ธ Place ๋๋ฉ์ธ |
| ์ด์์ค | ๐ Pin ๊ด๋ จ API ์ค๊ณ |
| ๊น์์ | ๐ถ Track ๋๋ฉ์ธ |
- Java 21, Spring Boot 4.1
- Spring MVC, Spring Data JPA, Hibernate Spatial
- PostgreSQL 18.4, PostGIS
๋๋ฉ์ธ ์ค์ฌ์ ํจํค์ง ๊ตฌ์กฐ์ ๊ณ์ธตํ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
com.example.plimap
โโโ domain
โ โโโ auth # ์ธ์ฆ
โ โโโ member # ํ์
โ โโโ place # ์ฅ์ ๋ฐ ์์น
โ โโโ track # ์์
โ โโโ pin # ์ง๋์ ๋จ๊ธฐ๋ ์์
ยท์ฅ์ ๊ธฐ๋ก
โโโ global # ๊ณตํต ์ค์ , ์๋ต, ์์ธ ๋ฐ ์ธ๋ถ ์ฐ๋
๊ฐ ๋๋ฉ์ธ์ controller, service, repository, entity, dto ๋ฑ์ผ๋ก ๊ตฌ์ฑํ๋ฉฐ,
์๋น์ค๋ ์ํ ๋ณ๊ฒฝ์ ๋ด๋นํ๋ command์ ์กฐํ๋ฅผ ๋ด๋นํ๋ query๋ก ๋ถ๋ฆฌํ์ฌ ๋ถ๋ถ์ ์ผ๋ก CQRS ์ํคํ
์ ธ ์ ๋ต์ ์ทจํฉ๋๋ค.
- Java 21
- Docker ๋ฐ Docker Compose
-
ํ์ํ๋ฉด ํ๊ฒฝ ๋ณ์ ์์ ํ์ผ์ ๋ณต์ฌํด ๋ก์ปฌ ๊ฐ์ ๋ณ๊ฒฝํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉด ์๋ตํ ์ ์์ต๋๋ค.
# macOS/Linux cp .env.example .env # Windows PowerShell Copy-Item .env.example .env
-
Docker Compose๋ก ๋ก์ปฌ PostGIS ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์คํํฉ๋๋ค.
docker compose up -d
-
localํ๋กํ๋ก Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํฉ๋๋ค. ์ต์ด ์คํ ์ Flyway๊ฐ PostGIS ํ์ฅ๊ณผ ์ ์ฒด ์คํค๋ง๋ฅผ ์์ฑํฉ๋๋ค.# macOS/Linux ./gradlew bootRun --args='--spring.profiles.active=local' # Windows .\gradlew.bat bootRun --args="--spring.profiles.active=local"
IntelliJ Active profiles์
local์ ์ง์ . -
์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ Swagger UI ๋์์ ํ์ธํฉ๋๋ค.
http://localhost:8080/swagger-ui/index.html
docker compose down๋ฐ์ดํฐ๊น์ง ์ด๊ธฐํํ๋ ค๋ฉด docker compose down -v๋ฅผ ์คํ.
๋ฐ์ดํฐ๋ฒ ์ด์ค Migration, QueryDSL ๋ฐ ํ ์คํธ ๊ท์น์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ฐ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.
ํ์ ํ๋ฆ
- ์์ ์์ ์ GitHub Issue๋ฅผ ์์ฑํ๊ณ ๋ด๋น์์ ๋ผ๋ฒจ์ ์ง์ ํฉ๋๋ค.
- ํ๋์ Issue์๋ ํ๋์ ์์ ๋ชฉ์ ๋ง ํฌํจํฉ๋๋ค.
- Issue ๋ฒํธ๊ฐ ํฌํจ๋ ์์ ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค.
- ์์
์๋ฃ ํ
develop๋ธ๋์น๋ก Pull Request๋ฅผ ์์ฑํฉ๋๋ค. - PR์ ๋ณ๊ฒฝ ๋ด์ฉ๊ณผ ํ
์คํธ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๊ณ
Closes #์ด์๋ฒํธ๋ก Issue๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค. - ์ต์ 1๋ช ์ ์น์ธ์ ๋ฐ์ ๋ค ๋ณํฉํ๊ณ ์์ ๋ธ๋์น๋ฅผ ์ญ์ ํฉ๋๋ค.
๋ธ๋์น ์ ๋ต
main: ๋ฐฐํฌ ๊ฐ๋ฅํ ์์ ๋ฒ์ develop: ๊ธฐ๋ฅ ํตํฉ ๋ฐ ๊ฐ๋ฐ ๊ธฐ์ค ๋ธ๋์น- ์์
๋ธ๋์น:
develop์์ ์์ฑํ๊ณ ์์ ์๋ฃ ํdevelop์ผ๋ก PR์ ์์ฒญํฉ๋๋ค. main๊ณผdevelop์๋ ์ง์ pushํ์ง ์์ต๋๋ค.
๋ค์ด๋ฐ ์ปจ๋ฒค์
- Issue:
[Type] ์์ ๋ด์ฉ(์:[Feature] ํ์๊ฐ์ API ๊ตฌํ) - Branch:
<type>/#<issue-number>-<description>(์:feat/#14-signup-api) - Commit:
<type>: <subject>(์:feat: ํ์๊ฐ์ API ๊ตฌํ) - PR:
[Type] ๋ณ๊ฒฝ ๋ด์ฉ(์:[Feature] ํ์๊ฐ์ API ๊ตฌํ)
์์ธํ ๋ด์ฉ์ docs๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.