Skip to content

zyu22/honeyboard-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍯 ν—ˆλ‹ˆλ³΄λ“œ API μ„œλ²„

Spring Java MySQL Docker

React 기반 ν”„λ‘ νŠΈμ—”λ“œμ™€ μ—°λ™λ˜λŠ” RESTful API μ„œλ²„μž…λ‹ˆλ‹€.
κ²Œμ‹œνŒ κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, μ‚¬μš©μžλ“€μ΄ 자유둭게 μ†Œν†΅ν•  수 μžˆλŠ” ν”Œλž«νΌμ„ μœ„ν•œ λ°±μ—”λ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

πŸ“± μ—°κ΄€ ν”„λ‘œμ νŠΈ

  • ν”„λ‘ νŠΈμ—”λ“œ: honeyboard-client
    • React 18 기반의 μ›Ή ν΄λΌμ΄μ–ΈνŠΈ
    • Material-UIλ₯Ό ν™œμš©ν•œ λ°˜μ‘ν˜• λ””μžμΈ
    • Reduxλ₯Ό ν†΅ν•œ μƒνƒœ 관리

πŸ‘₯ νŒ€μ› μ†Œκ°œ


zyu22

πŸ‘‘ λ°±μ—”λ“œ νŒ€μž₯

kkangssu

πŸ”¨ λ°±μ—”λ“œ 개발

rpeowiqu

πŸ”¨ λ°±μ—”λ“œ 개발

yujeong789

πŸ”¨ λ°±μ—”λ“œ 개발

SungMoonPark

πŸ”¨ λ°±μ—”λ“œ 개발
## πŸ›  기술 μŠ€νƒ
λ°±μ—”λ“œ
λ°μ΄ν„°λ² μ΄μŠ€
인프라

πŸ“‹ API λͺ…μ„Έ(μˆ˜μ •μ€‘-μΆ”ν›„ λ…Έμ…˜μ£Όμ†Œλ„ 포함될 μ˜ˆμ •)

상세 API λ¬Έμ„œλŠ” Swagger UIλ₯Ό 톡해 μ œκ³΅λ©λ‹ˆλ‹€: APIλ¬Έμ„œ

πŸ“‹ λ°μ΄ν„°λ² μ΄μŠ€ 섀계 (μˆ˜μ •μ€‘)

ERD

erDiagram
    Users ||--o{ User_Roles : has
    Users ||--o{ Posts : writes
    Users ||--o{ Comments : writes
    Boards ||--o{ Posts : contains
    Posts ||--o{ Comments : has
    
    Users {
        bigint user_id PK
        string email
        string username
        string nickname
        datetime created_at
    }
    Posts {
        bigint post_id PK
        bigint board_id FK
        bigint user_id FK
        string title
        string content
        datetime created_at
        datetime updated_at
    }
Loading

πŸš€ μ£Όμš” κΈ°λŠ₯

πŸ‘€ 인증 및 λ³΄μ•ˆ

  • JWT 기반 인증
  • Spring Securityλ₯Ό ν™œμš©ν•œ λ³΄μ•ˆ
  • OAuth2.0 μ†Œμ…œ 둜그인
    • ꡬ글 둜그인 연동
    • 카카였 둜그인 연동
    • 넀이버 둜그인 연동
  • μ†Œμ…œ 계정과 둜컬 계정 톡합 관리

πŸ“ API κΈ°λŠ₯

  • RESTful API 섀계
  • κ²Œμ‹œνŒ/κ²Œμ‹œκΈ€/λŒ“κΈ€ CRUD
  • νŽ˜μ΄μ§• 및 검색
  • 파일 μ—…λ‘œλ“œ

πŸ” μ„±λŠ₯ μ΅œμ ν™”

  • νŽ˜μ΄μ§• 처리 μ΅œμ ν™”

πŸ’» 둜컬 개발 ν™˜κ²½ μ„€μ •

ν•„μˆ˜ μš”κ΅¬μ‚¬ν•­

- JDK 17
- Maven
- MySQL 8.0
- Docker (선택사항)

STS μ‹€ν–‰ μ„€μ •

  1. ν”„λ‘œμ νŠΈ 우클릭 β†’ Run As β†’ Run Configurations
  2. Spring Boot App 선택
  3. Arguments νƒ­ 클릭
  4. VM arguments에 λ‹€μŒ μΆ”κ°€: -Dspring.profiles.active=dev

μ„€μΉ˜ 및 μ‹€ν–‰

  1. μ €μž₯μ†Œ 볡제
git clone https://github.com/zyu22/honeyboard-server.git
cd honeyboard-server
  1. ν™˜κ²½ μ„€μ •
cp src/main/resources/application.properties.example src/main/resources/application.properties
# λ°μ΄ν„°λ² μ΄μŠ€, Redis λ“± μ„€μ • μˆ˜μ •
  1. μ‹€ν–‰
mvn spring-boot:run

도컀 μ‹€ν–‰

docker-compose up -d

πŸ“œ 개발 κ·œμΉ™

Git 브랜치 μ „λž΅

main (배포용)
└── develop (개발용)
    β”œβ”€β”€ feat/* (κΈ°λŠ₯ 개발)
    └── fix/* (버그 μˆ˜μ •)

컀밋 λ©”μ‹œμ§€

feat: μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€
fix: 버그 μˆ˜μ •
docs: λ¬Έμ„œ μˆ˜μ •
refactor: μ½”λ“œ λ¦¬νŒ©ν† λ§
test: ν…ŒμŠ€νŠΈ μ½”λ“œ
chore: 기타 변경사항

🌐 배포 ꡬ쑰

graph LR
    Client[ν”„λ‘ νŠΈμ—”λ“œ<br/>React App] --> API[API Server<br/>Spring Boot] --> DB[(MySQL)]
    API --> Cache[(Redis)]
Loading
  • GitHub Actionsλ₯Ό ν†΅ν•œ μžλ™ 배포
  • AWS EC2에 Docker둜 운영
  • NGINXλ₯Ό ν†΅ν•œ λ¦¬λ²„μŠ€ ν”„λ‘μ‹œ

⏳ 개발 진행 상황

단계 μƒνƒœ
ν”„λ‘œμ νŠΈ μ„€μ • βœ…
DB 섀계 βœ…
API λ¬Έμ„œ μž‘μ„± πŸ—
μ‚¬μš©μž 인증 πŸ—
κ²Œμ‹œνŒ API πŸ“
배포 ꡬ성 πŸ“

ν—ˆλ‹ˆλ³΄λ“œ λ°±μ—”λ“œ νŒ€μ΄ λ§Œλ“  ❀️ ν”„λ‘œμ νŠΈ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published