React κΈ°λ° νλ‘ νΈμλμ μ°λλλ RESTful API μλ²μ
λλ€.
κ²μν κΈ°λ₯μ μ 곡νλ©°, μ¬μ©μλ€μ΄ μμ λ‘κ² μν΅ν μ μλ νλ«νΌμ μν λ°±μλλ₯Ό μ 곡ν©λλ€.
- νλ‘ νΈμλ: honeyboard-client
- React 18 κΈ°λ°μ μΉ ν΄λΌμ΄μΈνΈ
- Material-UIλ₯Ό νμ©ν λ°μν λμμΈ
- Reduxλ₯Ό ν΅ν μν κ΄λ¦¬
![]() zyu22 π λ°±μλ νμ₯ |
![]() kkangssu π¨ λ°±μλ κ°λ° |
![]() rpeowiqu π¨ λ°±μλ κ°λ° |
![]() yujeong789 π¨ λ°±μλ κ°λ° |
![]() SungMoonPark π¨ λ°±μλ κ°λ° |
λ°±μλ |
|
λ°μ΄ν°λ² μ΄μ€ |
|
μΈνλΌ |
|
μμΈ API λ¬Έμλ Swagger UIλ₯Ό ν΅ν΄ μ 곡λ©λλ€: APIλ¬Έμ
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
}
- JWT κΈ°λ° μΈμ¦
- Spring Securityλ₯Ό νμ©ν 보μ
- OAuth2.0 μμ
λ‘κ·ΈμΈ
- κ΅¬κΈ λ‘κ·ΈμΈ μ°λ
- μΉ΄μΉ΄μ€ λ‘κ·ΈμΈ μ°λ
- λ€μ΄λ² λ‘κ·ΈμΈ μ°λ
- μμ κ³μ κ³Ό λ‘컬 κ³μ ν΅ν© κ΄λ¦¬
- RESTful API μ€κ³
- κ²μν/κ²μκΈ/λκΈ CRUD
- νμ΄μ§ λ° κ²μ
- νμΌ μ λ‘λ
- νμ΄μ§ μ²λ¦¬ μ΅μ ν
- JDK 17
- Maven
- MySQL 8.0
- Docker (μ νμ¬ν)
- νλ‘μ νΈ μ°ν΄λ¦ β Run As β Run Configurations
- Spring Boot App μ ν
- Arguments ν ν΄λ¦
- VM argumentsμ λ€μ μΆκ°: -Dspring.profiles.active=dev
- μ μ₯μ 볡μ
git clone https://github.com/zyu22/honeyboard-server.git
cd honeyboard-server
- νκ²½ μ€μ
cp src/main/resources/application.properties.example src/main/resources/application.properties
# λ°μ΄ν°λ² μ΄μ€, Redis λ± μ€μ μμ
- μ€ν
mvn spring-boot:run
docker-compose up -d
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)]
- GitHub Actionsλ₯Ό ν΅ν μλ λ°°ν¬
- AWS EC2μ Dockerλ‘ μ΄μ
- NGINXλ₯Ό ν΅ν 리λ²μ€ νλ‘μ
λ¨κ³ | μν |
---|---|
νλ‘μ νΈ μ€μ | β |
DB μ€κ³ | β |
API λ¬Έμ μμ± | π |
μ¬μ©μ μΈμ¦ | π |
κ²μν API | π |
λ°°ν¬ κ΅¬μ± | π |
νλ보λ λ°±μλ νμ΄ λ§λ β€οΈ νλ‘μ νΈ