분류 전체보기109 [Security] 스프링 시큐리티 설치 및 적용 기존의 스프링 프로젝트에 시큐리티를 적용하는 과정이다. 1. 시큐리티 의존성 pom.xml에 시큐리티 디펜던시를 추가한다. org.spring-security-version 값은 mvnrepository를 참고하여 스프링 버전과 호환되는 버전을 선택하였다. 이후 maven 업데이트를 진행한다. ... ... 5.3.1.RELEASE org.springframework.security spring-security-config ${org.spring-security-version} org.springframework.security spring-security-web ${org.spring-security-version} ... ... - . LogoutSuccessHandler 구현 로그아웃에 성공했을 시.. 2021. 6. 5. [WebSocket] 스프링 채팅 구현 (2) - 다수 채팅방 채팅 방만 구현해보려다가 채팅중인 사람들 목록을 표시하는것도 어렵지는 않을 것 같아서 같이 해보기로 했다. 따라서 전송되는 메세지 종류에 따라 4가지 메세지 타입이 필요하다. 회원의 입장을 알리는 메세지 타입 회원의 퇴장을 알리는 메세지 타입 일반 채팅전송 타입 새로 들어온 사람에게, 기존에 채팅중이던 사람들의 목록을 전송하는 타입 이를 Enum으로 만들어준다. public enum MessageType { OPEN, SEND, CLOSE, /** * 기존에 있던 사용자명을 새로 입장한 사용자에게 보낼 때 사용하는 타입입니다. * EXISTING 타입으로 보낸 메세지는 채팅창에 출력되지 않으며, 참여중인 사람들 목록에 사용자명만 추가됩니다. */ EXISTING } 채팅 메세지 VO를 생성하고, 앞서 생.. 2021. 6. 4. [WebSocket] 스프링 채팅 구현 (1) - 채팅 전송 및 수신 준비 - 스프링 웹소켓을 이용하기 위해 스프링 버전 4 이상이 필요하다. 1. WebSocket, Jackson-databind 의존성 추가 pom.xml에 디펜던시를 추가한다. org.springframework spring-websocket 5.2.5.RELEASE com.fasterxml.jackson.core jackson-databind 2.11.3 2. servlet-context.xml 설정 servlet-context.xml 파일의 Namespaces 탭에서 websocket을 체크한다. Source 탭으로 이동하여 아래 내용을 추가한다. 각각 이름은 임의로 지정 가능하다. class 속성값은 내가 만들 ChatHandler 클래스 파일 경로를 입력해야 한다. path 속성값인 /chat/.. 2021. 6. 4. [Spring] {변수명}을 역직렬화 할 수 없습니다. class invalid for deserialization 원인 직렬화가 불가능한 객체에 대해 직렬화, 역직렬화를 시도했을 때 발생하는 오류이다. 스프링 3.x 버전에서는 발생하지 않던 오류이지만, 5.x로 올린 후 발생하기 시작했다. 해결방법 오류가 발생한 클래스에 대해 Serializable 인터페이스를 상속해주면 된다. 2021. 6. 4. [Java] 벡터 Vector 벡터는 여러 오브젝트들의 집합이다. 배열과 동일하게 int index, value 쌍으로 이루어져 있으며, 길이의 변경이 가능하기 때문에 값을 추가, 제거할 수 있다. 벡터는 자신의 저장 공간을 자동적으로 최적화하며, 이로 인해 벡터에 저장된 데이터의 값보다 실제 차지하는 용량이 더 크다. 용량을 미리 차지하고 있다가, 값이 추가되어 용량이 부족해지면 한 번에 어느정도 추가 용량을 차지하는 방식의 계단식 증가가 이루어진다. Iterator를 사용할 경우 fail-fast 방식을 통해 값을 반환한다. Fail-Fast 방식: 벡터가 어느 쓰레드에 생성된 이후 다른 쓰레드에서 구조의 수정이 일어날 경우, ConcurrentModificationException 을 일으킨다. 이를 통해 여러 개의 쓰레드가 동.. 2021. 5. 30. 이전 1 ··· 3 4 5 6 7 8 9 ··· 22 다음