Repository files navigation
Java 17
Spring Boot 3.5.0
Gradle
JPA (Hibernate)
MySQL 8
IntelliJ IDEA
Postman / HTTP Client (for API testing)
Lombok
Jakarta Servlet
BCrypt (비밀번호 암호화)
Git / GitHub
일정 관리 웹 서비스 개발
사용자 인증 기반으로 일정 CRUD 구현
쿠키/세션 기반 로그인 시스템 직접 구현 (Spring Security 미사용)
JPA 기반의 도메인 모델 설계 및 연관관계 매핑 경험
실무와 유사한 구조로 API 명세, 예외처리, Validation, 비밀번호 암호화 적용
회원가입 (Validation 적용)
로그인 (세션 기반 인증 처리)
로그아웃
내 정보 조회
비밀번호 암호화 (BCrypt)
로그인한 유저 기준 일정 등록/조회/수정/삭제
작성자만 수정 및 삭제 가능
JPA Auditing을 활용한 생성일/수정일 관리
로그인 유저가 일정에 댓글 등록/조회/수정/삭제 가능
댓글도 작성자만 수정 및 삭제 가능
일정-댓글, 유저-댓글 연관관계 매핑
기능
Method
URL
요청 값
응답 값
상태코드
일정 등록
POST
/api/schedules
{ "title": "string", "content": "string" }
{ "id": 1, "title": "...", ... }
200
일정 조회(단건)
GET
/api/schedules/{scheduleId}
PathVariable
{ "id": 1, "title": "...", ... }
200
일정 목록 조회
GET
/api/schedules
없음
[ { "id": 1, "title": "...", ... }, ... ]
200
일정 수정
PUT
/api/schedules/{scheduleId}
{ "title": "수정 제목", "content": "수정 내용" }
수정된 일정 정보
200
일정 삭제
DELETE
/api/schedules/{scheduleId}
PathVariable
없음
200
기능
Method
URL
요청 값
응답 값
상태코드
회원가입
POST
/api/users/signup
{ "username": "사용자", "email": "user@email.com ", "password": "1234" }
회원가입 완료 메시지
200
로그인
POST
/api/users/login
{ "email": "...", "password": "..." }
세션 쿠키 + 로그인 성공 메시지
200
로그아웃
POST
/api/users/logout
없음
로그아웃 완료 메시지
200
내 정보 조회
GET
/api/users/me
없음
{ "id": 1, "username": "...", "email": "..." }
200
기능
Method
URL
요청 값
응답 값
상태코드
댓글 등록
POST
/api/comments?scheduleId={id}
{ "content": "댓글 내용" }
생성된 댓글 정보
200
댓글 조회
GET
/api/comments?scheduleId={id}
없음
[ { "id": 1, "content": "...", ... }, ... ]
200
댓글 수정
PUT
/api/comments/{commentId}
{ "content": "수정 내용" }
수정된 댓글 정보
200
댓글 삭제
DELETE
/api/comments/{commentId}
PathVariable
없음
200
유저-일정: 1:N 단방향
유저-댓글: 1:N 단방향
일정-댓글: 1:N 단방향
(단일 서버 환경)
About
내일배움캠프 과제
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.