@Builder를 사용하면서 생성자를 찾을 수 없다는 오류를 발견해서 이것저것 찾아본 내용을 정리한다. @Builder 내부 동작@Builder를 클래스에 붙이면 Lombok은 빌더 클래스를 자동 생성하고, build() 메서드 안에서 대상 객체를 생성하는 코드를 넣는다. 클래스에 빌더 어노테이션을 두면 필드 전체를 받는 생성자를 호출하게 된다.@Builderpublic class Member { private Long id; private String username; private String password;}public Member build() { return new Member(id, username, password);} 위 코드에서 아무런 생성자도 없고, 생성자와 ..
웹에서 채팅할 수 있는 애플리케이션을 개발해보려고 한다. 채팅을 구현 방법으로 Polling, Long Polling, Streaming 등의 방식들이 있다. 하지만, 요즘 많이 사용하는 기술을 한 번 적용해보겠다. 웹 통신으로 단방향인 HTTP 프로토콜을 사용한다. 요청이 발생하면 응답을 해주는 방식이다. 그럼 websocket은 어떤 프로토콜일까? WebSocket HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 TCP 기반의 프로토콜이다. 누군가 요청하지 않아도 서로 간에 메시지를 주고 받을 수 있게 된다. 실시간성을 보장해야 하고, 변경 사항의 빈도가 잦거나 짧은 대기시간, 고주파수, 대용량의 조합인 경우 적용하는 게 적합하다. 장점 일반 socket과 달리 HTTP 80 Port..
원인 사용자가 정의한 enum에 존재하지 않는 값이 DB에 존재하면 발생하는 오류이다. 예를 들어 아래와 같이 MASTER로 작성했는데, 데이터베이스에는 'master' 또는 'MESTER'이라고 작성되어 있거나 값이 없는 경우(NULL)에 오류가 발생한다. 해결 방법 작성된 열거형 클래스 enum 파일과 데이터베이스에 기입된 내용이 같은지 확인한다. 대소문자를 구분하기 때문에 자세히 봐야 한다.
Swagger란 Rest API를 문서화하여 관리 및 테스트할 수 있도록 도와주는 프레임워크이다. 환경설정 java 11 spring boot 2.7.17 swagger : springfox 3.0 Swagger 적용 1. 라이브러리 추가 buil.gradle에 아래의 2개 라이브러리 추가한다. implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'io.springfox:springfox-swagger-ui:3.0.0' 2. SwaggerConfig 파일 생성 @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(Doc..