일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- CodePipeline
- kafka
- CI
- cd
- mysql
- spring
- Spring JPA
- transactionaleventlistener
- AWS
- mirror maker2
- JPA
- producer
- offsetdatetime
- Kubernetes
- Kotlin
- API
- K8s
- Entity
- Spring Data JPA
- centos7
- Streams
- QueryDSL
- ECS
- consumer
- git
- PAGING
- bean
- topic생성
- entity graph
- spring kafka
- Today
- Total
목록Spring (34)
Yebali
Spring event란 스프링에 데이터를 전달하는 방식 중 하나로메서드를 직접 호출하는 것이 아니라 이벤트를 발행(Publish)하고 수신(Listen)하는 형태로 사용됩니다. 이런 방식을 사용하면 모듈 간 의존성이 낮아지고 관심사를 분리할 수 있다는 단점이 있습니다. 구현하는 방법은 일반적으로 ApplicationEventPublisher를 통해 이벤트를 발행하고,@EventListener, @TransactionalEventListener를 통해 이벤트를 수신합니다. 기본적인 사용방법은 이미 아시는 분들이 많을 거라 생각합니다.이 글에서는 @EventListener, @TransactionalEventListener가 Transaction과 함께 이벤트를 처리할 때 어떻게 동작한는지에 대해 알아보겠..

요즘엔 다양한 방식의 인증/인가 시스템이 존재합니다AWS Cognito나 Firebase Authentication 등 클라우드 서비스도 있고,Keycloak 같은 IAM(Identity and Access Management solution)도 존재합니다. 이렇게 다양하고 좋은 서비스들이 있지만 오늘은 가장 기본적인(?)Spring Security으로 JWT을 발급해 주는 인증/인가 서비스를 만들어보려고 합니다. 아래 내용은 Spring Security를 사용해 회원을 관리하고,로그인에 성공하면 해당 회원의 권한이 인가된 JWT를 발급하고, 발급된 JWT를 사용해 API를 호출하는 예시입니다. 의존성 추가// gradle.build.ktsdependencies { // Spring Security..

스텝페이에서 적용했던 Spring Cloud Config을 사용하여재시작 없이 Spring Cloud Gateway의 Route을 동적으로 추가하도록 했던 경험 남기기.Spring Cloud Gateway란?먼저 Spring Cloud Gateway은 Spring을 기반으로 API Gatewa기능을 제공해 주는 프로젝트이다.일반적으로 MSA환경에서는 서버를 구성할 때 Gateway을 앞단에 배치하여 클라이언트들의 요청을 받고요청 경로에 따라 알맞은 서비스에게 그 요청을 전달하게 한다.이때, 요청을 어느 서비스에 전달할 지에 대한 Predicate, 요청/응답에 적용할 Filter 등의 정보를 가지고 있는 것을 Route라고 한다.Route을 등록하는 기존 방식일반적으로 Gateway의 route정보는 아..

Auto Configuration이란? Auto Configuration이란 Spring Boot가 자주 사용되는 수많은 Bean들을 자동으로 등록해 주는 기능을 말한다. 아래에서 어떻게 많은 Bean들을 자동으로 등록해 주는지 살펴보자 알게 모르게 동작하는 Auto Configuration 우리가 Spring Boot를 사용할 때, 등록한 적 없는 수많은 Bean들을 사용한다. 이런 동작은 'spring-boot-autoconfiguration' 의존성이 해주는데 'spring-boot-autoconfiguration'은 'spring-boot-starter-web'을 사용하면 자동으로 포함되는 의존성이다. 'spring-boot-autoconfiguration' 패키지 내부를 살펴보면 'autocon..

Spring+Kolin을 사용하여 웹 소켓을 구현하는 방법을 알아보자. 의존성 설정 build.gradle.kts에 아래처럼 의존성을 추가한다. dependencies { implementation("org.springframework.boot:spring-boot-starter-websocket") } WebSocket handler 설정하기 WebSocketHandler는 WebSocket을 통해 메시지를 전달받았을 때, 또는 누군가 WebSocket 연결하거나 종료했을 때의 동작을 담당하는 구현체이다. WebSocket이 전송할 수 있는 데이터의 형태는 Text와 Binary이기 때문에 WebSocketHandler도 TextWebSocketHandler와 BinaryWebSocketHandler가..

Spring을 사용하다 보면 @OneToMany로 매핑되어 있는 Entity들을 조회하기 위해 이러저러한 방법을 지원한다. 가장 흔하게 생각할 수 있는 방법으로는 Lazy Loading, fetch join, entity graph가 있다. 테스트 환경 Entity는 Team, Member, Card가 있고 각각 1:N(OneToMany) 관계로 매핑되어 있다. @Entity class Team( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long = 0, var name: String, @OneToMany(mappedBy = "team", cascade = [CascadeType.PERSIST, CascadeType.REMOVE])..