본문 바로가기

전체 글48

12장 - 채팅 시스템 설계 (2) - 접속 상태 [이전글] 12장 - 채팅 시스템 설계 (1) - 메세지 흐름 접속 상태 표시 사용자 로그인 클라이언트와 채팅 서버 간에 web-socket 연결이 맺어지면, last_active_at 이라는 타임스탬프 값을 키-값 저장소에 저장하여 접속상태를 확인한다 위 절차가 끝나면 해당 사용자는 접속 중인 것으로 표시된다 로그아웃 사용자는 API 서버로 로그아웃 요청을 보내고, API 서버는 접송상태 서버에 접속 상태 변경을 요청한다 접속 장애 WebSocket 과 같은 지속적인 연결을 맺고 있음에도, 일시적인 접속 장애는 늘 발생할 수 있다 예를들면 데이터가 터지지 않는 터널을 지날때, 접속 상태가 offline으로 변해야 하는가? 위와 같은 일시적인 접속 장애를 유연하게 대처하기 위해 심장박동(heartbeat.. 2023. 9. 6.
[JPA] Jakarta Spec(JSR 338) - (4)Map Collections [이전 글] [JPA] Jakarta Spec(JSR 338) - (1)Entity, Field, Access Type [JPA] Jakarta Spec(JSR 338) - (2)기본 키(PK) 및 Entity ID [JPA] Jakarta Spec(JSR 338) - (3)Embeddable Classes JPA에서의 Map Collection Entity 클래스 내부에서 속성의 Collection이나, Entity 간의 관계를 표현할 때 java.util.Map 컬렉션을 사용할 수 있다 Map의 Key와 Value에는 Java 기본 타입, Embeddable 클래스, 또 다른 Entity가 포함될 수 있다 (1) Map의 Value가 Java 기본 타입, Embeddable 클래스일 경우엔 @E.. 2023. 9. 3.
12장 - 채팅 시스템 설계 (1) - 메세지 흐름 채팅 시스템 요구사항 응답 지연이 낮은 1:1 채팅 기능 최대 100명까지 참여할 수 있는 그룹 채팅 기능 사용자의 접속 상태 표시 기능 다양한 단말 지원, 하나의 계정으로 여러 단말 동시 접속 지원 Push 알림 Client - Server 통신에서의 요구사항 1) Client -> Server 메세지 수신 2) 메세지 수신자 결정 및 전달 3) 수신자가 접속(online) 상태가 아닌 경우, 접속할 때까지 메세지 보관 메세지 송신 메세지 송신의 주체는 Client이다. (Client to Server) 따라서 Client의 요구가 있을 때 HTTP 프로토콜을 사용할 수 있다 keep-alive 헤더를 이용하면 connection을 효율적으로 유지할 수 있다 keep-alive 헤더를 사용하면 TCP .. 2023. 8. 30.
[JPA] Jakarta Spec(JSR 338) - (3)Embeddable Classes [이전글] [JPA] Jakarta Spec(JSR 338) - (1)Entity, Field, Access Type [JPA] Jakarta Spec(JSR 338) - (2)기본 키(PK) 및 Entity ID Embeddable Classes (`@Embeddable` annotated classes) Embeddable 클래스는 @Embeddable 어노테이션을 명시해야 한다 @Embeddable 어노테이션을 명시한 클래스는 @Entity 어노테이션을 명시할 수 없다 Embeddable 클래스는 자체 식별성을 가지지 않는다 Embeddable 클래스는 보통 소속된 Entity의 property 중 일부로 존재한다 Embeddable 클래스는 Map의 Key와 Value로 사용될 수 있다 Emb.. 2023. 8. 27.
반응형