들어가며안녕하세요~ 대부분의 프로젝트에서는 multi module 을 고려하여 구성하시는 경우들이 많은데요.multi module 로 나누어 각 모듈의 역할을 분리하고, 재사용성을 증진시키기 위해 multi module 을 활용하고 계시더라구요 그런데 multi module 로 나누게 되면, 가장 큰 문제점으로 다가오는 것이 바로 build 설정들이 중복되서 관리되는 것이 참 아쉬운 부분입니다.이러한 아쉬운 점을 해결하기 위해 gradle 에서는 buildSrc 혹은 build-logic 이라는 모듈을 기반으로 중복되는 build 설정들을 하나로 일원화시킬 수 있게 제공하는데요. 한번 알아보도록 해보겠습니다~!Multi Project Build basic전체적인 gradle 의 overview 는 위와 ..
전체 글
주로 개발에 대한 이야기들 Spring Kotlin k8s DBIn coming저번에 저희는 Observability 와 관련된 기본 개념들을 학습하였는데요.간단히 요약을 해드리면Observability 는 오류가 왜 발생했는지 이해하는 것을 목표로 하고 있고, system 의 내부 구조를 모르는 사람마저 근본 원인을 찾을 수 있게 하도록 관측(instrumentation) 하는 것을 의미합니다. Observability 를 구성하는 가장 중요시되는 요소는 아래와 같습니다.MetricTraceLog따라서 application 을 운영한다면, 위에 언급된 3가지 요소 data 를 생산할 수 있는 기반을 만들고, observability 를 위한 데이터 저장소로 보내는 것이 중요하죠.https://huisam.tistory.com/entry/observability ..
Background안녕하세요~ 오늘은 Observability 라는 주제로 이야기를 나누어 볼까 합니다. 흔히들 Monitoring 이라는 키워드는 많이 들어보았을텐데요. 많은 사람들이 Monitoring 시스템을 구축하는 이유는 내가 관리하는 시스템의 상태를 실시간으로 확인하기 위함입니다.Monitoringis tooling or a technical solution that allows teams to watch and understand the state of their systems. Monitoring is based on gathering predefined sets of metrics or logs.따라서 Monitoring 이야 말로 예전부터 시스템을 관리하기 위한 요소로 필수적인 요소로 ..
들어가며안녕하세요~! 오늘은 Junit 에서 테스트를 선별할 수 있는 기능에 대해 알아보도록 할게요.특정 테스트들을 그룹핑하여 선별적으로 가동하기 위하여 자료를 알아보던 도중에 Junit Tag 라는 것을 알게 되었는데요어떻게 하면 적용할 수 있을지 예제코드와 함께 알아볼게요 Junit Tag예제에 사용되는 버젼은 Junit5 버젼을 예제로 합니다. Junit Tag 는 class 혹은 method 단위로 지정하여, test 에게 일종의 태그를 붙여주는 역할을 합니다. 바로 예시와 함께 가보도록 할게요.import org.assertj.core.api.WithAssertionsimport org.junit.jupiter.api.Tagimport org.junit.jupiter.api.Tagsimport ..
Going In 안녕하세요~! 오늘은 k8s 에서 pod 를 운영할 때 기밀정보를 어떻게 관리하면 좋고, 기밀정보에 대한 관리의 책임은 어떤 component 가 갖고 있는지 한번 알아보도록 할게요 서비스되고 있는 서비스 서버들이 많아질 수록 보안에 대한 중요성 또한 점점 커지고 있는데요. 과연 정말 보안적으로 안전한가? 에 대한 의문점까지 같이 해결해보도록 해보죠 ㅎㅎ Secret What is secret? A Secret is an object that contains a small amount of sensitive data such as a password, a token, or a key. k8s 에서의 secret 은 password, token, key 와 같이 소량의 기밀정보를 포함하고 ..
들어가며 그 동안 우리는 Kotlin coroutine 을 동작하는 구성 요소들(dispatcher, scope) 에 대해 배워왔는데요 coroutine 을 실제 적용하기 위해서는 근본적으로 suspend 함수가 어떻게 동작 하는지에 대해 알아야 합니다. suspend 함수란 무엇이고, 어떻게 동작하게 될까요? 차근차근 알아봅시다. Suspend 자 그럼, Suspend 함수는 도대체 무엇일까요? What is suspend function? Suspend 함수는 한줄로 요약하면 중단가능한 함수 입니다. 중단가능한 함수는 함수가 가동하면서 언제든지 다른 요인에 의해 중단이 가능하다 라는 것을 의미합니다. 위 그림 예시를 보면, 빨간색 Box 의 function 이 특정 Thread 에서 일을 처리하다가,..