인프런 워밍업 클럽 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 테스트 종료
댓글을 작성해보세요.