Posts
Youngho's Devlog
Cancel

Spring Data JPA Batch Insert의 사실과 오해

SpringBoot + JPA + MariaDB(10.6 이상) 환경에서 JPA 엔티티 ID 생성 전략을 IDENDITY를 적용하면 batch insert를 사용할 수 없다는 내용은 구글링을 통해 쉽게 찾을수 있다. IDENTITY 전략은 auto-increment로 PK 값을 자동으로 DB 에 의존하여 채번하는 방식이다. JPA 엔티티를 ...

DB Lock 알아보기 1편

제품을 운영하다보면 Deadlock found when trying to get lock, Lock wait timout exceeded와 같은 DB 동시성 이슈를 마주할 수 있게 된다. 보통 여러 트랜잭션이 동시에 동일 데이터에 대한 select, update 작업들을 수행할때 발생하게 되는데 이와 관련해서 DB Lock에 대해 정리해보고자 한다. ...

Kafka 기반 대규모 데이터 동시성 최적화: Request-Reply 패턴 활용 사례

우아콘24의 ‘Kafka 기반 대규모 데이터 동시성 최적화: Request-Reply 패턴 활용 사례’’ 에 대한 학습 내용을 정리하기 위한 목적의 TIL 포스팅입니다.🙆‍♂️ 도입 배경 주문이 급증하는 지역에 소수의 라이더가 존재한다고 가정했을때 고객들의 배송이 지연되는 현상이 발생하게 됨 이때 시스템에선 ‘주문수 대비 라이더가 너...

[Java] Virtual Thread

우아한 테크 세미나 ‘Java의 미래, Virtual Thread’ 학습 내용을 정리하기 위한 포스팅입니다😀 1. 일반 Thread 모델 일반 스레드 모델은 다음과 같은 특징을 가진다. 플랫폼 스레드 OS에 의해 스케줄링 커널 스레드와 1대1 매핑 작업 단위 Runnable 애플리케이션은 커널 영역(OS), 유저 영역(...

Start With Why 내용 정리

‘Start With Why’ 책 내용을 정리하기 위한 목적의 포스팅입니다🙆‍♂️ 들어가며 진정한 리더는 사람들이 자발적으로 행동하도록 마음 깊이 열의를 준다. 성과보상이나 혜택 같은 외부 요인 없이 목적의식이나 소속감을 심어줄수 있다. 1부 방향을 잃어버린 세상 1장 - 우리는 착각에 빠져있다 우리는 ‘올바른’ 판단을...

첫 스프린트 리딩 회고

스프린트 리더 제의 23년 10월 전사 조직 개편과 더불어 스프린트 리더(a.k.a 유닛장) 제의가 들어오게 되었다. 구성원 및 상위 리더분들의 신뢰를 받고 있다는 생각들어 뿌듯하면서도, 두 가지 생각이 머릿속을 맴돌았다. 이전 스프린트 리더들을 옆에서 지켜보았을때 일반 스프린트 구성원들보다 많은 미팅 일정들로 실무 개발 시간이 줄어들텐데 ...

스프링부트 Actuator 매트릭 데이터독 연동하기

서버 모니터링 및 장애대응시 tomcat threadpool과 hikaricp 관련 메트릭은 중요한 요소다. (경험상 두 메트릭 지표 관련 장애를 몇번 겪었기에 더 뼈저리게 느끼고 있다) 이번 포스팅에선 AWS ECS 환경에서 스프링부트의 actuator 를 활용하여 DataDog 에 커스텀 메트릭을 연동했던 트러블슈팅 과정을 기록하고자 한다. 실...

스프링부트3버전에서 존재하지 않는 리소스 요청시 예외가 발생하는 문제 해결기

spring boot3 버전 마이그레이션후로 ‘/favicon.ico/’ 요청에 대해 500 status 응답이 떨어지는 현상이 발생하였다. api 서버이기에 favicon을 별도 관리하지 않아 고객에게 이어지는 치명적인 상황은 아니었지만 제품운영 관점에서 에러로그가 너무 과도하게 찍히고있어, 실제 고객의 제품 사용 도중 발생한 오류들을 시스템적으로 ...

DB Master&Slave Replication

고가용성 시스템을 구축하려면 DB 이중화는 필수적인 요소이다. DB 이중화 방식에는 두 가지가 존재한다. Clustering: 여러 개의 DB를 수평적인 구조로 구축하는 방식, 동기 방식으로 노드들 간의 데이터를 동기화 Replication: 여러 개의 DB를 권한에 따라 수직적인 구조(Master-Slave)로 구축하는 방식, 비동기 방...

Service Mesh

기존 모놀리틱 구조에서 MSA로 전환하면서 독립성 및 확장성과 같은 많은 이점을 얻은만큼, 아래와 같은 단점도 존재하였다. 서비스가 분산되어 있어, 서비스간 통신에 복잡성 증가 장애 추적 및 모니터링 어려움 Service Discovery: 호출되는 서비스의 논리적, 물리적 위치가 변경되었을때 호출하는 서비스가 찾기 어려움 Circu...