WebSocket 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜. 일반 Socket통신과 달리 HTTP 80 Port를 사용하므로 방화벽에 제약이 없으며 통상 WebSocket으로 불린다. 접속까지는 HTTP 프로토콜을 이용하고, 그 이후 통신은 자체적인 WebSocket 프로토콜로 통신하게 된다. HTTP와 달리 한번연결 후 데이터를 송수신하기 때문에 실시간채팅이나 스트리밍서비스에 사용된다. Spring에서 websocket 서버 구현하기 build.gradle //starter implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:..
Springboot
JWT를 이용한 로그인 시 브라우저로 로그인하는 예제가 없는 이유 Spring security에서 jwt를 통한 로그인에 관한 글을 보면 대부분의 실습(및 테스트)는 postman같은 API요청 프로그램을 이용해서 합니다. JWT는 무상태성을 유지하는 토큰 인증방식으로 클라이언트, 서버가 분리되어있는 REST API에서 사용합니다. 그렇기 때문에 만약 여러분이 Thymeleaf, JSP,Mustache 등의 SSR 템플릿 엔진을 사용한다면 JWT를 구현하지 않는것이 좋습니다. JWT는 일반적으로 클라이언트 LocalStorage 영역에 서버에서 받은 토큰을 보관합니다. 그리고 서버에 요청 시에는 LocalStorage에 있는 토큰을 빼내고 Request Header의 Authorization값에 토큰을 ..
목표 이 글에서는 스프링 시큐리티의 전체적인 구조와 같은 원론적인 내용보다는 기본 세팅에 대한 코드를 보여주고, 해당 코드들이 무슨 역할을 하는지를 위주로 설명합니다. spring security를 이용해 인증과 인가를 구현하고 현재 로그인된 정보를 이용해 thymeleaf에서 다른 화면을 보여주기까지 구현합니다. 로그인정보에 대한 데이터로서 DB까지 이용합니다. 순서는 다음과 같다' 개발환경 security 설정 동작 설명 개발환경 Springboot 2.7.8 H2 JPA thymeleaf spring security lombok build.gradle dependencies { //starter implementation 'org.springframework.boot:spring-boot-start..
Redis의 pub/sub Publish / Subscribe 란 특정한 주제(topic)에 대하여 해당 topic을 구독한 모두에게 메시지를 발행하는 통신 방법으로 채널을 구독한 수신자(클라이언트) 모두에게 메세지를 전송 하는것을 의미한다. 하나의 Client가 메세지를 Publish하면, 이 Topic에 연결되어 있는 다수의 클라이언트가 메세지를 받을 수 있는 구조이다. Springboot에서 redis의 pub/sub구현하기 RedisConfig @Configuration public class RedisConfig { @Value("${spring.redis.host}") private String redisHost; @Value("${spring.redis.port}") private int r..
설치 먼저 redis를 설치해보자. https://github.com/microsoftarchive/redis/releases에서 원하는 버전을 다운받자. msi파일을 실행하면 알아서 설치가 진행된다. 설치된 폴더에 가서 redis-cli.exe를 실행해보자 실행창에서 다음과 같이 테스트해보자. ping을 입력해서 결과가 pong이 나오면 되고 , set key1 value1을 입력해 DB에 데이터를 저장하고 get key1을 통해 value1값을 얻을 수 있다. 간단한 redis 사용법은 다음 글을 참고하자. https://velog.io/@rlaghwns1995/Redis-%EA%B8%B0%EB%B3%B8%EC%A0%95%EB%A6%AC springboot에서 redis 사용하기 자바에서 제공하는 r..