2023-04-2431. Spring Cloud 기반 MSA 변환 시작-6Kafka Topic Naming Convention 저는 현재 사용중인 Kafka MQ 에서 토픽을 어떻게 구성할지 고민하고 있습니다. 하나를 예로 들어볼께요.
2023-04-19Netty 아키텍처 및 동작과정{: .note} 이 글을 읽기 전에 Reactor 모델 등장 배경을 설명하는 를 보고 오시면 이해에 도움이 될 것입니다! 본 포스팅은 아래의 들을 번역하고 재정리한 글입니다. 1. Netty 란? 1.
2023-04-19NIO 와 Reactor 모델 아키텍처 설명본문은 아래의 들을 번역하고 정리한 글입니다. 1. NIO(New Input/Output) Java NIO 는 크게 3가지 컴포넌트로 이루어져 있습니다.
2023-04-1730. Spring Cloud 기반 MSA 변환 시작-51. Saga Choreography Architecture v5 버전인 현재 구현진행/완료 중인 아키텍처입니다. 2. Saga Choreography 이벤트 성공값 클라이언트 반환 feat.
2023-04-1329. Spring Cloud 기반 MSA 변환 시작-4인증/권한 설정 JWT 토큰을 강제로 expire 할 수 없다는 점이 까다로운것 같아요. 예로 비밀번호를 업데이트하면, 해당 비밀번호 이전의 토큰은 여전히 사용하능하다는 단점이 존재합니다.
2023-04-08Spring Security(WebFlux) 인증/인가 설정 + JWT{: .important } Reactive 프로그래밍에서는 Spring Security 설정이 기본과는 다릅니다. 별로 레퍼런스가 없길래 아래와 같이 코드를 공유합니다. 1. LoginResponseDto 2. LoginRequestDto 3.
2023-04-05WebFlux(Reactive Programming)1. WebFlux 한줄 정의 WebFlux는 Reactive Programming 을 편하게 사용가능하게하는 Spring 제공 객체로, Pub/Sub 방식으로 이벤트 메세지를 주고받습니다.
2023-04-05CompletableFuture vs WebFlux일반적으로 Future와 WebFlux 를 비동기 구현에 사용하게 됩니다. Future은 별도의 스레드를 호출하여 로직 실행 후, CallBack을 통해 리턴값을 전달받을 수 있죠.
2023-03-2928. Spring Cloud 기반 MSA 변환 시작-3인증/권한 설정 제가 구현하고자 하는 부분을 인증/권한부여 파트만 간단하게 도식화해서 나타낸다면 아래의 그림과 같을거에요. 여기의 문제점은 micro service가 늘어날 수록, 세션에 대한 부담이 늘어난다는 것입니다.
2023-03-2827. Spring Cloud 기반 MSA 변환 시작-2API GateWay 선정 기존에 저는 nginx를 아래의 이유로 사용했어요. 통합 엔트리 포인트를 제공 리버스 프록시(백엔드 포인트 숨기기) 서비스 별 로드 밸런싱 높은 동시처리성능 1,2,3 번은 일반적인 Gateway 툴에서 제공하는 기능이구요.
2023-03-2726. Spring Cloud 기반 MSA 변환 시작-1먼저 제 채팅 프로젝트는 아래의 형태를 추구하고 있어요. Event-Driven Architecture 를 통한 loose-coupling API-Gateway 를 통한 통합 엔트리 포인트 제공 올바른 트랜젝션 처리 비동기 멀티 스레드를 통한 동시성 성능 향상 자동화...
2023-03-1625. Postgresql indexing 활성화인덱싱된 userid, 그러나 Sequential. 그렇다면 어떻게 사용하도록 할 수 있을까요? 영구적인 인덱싱 활용 쿼리설정(feat.
2023-03-1524. 트랜젝션과 멀티스레드의 잘못된 매칭 수정{: .important } HikariCP를 사용하던 중, 새로운 스레드에서 hikariDataSource.getConnection() 을 수행했지만 다른 스레드에서 사용하던 Connection 이 반환되었습니다.
2023-03-15CompletableFuture 기능 별 심화이해thenAccept/thenRun/thenApply thenAccept 는 이전에 전달받은 parameter 가 있을 때 사용되며, thenRun 은 없을 때 사용됩니다. 예시로 함께 보겠습니다.