소프트웨어 개발의 지혜 - 스프링 편 4주차 회고
코드숨 - 스프링 4주차 회고
이번 주는 저번 주까지 진행하던 할 일 목록 리스트를 응용하여 새로운 프로젝트를 진행하였습니다.
고양이 장난감 가게 프로젝트를 진행하였는데, 엔티티의 필드만 늘어났지 결국에 원리는 할 일 목록과 같았기 때문에 구현을 함에 있어서는 큰 문제는 없었습니다.
다만 JPA를 적용해보는 것과 Repository를 만드는 것은 처음 해보는 것이라 조금 어려움이 있었습니다.
처음 강의를 들을 때 느낌
강의는 고양이 장난감 가게 프로젝트를 하지 않고, 저번주와 마찬가지로 할 일 목록 리스트 프로젝트로 진행하였습니다.
강의를 들으면서 Repository를 별도로 생성하고, JPA를 적용하는 방법과 이를 이용하여 테스트코드를 작성하는 방법을 배울 수 있었습니다.
스프링을 이용하여 Repository가 CrudRepository를 상속받아 메소드를 직접 구현하지 않아도 메소드들의 기능을 사용할 수 있다는 점이 신기하였습니다.
과제를 할 때 느낌
강의를 다 듣고 과제를 하려는데 막상 테스트 코드부터 작성을 하면서 이를 반영하여 메인 코드를 작성하는 것이 너무 어색하고 어려웠습니다.
항상 메인에 먼저 코드를 작성하고 이것이 잘돌아가는지 확인하기 위해 테스트코드를 짰는데 이번에는 반대로 해보려고 하니까 쉽게 되지 않았습니다.
또한 저번주까지는 Repository없이 Service까지만 구현하여 테스트코드를 작성하였는데 이번주는 Repository가 포함되다 보니 또 어떻게 테스트코드를 작성해야할지 막막했습니다.
특히 저번주에 Controller 테스트 코드를 작성할 때는 Controller는 MockMvc가 맡고, Service의 경우 mock을 이용하여 테스트하였습니다.
그러나 이번주에 Controller 테스트 코드에서는 Service가 Repository에 의존하고 있기 때문에 Controller 테스트 코드에서 이 Repository를 어떻게 처리해야할지 몰라서 어려움을 겪었습니다.
또한 실제 구현 코드에서도 Repository를 인터페이스로 두고, CrudRepository를 implements하는데 이렇게 하는데 어떻게 그 메소드를 이용할 수 있는지 몰라서 좀 헤멨습니다.
과제풀이 강의를 들으면서 느낀 점
아샬님의 해설 강의를 보는데 저번 주에 한 것을 바탕으로 테스트 코드를 작성하는 것을 보고 Repository가 추가되었다고 해서 저번 주와 크게 달라진 점은 없다는 것을 깨달았습니다.
그리고 어떻게 TDD로 구현을 하는지 해설강의에서 그 방식을 설명해주셔서 혼자서는 어려웠던 TDD에 대해 좀 더 이해할 수 있었습니다.
(이 방식을 바탕으로 다음에는 꼭 TDD를 적용해보고 싶네요ㅠ)
테스트 코드가 아직 익숙하지는 않지만 그래도 계속하다 보니 given이나 mockMvc와 perform에 대해서 좀 더 이해할 수 있었습니다.
이번 주 과정에서 아쉬운 점
이번 주에 Repository를 새로 생성하는 것과 이에 대해 JPA를 적용하는 것을 잘이해하지 못해서 많이 헤맨 것이 아쉬웠습니다.
댓글남기기