인프런 워밍업 클럽 3기 BE 스터디 3주차

인프런 워밍업 클럽 3기 BE 스터디 3주차

💻 강의

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

 

📚 학습

Data Class

Data Class가 무엇이고, 어떤 용도로 사용되는지 찾아봤다


CustomException

Java Spring Project를 할 때 ErrorCode를 enum으로 관리해 CustomException을 사용한 적이 있다

미니 프로젝트에 CustomException을 적용하려고 Kotlin으로 변환해보니 막히는 부분이 있었지만, 참고한 자료 덕분에 해결할 수 있었다

{
    "timestamp": "2025-03-18T01:46:23.5967528",
    "status": 404,
    "message": "사용자를 찾을 수 없습니다."
}

아쉬운 점

이번 주는 몸이 안 좋아서 평일 동안 회복하는 데 집중했고, 주말에는 평일에 못한 미션 4와 미션 5를 제출하였다

작년 9월부터 지금까지 부트캠프와 스터디를 하면서 실력 향상에 집중하다 보니 피로가 쌓여 면역력이 떨어졌다😥

건강 관리를 못해 결국 이번 주에 강의를 많이 듣지 못한 부분이 아쉽다


회고

토요일 오전에 수액을 맞고 많이 괜찮아져서 다음 주는 이번 주에 못한 만큼 열심히 해야겠다

다음 주는 강의도 듣고, 미니 프로젝트 기능 보완, 인증/인가 구현, 예외 처리를 해야겠다

 

 

🎯 미션 4와 미션 5

  • 조회 REST API 만들기

  • 조회 API를 개발한 뒤 테스트 코드를 작성

  • 테스트 케이스는 3개 이상, 모든 케이스가 어떤 환경에서도 성공해야 함

  • 커밋 메시지 : [미션4] 조회 REST API 만들기

  • 미션4 제출 스레드에 깃허브 커밋 링크를 공유


  • 삽입, 수정, 삭제 REST API 만들기

  • 삽입, 수정, 삭제 API를 개발한 뒤 테스트 코드를 작성

  • 테스트 케이스는 API별로 3개 이상, 모든 케이스가 어떤 환경에서도 성공해야 함

  • 커밋 메시지 : [미션5] 삽입, 수정, 삭제 REST API 만들기

  • 미션5 제출 스레드에 깃허브 커밋 링크를 공유


문제

테스트 케이스를 3개 이상 작성해야 하는데 어떤 경우로 나뉘어서 작성해야 하는지 잘 모르겠다

아직 테스트 케이스를 작성하는 것은 어려워서 일단 Repository에서 사용하는 메서드가 제대로 동작하는지 테스트 코드를 작성해 확인하였다

  • findAll()

  • findById()

  • findDepartmentByCode()

  • findCourseByIdAndStudent()


회고

findCourseByIdAndStudent() 메서드가 잘 동작하는지 테스트 코드를 작성했을 때 의도한 대로 결과가 나와서 뿌듯했다

아직은 간단하게 테스트 코드를 작성할 수 있을 정도이지만, 계속 하다 보면 익숙해질 것 같다

...
    @Test
    fun testFindCourseByIdAndStudent() {
        logger.info { "findCourseByIdAndStudent 테스트 시작" }
        val student = userRepository.findById(1L).get()
        val course = courseRepository.findCourseByIdAndStudent(1L, student).get()

        logger.info { "학생 이름: ${student.name}" }
        logger.info { "수강 과목의 학생 이름: ${course.student.name}" }
        assertThat(course.student).isEqualTo(student)
        logger.info { "findCourseByIdAndStudent 테스트 종료" }
    }
}
2025-03-23T21:26:12.090+09:00  INFO 5532 --- [           main] c.k.a.d.c.r.CourseRepositoryTest         : findCourseByIdAndStudent 테스트 시작
Hibernate: 
    select
        u1_0.id,
        u1_0.academic_year,
        u1_0.code,
        u1_0.created_at,
        u1_0.department_id,
        u1_0.login_id,
        u1_0.name,
        u1_0.password,
        u1_0.role,
        u1_0.updated_at 
    from
        users u1_0 
    where
        u1_0.id=?
Hibernate: 
    select
        c1_0.id,
        c1_0.created_at,
        c1_0.student_id,
        c1_0.subject_id 
    from
        course_enrollment c1_0 
    where
        c1_0.id=? 
        and c1_0.student_id=?
2025-03-23T21:26:12.163+09:00  INFO 5532 --- [           main] c.k.a.d.c.r.CourseRepositoryTest         : 학생 이름: 학생
2025-03-23T21:26:12.164+09:00  INFO 5532 --- [           main] c.k.a.d.c.r.CourseRepositoryTest         : 수강 과목의 학생 이름: 학생
2025-03-23T21:26:12.165+09:00  INFO 5532 --- [           main] c.k.a.d.c.r.CourseRepositoryTest         : findCourseByIdAndStudent 테스트 종료

댓글을 작성해보세요.

채널톡 아이콘