Back-End/Spring17 TIL 230727 : 튜터님 예제 보며 정리한 마이크로 팁들 JPA심화 주차로 들어섰다. 앞서 배웠던 내용들을 다시 훑기도 하면서 뼈와 살이 될것같은 개선점들이 크고많게 있었다. 하나둘 기록해두고 복습하며 체화시켜보기로 한다. 어노테이션도 분류해주기 lombok / jpa 현업에서 자주 쓰인다고 한다. @ToString → 필드명 같이 출력. @Exclude 연관관계 매핑한건 출력 제외할때 List말고 Set으로 중복제거하고 LinkedHashSet으로 생성해주면 순서까지 보장해준다 지금 생각해보면 객체가 중복으로 들어올 일이 없기도 하고 중복으로 오면 손해였는데 관성적으로 List를 사용했다. 위처럼 LinkedHashSet을 생성하면 중복도 제거하고 순서도 보장이 된다. 이에 대해 자세히 성능차이를 볼 수 있는 자료나 이를 테스트해볼 기회가 되면 해보기로 한다.. 2023. 7. 28. TIL 230726 : CustomException 사용하기 예외처리 또한 개발의 중요한 역량 중 하나로 느껴진다. 오늘은 커스텀예외처리를 만들고 관리하는 법을 배웠다. CustomException 사용하기 (에러 메시지 관리 messages.properties) 커스텀예외처리를 알맞게 쓰는 게 어렵지, 쓰는 건 어렵진않다. 예외 클래스 만들기 원하는 이름으로 만들고 표준예외를 상속받는다. 생성자로 예외를 만들기 (던져주기) 원래는 IllegalArgumentException이 있던 곳에 만들어둔 예외를 생성하기만 하면된다. 위의 경우엔 메시지를 받는 생성자를 만들어 두었다. CustomException '잘' 썼을 때의 장점 아마 이 부분이 더 중요할 것 같다. 잘 쓰는 것이 어렵다. 1. 일단은 표준예외를 우선한다. 이펙티브 자바 책에서는 이렇게 소개한다. -.. 2023. 7. 26. TIL 230725 : RestControllerAdvice로 전역 예외 처리 이전 코드 현재 모든 컨트롤러에 비슷한 예외처리 문구로 try-catch문이 주렁주렁 달려있다. @Controller Advice라는 전역예외처리 기능을 이제야 알아서 안타깝지만 이제라도 알아서 리팩토링을 해본다. 추가 코드 common패키지에 해당 클래스를 추가해두었다. 추가된 코드를 하나하나 살펴보자. @RestControllerAdvice Controller와 RestConroller의 차이처럼 해당 메소드가 실행됐을 때 결과값을 바디에 바로 보내주는 기능이 추가된것이다. @ControllerAdvice 어노테이션으로 선택하여 사용이 가능하다. 아래는 @ControllerAdvice에 대한 설명이다. @ExceptionHandler, @InitBinder, @ModelAttribute 이 세 메소드.. 2023. 7. 25. TIL 230720 : ResponseEntity로 응답 메시지 보내기 기존 코드 기존에 상태코드와 메시지를 포함해서 전달해달라는 요청을 받고 위처럼 바로body에 String으로 담아서 전달했다. 이걸 보고 한 팀원께서 리뷰를 해주셨는데, ResponseEntity에 ApiResponseDto를 담아서 전달하는 형태로 통일하자고 했다. 수정된 코드 ResponseEntity타입으로 반환을 명시했고, 지네릭스로 미리 만들어둔 ApiResponse를 담기로 선언했다. ApiResponse 클래스는 위와 같이 상태코드와 상태메시지를 담는 형태이고, @ToString을 붙여줘 자동으로 해당 객체를 반환해도 필드명을 포함해서 전달하도록 했다. (팀원으로부터 처음 알게 된 기능) 해당 api의 성공과 실패시의 return을 각각 위와 같이 작성했다. ApiResponseDto의 생성.. 2023. 7. 24. TIL 230703 : JPA Buddy라는 것이 이 세상에 있었다 JPA Buddy를 알고 계셨나요? 저는 오늘 JPA Buddy라는 발음 자체를 처음으로 들었습니다. 문제 다른 프로젝트에서 쓰여진 코드를 가져오다 쿼리메소드에서 오류가 났다. 해당 Repository를 다루는 Entity인 Post에는 modifiedAt이라는 멤버가 없었다. 다행히 오류 자체는 발견하고 해결도 쉬웠다. 다만, 메소드의 이름자체만으로도 작동이 가능한 JpaRepository이지만 위와 같이 단순한 오탈자에 의해 오류를 범할 수도 있다는 생각이 들었다. 관련해서 매니져님께서는 JPA Buddy라는 플러그인을 알려주셨고, 이러한 플러그인의 존재 자체에 놀랐다. JPA Buddy 세팅 - 플러그인 - 마켓플레이스에서 검색으로 쉽게 찾을 수 있었다. 설치이후 ~~repository하고 도트 연.. 2023. 7. 3. TIL 230630 : (이어서) Entity반환시 문제. (Dto의 중요성) https://thiswooin.tistory.com/39 TIL 230629 : List to JSON 객체 반환시 오류 (jackson) 오늘도 어김없이 이해할 수 없는 타이밍에 찾아오는 오류. 단순히 GET메소드로 포스트ResponseDto를 객체로 리턴받는 건데, 하나하나 할때는 되는데 전체를 하면 안 된다. 유독 13번 Post만 GET이 안된 thiswooin.tistory.com 처음으로, 해결 못 하고 TIL을 마쳤던 어제의 오류, 아침부터 다른 방법들로 시도해보고 했는데 겨우 해결했다.... 문제 Post에는 Reply가 OneToMany로 List의 형태로 담겨있다. PostResponseDto에도 List를 추가했다. 결과적으로, Reply가 있는 Post를 Client에 반환하면 오.. 2023. 6. 30. 이전 1 2 3 다음