4주 차는 JPA를 맛보기로 써봤다. 회사에서는 iBatis, MyBatis를 쓰는데 JPA는 언제쯤 쓸 수 있을까? 다음 회사는 꼭! 스프링부트와 JPA를 사용하는 곳을 가고 싶어서 이참에 JPA책도 구매했다.🤭 TDD로 구현하는 것이 과제의 목표 중 하나였는데, 나 같은 경우 일단 로직을 다 구현해놓고 테스트는 나중에 작성했는데 과제 풀이 영상을 보니 하나하나 그때마다 필요한 기능을 구현하고 나서 테스트해서 빠르게 되는지 안 되는지 빠르게 반복해가면서 작성해야한다는 것을 느꼈다. Git 커밋 메시지도 되도록 커밋 컨벤션대로 작성하고자 했다! 🤗
@RequestParam
으로 지정했다가 컨트롤러 테스트를 해보니 에러가 발생했다. 대신 @PathVariable
을 사용했더니 되는 것이었다..! 간단하게 말하자면 @PathVariable
은 @Requestmapping
의 URL에 {}
안에 들어가는 path variable을 받는다. (쿼리 스트링X)@GetMapping("/{id}")
이런 식으로 되어 있어 path variable을 받아야 하는데 @RequestParam
을 사용하니 에러가 나는 게 당연지사였다. 😓ProductServiceImpl
처럼 뒤에 Impl
가 붙는 게 사실 좋은 이름은 아니다. 적절한 이름을 찾지 못해서 그냥 Impl을 붙이는 것이기 때문이다.예) 특정 API를 호출하는 것을 테스트하고 있다고 가정해 보면
/some-api는 로그인하지 않은 사용자가 요청하면 403 Forbidden을 응답한다
/some-api는 로그인한 사용자가 요청하면 something을 응답한다
저번 주부터 <구글 엔지니어는 이렇게 일한다> 북 스터디도 참여하게 되었다. 읽기를 미루고 미루던 책이었는데 마침 타이밍이 좋아 신청했다. 벌써 코드숨을 한 지 한 달이 지났다. 부디 초심 잃지 않고 남은 한 달도 열심히 공부해 12월을 잘 마무리하고 싶은 마음이다.