전체 글

주로 개발에 대한 이야기들 Spring Kotlin k8s DB
들어가며안녕하세요~! 오늘은 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 에서 일을 처리하다가,..
Introduce 안녕하세요~! 오늘은 서버 개발자들에게는 필수덕목 중의 하나인 성능 테스트에 대해 알아보려고 합니다 아무래도 실제 현업에서 일을 하다 보면, 많은 트래픽을 대비하여 내가 만든 Application server 에 대하여 성능이 어느정도 나오는지 판단하기가 어려워 이를 검증하기 위해 성능 테스트를 진행하게 되는데요 오늘은 Spring boot 기반의 application server 를 간단하게 만들어보고 성능 테스트해보는 시간을 가지고자 합니다. Why Performance Test? 먼저 왜 할까? 에 대한 이야기인데요. 성능 테스트를 하는 이유는 크게 여러 가지가 있습니다. 1. 한 Application server 당 최대 몇 개의 요청을 동시에 처리할 수 있는지 측정하여 많은 트..
들어가며 안녕하세요! java21 LTS version 이 신규 출시됨에 따라 많이 관심을 받고 있는 Virtual thread 에 대해 이야기해보고자 하는데요 Virtual thread 는 기존에 동작하는 Platform thread 에서 동작하며, I/O blocking 발생시 중단(suspend) 지점을 stack 으로 옮겨, I/O block 되는 시간동안 다른 일들을 더 수행할 수 있게 지원하는 경량화 쓰레드라고 할 수 있습니다. 따라서 java 진영에서는 기존에 thread-per-request style 를 갖춘 application server 에서 I/O blocking 으로 인해 아무것도 하는일이 없는데도 task 를 처리할 수 없는 상황들로 인해 병목이 되는 부분들을 해결할 수 있어 ..
들어가며 안녕하세요~! 오늘은 오랜만에 다시 JPA 관련한 내용으로 찾아왔습니다 ^-^ DB 를 운영하다보면 다양한 Id 생성 전략에 대해 고민을 하고 어떻게 설계할 것인가 에 대해 많은 고민을 하게 되는데요 오늘은 JPA Hibernate 에서 제공하는 Id generator 들에 대해 알아보는 시간을 가지도록 해볼게요 Id Generator 다양한 Id 생성을 위한 기능들을 제공하지만, 하나씩 들어가다보면 정말 종류가 다양하답니다. 오늘 우리가 탐구할 항목은 바로 @GeneratedValue Annotation 을 보려고 해요 public @interface GeneratedValue { /** * (Optional) The primary key generation strategy * that the..
huisam
천천히 올바르게