전체 글

주로 개발에 대한 이야기들 Spring Kotlin k8s DB
들어가며 안녕하세요~! 오늘은 MSA 환경에서 추적을 용이하게 하기 위한, 라이브러리를 알아보도록 해볼텐데요. 과거에 Spring cloud sleuth 로 유명했었던 라이브러리 이지만, 아쉽게도 Spring Boot 2.x 버젼을 마지막으로 지원을 중단하고, Micrometer Tracing 로 옮기게 된 라이브러리입니다. https://github.com/spring-cloud/spring-cloud-sleuth GitHub - spring-cloud/spring-cloud-sleuth: Distributed tracing for spring cloud Distributed tracing for spring cloud. Contribute to spring-cloud/spring-cloud-sleut..
안녕하세요~ 오늘은 k8s 관련된 이야기로 돌아왔어요. 그동안 deployment 로 배포하는 방법과, 운영되는 pod 들에 대해 hpa 를 통해 auto scale 하는 방법들에 대해서 알아보았는데요 오늘은 조금 더 Node 의 자원 활용을 극대화할 수 있는 Topology spread constraint 에 대해 알아보도록 할게요. Topology spread constraint 를 적용하면 현재 운영중인 Node 에서 가용중인 Pod 의 개수를 원하는 대로 control 하거나 균등하거나 배포하는 방식을 보장할 수 있어요 한번 알아보러 가볼게요~! Topology spread constraint 먼저 Topology spread constraint 를 왜 사용해야 할까요? 예시를 통해 한번 알아보도..
들어가며 안녕하세요~! 오늘은 Spring 관련한 게시글로 찾아뵙게 되었네요 Spring 개발자라면 가장 많이 사용하게 되는 어노테이션인 Transactional 을 사용할 시 주의점에 대해 소개해드리고자 합니다 Spring Transactional Spring 에서는 PlatformTransactionManager 이라는 클래스가 Transaction 들을 관리해주는 역할을 가지고 있습니다. 작성한 코드가 정상적으로 가동한다면 큰 이상 없이 commit 을 하게 되고, 만일 예외가 발생하는 사항이 발생한다면 rollback 을 mark 하여 Transaction 을 commit 하지 않게 됩니다. 그럼 어떠한 매커니즘으로 Transaction 을 관리하게 될까요? @Transactional 어노테이션을..
안녕하세요~! 이전에 Coroutine 에 대한 기본 개념들을 알아보았죠 이제 학습했던 Coroutine 기본 지식들을 기반으로 Spring Webflux 에 접목시킬 시간인데요. 어떻게 Spring Webflux 에서는 Coroutine 을 접목시켰는지 코드를 보면서 연결 포인트들을 알아보려고 합니다. 혹시나 Coroutine 에 익숙하지 않거나 개념을 모르신다면 아래 게시글을 참조해주세요 ^-^ https://huisam.tistory.com/entry/coroutine2 [Kotlin] Coroutine - 2. CoroutineScope & Context & Dispathcer 을 파헤쳐보자 Coroutine 이전 시간에는 코루틴의 동작원리와 동시성 과 병렬성 의 차이에 대해 알아보았습니다. ht..
안녕하세요~! ㅎㅎ 오늘은 kotlin 에서 Annotation 에 대해 알아보도록 할게요. 개발을 진행하다보면 custom 한 validation annotation 을 만들거나, spring aop 혹은 여러 유틸들을 만들때 유용하게 사용되는데요. Java 와는 약간 다른 컨셉으로 kotlin 에서는 정의되어 있다보니, 하나씩 차근차근히 봐보도록해요. Annotation kotlin 의 어노테이션을 코드와 함께 살펴보도록 해봅시다. @Target( AnnotationTarget.FIELD, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.P..
안녕하세요~! Coroutine 에서 제공하는 다양한 Interfa ce 중에서 Queue 와 비슷한 개념을 가진 Channel 에 대해서 알아볼려고 해요 Channel 이란 Channel 은 쉽게 말씀드리면 데이터를 stream 처럼 전송하기 위한 인터페이스라고 보시면 됩니다. 마치 Kafka 처럼 데이터를 제공하는 producer 와 데이터를 소비하는 consumer 의 형태로 구성됩니다. 위 그림처럼 인터페이스도 데이터를 제공하는 SendChannel 과 데이터를 소비하는 ReceiveChannel 로 이루어진 것을 볼 수 있죠. public interface SendChannel { public suspend fun send(element: E) } public interface ReceiveCh..
huisam
천천히 올바르게