[Project]/Favor 프로젝트 7

년/월 필터 Validation, 회원가입시 자동 이름과 랜덤 ID 생성

년/월 필터 Validation https://eggmomo.tistory.com/76 프로젝트 날짜 필터 구현 Reminder 클래스의 LocalDate 멤버 reminderDate를 년/월 별로 모아 List를 반환하는 API 구현 public interface ReminderRepository extends JpaRepository { List findAllByReminderDateBetween(LocalDate start, LocalDate end); } JPA를 활용해 s eggmomo.tistory.com 저번 구현한 필터의 년/월 유효값 체크를 위한 부분을 다음과 같이 추가했다. 회원가입시 자동 이름과 랜덤 ID 생성 회원가입 단계를 이메일(중복체크)과 비밀번호 등록 (SignUp) 아이디(..

프로젝트 날짜 필터 구현

Reminder 클래스의 LocalDate 멤버 reminderDate를 년/월 별로 모아 List를 반환하는 API 구현 public interface ReminderRepository extends JpaRepository { List findAllByReminderDateBetween(LocalDate start, LocalDate end); } JPA를 활용해 start 날짜와 end 날짜 범위에 해당하는 reminderDate 값을 갖는 Reminder 리스트를 반환하도록 Repository 내에 정의해놓았다. 서비스단의 findReminderByListByMonthAndYear 메서드 유저의 식별자와 찾고자 하는 리마인더의 년도와 월을 파라미터로 받는다. public List readRemin..

@Builder.Default

warning: @Builder will ignore the initializing expression entirely.프로젝트를 진행하던 도중 위와같은 경고를 마주치게 되었다 (에러는 아니다). 그리고 이어서 다음 조언들이 적혀 있었다.If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.@Builder 어노테이션의 Default 옵션을 사용하라는 말인데, 이를 이해하기 위해서 @Builder 어노테이션의 성질을 이해할 필요가 있었다. 생성자를 사용할 때에는 객체를 생성할 때 ..

User 삭제 시 FriendList에서 사라지지 않는 이슈

다음과 같이 두 User 가 있다고 할 때 User “페이버222”를 User “페이버111”의 Friend로 추가 (UserFriend) 하지만 User “페이버222”를 삭제해도 User “페이버111”의 friendList에서 사라지지 않는 이슈가 있었다. 다른 매핑된 도메인 사이에서는 Cascade가 잘 일어났지만 User와 Friend 도메인 사이에서는 그렇지 않았다. 이는 어플의 기획에 의한 Friend의 특수함 때문이다. Friend는 boolean 필드 isUser 에 의해서 사용자가 다른 사용자를 친구로 추가한 FriendUser인지 직접 생성한 friend인지 구분된다. User A가 User B를 친구로 추가해 자신의 friendList에 추가해도 User B의 DB에는 아무 변화가 ..

API 응답 ResponseDto 에서 ResponseEntity로 바꾸기

DB의 User 를 삭제하는 deleteUser 메서드가 Controller 계층, Service 계층에 아래와같이 정의되어 있고 이와 관련된 메서드들도 다음과 같다고 하자. @ApiOperation("회원 탈퇴") @DeleteMapping("/{userNo}") public UserDetailResponseDto deleteUser(@PathVariable Long userNo){ return userService.deleteUser(userNo); } Controller 단 deleteUser 메서드 @Transactional public UserDetailResponseDto deleteUser(Long userNo){ User user = findUserByUserNo(userNo); userR..

import가 제대로 되지 않는 오류

얼마 전까지만 해도 괜찮았는데, Spring 프로젝트파일을 다시 여니 전체에 빨간불이 들어와있는 이슈가 발생했다. 한 5초정도 멍을 때리다가, import가 제대로 적용되지 않아 생긴 문제라는것을 깨닫고 구글(신)께 여쭤보기로 했다. https://velog.io/@jeon-yj/Spring-boot-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BC%80%EC%9D%B4%EC%8A%A4-%EC%9E%91%EC%84%B1 Spring boot, 인텔리제이 import 에러 본 게시물은 인프런 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 강의를 듣고 개인 공부용으로 작성하였습니다. 테스트 케이스 개발한 기능을 실행해서 테스트 할때 자바의 m velog.io 위 블..

회원가입 처리 이슈 (API 분리)

이슈 하나의 API를 통해 회원가입 처리를 하는 대신 두 개의 뷰로 나누고 그에 맞춰 API를 분리하기로 함. 회원가입 API를 통해 생성된 User를 검색한 후 프로필생성 API를 통해 User에 프로필 정보를 추가하려고 했는데, 서버 단에서 회원가입 API의 결과를 프로필생성 API의 파라미터 값으로 사용하는 방법에 대해서 고민하게 되었다. (서비스에서 static 필드를 만들어야하나.. 까지 고민했다..) 해결 클라이언트 파트 친구들과 이야기한 결과, userResponseDto를 반환하면 클라이언트단에서 DTO의 User 식별자를 뽑아내어서 프로필 생성 API를 호출할 때 사용하면 된다고 한다. 전부 서버단에서 처리할 생각에 고민중이었는데 클라이언트단의 도움을 진작에 고려해봤다면 빨리 해결되지 않..