BACKEND(14)
-
[trouble shooting] InvalidDefinitionException: Cannot construct instance of "DTO"(no Creators, like default constructor, exist): cannot deserialize from Object value
문제 @AllArgsConstructor를 사용해 모든 필드를 받는 생성자를 사용했는데도 Postman으로 테스트 시 에러가 남 해결 DTO에 @NoArgsConstructor을 추가 설명 Serialize(직렬화) : 객체의 상태를 바이트 스트림으로 변환 Deserialize(역직렬화) : 바이트 스트림을 객체 형태로 변환 POST 요청에서 에러가 발생했는데, 기본 생성자가 없어서 역직렬화 실패라고 한다. Controller단에서 @RequestBody가 설정되어 Json에서 DTO Object로 변환이 필요한 경우 에러가 발생하는 것 같다. @RestController에서 @RequestBody를 바인딩하기 위해 ObjectMapper를 사용하는데 기본 생성자로 DTO를 생성한다. 그렇기 때문에 @N..
2023.01.12 -
[trouble shooting] constructor cannot be applied to given types / @Builder & @NoArgsConstructor
문제 @Builer와 @NoArgsConstructor를 같이 쓰면 에러가 발생한다. 해결 @NoArgsConstructor 를 쓰고 클래스 레벨의 @Builder를 쓰게 되면 @AllArgsConstructor 없이 기본 생성자만 선언한 것과 같으므로 컴파일 에러가 뜬다. 설명 Lombok에서 제공하는 @Builder는 생성자 인자를 메서드 체인을 통해 명시적으로 대딥하여 생성자 호출할 수 있게 해준다. 생성자, 메서드, 클래스 레벨에서 쓰일 수 있고, 클래스 레벨에서 쓰일 경우 기본적으로 전체 멤버를 생성자의 매개값으로 갖는 private 생성자를 만든다. @Builder 를 붙이면 Lombok 빌더에서 해당 생성자를 바탕으로 빌더 패턴을 생성한다. 다시 말해서 Lombok의 @Builder는 기본적..
2023.01.04 -
[honey tip] 간단한 git 명령어
git 모든 설정 보기 git config --list git 등록 계정 확인하기 git config user.name git config user.email git 계정 등록하기 git config --global user.name 이름 git config --global user.email 이메일 현재 위치한 브랜치 확인하기 (*가 붙어있는 브랜치가 현재 활성화된 브랜치) git branch 원격 저장소의 브랜치 확인하기 git branch -r 브랜치의 마지막 commit message 확인하기 git branch -v 브랜치 생성하기 git branch 브랜치명 브랜치 이동하기 git switch 브랜치명 브랜치를 새로 만들면서 브랜치 변경 git checkout -b 브랜치명 git switch..
2022.12.06 -
[trouble shooting] git CRLF
문제 git이 갑자기 안 됨. 무슨 오류인지 파악 불가... 해결 config --global core.autocrlf true 설명 git에서는 다양한 운영체제에서 git repository를 사용할 때 수정하지 않아도 CRLF 개행 문자 차이로 인해 문제가 발생할 수 있다. 실제 코드에서는 변경된 것이 없는데 CR/LF으로 인해 줄바꿈 문자열이 달라져서 git history나 git blame을 볼 때 문제가 발생 또는 git이 변경으로 간주해 commit을 하게 될 수도 있고 변경 로그를 보거나 머지를 할 때마다 문제가 될 수도 있다. 이 문제가 생기지 않도록 하는 것이 core.autocrlf이다. Windows에서는 line ending으로 CR(Carriage-Return, \r)과 LF(Li..
2022.12.06