DTO → Entity 변환과 Entity → DTO 변환을 좀 더 편하게 하기 위해 ModelMapper를 도입하려 했으나, Setter를 사용해야 하는 상황에 직면했다.Setter를 사용할 경우 여러 문제점이 뒤따라 올 수 있어 가급적이면 사용을 지양하고자 했으나,
@PathVariable에 적용한 Bean Validation을 테스트하기 위해, @WebMvcTest를 이용하여 테스트를 진행하던 도중 JPA metamodel must not be empty! 에러가 발생하였다.JPA Auditing 기능을 이용하기 위해 @Spri
문제 상황 처음에는 Random한 닉네임을 만들기 위해 사용됐다. 아래가 그 코드이다. 근데 사실 내가 안만들어서 대충 알아두기만 할랬다. 하지만 여기서 문제는 내가 test 파일에서 multipart file을 mock 객체로 만들 때 발생했다. 추가 파일을 업로
Nested class를 사용했지만 test code에서 알아듣지 못하는 상황이 발생했다.ContextConfiguration을 통해 Nested class를 알아듣도록 등록해주어야 한다.
gson이 LocalDate와 LocalDateTime을 알아듣지 못하여 config를 통과하며 400 에러를 냈다.gson이 LocalDate와 LocalDateTime을 알아들을 수 있도록 직렬화와 역직렬화를 구현했다.gson에 아래 구현할 녀석들 알려주기Local
XSS Preventer 테스트 코드 작성 중 DTO를 중첩 클래스로 변환하는 과정에서 Lombok이 적용되지 않는 문제가 발생했다.build.gradle에 새로운 dependency 추가 후 해결 완료
test code를 짜던 도중 환경변수로 등록한 녀석을 데려와야하는데 데려오지 못하는 경우가 발생했다.자세히 말하자면, 해당 configuration에서 field로 환경변수를 가져온 property를 가지고 있으나 test code에서는 보통 @InjectMocks으
Controller test를 작성하던 도중 이전과는 다르게 인증된 user의 정보를 가져와서 사용해야하는 상황이 발생했다.@AuthenticationPrincipal로 user 정보를 가져와야하지만 요청에 대한 정보가 존재하지 않으므로 해당 @Authenticatio
controller test 코드를 짜던 도중 requestBody에 포함된 multipartFile을 받아오지 못한다는 것을 발견했다.우선, multipartFile은 DTO로 받으면 안된다고 한다. 따라서, requestBody가 아닌 requestPart로 따로
구현을 하다보니 HandlerMethodArgumentResolver를 상속받은 녀석이 있었으나 어떻게 내 프로젝트에 적용해야할지에 대한 방안이 모호했다. 사용하는 방식을 알고싶었는데 어떻게 찾아봐야할지 헷갈렸다.해당 interface에 대한 Docs를 찾아보고 Doc
아무래도 public한 녀석만을 테스트하다가 private한 녀석은 테스트를 하지 못해서 아쉬움이 남았다. 근데 해결할 방법이 있다니!클래스를 데려와서 클래스 내부의 private 메서드를 setAccessible(true)로 바꿔준다!우선, 참고한 블로그의 예시프로젝
static 제한자를 공부하던 도중 static class 내부에서는 this를 사용하지 못한다고 했다. 하지만 자세한 설명은 없었지... 그래서 교수님께 물어보았다.static 키워드가 붙어있다면 해당 클래스가 생성될 때, 가장 먼저 읽힌다. static 키워드가 붙
공부를 하던 중 자식 관계에 있는 클래스의 인스턴스인지 확인이 필요한 상황이 생겼다. 이때까지 항상 그 속성을 데리고 와서 값을 비교했으나 막상 인스턴스인지 확인하려면 방법이 필요했다.해당 녀석이 자식 클래스의 인스턴스인지 확인하기 위해 instanceof를 사용했다.
사실 그냥 list를 가져오는 상황이라 원래 짠 코드는 아래와 같다.하지만 한 줄로 변경하는 방법을 발견...!!
문제 상황 해결 방법
spring security를 구현하기 위해 기존 프로젝트를 참고하던 중 property에서 @ConstructorBinding에 빨간줄이 생겼다. 마우스를 올려보니 '@ConstructorBinding' not applicable to type이라는 오류 메세지가 있
모달 창을 띄우는데 안타깝게도 모달창이 부끄러운지 회색 배경 뒤로 숨는다. 심지어 배경이 제일 위인지 다른 곳을 클릭하면 모달창이 자동으로 꺼지는 것도 안먹는다. 얼마나 부끄러우면 저렇게까지 뒤로 갈까 싶었다.인터넷을 뒤져보다가 z-index의 값을 조절하라고 했다.z
final 키워드를 무작위로 붙이다보니 변수나 나중에 바뀌지 않을 녀석에 붙이는 것은 이해가 됐다. 하지만 왜 객체에 붙이고 나서 속성값이 변하는 곳에도 붙여도 되는 것일까?에 대한 의문이 들었다.놀랍게도 객체 변수에 final로 선언하면 그 변수에 다른 참조 값을 지
rtsp를 이용하여 카메라를 화면에 보여주기 위해 서버에 ffmpeg를 설치하는 도중 아래 에러 메세지를 보았다.인터넷에 돌아다니는 것을 참고한 결과 수동으로 서버에 설치하는 방법이 있었다.참고 사이트 : https://ysbsb.github.io/linux/
Kotlin으로 Android Studio를 이용하며 워치 앱을 개발중이다.우리는 백엔드 서버를 Java와 Spring Boot를 이용하여 구성중이며 DB는 MySQL을 사용하기 때문에 Android Studio에서 바로 저장을 하려고 찾아봤다.근데 웬걸? MySQL에