본문 바로가기
관리자

분류 전체보기

(999)
[비공개] Weekly Report - 21/06/21~21/06/27, 364일차 보호되어 있는 글입니다.
[TIL] 커스텀 Exception 만들기 : @ExceptionHandler, @ResponseStatus, @RestControllerAdvice, super() 1. 목적과 상황 클라이언트에서 온 HttpRequest에 대해서 Exception을 통해 Http status와 Json 코드를 HttpResponse로 반환하고자 한다. 다음 코드와 같이 특정 엔티티 객체를 찾고자 했는데, 못찾았을 경우 orElseThrow()를 통해 특정 Exception을 반환하는 상황이다. XxxEntity xxxEntity = xxxRepository.findById(id) .orElseThrow(() -> new CustomException("xxx.error.not.found")); CustomException은 여러가지 Exception들을 한 번에 모아놓고 @RestControllerAdvice로 처리하는 클래스 파일 내부에 정의한다. @Slf4j @RestContro..
[TIL] Querydsl cannot find symbol 에러 Querydsl을 사용하다보면 Repository에서 Q객체들을 생성할 수 없다고 하면서, querydsl cannot find symbol.. 에러가 발생한다. 구글링해보면 annotation processor 설정 문제라던가, Graven에서 querydsl의 참조 경로를 다시 지정해줘야 한다는 해결책들이 나와있다. 한가지 더 추가하자면, maven으로 프로젝트를 하는 경우 repository가 아니라 다른 클래스 파일에서 문제가 발생해서, 해당 오류 부분 때문에 Q객체를 생성하지 못하는 경우가 많았다. 생각해보면 멀쩡하게 잘 되던 build가 안되는 이유는, 내가 무언가를 바꾸었기 때문일 확률이 높다. 다른 사례들에서 보여주는 원인과 해결책은 설정이나 환경 문제인데 프로그래밍을 하면서 이런 설정들을..
[TIL] @JsonNaming 으로 Camel Case 필드값 Snake Case로 자동변환 @JsonNaming으로 클래스에 선언된 필드값들을 Camel Case로 작성하고 실제로 API를 통해 json 방식으로 데이터를 내보내거나, 받아올 때는 Snake Case로 자동으로 변환된다. 예를 들어 아래와 같이 companyId라고 작성된 필드는 외부와 API 통신을 하는 Swagger 문서에서는 company_id라고 표현된다. @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
[비공개] Weekly Report - 21/06/14~21/06/20, 357일차 보호되어 있는 글입니다.
[TIL] @JsonFormat으로 @DateTimeFormat 대신 Date까지만 받기 @DateTimeFormat을 사용하면 파라미터로 받아오는 값의 날짜 형식을 지정해줄 수 있었다. [TIL] Controller 필드 중 LocalDate 처리하기, @DateTimeFormat, Swagger 그러나, @RequestBody로 파라미터를 받고자 하면, pattern 속성을 부여해도 Swagger 상에는 Date가 아니라 DateTime으로 인식되어 초 단위 이상까지 찍혀버리게 된다. 이때는 @DateTimeFormat 대신 @JsonFormat으로 파라미터를 Json의 String 형태로 받아오도록 하고, @Schema의 example 속성에서 받아올 String의 예문을 적어주면 된다. 그냥 GET 메서드에서 Parameter로 받는 곳에서는 @DateTimeFormat을 쓰고, Re..
[TIL] MSSQL like 구문 한글 검색 MSSQL에서 like 구문으로 한글을 조회할 때, 조회가 안되면 검색어 앞에 N을 붙여주면 된다. 이렇게 하면 UNICODE로 ENCODING을 해준다고 한다. 참조 https://stackoverflow.com/questions/4251765/how-to-use-like-statement-with-unicode-strings
[스프링 기초] 9. 빈 조회하기 1. 빈 조회하기 우리가 원하는 프로그램을 위해서 이제 컨테이너에 등록된 빈들을 조회해야 한다. 즉, 구성영역에 있는 Service와 Repository 등으로 미리 맺어진 관계를 이용해서 필요한 객체들을 불러와야 한다. 2. 빈 조회해보기 빈을 조회하는 메서드는 스프링에서 미리 정해둔 여러가지 메서드를 사용한다. 코드를 보면 간단히 이해할 수 있다. 실무에서는 이런 메서드를 이용해서 빈을 조회하지도 않고, 만약 필요하다고해도 대략적인 이름만 기억하더라도 IDE가 메서드 이름의 목록을 호출해주기 때문에, 굳이 일일이 외울 필요는 없다. 그냥 테스트 코드를 통해 빈들을 조회해보는 실습만 해보면 된다. 대략 아래와 같은 코드로 테스트 해보면 된다. 코드에서 사용되는 빈 메서드 종류를 정리하면 다음과 같다. ..