728x90

전체 글 503

READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE

채팅방을 열고 난 후 채팅을 시작하려고 하면 뜨는 에러 ERROR 32852 --- [nboundChannel-7] .WebSocketAnnotationMethodMessageHandler : Unhandled exception from message handler method org.springframework.messaging.MessageHandlingException: Unexpected handler method invocation error; nested exception is java.lang.NoSuchFieldError: READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE Caused by: java.lang.NoSuchFieldError: READ_UNKNO..

TIL 2023.11.22

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 에러가 떴다. 원래 실행이 잘 되었는데 갑자기 안되서 뭐지 했는데 workbench 적용하면서 건드렸다가 중지 했던 것 같다. 그래서 MySQL이 실행이 안되고 있었다. 윈도우키 + R → services.msc 입력 MySQL 시작 누르면 실행 된다. 참고 [Java] Mysql Jdbc 연결 오류 해결 방법

TIL 2023.06.27

채팅 정리(WebSocket, Stomp, SockJS, SSE)

그 동안 채팅에만 빠져있던 내가 드디어 마무리 글을 적을 수 있었다. .... 멋모르고 채팅을 구현해보고 싶은 마음에 이것저것 찾아보니 채팅은 보통 socket.io로 적용하고 자바로는 많이 안하는 느낌이 들었었다. 초반에 Websocket으로만 진행했을 때 채팅이 되는 것을 보고 엄청 신기해하고 뿌듯했었는데 그것도 잠시 한명만 나가면 websocket이 끊겨서 재연결하려고 애를 많이 먹었었다. java websocket 재연결, websocket 재연결, java 채팅 재연결.. 등등 검색을 해봤는데 어떤 곳은 재연결 때문에 문제가 생겼으니 socket.io로 적용해서 문제를 해결했다! 라는 걸 보고 나도 socket.io로 해야되나.. 잠시 흔들렸었다.... 나는 당연히 재연결을 서버에서 해줘야 하는..

TIL 2023.03.04

socket 채팅방

채팅방 구현을 위해 따로 repository를 만들어서 작성중 현재 websocket 기본 세팅 글 작성 완료 socket 코드를 작성하면서 db에 최대한 저장안하려고 했는데 채팅방에 들어갈 유저를 특정 유저로 정해놓고 해당 채팅방을 들어가게 하려면 db가 필요할 것 같았다. db 내용은 최소한의 column으로 username과 roomId 만 설정했다. roomName은 username으로 자동 설정되므로 추가하지 않았다. socket table 만들기 CREATE TABLE IF NOT EXISTS socket ( id bigint(5) NOT NULL AUTO_INCREMENT, # AUTO_INCREMENT : 자동으로 1씩 증가 room_id varchar(255) NOT NULL, nickn..

TIL 2023.01.23

프로젝트 요약

이번에 시큐리티가 완전히 적용이 되어서 그동안 develop에 pr올렸던 것들을 전부 main에 올렸더니 branch도 깔끔해졌다. 사진에서 보여지는 것 외에 더 많은 커밋이 있는데 그 전까지 시큐리티가 완벽하게 구현된 것이 아니라서 develop branch를 제안했었다. 그래서 마지막 마무리로 exception까지 처리하고 나서 pr했더니 아래와 같이 많아지게 되었다. 일단 기본적으로 refactoring을 정말 많이 했다. 기존에 기나 긴 코드들을 새롭게 배운 것들을 적용하면서 코드를 줄이고 수정하다보니 기능 추가 → refactoring → 추가 → refactoring → .. 의 반복이 된 것 같다. 예전에는 계속 추가만 했었는데 요즘에는 추가하면 수정이 따라온다. - RequestDto, R..

TIL 2023.01.16

security refactoring 코드 정리

SignController 회원가입 SignUpRequestDto에는 nickname, password, name이 들어간다. 서비스에서 pw는 encode해서 user로 들어가고 repo에 저장된다. admin과 user 권한을 저장하는 user_roles를 enum이 아닌 collections로 준 이유는 enum은 이후에 권한을 추가할 때 수동 설정으로 바꿔야 하는데 collection에서는 service에서 해당 권한이 무엇인지 정의만 해주면 되기 때문에 enum대신 collection으로 작성했다. 로그인 SignInRequestDto에는 nickname, password가 들어간다. HttpServletResponse는 쿠키를 생성하기 위해서 작성된다. 쿠키는 서버에서 생성해서 front에서 ..

TIL 2023.01.03