Developer/Spring

Introduce 안녕하세요~! 오늘은 서버 개발자들에게는 필수덕목 중의 하나인 성능 테스트에 대해 알아보려고 합니다 아무래도 실제 현업에서 일을 하다 보면, 많은 트래픽을 대비하여 내가 만든 Application server 에 대하여 성능이 어느정도 나오는지 판단하기가 어려워 이를 검증하기 위해 성능 테스트를 진행하게 되는데요 오늘은 Spring boot 기반의 application server 를 간단하게 만들어보고 성능 테스트해보는 시간을 가지고자 합니다. Why Performance Test? 먼저 왜 할까? 에 대한 이야기인데요. 성능 테스트를 하는 이유는 크게 여러 가지가 있습니다. 1. 한 Application server 당 최대 몇 개의 요청을 동시에 처리할 수 있는지 측정하여 많은 트..
들어가며 안녕하세요~! 오늘은 오랜만에 다시 JPA 관련한 내용으로 찾아왔습니다 ^-^ DB 를 운영하다보면 다양한 Id 생성 전략에 대해 고민을 하고 어떻게 설계할 것인가 에 대해 많은 고민을 하게 되는데요 오늘은 JPA Hibernate 에서 제공하는 Id generator 들에 대해 알아보는 시간을 가지도록 해볼게요 Id Generator 다양한 Id 생성을 위한 기능들을 제공하지만, 하나씩 들어가다보면 정말 종류가 다양하답니다. 오늘 우리가 탐구할 항목은 바로 @GeneratedValue Annotation 을 보려고 해요 public @interface GeneratedValue { /** * (Optional) The primary key generation strategy * that the..
들어가며 안녕하세요~! 오늘은 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..
들어가며 안녕하세요~! 오늘은 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..
들어가며 안녕하세요~! ㅎㅎ JPA 를 사용하면서 개발하던 도중에, 필요한 컬럼들에 대해서만 쿼리를 만들면 db 에 performance 성능향상이 이루어지지 않을까? 하는 의문심에 JPA 의 query statement 의 생성방식에 대하여 공부하고 있었는데요. 왜냐하면 불필요한 컬럼까지 update 하는 경우, index 걸린 column 같은 경우에는 성능에 악영향이 있기 때문입니다. 그래서 document 를 찾고 찾다보니 JPA 에서는 update / insert statement 를 만들어줄 때 statement 자체를 caching 하여 항상 일관된 query 문을 제공한다고 하는데요. 오늘은 JPA Hibernate 를 사용하면서 의문이 들었던 Query statement caching 이..
huisam
'Developer/Spring' 카테고리의 글 목록