전체 글
SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (3)
목차 SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (1) SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (2) SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (3) - 현재 게시글 이제 만들어둔 서버와 통신한 클라이언트를 만들어볼 차례다. 개략적으론 SocketJS와 STOMP Client를 이용해 통신하고, vue/bootstrap/freemarker로 화면을 그릴 예정이다. 1. 의존성 추가 dependencies { implementation("org.webjars.bower:bootstrap:4.3.1") implementation("org.webjars.bower:vue:2.5.16") implementation("org.webjars.bower:ax..
SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (2)
목차 SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (1) SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (2) - 현재 게시글 SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (3) springboot-web 관련 의존성은 추가되어있다는 것을 가정으로 글을 작성하니 참고 부탁드립니다. 1. 채팅방 관리를 위한 Entity 및 Component 추가 여기선 Repository에 별도 DataSource를 연결하지 않고 memory 상에 Map으로 관리해주었다. // ChatRoom.kt data class ChatRoom( val name: String ) { val id: String get() = "room_$name" } // ChatRoomRepositor..
SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (1)
목차 SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (1) - 현재 게시글 SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (2) SpringBoot에서 STOMP로 채팅 애플리케이션 만들기 (3) 이번에 사이드 프로젝트를 진행하면서 채팅 기능을 구현하게 됐다. 관련하여 공부해본 내용을 작성해본다. 채팅이라고 하면 일반적으로 아래와 같은 프로세스로 통신 하게 된다. 이 때 클라이언트와 서버는 HTTP 통신이 아닌, 소켓 통신을 하게 된다. Why? 클라이언트와 서버간 연결을 수립해두고, 해당 경로를 통해 통신하기 위함이다. HTTP 통신은 한번 연결 수립 후 응답이 오게 되면 연결이 끊기게 된다. 클라이언트A와 서버가 연결되고, 클라이언트B와 서버가 연결된 상태에서 클라이언트A..
[Java & Kotlin] enum class가 완벽한 싱글톤이라 불리는 이유
싱글톤 패턴(Singleton Pattern)이란? 싱글톤은 애플리케이션 상 특정 클래스가 최초 한 번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴을 의미한다. 객체 생성 요청이 여러번 발생하더라도 새롭게 메모리를 할당하여 인스턴스를 만드는 것이 아닌 기존에 생성되어 있던 인스턴스를 참조하는 것이다. 싱글톤 패턴을 사용한다면 불필요한 메모리 사용을 줄일 수 있다는 장점이 있다. JVM에서의 싱글톤 JAVA에서 인스턴스를 생성할 때에는 new 키워드와 함께 생성자를 사용한다. 그러므로 클래스를 싱글톤으로 만들려면 외부에서 생성자를 호출할 수 없게 private으로 만들어줘야 한다. // Java public final class SingleTonTest { @NotNull pub..
Apache Log4j RCE 제로데이 취약점
2021년 12월 9일, Apache Log4j2의 원격 코드 실행 제로데이 취약점이 공개되었습니다. 공격자는 이 취약점을 이용해 원격 코드 실행을 트리거할 수 있습니다. 광범위한 영향을 끼치는 취약점이니 Log4j의 범위를 확인해보시고 버전을 업데이트하는 것이 좋겠습니다. 특히 SpringBoot의 경우 log4j를 기본적으로 갖고 있으니 꼭! 확인해보세요. 취약점 설명 Apache Log4j2는 Java 기반 로깅 라이브러리입니다. 정말 많은 시스템에서 사용되고 있죠. 대부분의 경우 사용자 입력으로 인한 오류 메시지를 로그에 기록할 때 사용하는데요. 공격자는 취약점을 통해 이 로깅 기능으로 원격 코드 실행을 트리거할 수 있습니다. 취약점 수준: 심각(치명적) 영향을 받는 버전: 2.0