전체 글 57

[부하 테스트] 정산 적재 스케줄러 (3) - DeadLock 해결과 가상 스레드 도입

정산 적재 스케줄러 : 목표 시간 10s (정산 데이터 1,000,000건) ✏️ PageSize 조정을 통한 SELECT 실행 시간 최적화 기존 로직에서 정산 데이터를 100만 건으로 스케일업하자 처리시간은 16s가 되었습니다. 최적화를 하기위해 이 16s를 구성하는 select, update, insert 로직별 지연 시간을 각각 측정해보았습니다.SELECT : 9초INSERT : 2초UPDATE : 5초 따라서 SELECT 시간이 가장 길다는 것을 알 수 있었고, SELECT 쿼리의 실행 계획을 분석해보았습니다.EXPLAIN ANALYZESELECT p.id AS payment_id, p.amount AS payment_amount, s.id AS seller_idFROM paym..

[Infra] 정산 서버 AWS EC2 배포 환경 구성 (2) - docker-compose로 환경 세팅

1. 서버에 Docker & Docker Compose 설치# 1. Docker 설치 및 실행sudo dnf install docker -ysudo systemctl start dockersudo systemctl enable docker# 2. ec2-user에게 권한 부여 (로그아웃 후 다시 접속해야 적용됨)sudo usermod -aG docker ec2-user# 3. Docker Compose 설치sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local..

Back-End/Infra 2026.02.20

[Infra] 정산 서버 AWS EC2 배포 환경 구성 (1) - EC2 인스턴스 설정, SSL

