BackEnd (3) 썸네일형 리스트형 [Spring] WebSocket 과 RabbitMQ를 활용하여 채팅, 알림 구현하기 https://byeolhabae.tistory.com/26 [Spring] 응애의 1:1 채팅 구현기(1) - 메시지 브로커를 선택하다2025 산학프로젝트에서 사설 수리업체와 수리를 원하는 유저간 1:1 채팅을 구현할 일이 생겼다요구사항은 다음과 같다.수리가 필요한 유저와 수리센터간 일대일 챗팅에서 실시간으로 메시지 확byeolhabae.tistory.com이전 포스팅에서 왜 Rabbit MQ를 사용하는지 간단하게 작성했다. 이번 학기 소프트웨어 공학을 들어서 그런가 전에는 구글링을 통해 많은 사람들이 사용하는 기술을 따라 사용했는데 요즘은 요구사항을 작성하고 적합한 서비스에 대해 고민 해보는 시간이 길어졌다 먼저 간략한 서비스 소개를 하자면 사설 수리업체와 수리가 필요한 유저를 매칭해주는 플랫폼이다.. [Spring] 응애의 1:1 채팅 구현기(1) - 메시지 브로커를 선택하다 2025 산학프로젝트에서 사설 수리업체와 수리를 원하는 유저간 1:1 채팅을 구현할 일이 생겼다요구사항은 다음과 같다.수리가 필요한 유저와 수리센터간 일대일 챗팅에서 실시간으로 메시지 확인하는 것이 가능하도록 해야한다. 또한 기존 메시지 데이터가 읽음/안읽음 처리가 되어야하며 상대방이 보는 채팅방 또한 안읽음 읽음 으로 변경되어야 한다. 찾아보니 웹소켓만 사용해서 채팅을 구현할 수 있다고 하지만 다음 블로그를 읽어보고 메시지 브로커에 대해 관심이 생겼다.https://binux.tistory.com/74 Message Broker - 왜 사용하는 것일까 ?RabbitMQ, Kafka를 들어보기도 하고, 사내에서 사용하기도 하다보니 찾아보며 공부하는 것이 좋겠다 싶어 이렇게 정리하게 되었습니다. 뭐, 대충.. [Spring] 도메인과 서비스 리팩토링 Part 1. 도메인setter 어노테이션 삭제캡슐화 위반객체 지향 특징 중 하나가 캡슐화이다. 캡슐화란 정보 은닉과 유사한 개념인데 클래스 안에 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 외부로부터 보호하는 것을 말한다. 그러나 setter는 외부에서 private한 객체의 내부 상태를 직접 변경할 수 있도록 허용하는 방식으로 캡슐화 원칙에 위배된다사용자 의도를 쉽게 파악하기 어려움 (의도가 코드에 드러나지 않음)왜 해당 값으로 설정하는지 set 사용부분만 봐서는 알기 어렵다위와 같은 이유로 setter를 지양한다. 이전 코드에서는 setter를 dto 변환 과정에서만 사용하여 build로 코드를 바꿔주었다연관된 도메인 객체(User, Device 등)를 엔티티 객체로 참조하도록 (단방향 매핑.. 이전 1 다음