본문 바로가기

분류 전체보기231

HV000030: No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type 'java.lang.Integer' 에러 해결방법 들어가며 @Valid 어노테이션에서 제공하는 @NotBlank / @NotEmpty 을 잘못 사용하는 경우 생기는 에러이다. 원인 @Valid 기능들 중에 @NotBlank / @NotEmpty / @NotNull 이용하여 파라미터로 넘어오는 데이터에 설정을 해주면 편리하게 컨트롤 할 수 있는 장점이 있다. 하지만 해당 어노테이션의 특성을 잘 이해하지 못하고 사용하는 경우 다음의 에러를 보게 된다. HV000030: No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type 'java.lang.Integer' 해당 에러의 경우는 어노테이션으로는 @NotEmpty를 Integer 타입의 데.. 2022. 3. 12.
몽고 디비 컬렉션 필드 변경시 Valid Error 해결 방법 (feat. MongoDB Compass) 들어가며 개발 도중 기존 기획이 변경되면서 몽고디비 컬렉션 구조가 변경되었다. 기존에 있던 필드 하위에 내용이 변경되는 사항이었는데 기존 object 타입에서 array 타입으로 변경되는 사항이었기 때문에 이를 반영하기 위해 컬렉션을 몽고디비 컬렉션을 드롭하고 새로 만드는 것보다 필드를 변경하는 것이 효율적이라 생각하였고, 그 과정에서 겪었던 Valid Error 해결 방법 및 필드 업데이트 방법을 정리한다. 개발환경 데이터그립 (쿼리문 이용시 사용) 몽고디비 콤파스 (Validation 설정 변경 및 json 데이터 값 변경시 사용) 업데이트 쿼리문으로 필드 삭제하기 아래 쿼리문을 데이터그립에서 실행 후 컬렉션을 확인해보면 사라진 것을 확인할 수 있다. db.컬렉션명.update( {‘필드명’: {'$.. 2022. 3. 4.
MySQL8 - ERROR 1045 Access denied 시 비밀번호 재설정 방법 (feat. 비밀번호 정책 변경 방법) 들어가며 해당 방법은 mysql8 버전에서 사용 가능한 방법이다. 예전에도 이 현상때문에 고생한적 있었는데 정리를 해놓지 않아 이번 기회에 제대로 정리해 놓는다. 시작하기전 mysql —version 명령어를 통해 버전 확인 후 아래 순서대로 방법을 따라하자. 1. MySQL 서버 정지 mysql.server stop (brew services stop mysql) 2. 비밀번호 없이 MySQL 접속하기 위한 서버 시작 mysql.server start —skip-grant-tables 3. root 유저로 비밀번호 없이 로그인 mysql -u root 4. mysql 테이블 접근 use mysql; (전체 테이블 보기 - show databases;) 5. 권한 변경 FLUSH PRIVILEGES; 6.. 2022. 2. 27.
@PathVariable & @RequestParam 어노테이션 들어가며 스프링 컨트롤러에서 파라미터를 받을 때 사용하는 @Pathvariable와 @RequestParam 어노테이션에 대해 정리한다. @PathVariable - Restful API URI형태로 요청을 받을 때 @PathVariable 어노테이션을 사용한다. - http://localhost:8080/user/email/{email} 형태로 쿼리스트링 형식으로 들어오는 @RequestParam에 비해 URI가 깔끔하다 - URI에 {} 안에 있는 값을 @PathVariable의 name 값을 일치 시켜준다. - null이나 공백값이 들어가는 parameter라면 적용하지 않는다. - 값에 . 이 포함되어 있으면 . 뒤로는 값이 잘려서 들어온다. 사용 예시 @RequestMapping(value = .. 2022. 2. 22.
DataGrip - 테이블 정보 한눈에 확인하는 방법 들어가며 젯브레인즈에서 제공하는 디비 툴로 데이터그립을 사용하는데 개발을 하다보면 새로 테이블을 만드는 경우도 있지만 기존의 만들어진 테이블을 활용하여 개발을 해야되는 경우도 많다. 그럴때 자신이 만든 것이 아니기 때문에 테이블에 컬럼들이 어떤 조건들이 있는지 확인할 필요가 있는데 데이터그립에서는 한눈에 테이블 정보를 확인할 수 있는 방법을 제공해준다. 테이블 정보 확인 방법 먼저 데이터그립에 접속하면 다음과 같이 좌측에 테이블들이 트리 형식으로 나온다. 확인하고 싶은 테이블을 우측 클릭한 후 'Quick Documentation'을 눌러준다. 그러면 다음과 같이 테이블의 정보들이 담긴 창이 하나 뜬다. pk 정보, unique key 정보등 설정이 되어 있다면 해당 테이블의 전체 정보를 한 눈에 확인이.. 2022. 2. 21.
Kotlin - MockMvc를 이용하여 REST API 테스트하기 (feat. Json Response) 들어가며 Spring Boot에서 제공하는 @SpringBootTest 어노테이션을 이용하여 테스트를 진행할 수 있지만 해당 어노테이션으로 테스트를 진행할 시에 스프링이 관리하는 모든 빈을 등록시켜서 통합 테스트를 진행하기 때문에 상대적으로 무겁다. 그렇기 때문에 Rest API에 대한 테스트를 진행할때는 MockMvc를 이용하여 테스트를 많이 한다. MockMvc 객체란? MockMvc는 서블릿 컨테이너의 구동 없이 시뮬레이션된 MVC 환경에 모의 HTTP 서블릿 요청을 전송하는 기능을 제공하는 유틸 클래스이다. 그렇기 때문에 컨트롤러 테스트용으로 자주 사용된다. Code import org.junit.jupiter.api.Test import org.springframework.http.HttpSta.. 2022. 2. 19.