인기글
-
workflow 리팩토링 프로젝트(SpringBoot,JPA,MySQL)
[JPA] Entity란?(엔티티매니저/영속성/Hibernate/spring Data)
-
workflow 리팩토링 프로젝트(SpringBoot,JPA,MySQL)
[Spring boot] Spring 처리단계(Filter,DispatcherServlet,InterCepter,controller)
-
workflow 리팩토링 프로젝트(SpringBoot,JPA,MySQL)
[SpringSecurity]스프링 시큐리티란?/ PasswordEncoder 스프링 시큐리티를 사용해서 패스워드 암호화 하기
-
workflow 리팩토링 프로젝트(SpringBoot,JPA,MySQL)
[멀티모듈 지옥 탈출기] 멀티 모듈 파헤쳐보기-1(JPA,Gradel,SpringBoot)
최신글
-
Spark
[Spark] Structed Streaming/Output Mode/Streaming Winodw/watermark
1. Structed Streaming앞서 살펴 봤듯이 Apache Spark Structured Streaming은 배치(Batch)처리와 실시간 스트리밍 처리를 통합하여 사용할 수 있게 해주는 고수준의 분산 실시간 데이터 스트림 처리 엔진입니다. Structuerd streaming에서는 Micro Batch가 진행되면서 트리거 간격마다 수신되는 모든 input data steam은 input table에 무한히 append됩니다.때문에 structered streaming은 배치 처리가 아닌 테이블 스트림에 계속 추가하여 처리함으로써 (실시간에 가까운) 저지연 처리가 가능해집니다. 2. Streaming output mode결과 테이블이 갱신될 때 외부 저장소에 기록(writeSteam)하는 방식(..
-
Kafka
[kafka] 메시지 큐와 카프카의 차이점/이벤트 루프/마이크로배치와 스트리밍의 차이/카프카는 Pub-Sub인가, Streaming인가?
1. 메시지 브로커메시지 브로커는 publisher가 생산한 메시지를 메시지 큐에 저장하고, 저장된 데이터를 consumer가 가져갈 수 있도록 "중간 다리 역할"을 해주는 브로커다. 흔히 S/W 관점에서 "미들웨어"라고 한다.보통 서로 다른 시스템(혹은 소프트웨어/ 이기종간) 사이에서 데이터를 비동기 형태로 처리하기 위해 사용한다.이러한 구조를 보통 pub/sub 구조라고 하며 대표적으로 Rabbit MQ 소프트웨어가 있고 GCP의 pubsub, AWS의 SQS 같은 서비스가 있다.이와 같은 메시지 브로커들은 consumer가 큐에서 데이터를 가져가게 되면 즉시 혹은 짧은 시간 내에 큐에서 데이터가 삭제되는 특징이 있다.2. 이벤트 브로커이벤트 브로커 또한 기본적으로 메시지 브로커의 큐 기능들을 가지..
-
workflow 리팩토링 프로젝트(SpringBoot,JPA,MySQL)
[Srping Security + JWT] JWT 로그인/토큰 재발급 동작 flow
spring security와 jwt 를 이용하여 로그인을 구현하고 토큰 재발급, redis를 활용한 로그아웃, 최신토큰 사용하기 등등 다 구현을 해보았는데요. reids활용한 구현부분은 flow를 정리해놓았는데 jwt를 이용한 로그인와 토급재발급의 동작 flow에 대한 설명이 부족한것 같아서 추가로 포스팅을 작성하려고 합니다. 이 포스팅은 jwt를 이용한 로그인과 토큰 재발급의 동작 흐름에 관한 글이기 때문에 구현방법은 이전포스팅들을 참고해주시기 바랍니다. 들어가기 앞서 OncePerRequestFilter가 아니더라도 일반적인 GenericFilterBean을 상속받아도 무관합니다. (OncePerRequestFilter가 이미 GenericFilterBean를 상속받고 있기 때문.) Filter 작..
-
workflow 리팩토링 프로젝트(SpringBoot,JPA,MySQL)
[SpringBoot]멀티모듈에서 개발 환경별로 DB 분리하기
프로젝트 진행중 loval,dev,test 환경으로 DB를 분리해야 할 일이 생겼습니다. test 코드 수행이 끝난 뒤 모든 데이터가 지워져서 DB가 클린상태가 되어야 하는데 그렇게 되면 API 테스트시 DB의 기존 데이터들이 모두 삭제되는 문제가 발생했습니다. 때문에 TEST용 DB를 따로 분리해주기로 했습니다. aplication.yml을 분리해서 사용할 건데요, aplication.yml이란 무엇일까요? aplication.yml 이란? application.yml은 주로 스프링 부트(Spring Boot) 애플리케이션에서 사용되는 설정 파일입니다. 스프링 부트는 자바 기반의 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크로, 이를 통해 애플리케이션의 설정을 관리할 수 있습니다. app..
-
workflow 리팩토링 프로젝트(SpringBoot,JPA,MySQL)
[JWT+Redis]Redis를 이용해 최신 JWT만 이용하게 하기 + accessToken 만료시 재발급 + JWT 로그아웃 - 2
이전 포스팅에 이어서 이번에는 redis를 이용해서 로그아웃을 구현해 보겠습니다. balckList를 사용한다고 하는데요 말은 blackList지만 실제로 사용할 때는 redis에 해당토큰을 set해서 blackList로 등록해주고 리소스 접근시 balckList에 해당 토큰이있다면 로그아웃 처리되었기 때문에 리소스 접근이 안되는 것입니다. flow를 살펴봅시다. 로그아웃 flow는 이렇게 진행됩니다. 핵심은 accessToken을 BalckList에 등록해주고 refreshToken을 삭제해서 해당 토큰으로 로그인할 수 없도록 로그아웃처리를 해줍니다. 그래서 해당 리소스에 요청할때 로그아웃처리된 토큰이 온다면 redis에서 blackList를 확인하여 해당 토큰이 있다면 로그아웃된 토큰이므로 리소스에 ..