
API 명세서 작성은 이전에 한번 작성해본 경험이 있어서 어렵지 않게 작성했습니다.

ERD 또한 2개에 테이블을 생성하고 서로 연관 관계를 맺는데 어렵지 않게 작성했습니다.

SQL query문 작성은 READ.ME에 코드별로 입력해서 어렵지 않게 작성했습니다.

일정 CRUD 기능을 먼저 구현한 후에 유저 CRD를 작성하려 했으나
유저가 먼저 등록이 되어야 일정을 생성할 수 있기 때문에 유저 CRD를 먼저 구현
이후에 일정 CRUD 기능을 구현
일정 Entity와 유저 Entity에 동일하게 작성일과 수정일이 포홤
BaseEntity 라는 부모 클래스 생성 후 자식 클래스에 상속
public class Schedule extends BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
// 필드 값 중복으로 BaseEnity 클래스 생성 후 상속
}
public class User extends BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
// 필드 값 중복으로 BaseEnity 클래스 생성 후 상속
}
```public abstract class BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
}
application 실행 시 MySQL 컬럼이 java 지정 순서가 아닌 알파벳 순으로 나열
직접 MySQL console창 실행 후 테이블 생성해줌
ddl-auto=create 설정으로 테이블 drop 후 create 실행되서 효과 없음
-> 삭제 시 반환되는 값이 없어야 함 ->
Contorller클래스에서 ResponseEntity 반환 타입 설정
Service클래스에서 반환타입 없는 void로 실행
수정 전
public ScheduleResponseDto updateSchedule(Long id, String title, String contents) {
Schedule findSchedule = scheduleRepository.findByIdOrElseThrow(id);
Schedule updateSchedule = new Schedule(title, contents);
return new ScheduleResponseDto(findSchedule.getId(), updateSchedule.getTitle(),
updateSchedule.getContents());
}
수정 후
public ScheduleResponseDto updateSchedule(Long id, String title, String contents) {
Schedule findSchedule = scheduleRepository.findByIdOrElseThrow(id);
Schedule updateSchedule = new Schedule(title, contents);
return new ScheduleResponseDto(findSchedule.getId(), updateSchedule.getTitle(),
updateSchedule.getContents(), findSchedule.getusername());
}
Filter 에 대한 지식부족으로 강의를 반복적으로 학습하고 코드를 작성하려 했으나
일단 강의 내용에 나온 코드를 따라서 타이핑을 진행함
로그인이 성공했다는 로직을 실행하려 했으나 어려워 구현 실패함.
userController 클래스에서 회원가입 postMapping을 Void로 진행한 후에
postman 입력시 정상적으로 코드만 반환됨
하지만 유저를 생성하려하면 로그인해주세요 라는 로그가 반복적으로 실행됨
Fiter클래스에서 선언한 배열 값을 추가함.
추가 전
private static final String[] WHITE_LIST = {"/users/*"};
추가 후
private static final String[] WHITE_LIST = {"/users/*","/users","/schedules","/schedules/*"};
로그인 기능은 제대로 구현하지 못한 것 같습니다.
email과 password를 입력하면
log.info("정상적으로 로그인 되었습니다.")
라는 성공 로직을 실행시키야 하는데 어려운것 같습니다. 나중에 피드백 영상을 보고 여러 번 반복해서 써봐야 할것 같습니다.
Spring 에서 사용하는 Annotation이 여러가지가 있는 것 같은데 일단 지금 배운것들 부터
어떤 역할하는지 습득하고 이후에 계속적으로 학습해야 할 것 같습니다.