- νλ‘μ νΈ μκ°
- μ£Όμ κΈ°λ₯
- κΈ°μ μ€ν
- μμνκΈ°
- νλ‘μ νΈ κ΅¬μ‘°
- 컨벀μ κ°μ΄λ
- API λͺ μΈ
- κΈ°μ¬νκΈ°
- ν
"μ΄λ κ°μ§ κ³ λ―Όνλ μκ°, μ΄μ κ·Έλ§!"
μΉκ΅¬λ€κ³Ό λ§λκΈ°λ‘ νλλ° μ΄λλ₯Ό κ°μ§ μ νλλΌ μκ°λ§ κ°κ³ , κ²μν΄λ μνλ κ²°κ³Όκ° μ λμ€λ κ²½ν, λꡬλ μμΌμμ£ ?
λ°λ‘κ°κΈ°λ ν€μλ κΈ°λ°μΌλ‘ ν루 μΌμ μ μλμΌλ‘ μΆμ²ν΄μ£Όλ μ€λ§νΈ νλλμ λλ€. λ κ³ λΈλ‘μ μλ―μ΄ ν° μΌμ λ§ μ ννλ©΄, AIκ° μΈλΆ μ₯μμ 루νΈκΉμ§ μμμ μ§λ립λλ€!
- π κ²μμ κ³ ν΅: "λͺ¨λ°μ§" κ²μνλλ° λΌλ©μ§λ§ λμ΄
- β° μκ°μ λλΉ: μ΄λ κ°μ§ μμ보λλ° λ§λ¨ μκ°μ μ λ° μλͺ¨
- πΊοΈ 루νΈμ νΌλ: ν¨μ¨μ μΈ λμ μ μ§λ κ² λ무 μ΄λ €μ
- π₯ μ견 μ‘°μ¨ μ§μ₯: μΉκ΅¬λ€ μ·¨ν₯ λ§μΆκΈ°κ° μ μ
- β‘ ν€μλ κΈ°λ° μ¦μ μΆμ²: "μΉ΄ν β μμ¬ β λ°μ΄νΈ" μ νλ§μΌλ‘ μμ±
- π§© λ κ³ μ μΌμ ꡬμ±: ν° νλ§ μ¬μ©μκ°, μΈλΆλ AIκ°
- πΊοΈ μ€λ§νΈ λ£¨νΈ μ΅μ ν: μ΄λ μκ°μ κ³ λ €ν ν¨μ¨μ λμ
- π― λ§μΆ€ν μΆμ²: κ·Έλ£Ή ν€μλ κΈ°λ° λͺ¨λκ° λ§μ‘±νλ μ₯μ
- νΈλ λ© ν«νλ μ΄μ€: μ§κΈ μΈκΈ° μλ μ₯μλ₯Ό μ€μκ° λνΉμΌλ‘ νμ
- λ‘€λ§ μ λλ©μ΄μ : Framer MotionμΌλ‘ ꡬνν λΆλλ¬μ΄ μμ λ³λ
- λλκ·Έ μΊλ¬μ : ν°μΉ/λλκ·Έλ‘ νμνλ νΈλ λ© μΌμ λͺ©λ‘
- ν€μλ κΈ°λ° μΆμ²: "μΉ΄ν", "λ§μ§", "λ°μ΄νΈ" λ± ν€μλ μ ν
- AI μλ ꡬμ±: μ νν ν€μλμ λ§λ μ΅μ μ μ₯μ μΆμ²
- μκ°ν λ·°: μλΈλ¦¬νμμ²λΌ μ§κ΄μ μΈ μΌμ μκ°ν
- νκ·Έ μμ€ν : μΌμ λ³ μΉ΄ν κ³ λ¦¬ λΆλ₯ λ° νν°λ§
- μ΄λ μκ° κ³μ°: μ₯μ κ° μ€μ μ΄λ μκ° κ³ λ €
- ν¨μ¨μ λμ : μ΅λ¨ 거리 κΈ°λ° μμ μλ μ‘°μ
- μ§λ μκ°ν: νΈλ¦¬νμ²λΌ μ 체 루νΈλ₯Ό μ§λλ‘ νμ
- λ©€λ² μ΄λ: μΉκ΅¬λ€κ³Ό μΌμ 곡μ
- 곡λ ν€μλ: κ·Έλ£Ήμλ€μ μ νΈλ ν΅ν© λΆμ
- μλ¦Ό μμ€ν : "μ΄λν μκ°μ΄μμ!" μ€μκ° μλ¦Ό
- μ΄λ©μΌ νμκ°μ : μμ ν μ΄λ©μΌ κΈ°λ° κ³μ μμ±
- OAuth λ‘κ·ΈμΈ: Google, Kakao, Naver μμ λ‘κ·ΈμΈ
- κ³μ μ°ΎκΈ°: μμ΄λ/λΉλ°λ²νΈ μ°ΎκΈ° λ° μ¬μ€μ
| μΉ΄ν κ³ λ¦¬ | κΈ°μ | λ²μ | μ€λͺ |
|---|---|---|---|
| Core | Java | 17 | LTS κΈ°λ° λ°±μλ μΈμ΄ |
| Framework | Spring Boot | 3.2.1 | REST API λ° μ ν리μΌμ΄μ νλ μμν¬ |
| Web | Spring Web | 3.2.1 | RESTful API κ°λ° |
| Persistence | Spring Data JPA | 3.2.1 | ORM κΈ°λ° λ°μ΄ν° μ κ·Ό |
| Query | QueryDSL | 5.0.0 | νμ μμ λμ 쿼리 |
| SQL Mapper | MyBatis | 3.0.3 | SQL κΈ°λ° λ°μ΄ν° μ²λ¦¬ |
| Database | MariaDB | 3.1.4 | κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ |
| Security | Spring Security | 3.2.1 | μΈμ¦ λ° μΈκ° μ²λ¦¬ |
| Auth | OAuth2 Client | 3.2.1 | μμ λ‘κ·ΈμΈ |
| Auth | JWT (jjwt) | 0.11.5 | ν ν° κΈ°λ° μΈμ¦ |
| Validation | Spring Validation | 3.2.1 | μμ² κ° κ²μ¦ |
| API Docs | Springdoc OpenAPI (Swagger) | 2.1.0 | API λ¬Έμ μλν |
| Encryption | Jasypt | 3.0.4 | λ―Όκ° μ 보 μνΈν |
| Messaging | Nurigo SMS SDK | 4.3.0 | SMS μΈμ¦ |
| Build Tool | Maven | 3.x | μμ‘΄μ± λ° λΉλ κ΄λ¦¬ |
| Dev Tools | Spring Boot DevTools | 3.2.1 | κ°λ° μμ°μ± ν₯μ |
| Utility | Lombok | 1.18.38 | 보μΌλ¬νλ μ΄νΈ μ½λ μ κ±° |
-
μ μ₯μ ν΄λ‘
git clone https://github.com/T-BluePot/barogagi-back.git cd barogagi-back -
νκ²½ μ€μ
# application.yml λλ application.properties μ€μ # (DB, OAuth, JWT, Jasypt κ΄λ ¨ κ° νμ)
-
μμ‘΄μ± μ€μΉ λ° λΉλ
./mvnw clean install
-
κ°λ° μλ² μ€ν
./mvnw spring-boot:run λλ java -jar target/barogagi-1.0-SNAPSHOT.jar
barogagi-back/
βββ .github/ # GitHub μν¬νλ‘μ°/μ€μ
βββ src/
β βββ main/
β βββ java/com/
β β βββ barogagi
β β βββ config/ # ai κ΄λ ¨ μ½λ
β β βββ approval/ # μΈμ¦ κ΄λ ¨ μ½λ
β β βββ config/ # μ€μ ν΄λμ€
β β βββ kakaoplace/ # μΉ΄μΉ΄μ€ μ₯μ κ²μ API κ΄λ ¨ μ½λ
β β βββ logging/ # λ‘κ·Έ κ΄λ ¨ μ½λ
β β βββ mainPage/ # λ©μΈνμ΄μ§ API κ΄λ ¨ μ½λ
β β βββ member/ # νμ API κ΄λ ¨ μ½λ
β β βββ naverblog/ # λ€μ΄λ² λΈλ‘κ·Έ API κ΄λ ¨ μ½λ
β β βββ plan/ # κ³ν API κ΄λ ¨ μ½λ
β β βββ region/ # μ₯μ API κ΄λ ¨ μ½λ
β β βββ response/ # API μλ΅ κ°μ²΄
β β βββ schedule/ # μΌμ API κ΄λ ¨ μ½λ
β β βββ sendSms/ # λ©μμ§ λ°μ‘
β β βββ tag/ # νκ·Έ API κ΄λ ¨ μ½λ
β β βββ terms/ # μ½κ΄ API κ΄λ ¨ μ½λ
β β βββ util/ # μ νΈ API κ΄λ ¨ μ½λ
β β βββ Application.java # λ©μΈ μ€ν ν΄λμ€
β β βββ SwaggerConfig # Swagger κ΄λ ¨ μ½λ
β βββ resources/
β βββ mapper # 쿼리
β βββ application.properties/ # νκ²½μ€μ (DB, OAuth, JWT λ±)
βββ .gitignore # Git 무μ νμΌ λͺ©λ‘
βββ Dockerfile # Docker μ΄λ―Έμ§ λΉλ μ€μ
βββ README.md # νλ‘μ νΈ μ€λͺ
λ° μ€ν λ°©λ² :contentReference[oaicite:1]{index=1}
βββ pom.xml # Maven μμ‘΄μ± λ° λΉλ μ€μ :contentReference[oaicite:2]{index=2}
<type>(<scope>): <subject>
<body>
<footer>
Type
feat: μλ‘μ΄ κΈ°λ₯ μΆκ°fix: λ²κ·Έ μμ docs: λ¬Έμ μμ style: μ½λ ν¬λ§·ν , μΈλ―Έμ½λ‘ λλ½ λ±refactor: μ½λ 리ν©ν λ§test: ν μ€νΈ μ½λchore: λΉλ, ν¨ν€μ§ λ§€λμ μ€μ λ±design: CSS λ± UI λμμΈ λ³κ²½
μμ
feat(auth): μ΄λ©μΌ λ‘κ·ΈμΈ κΈ°λ₯ ꡬν
- μ΄λ©μΌ/λΉλ°λ²νΈ κ²μ¦ λ‘μ§ μΆκ°
- λ‘κ·ΈμΈ μ€ν¨ μ μλ¬ λ©μμ§ νμ
- λ‘λ© μν UI ꡬν
Closes #123main # νλ‘λμ
λ°°ν¬
βββ develop # κ°λ° ν΅ν©
βββ feat/ # κΈ°λ₯ κ°λ°
βββ fix/ # λ²κ·Έ μμ
βββ design/ # UI/UX μμ
βββ docs/ # λ¬Έμ μμ
λΈλμΉ λ€μ΄λ°
feature/login-pagefix/ranking-animationdesign/main-pagedocs/readme
λ°λ‘κ°κΈ° νλ‘μ νΈμ κΈ°μ¬ν΄μ£Όμ μ κ°μ¬ν©λλ€!
- Fork μ΄ μ μ₯μ
- λΈλμΉ μμ± (
git checkout -b feature/AmazingFeature) - μ»€λ° (
git commit -m 'feat: Add some AmazingFeature') - Push (
git push origin feature/AmazingFeature) - Pull Request μμ±
- μ£ΌκΈ°: 2μ£Όμ 1ν
- μμΌ: μ λμ (λ§€μ£Ό μμμΌ λ Όμ)
- λ°©μ: μ¨λΌμΈ λλ μ€νλΌμΈ
- 컨벀μ κ°μ΄λ μ΅μ’ νμ
- API λͺ μΈμ μμ±
- νλ‘μ° μ°¨νΈ μμ±
- Use Case Diagram μμ±
- GitHub νλ‘μ νΈ μ€μ
- README μ λ°μ΄νΈ
T-BluePot - μ΄μ λμΉλ κ°λ°μλ€μ λͺ¨μ
| μν | λ΄λΉμ | GitHub |
|---|---|---|
| νλ‘ νΈμλ | μμ° | @jeong-eun-woo |
| νλ‘ νΈμλ | μλ¦Ό | @μλ¦Ό |
| λ°±μλ | ν¨κ²½ | @dksgyrud1349 |
| λ°±μλ | λ€λ―Ό | @ν¨κ²½ |
μ΄ νλ‘μ νΈλ MIT λΌμ΄μ μ€ νμ λ°°ν¬λ©λλ€. μμΈν λ΄μ©μ LICENSE νμΌμ μ°Έμ‘°νμΈμ.
μ΄ νλ‘μ νΈλ λ€μ μ€νμμ€ νλ‘μ νΈλ€μ λμμ λ°μμ΅λλ€:
- Java 17 - λ°±μλ μΈμ΄, LTS λ²μ
- Spring Boot 3.2.1 - μ ν리μΌμ΄μ νλ μμν¬
- Spring Security - μΈμ¦/μΈκ° μ²λ¦¬
- JPA / Hibernate - ORM κΈ°λ° λ°μ΄ν° μ²λ¦¬
- QueryDSL - νμ μμ λμ 쿼리
- MyBatis - SQL κΈ°λ° λ°μ΄ν° μ κ·Ό
- MariaDB - κ΄κ³ν λ°μ΄ν°λ² μ΄μ€
- JWT - ν ν° κΈ°λ° μΈμ¦
- Springdoc OpenAPI - API λ¬Έμν
β μ΄ νλ‘μ νΈκ° λ§μμ λμ ¨λ€λ©΄ Starλ₯Ό λλ¬μ£ΌμΈμ! β
Made with β€οΈ by T-BluePot Team
Β© 2025 Barogagi. All rights reserved.