본문 바로가기

전체 글211

(25.06.26) equals() 와 hashCode() 의 contract에 관하여 알고리즘 문제를 풀면서 공부를 하던 중,Java 에서 HashSet같은 Hash 자료구조에서의 객체간 비교를 위해 equals를 override 통해 참조값을 비교하지 않도록 만들었지만,추가로 contract를 살펴서 hashCode() 까지 오버라이드를 해야할 부분을 Java 명세를 읽어보면서 알게 되었다.관련 개념은 쉽지만, 인는 객체의 특성보다는 Java 매뉴얼에 가깝기 때문에 기억을 해야하므로 기록을 하고자한다. class Solution { public int solution(int[] arrows) { // 방향 하드코딩 int[] dx = {0, 1, 1, 1, 0, -1, -1, -1}; int[] dy = {1, 1, 0, -1, -1, -1, .. 2025. 6. 26.
(25.06.19) 다중 서버에서의 Spring WebSocket 키덜트 사용자들이 공통 주제로 자유롭게 대" data-og-host="andr" data-og-host="andrew75313.tistory.com" data-og-source-url="https://andrew75313.tistory.com/236" data-og-url="https://andrew75313.tistory.com/236" data-og-image="https://blog.kakaocdn.net/dna/kKpRH/hyY8ONeZFt/AAAAAAAAAAAAAAAAAAAAAIzpRe5wran8lA14o2gXWekssiG6vpNqCvotEncQ1gGl/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1753973999&allow_ip=&allow_referer=&signature=uutR0cTR5onYFQMCSTei2rJ5%2Fqs%3D 2025. 6. 19.
(25.06.09) 전체 대화방 조회용 Pagenation 구현 대화방 Chatroom 전체 조회 Pagenation 구현Controllerpublic class ChatroomController { private final ChatroomService chatroomService; @GetMapping public ResponseEntity getAllChatrooms(@RequestParam(defaultValue = "1") int page) { PageResponseDTO chatrooms = chatroomService.getAllChatrooms(page); return ResponseEntity.status(HttpStatus.OK).body(chatrooms); } ...기존의 Speci.. 2025. 6. 9.
(25.06.05) record 클래스 & DTO 활용 WebSocket 기반의 대화방에서 채팅을 구현하는데 있어서,Subscribe 한 클라이언트들에게 채팅을 보내는데 사용하는 responseDTO 클래스를 record 에 사용하는 것으로 참고자료에서 나타냈다.하지만, DTO에서 사용되는 컴포넌트들을 그대로 축약했다고 생각한 클래스라고 치부하기 보다는좀더 고려를 해야하는 부분이 많아서Java 에 최신으로 등재된 record 클래스에 대해서 설펴보고,중간중간 나의 궁금한 점들을 "주의 사항" 내지는 표로 정리했다. record 클래스boilerplate 코드를 줄이기 위해서 자동으로 필요한 객체들과 여러 필요한 내용을 생성해주는 특수한 불변 데이터 클래스(immutable data class)Java 14 preview 버전, Java 16 정식 버전(sta.. 2025. 6. 5.
(25.06.02) Thymleaf를 통한 회원가입/로그인 FE 구현 키덜트 사용자들이 공통 주제로 자유롭게 대" data-og-host="andr" data-og-host="andrew75313.tistory.com" data-og-source-url="https://andrew75313.tistory.com/236" data-og-url="https://andrew75313.tistory.com/236" data-og-image="https://blog.kakaocdn.net/dna/bjXn0N/hyY0sRjZfl/AAAAAAAAAAAAAAAAAAAAAPpSlISiyMiACfQ-Ncxe4H8sr4-rIzDP42nVbxKz0XYe/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1753973999&allow_ip=&allow_referer=&signature=zGGKO4oiMjPEAZ%2FKJNeUzVThO%2Fg%3D 2025. 6. 3.
(25.05.30) ToyTalk WebSocket을 활용한 Chat 기능 구현 (Spring Boot) • 키덜트 정보를 플랫폼 구애없이 대화방에서 나눌수 있는 특화된 채팅 플랫폼의 니즈• WebSocket 프레임 구현 서비스 구축기획목적">키덜트 사용자들이 공통 주제로 자유롭게 대" data-og-host="andrew75313.tistory.com" data-og-source-url="https://andrew75313.tistory.com/235" data-og-url="https://andrew75313.tistory.com/235" data-og-image="https://blog.kakaocdn.net/dna/dw7okt/hyY1jS9u6R/AAAAAAAAAAAAAAAAAAAAANS4kZfWTK2Onjvshlnsxu_rz2jjXyhwrIjNon5kjeNX/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1753973999&allow_ip=&allow_referer=&signature=LjiFbfefpt6F31s4upDjPbAwW3o%3D 2025. 5. 30.
(25.05.27) ToyTalk 기획 및 WebSocket 활용 방안 / 대화방 CRUD 구현 개요기획배경">• 키덜트 정보를 플랫폼 구애없이 대화방에서 나눌수 있는 특화된 채팅 플랫폼의 니즈• WebSocket 프레임 구현 서비스 구축기획목적">키덜트 사용자들이 공통 주제로 자유롭게 대화할 수 있는 오픈채팅방 플랫폼 제공주요 기능요약">• 가입자는 누구든지 특정 키덜트 주제(장난감 : 아트토이, 피규어, 프라모델 등) 주제로 대화방을 생성 가능• 서비스 가입자와 비밀번호 설정된 대화방일 경우, 비밀번호를 입력한 자만 대화방에 입장 가능• WebSocket을 활용해 인메모리(Spring) 메시지 브로커를 활용한 실시간 대화 가능User Flow / User Scenario1. 채팅방 생성 요청요청 엔드포인트: POST /chatrooms요청 본문에는 title, category, isPrivate.. 2025. 5. 28.