1. EC2 인스턴스 설정현재 정산 서비스의 경우 대규모 데이터를 다루는 작업이 주를 이루고 있습니다. 따라서 집계 및 정산 연산과 객체 관리를 위한 CPU 연산 능력과 메모리 안정성이 중요한 상황입니다. 1) 애플리케이션 및 OS 이미지 선택 Amazon Linux와 Ubuntu 중에 고민했는데, Amazon Linux가 리소스 점유율이 낮아 RAM을 조금이라도 덜 점유하고, AWS 공식 문서가 잘 되어 있기에 선택했습니다. 반면, Ubuntu는 구글링 정보가 압도적으로 많고 apt 기반 패키시 관리를 하기 때문에 좀더 접근이 쉽고 범용적이라는 장점이 있습니다. 2) 인스턴스 선택적합- C 시리즈 : 동일 가격 대비 CPU 성능이 가장 좋아 대량의 데이터 연산에 최적화되어 있습니다. (c6i.la..

Back-End/Infra 2026.02.20

[Infra] AWS Certificate Manager과 Let's Encrypt

MVP 단계까지 저희 팀은 AWS EC2 2개를 띄워 서버와 프론트를 각각 배포하고, ACM와 ALB를 사용해 인증서를 적용했습니다. 하지만, 최종 배포 단계에서 프론트를 담당한 팀원이 ACM이 아닌 Let's Encrypt를 사용했고, 이에 서버 배포를 하기에 앞서 SSL/TLS 인증을 하는 대표적인 두 가지 방법에 대해 비교 분석을 해보려 합니다. ACM 이란?AWS 환경 내에서 SSL/TLS 인증서를 프로비저닝, 관리 및 배포하는 관리형 서비스로 AWS 리소스(ALB, API Gateway)와 연동해 사용할 수 있어 AWS 인프라를 사용할 때 가장 편리합니다. Let's Encrypt 란?무료 SSL/TLS 인증서를 발급받고 갱신하는 오픈 소스 소프트웨어로 서버(Linux, Nginx/Apache ..

Back-End/Infra 2026.02.20

[부하 테스트] 정산 적재 스케줄러 (2) - Slice, 비동기 멀티 스레드, Bulk, JdbcTemplate

정산 적재 스케줄러 : 목표 시간 2s (정산 데이터 100,000건)(1)편에서 10,000건 해결 후 100,000건에 대한 부하 테스트를 이어서 진행하였습니다. 십만 건 정도 되니 JAM Heap 메모리 사용량이 약 25%로 증가한 것을 확인할 수 있었습니다. 반면에 커넥션 점유 시간은 차이가 거의 없었습니다. 가장 눈에 띈 변화는 API 응답 시간이었습니다. 10,000건 기준으로 약12s 에서 100,000건이 되자 약2m 9s로 급격히 증가했습니다. 커넥션 사용 시간은 차이가 없지만 응답시간이 길어진 것을 보니 애플리케이션 서버에서의 작업량에 대한 최적화가 필요한 시점임을 깨달았습니다. 💡 그렇다면 서버에서는 어떤 작업이 이루어지기에 이렇게 시간 차이가 많이 날까요?서버에서는 DB에서 받아온..

스레드에 대한 이해

부하테스트를 진행하며 WAS의 스레드 풀을 튜닝하게 되면서 스레드에 대한 학습이 필요함을 깨달아 정리해보려고 합니다. 스레드란?스레드는 프로세스 내에서 CPU 코어의 병렬 활용을 위해 고안된 자료구조입니다. 1번에 1개의 작업만 실행하던 최초의 단일코어 CPU가 여러작업을 번갈아 실행하는 멀티태스킹이 가능해지고, 둘 이상의 프로세서(CPU 코어)를 사용해 여러 작업을 동시에 처리하면서 스레드의 활용이 중요해졌습니다. 코드는 컴파일되면서 0과 1로 이루어진 기계어가 되고, 이 기계어는 메모리(RAM) 특정 주소에 저장됩니다. 그리고 CPU는 스레드를 통해 실행할 명령어의 주솟값을 읽어 실행합니다. 스레드 전환이 필요할 때 CPU의 제어권은 커널로 넘어가는데, 이때 실행되는 커널 코드는 어셈블리로 작성되어 ..

Back-End/OS 2026.02.13

[부하 테스트] 정산 적재 스케줄러 (1) - TABLE 전략과 JPA BATCH

정산 적재 스케줄러 : 목표 시간 2s (정산 데이터 10,000건)승인 완료된 미정산 결제 건에 대한 정산 테이블 적재 메서드의 목표 시간은 2s입니다. 따라서 payment가 100건 일때부터 부하 테스트를 진행해보도록 하려고 합니다. Connection 사용 시간을 측정했을 때, 100건일 때 약 0.17s 1,000건일 때 약 0.6s 이었으며, postman으로 측정한 테스트용 API 응답시간 또한 1s 내로 여유롭게 들어왔습니다. payment를 10,000건으로 늘리자 커넥션 사용 시간이 약 3.8s로 급격히 증가했습니다. 커넥션 시간이 긴 것으로 보아 쿼리 실행 횟수가 너무 많아 DB 통신이 길어졌고, 개선이 필요한 시점임을 알 수 있었습니다. SchedulerServiceImpl.ja..

HikariCP 커넥션 풀에 대한 이해 (1)

API 테스트를 하며 그라파나 지표를 분석하던 중 이상한 점을 발견했습니다.Usage Time과 Acquire Time이 API 요청에 의해 오른 것에 반해 Creation Time은 측정이 되지 않다가 API 요청이 끝난 이후에 뜬금없이 오른 것입니다. WAS에서 DB와의 커넥션은 서버 시작 초기에 모두(기본 값 10개) 생성되었을 텐데, API 요청에 기존 10개의 커넥션이 모두 사용된 것도 아닌데, 커넥션 사이즈를 넘길 수도 없는데 왜 생성 시간이 측정되었을까? 의문이 들었습니다.이유부터 말하자면 HikariCP 안의 HouseKeeper라는 스레드가 Connection Pool의 커넥션들의 생명을 관리하고 있기 때문이었습니다. 1. Grafana로 보는 커넥션 풀 핵심 지표- hikaricp_co..

Back-End/Java 2026.02.06

[docker] 데이터 규모별 볼륨화하기

0. 왜 볼륨화를 하는가?API 성능 부하 테스트를 하기 위해 대량의 데이터가 필요한 시점입니다. 데이터의 규모를 점진적으로 늘려가며 비교를 해야하기에 도커 볼륨화를 통해 db환경을 세팅하고자 합니다. 데이터의 볼륨화는 다음과 같은 장점이 있습니다.시간 절약: 100만 건의 데이터를 매번 INSERT 하려면 한참 걸리지만, 이미 데이터가 저장된 볼륨을 연결하면 1초 만에 데이터베이스가 준비됩니다.재현성: 테스트 중 데이터가 변형되어도, 원본 볼륨만 다시 연결하면 항상 똑같은 초기 상태에서 다시 테스트할 수 있습니다.버전 관리: vol_10k, vol_100k처럼 데이터 규모별로 이름을 붙여 관리하기 편합니다. 1. 작업 흐름1) 볼륨화할 빈 볼륨을 셋팅grafana, prometheus, influxdb..

Back-End/Docker 2026.02.02

[경제] 신축 아파트 분양가 매매가 역전

https://n.news.naver.com/article/032/0003347914 ‘사 두면 오르는 시대’ 끝났나…아파트 분양가, 매매 시세 앞질렀다지난해 전국 신축 아파트의 평균 분양가격이 15년 만에 평균 매매가를 역전했다. 현 정부 들어 ‘분양가 상한제’가 사실상 사문화된 데다 고금리 및 자재비·인건비 등의 인상으로 분양가가 오n.news.naver.com 언론사 및 기사 위치경향신문 A2면 4/4 기사의 주제지난해 신축 아파트 평균 분양가격이 15년 만에 평균 매매가를 역전함. 규제지역을 제외한 분양가 상한제 해제와 더불어 금리 인상, PF부실에 따른 조달금리 및 자재비와 인건비 동반 상승이 그 원인. 상세내용정부는 2023년 1·3대책을 통해 강남 3구(강남·서초·송파)와 용산구를 제외한 나..