본문 바로가기

분류 전체보기231

Querydsl - CaseBuilder를 통한 Case When 사용 방법 들어가며 Querydsl을 사용할때 조건절이 필요한 경우 CaseBuilder를 사용하여 Case When을 사용할 수 있다. 사용 방법은 아래와 같다. 코드 - 자바 & 코틀린 아래의 코드는 자바와 코틀린에서의 코드를 정리한다. 사용방법은 크게 다르지 않다. 미세한 차이가 있으니 아래를 참고해서 사용하자. 자바 @RequiredArgsConstructor public class PointEventRepositoryImpl implements PointEventRepositoryCustom { private final JPAQueryFactory queryFactory; @Override public List calculateAmounts() { return queryFactory .select(Proj.. 2022. 2. 16.
Spring - @NotNull, @NotEmpty, @NotBlack 들어가며 API 개발시 요청 파라미터의 null 체크할시에 해당 어노테이션들이 유용하게 사용할 수 있다. 아니면 따로 null 체크를 하는 util 클래스를 만들어 사용하거나 아니면 if문 등을 통해 null 체크를 해야되는데 그렇게되면 별도의 오류 메시지를 만들거나 조건들에 따라 코드량이 증가할 수 있다. 그럼 해당 어노테이션에 대해 정리한다. @NotNull, @NotEmpty, @NotBlack 정리 및 차이점 @NotNull - Null만 허용하지 않는다. - ""(초기화 된 String) or " "(공백)은 허용한다. - 초기화나 공백의 값이 들어와 저장은 되야하지만 Null로 들어온 경우에는 오류가 나는 변수를 받을 때 사용한다. @NotEmpty - Null과 "" 둘 다 허용하지 않는다... 2022. 2. 13.
Error - IntelliJ test events were not received error 해결 방법 들어가며 테스트 코드를 돌리려하는데 'Test events were not received' 라는 메시지가 뜨며 테스트가 돌아가지 않는 상황이 발생하였다. Test events were not received 해결 방법 File -> Settings ->Build,Execution, Deployment -> Build Tools -> Gradle 순으로 이동하여 Gradle(default)로 설정되어 있는 것을 IntelliJ IDEA로 변경해준다. 이 후 다시 실행을 해보면 정상적으로 잘되는 것을 확인할 수 있다. 2022. 2. 11.
IntelliJ git tracking 안되는 상황 해결 방법 (xcrun error 및 Mac OS update 관련) 들어가며 개발을 하던 도중 인텔리제이에서 제공하는 깃 관련 기능을 사용하던 도중 갑자기 잘되던 기능이 안되는 상황(코드 변경시 인식 불가)이 생겨 해결한 방법을 정리한다. 원인 먼저 원인부터 말하자면 Mac OS를 업데이트하는 과정에서 이러한 에러가 일어난 것이다. 그러니 맥북을 쓰다가 OS 업데이트 이후 다음과 같은 에러들이 나온다면 아래 해결방법을 따라하면 된다. 먼저 이 상황을 해결하기 위해 인텔리제이에서 해결해보려고 하였지만 답이 나오지 않아 다시 깃헙에서 리포지토리를 클론하는 과정에서 원인을 알아냈다. 터미널에 깃 클론을 하니 다음과 같은 에러가 발생했다. 해결 방법 해당 에러는 xcode cli 관련 이슈로 맥북의 OS를 업데이트때마다 터지는 이슈였다. 해결하는 방법은 터미널을 통해 아래 명령.. 2022. 2. 8.
MongoDB - MongoTemplate UPDATE METHOD 들어가며 이번 개발 도중 일부 테이블들은 MongoDB로 되어 있어 해당 테이블 관련하여 수정 API를 만들던 도중 알게된 내용을 정리한다. MongoTemplate update 먼저 문제의 발단은 update 코드를 짜던 도중 updateFirst 메서드를 쓰는 과정에서 나왔다. 아래의 코드를 보면 먼저 특정 아이디로 업데이트를 할 대상을 지정하는 것이기 때문에 updateFirst를 쓰든 아니면 updateMulti를 쓰든 동작에는 이상이 없지만 개념적으로 updateFirst는 여러 대상이 나왔을 때 첫번째 대상만 업데이트를 하는 것인데 id(pk)로 대상을 찾은 후 업데이트를 하는 것이기 때문에 여러 대상이 나오지 않아 동작에는 문제가 없지만 개념적으로는 의미가 안맞을 수 있다. MongoTemp.. 2022. 2. 5.
OpenAPI & Swagger & Springdoc (1) - 개념 정리 들어가며 Swagger에 대해서 알게되어 정보를 찾아보던중 springfox swagger나 springdoc 등 헷갈리게하는 단어들이 계속 등장해서 각각을 정리한다. 무엇이든 개념이 정확히 박혀있어야 이해가 빠르다. OpenAPI Spec OpenAPI Specification (OAS) 은 RESTful API를 기술하는 표준으로 서비스에서 제공하는 API의 기능과 정보를 제공한다. OAS는 json이나 yml 형식으로 기술해야 하며 OAS 파일을 읽어서 디플로이 해주는 도구를 사용하면 아래와 같이 브라우저에서 UI를 통해 API 문서를 볼 수 있다. OAS는 예전에는 Swagger spec으로 불렸으며 3.0부터는 OpenAPI 3.0 Specification이라는 이름으로 표준화되었다. Swagg.. 2022. 1. 31.