멋쟁이사자처럼 멤버 및 과제 관리 시스템입니다. Spring Boot와 JPA를 활용하여 멤버와 과제를 관리하고, 프론트엔드와 연동하여 CRUD 기능을 제공합니다.
| 기술 | 버전 |
|---|---|
| Java | 17 |
| Spring Boot | 3.x |
| Spring Data JPA | 3.x |
| MySQL | 8.x |
| Gradle | 8.x |
| Swagger(OpenAPI) | springdoc-openapi |
| HTML / CSS / JavaScript | ES6 |
git clone <repository-url>
cd Week10MySQL 서버를 실행한 뒤 데이터베이스를 생성한다.
CREATE DATABASE likelion;spring.datasource.url=jdbc:mysql://localhost:3306/likelion
spring.datasource.username=root
spring.datasource.password=비밀번호
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true./gradlew bootRun실행 후 접속
http://localhost:8080
Swagger
http://localhost:8080/swagger-ui.html
| Method | URI | 설명 |
|---|---|---|
| GET | /members | 전체 멤버 조회 |
| GET | /members?part={part} | 파트별 멤버 조회 |
| GET | /members/{id} | 단일 멤버 조회 |
| POST | /members/lions | 아기사자 등록 |
| POST | /members/staffs | 운영진 등록 |
| PUT | /members/lions/{id} | 아기사자 수정 |
| PUT | /members/staffs/{id} | 운영진 수정 |
| DELETE | /members/{id} | 멤버 삭제 |
| Method | URI | 설명 |
|---|---|---|
| POST | /members/{memberId}/assignments | 과제 등록 |
| GET | /members/{memberId}/assignments | 특정 멤버 과제 조회 |
| GET | /assignments | 전체 과제 조회 |
| GET | /assignments/{assignmentId} | 단일 과제 조회 |
| GET | /assignments/search?keyword={keyword} | 과제 제목 검색 |
| PUT | /assignments/{assignmentId} | 과제 수정 |
| DELETE | /assignments/{assignmentId} | 과제 삭제 |
전역 예외 처리(GlobalExceptionHandler)를 적용하였다.
| 예외 | 상태 코드 |
|---|---|
| MemberNotFoundException | 404 |
| AssignmentNotFoundException | 404 |
| DuplicateMemberException | 409 |
에러 응답 예시
{
"message": "멤버를 찾을 수 없습니다."
}src
└── main
├── java
│ └── com.example.week10
│ ├── member
│ │ ├── controller
│ │ ├── service
│ │ ├── repository
│ │ ├── domain
│ │ └── dto
│ │
│ ├── assignment
│ │ ├── controller
│ │ ├── service
│ │ ├── repository
│ │ ├── domain
│ │ └── dto
│ │
│ └── global
│ ├── exception
│ └── dto
│
└── resources
├── static
│ ├── index.html
│ ├── css
│ └── js
└── application.properties
- 아기사자 등록
- 운영진 등록
- 멤버 조회
- 파트별 필터링
- 멤버 수정
- 멤버 삭제
- 과제 등록
- 전체 과제 조회
- 멤버별 과제 조회
- 과제 제목 검색
- 과제 수정
- 과제 삭제
- 존재하지 않는 멤버 조회 시 404 반환
- 존재하지 않는 과제 조회 시 404 반환
- 중복 멤버 등록 시 409 반환
- Fetch API를 통한 REST API 호출
- HTTP 통신 로그 확인
- 전역 예외 처리 결과를 화면에 표시
- 멤버/과제 CRUD UI 제공