미니프로젝트 TIL2 - 왜안돼ㅐㅐㅐㅐ

LIHA·2023년 2월 26일
0

항해99

목록 보기
52/54
post-thumbnail

저번에 쓰던 TIL2가 날아갔다... 내용이 기억나지 않는다... 대충 혜광팀장님이 트러블슈팅 하느라 멘붕하시던 것은 기억하는데...😭😭😭

내가 맡은 API - 일정 완료 / 되돌리기 기능

슈팅중인 트러블 내용 - service 로직에서 DTO가 받아온 값이 DB에 반영되지 않음

  • 기본값이 false로 되어있어 true로 바꿔주려고 하는데, DB에 값 변경은 안된 채로 그냥 success 메시지만 줄창 나온다.
    (return값이 String이라서 return "success"를 뱉도록 했음)

나의 생각 : DTO 부분이 문제인가?

-> 매개변수가 있는 생성자, 없는 생성자, 이거저거 만들어줘 봤지만 먹히지 않았었음
-> 생성자 만들어서 이래저래 쌈바춤을 추던 도중 'cannot deserialize from Object value' 뭐시기 하는 에러가 터짐
-> 이 에러에 대한 답은 찾지 못했음. 나 울어 으헝헝

어디선가 boolean 타입의 entity명은 isXXX 로 만들면 안된다고 보아서 isDone -> complete로 바꿈

-> 이 블로그에서 보았음. 그래서 수정함
-> 그리고 DTO의 변수명도 그냥 complete로 바꿈
-> 이렇게 해도 complete 자체가 어차피 boolean형이라서 dto.isComplete()로 boolean 타입의 값을 받아오더라

도중에 Entity 명에 오타를 발견 - comelpete? 이런 식으로 되어 있었음.

-> 이젠 영어도 못하는구나 어흐흑 따흐흑

다른 RequestDto와 비교해봄 - 크게 다를건 없었음

-> 생성자를 쓰는 DTO도 있고 아닌 DTO도 있었는데 뭐가 차이점인지 알지 못함
-> 검색해봐도 이해할만큼의 결과는 얻지 못했음. 다만 다들 같은 말을 함
-> 언제쯤 알아들을 수 있을까? 아무튼 이 방법으로는 해결못함. 생성자는 일단 지웠다

Contract(pure = true) 라는것을 보았는데 뭔소린진 이해하지 못했다

이것저것 블로그 글을 찾아보다가 DTO에 @Setter와 @NoArgsConstructor를 넣어줌

-> 이걸로 딱히 고쳐질것 같진 않은데...

진짜 도저히 못해먹겠어서 service 부분에 sout 걸어서 dto가 가져오는 값이랑 repository에 들어가는 값도 다 찍어봄

-> 뭐야. 왜 갑자기 true가 반영돼? 야 너 뭐야. 아까까지 안됐잖아.

??? 왠지 모르지만 갑자기 된다. 근데 이게 문제는 아니었을텐데?

(다른 DTO들에는 Setter나 생성자 관련 어노테이션 없어도 잘 동작)
-> @Setter를 지워봄 - 그래도 멀쩡히 잘 동작한다
-> @NoArgsConstructor 지워봄 - 뭐야 그래도 잘 동작하는데?

다음단계 작업을 위한 고민 - 프론트에서 complete = !complete 해주려면 DB값을 일단 받아와야 할텐데?

-> 그렇다면 CompleteResponseDto로 필요하지 않을까?
모르겠다. 이건 내일 고민해보자.

profile
갑자기 왜 춤춰?

0개의 댓글