컴공생의 발자취

[내일배움캠프 55일차 TIL] 디버그 본문

🤝 활동/내배캠TIL

[내일배움캠프 55일차 TIL] 디버그

MNY 2024. 7. 5. 01:52
728x90
반응형
2024.07.04.(목)
오늘의 진도 : 개인과제 Service & Repository 수정 중...

디버그 👾
개인과제, 코드카타, 오늘의 회고 이렇게 6개의 큰 틀로 나누어 정리할 것이다.

 

개인과제

오늘은 개인과제를 하며 아래와 같은 문제가 발생했었다.

  1. Repository 테스트 코드 작성 중에 user의 값이 중복
  2. 아래의 코드와 같은 부분에서는 값이 null인데 Service 테스트 코드에서는 어떻게 작성해야 하나

 

튜터님께 질문하면서 디버그를 하는 것을 배웠다.

뭔가 이때까지는 이게 왜 그런 문제가 발생하는지 에러만 보고 디버그를 할 생각을 안하고 있었다.

  • Step Over : 다음 줄(같은 함수 내)
  • Step Into : 다음 줄(해당 함수에서 사용하는 다른 함수의 로직에서 동작..?)
  • Step Out : 이전? -> 정확하지 않음. 안 해봤음.

디버그에서 이런 게 있는지도 모르고 있었다.

 

그렇게 해서 1번 문제는 DB의 table을 지우고 해결되었으며,

2번 문제는 수정 중.. 1번 하면서 DB 내용 다 지워서 그런건가 현재 추측 중..

 

추가적으로 알게된거는 any(Long.class)는 anyLong()과 같은 함수라는 것

아래의 코드와 같이 작성된 것은 eq()? 이런 함수를 이용해야 하는 것 -> 정확하지 않음

//        given(storeRepository.findById(TEST_STORE_ID)).willReturn(Optional.of(TEST_STORE));
//        given(reviewRepository.findById(TEST_REVIEW_ID)).willReturn(Optional.of(TEST_REVIEW));

        given(storeRepository.findById(anyLong())).willReturn(Optional.of(TEST_STORE)); // anyLong() == any(Long.class)
        given(reviewRepository.findById(anyLong())).willReturn(Optional.of(TEST_REVIEW)); // eq(TEST_STORE_ID) vs anyLong() ?

 

Repository의 테스트 코드를 작성하면서 CreateAt 이런 컬럼은 생성자로도 넣어줄 수 없고 테스트 코드를 작성하자고 Setter 어노테이션을 다는 것은 매우 비효율적이라 판단하여 질문하였던 것은 주석 처리된 방식도 있고 주석처리되지 않은 방식이 있는데 현재로서는 주석처리되지 않은 것처럼 Mockito.mock를 사용하라고 추천해주셨다. 

// 라이브러리 powerMock? setterX 값 세팅 의존성 추가..
// 현재 given when then 활용
Review mock = Mockito.mock(Review.class); // given when then 적용

 


코드 카타

* 프로그래머스로 진행

 

  • 알고리즘
    • 콜라 문제
  • SQL
    • 자동차 평균 대여 기간 구하기

 


오늘의 회고

  • 12시간 중 얼마나 몰입했는가?

오늘은 7시부터 시작! 물론 오늘도 저녁에 일찍 나가야 해서 7시부터 시작이었다.

피로가 누적되어 제대로 된 집중은 크게 못한 것 같고 테스트 코드 관련해서 튜터님께 질문 갔었던 1시간이 가장 몰입한 시간인 것 같다.

 

  • 오늘의 생각

디버그.. 이런 멋있고 좋은 걸 나는 도대체 무슨 생각으로 사용도 안하고

그냥 에러 코드만 보고 있었던거지... 과거의 나! 반성 중....... 🙇‍♀️🙇‍♂️

그리고 내일의 학습도 적고보니 드는 생각은 내 진도가 상당히 느린 것 같다ㅠ

 

  • 내일 학습할 것은 무엇인지

일단 개인과제 수정하던 거 마저 수정하고!

그래서 시간 지나고 다시 생각하니 2번은 우예 해야 하는거지.. 

내일 오전 회의 후 다른 튜터님께 한 번 더 질문하러 가야겠다.

그러고 repository는 지금 조금 더 하면 될 것도 같고..?

개인과제는 QueryDSL을 위주로 변경하는 게 목표다! 필수는 재제출 때까지 다시 해봐야겠어.

면접 준비는 아직까지 못했다... 더더더 열심히해야되는데ㅜ 열심히 놀았지ㅎ

728x90
반응형