목록TIL (108)
Skipalong's tistory
오늘은 감기가 좀 나아져서 팀과제에 신경쓰지 못했던 부분을 좀 수정 하였다. api url 의 restful한 네이밍에 대해 다시 한 번 찾아보고 적용했고, 예외상황을 추가하지 못한 부분을 추가했다. 그리고 테스트를 해 보는데 좋아요를 한 댓글을 삭제 하는 것을 테스트하는데 오류가 나면서 댓글이 삭제가 되지 않는 상황을 만났다. 콘솔창에 이런 에러가 나왔는데 이것을 테스트 한 이유가 좋아요가 존재하는 댓글을 삭제했을 때 좋아요까지 같이 삭제되는지를 테스트 한 것이라서 문제의 원인과 어느부분을 수정해야하는지는 알고 있어서 해결이 어렵지는 않았다. 해결법은 댓글 좋아요인 CommentLike와 연관관계를 가지고 있는 Comment 엔티티에 이렇게 연관관계를 설정해서 삭제를 했을 때 같이 삭제되게 해주면 되는..
오늘도 감기에 걸려서 제정신이 아닌 상태로 코딩을 한 것 같다. 그래도 게시글/댓글에 좋아요를 추가하는 기능은 구현했다. 우선 게시글 좋아요와 댓글 좋아요 엔티티를 만들고 각각에 맞게 컨트롤러, 서비스, 레포지토리를 만들어 주었다. 또 상황에 맞는 에러코드를 추가해서 예외처리까지 해주었다. 엔티티는 이런식으로 ManyToOne 으로 User와 Post를 연관시켰고 빌더 패턴으로 생성자를 만들어 보았다. 컨트롤러에는 @PathVariable로 postId를 받아오고 @AuthenticationPrincipal 으로 User정보를 받아와서 Service단에 메서드를 구현한 뒤 ResponseEntity로 반환을 하였다. 받아온 PostId로 PostRepository에서 Post를 찾아오고 받아온 User정..
오늘은 팀과제 시작이라 S.A작성을 하고 역할분담을 한 뒤 내가 맡은 좋아요 기능을 어떻게 하면 좋을지 생각하고 있는데 아침부터 계속 기침을 하던게 저녁시간에는 몸살까지 심하게 와서 정신없이 누워있었다. 그래서 오늘 TIL은 짧게 써보겠다. 그동안 나는 생성자를 만들어서 객체를 만들기만 해왔는데 이번에 찾아보면서 빌더패턴이라는 것을 보았다. 빌더패턴은 일 반 생성자 만드는것 같이 생성자를 만든다음에 @Builder 어노테이션을 붙여주면 이렇게 빌더패턴으로 객체를 생성할 수 있다. 이렇게 빌더패턴을 사용했을 때의 장점은 생성할때 필요한 파라미터가 많아졌을 때 가독성이 좋아지고 파라미터가 무엇을 의미하는 지 알아보기 편하고 파라미터를 넣어주는 순서에 상관이 없다는 점이 장점이다. 팀프로젝트 시작하자마자 몸이..
오늘은 테스트코드를 작성하는 개인과제를 제출하고 해설영상을 들었는데 과제를 하면서도 느끼고 해설영상을 보면서도 느꼈지만 정말 배워도 배워도 새로운게 계속 나오는 것 같다. 과제를하면서 여기저기 찾아보면서 새로운 라이브러리의 많은 애너테이션과 메서드들을 새로 배웠지만 해설영상을 보니 또 다른 여러가지 방법들을 보면서 좀 더 효율적이고 주어진 상황에 맞는 좋은 방법을 쓰는것이 중요한 것 같다. 그리고 저번 과제에서 문제가 있었던 application.properties에서 DB 정보와 secretkey등 보안관련 항목을 올리지 않기위해 IntelliJ 에서 환경변수를 통해 config하는 방법을 간단히 정리해보겠다. 이렇게 인텔리제이 오른쪽위에 점 세개를 누른 후 EditConfiguration 을 눌러서 ..
오늘도 어제에 이어서 체크리스트를 체크해보겠다. ✅ 체크리스트 [ ] Spring AOP 를 통해 핵심기능 수행 전/후 또는 성공/실패 케이스 별로 부가기능을 추가할 수 있다. -> AOP란 위의 그림과 같이 핵심기능과 부가기능을 분리해서 다른 관점으로 보는 것을 의미한다. 부가기능을 핵심기능에 적용하는 모듈로 사용하는 설계이다. 이렇게 부가기능을 모듈화하는 이유는 핵심기능과 부가기능이 섞여있다면 모든 핵심기능에 부가기능을 추가한다면 동일한 코드를 하나하나 코드를 모두 작성해야해서 매우 비효율적이고 핵심기능이 추가될 때 부가기능을 깜빡하는 등의 문제가 생길 수 있기 때문에 부가기능추가에 신경을 써야하고, 핵심기능을 수정할 때 핵심기능을 이해하기 위해 부가기능의 이해까지 필요하기 때문에 비효율적이다. 또 ..
오늘도 체크리스트를 체크해보겠다. ✅ 체크리스트 [ ] mockMvc 를 사용하여 Controller 테스트 코드를 작성할 수 있다. -> 우선 UserController 를 테스트 해보려면 인증/인가 과정에 필터와 Security 사용하고 있으므로 MockFilter를 만들어주고@WebMvcTest 애너테이션을 사용해 필터와 WebSecurityConfig등의 설정을 해준 뒤 MockMvc등 필요한 객체들을 설정해준 뒤 Controller의 각 메서드들을 given-when-then 패턴을 사용하여 테스트를 해주면 된다. 아직은 세부적인 것들을 보면 너무 어렵고 이해하기 힘들지만 필요한 항목에 주석을 달며 시행착오를 거쳐가며 테스트를 진행해 봐야할 것 같다. 오늘부터 숙련주차 개인과제를 리팩토링 하..