폴링방식

SSE 방식

메세지를 그리는 구조(폴링)

메세지를 작성하는 구조

새로 작성한 글이 있는지 서버의 상태를 계속 감시해야한다.
작성 기능은 작성버튼이 누르거나 엔터를 쳤을때 동작한다.






프로젝트별 세팅

-Xmx4G
-Dfile.encoding=UTF-8
Help -> Edit custom VM options
Maximum java heap size를 4기가로 하고
엔코딩을 UTF-8로한다.
json 보기 좋게하는 확장 프로그램.

Java는 Java 14에서 미리 보기 기능으로 'record' 키워드를 도입하여 Java 16에서 이를 안정적으로 만들었습니다. 'record'는 주로 동작보다는 변경할 수 없는 데이터를 모델링하기 위한 새로운 유형의 클래스입니다. 이는 단순한 데이터 전달자가 될 클래스를 선언하는 간결한 방법입니다. 기능에 대한 분석은 다음과 같습니다.
기본적으로 불변: 레코드는 불변입니다. 즉, 레코드가 생성된 후에는 상태를 변경할 수 없습니다. 레코드에 선언된 모든 필드는 암시적으로 최종이며, 레코드 자체도 암시적으로 최종입니다.
자동 Getter 메소드: 레코드의 각 구성요소(필드)에 대해 해당 접근자 메소드가 자동으로 생성됩니다. 이러한 메소드는 'get' 뒤에 필드 이름이 오는 명명 규칙을 따릅니다.
간결한 구문: 레코드 선언 구문은 특히 기존 Java 클래스에 비해 매우 간결합니다. 레코드 이름 뒤의 괄호 안에 구성 요소(필드)만 나열하면 됩니다.
값 기반 평등: 레코드는 기본적으로 값 기반 평등을 지원합니다. 두 레코드의 구성 요소 값이 동일하면 동일한 것으로 간주됩니다.
toString(), equals() 및 hashCode(): 레코드는 해당 구성 요소를 기반으로 toString(), equals() 및 hashCode() 메서드에 대한 구현을 자동으로 제공합니다.
다음은 간단한 레코드 선언의 예입니다.
java
Copy code
public record Point(int x, int y) {}
레코드를 리스트에 저장?
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul")
private LocalDateTime createTime;
public record writeMessageRequest(String authorName, String content)
dto 클래스를 따로 안만들어도 되니 엄청 편하네?!