본문 바로가기

반응형

Spring Boot

(4)
[Spring Boot] 스프링부트에서 WebSocket, STOMP를 이용한 채팅기능 구현하기 (2) - 도메인 모델과 Redis 연동 사용된 플러그인 : Lombok, Slf4j implementation 'org.springframework.boot:spring-boot-starter-websocket' implementation 'org.webjars:webjars-locator-core' implementation 'org.webjars:sockjs-client:1.5.1' implementation 'org.webjars:stomp-websocket:2.3.4' implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'it.ozimov:embedded-redis:0.7.2' 1. 채팅 도메인 모델 구현 이번 포스팅에서 구현할 단..
[Spring Boot] 스프링부트에서 WebSocket, STOMP를 이용한 채팅기능 구현하기 (1) Spring Boot로 구현하는 실시간 채팅 시스템 - Part 1: 기본 구조 이해하기Spring Boot와 WebSocket, STOMP 프로토콜, Redis를 활용하여 실시간 채팅 시스템 구현   1. HTTP vs WebSocket   HTTP 통신의 특징과 한계 HTTP 통신의 특징과 한계 기존의 웹 애플리케이션에서 주로 사용하는 HTTP 통신은 다음과 같은 특징이 있습니다.  1. 비연결성(Connectionless) - 클라이언트가 요청을 보내면 서버가 응답을 하고 바로 연결을 종료 - 실시간 통신에는 부적합  2. 단방향 통신 - 클라이언트의 요청이 있어야만 서버가 응답 가능 - 서버에서 클라이언트로 먼저 데이터를 보낼 수 없음  3. 무상태성(Stateless)- 서버가 클라이언트의 상..
단위 테스트에서 private 메소드 테스트가 필요한가? 정답 : https://shoulditestprivatemethods.com/1. Private 메소드 테스트가 불필요한 이유 1.1 캡슐화 원칙 위배Private 메소드는 클래스의 내부 구현 세부사항외부에서 직접 접근하여 테스트하는 것이 캡슐화 원칙에 위배됨1.2 간접적인 테스트 커버리지public class OrderService { public Order processOrder(OrderRequest request) { validateOrder(request); // private 메소드 return createOrder(request); // private 메소드 } private void validateOrder(OrderRequest requ..
@requiredargsconstructor @autowired 차이 @Autowired란? Autowired는 스프링 프레임워크에서 제공하는 어노테이션으로, 필드, 생성자, 메서드에 사용할 수 있습니다. 스프링 컨테이너가 자동으로 해당 타입의 빈을 찾아 주입해줍니다.@Servicepublic class UserService { @Autowired private UserRepository userRepository; @Autowired private EmailService emailService;}   @RequiredArgsConstructor란? @RequiredArgsConstructor는 Lombok 라이브러리에서 제공하는 어노테이션으로, final 또는 @NonNull로 표시된 필드에 대한 생성자를 자동으로 생성해줍니다.@Service..

반응형