Spring14 [Spring] 실시간 채팅 기능 구현(1) - WebSocket, 그리고 STOMP 얼마 전 팀 프로젝트에서 구현했던 실시간 채팅 기능을 포스팅 해보려고 한다. 주요 개발 환경은 다음과 같다. Java - JDK21Spring Boot - 3.3.4React 구상했던 흐름도는 이렇다.1. 유저가 채팅 카테고리 선택 2. 채팅 대기방 진입 (WAITING)3. 관리자는 채팅 대기방 확인 가능4. 들어가려는 채팅 대기방 입장 버튼 클릭5. 양쪽 모두 채팅 대기방 활성화 (ACTIVE)6. 채팅 진행7. 채팅 종료 버튼을 눌러 양쪽 채팅방 종료(CLOSED) 이렇게 채팅방은 총 3개의 STATUS를 가진다. (WAITING, ACTIVE, CLOSED)채팅방 활성화는 오직 관리자만 진행할 수 있다. 구현에 앞서, WebSocket과 STOMP의 개념을 먼저 정리하겠다.WebSocket이란?W.. 2024. 11. 11. [Spring] JSP vs Thymeleaf Java-Spring 기반의 웹 프로젝트 (MVC기반)를 경험해보았다면 JSP나, Thymeleaf를 접해보았거나, 사용해 보았을 것이다.이 둘은 비슷하게 사용되지만, 명확한 차이점들이 있다.일단 JSP와 Thymeleaf의 개념부터 알아보자. JSP (Java Server Page)JSP는 Java 기반 웹 애플리케이션에서 동적 웹 콘텐츠를 생성하기 위해 사용되는 서버 사이드 기술이다.JSP는 HTML에 Java 코드를 삽입할 수 있는 템플릿 엔진이다.클라이언트의 요청을 처리하고, 서버에서 동적으로 HTMl 페이지를 생성하여 웹 브라우저에 반환한다. 주요 개념HTML과 Java 코드의 혼합JSP 페이지는 HTML 코드에 Java 코드를 포함하여 작성된다. HTMl의 구조를 유지하면서 , , 와 같은 태.. 2024. 11. 11. [Java] Mapstruct - Entity와 DTO의 편리한 매핑 Java/Spring으로 웹 개발을 진행하다 보면, Entity와 DTO간의 변환을 수행하는 로직을 마주하게 된다.일단 코드로 예시를 한번 보자 Entity - DTO 매핑 (수동) UserEntity@Getter@AllArgsConstructorpublic class UserEntity { private Long id; private String name; private String email;} UserDTO@Getter@Setter@AllArgsConstructorpublic class UserDTO { private Long userId; private String userName; private String userEmail; // Getters and S.. 2024. 11. 8. [Java] Lombok 이란? Spring이나 Spring boot Web 개발을 하다보면, 자주 사용하는 메서드나, 생성자들이 있다.이는 가독성을 떨어뜨리고, 중복적으로 자주 적다보니 일의 효율이 떨어질 수 있다.이를 해결해주는 아름다운 라이브러리가 바로 Lombok이다.Lombok이란?Lombok은 Java의 주석 기반 라이브러리로, 자주 사용하는 메서드나 생성자 등을 자동으로 생성해 주어 코드의 양을 크게 줄여주는 도구이다. 주로 boilerplate 코드(반복적인 코드)를 제거하는 데 유용하며, 코드의 가독성과 유지 보수성을 높이는 데 도움을 준다. 아래는 Lombok에서 제공하는 어노테이션들이다.어노테이션설명@Getter필드에 대해 Getter 메서드를 자동 생성합니다.@Setter필드에 대해 Setter 메서드를 자동 생성.. 2024. 11. 8. 이전 1 2 3 4 다음