<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>깃돌</title><description>부하를 걸어보고, 깨지는 지점을 찾고, 왜 깨졌는지 적어둡니다.</description><link>https://tkv00.github.io</link><language>ko-kr</language><managingEditor>tkv0098@gmail.com (김도연)</managingEditor><item><title>[TR1L] &quot;LLM이 짠 테스트 코드를 그대로 믿습니까?&quot; — AI 결과를 진짜  테스트 자산으로 만드는 LLM-assisted Test (1)</title><link>https://tkv00.github.io/posts/tr1l-quot-llm%EC%9D%B4-%EC%A7%A0-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C%EB%A5%BC-%EA%B7%B8%EB%8C%80%EB%A1%9C-%EB%AF%BF%EC%8A%B5%EB%8B%88%EA%B9%8C-quot-ai-%EA%B2%B0%EA%B3%BC%EB%A5%BC-%EC%A7%84%EC%A7%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%90%EC%82%B0%EC%9C%BC%EB%A1%9C-%EB%A7%8C%EB%93%9C%EB%8A%94-llm</link><guid isPermaLink="true">https://tkv00.github.io/posts/tr1l-quot-llm%EC%9D%B4-%EC%A7%A0-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C%EB%A5%BC-%EA%B7%B8%EB%8C%80%EB%A1%9C-%EB%AF%BF%EC%8A%B5%EB%8B%88%EA%B9%8C-quot-ai-%EA%B2%B0%EA%B3%BC%EB%A5%BC-%EC%A7%84%EC%A7%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%90%EC%82%B0%EC%9C%BC%EB%A1%9C-%EB%A7%8C%EB%93%9C%EB%8A%94-llm</guid><description>1\. 개요 거의 2달만에 블로그 포스팅을 다시 시작했습니다. 그동안 다양한 기업에서 면접과 코딩 테스트를 진행하며 블로그를 관리할 시간이 상대적으로 부족하여 Holliverse 테스트 관련 포스팅도 중간에 멈췄습니다. 결과적으로는 대기업 계열사에서 최종 탈락으로 이번 상반기를 마무리했습니다. 다소 아쉬운 결과이기는 하지만 상반기동안 나의 부족한 점을 다시 깨닫고, 처음부터 천천히 진행하고자…</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate><category>test</category><category>스프링</category><category>자동화</category><category>gpt</category><category>OpenAI</category><category>spring batch</category><category>스프링 배치</category><category>테스트 코드</category><category>LLM</category><category>AI-Driven</category><category>TR1L</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] 이탈률 구현 (1) - Test Scenario 작성</title><link>https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-1</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-1</guid><description>1\. 개요 Holliverse 의 이탈률의 정의와 오케스트레이션 계산 엔진 설계는 아래의 포스팅에서 확인할 수 있다. [\[Holliverse\] 이탈률 구현 설계 (1) 이탈률의 생명주기 우리 서비스가 이탈률 시스템을 도입하게 된 계기와 파이프 라인의 당위성은 아래 문서에서 확인할 수 있다.이탈률 도입 이탈률 설계 Holliverse Wiki안녕하세요. 저희 프로젝트는 크게 두 축으로 c…</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><category>test</category><category>K6</category><category>성능 테스트</category><category>부하 테스트</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] 이탈률 구현 (2) - Baseline•Peak Test</title><link>https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-2</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-2</guid><description>1\. 개요 이번 포스팅에서는 앞선 포스팅에서 작성한 5가지의 테스트 시나리오 중 Baseline Test 와 Peak Test 시나리오에 대해서 작성하겠다. [\[Holliverse\] 이탈률 구현 (1) Test Scenario 작성 1\. 개요Holliverse의 이탈률의 정의와 오케스트레이션 계산 엔진 설계는 아래의 포스팅에서 확인할 수 있다. \[Holliverse\] 이탈률 구현…</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><category>test</category><category>K6</category><category>테스트 시나리오</category><category>정합성</category><category>정합성 테스트</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] 이탈률 구현 (3) - Burst Test와 첫 번째 정합성 깨짐</title><link>https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-3</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-3</guid><description>1\. 개요 이번 포스팅에서는 앞선 포스팅에서 설계한 5가지 테스트 시나리오 중 Burst Test 를 다룬다. Baseline과 Peak Test는 각각 다른 질문에 답하는 테스트였다. Baseline 은 정상 구간에서 customer origin E2E 파이프라인이 끝까지 정합하게 동작하는가 Peak 는 active 유저가 반복 행동을 할 때 count 누적과 score 재계산이 유지되는…</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><category>스레드</category><category>thread</category><category>Executor</category><category>burst</category><category>성능 개선</category><category>AbortPolicy</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[TR1L] 통신사 100만 청구서 생성 -  Spring Batch 정산 Job 설계</title><link>https://tkv00.github.io/posts/tr1l-%ED%86%B5%EC%8B%A0%EC%82%AC-100%EB%A7%8C-%EC%B2%AD%EA%B5%AC%EC%84%9C-%EC%83%9D%EC%84%B1</link><guid isPermaLink="true">https://tkv00.github.io/posts/tr1l-%ED%86%B5%EC%8B%A0%EC%82%AC-100%EB%A7%8C-%EC%B2%AD%EA%B5%AC%EC%84%9C-%EC%83%9D%EC%84%B1</guid><description>1\. 개요 해당 포스팅에서는 TR1L에서 통신사 월별 청구서 집계를 수행하는 Job를 처음 설계할 때 어떠한 기준으로 구조를 설계했는지 정리하고자 한다. 이번 글은 이후 성능 개선 결과를 설명하는 글이 아니라, 왜 처음부터 청구서 정산 Job을 단순 계산 배치가 아니라 상태를 가진 배치로 설계했는가 를 기록하는 글에 가깝다. 1) 우리가 왜 Spring Batch를 사용했는가 LG U+ 유…</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate><category>spring</category><category>설계</category><category>spring batch</category><category>배치 시스템</category><category>TR1L</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] AWS ECS Auto Scaling - CPU 99.4%찍고 터져 버린 서버 복구기</title><link>https://tkv00.github.io/posts/holliverse-aws-ecs-auto-scaling</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-aws-ecs-auto-scaling</guid><description>1\. 개요 프로젝트 막바지에 관리자 API 중 안정성을 확인하기 위해 팀원이 K6를 활용한 경량 부하 테스트를 진행하였다. 이 테스트의 목적은 관리자가 동시에 API를 호출했을 때 서버가 기본적인 응답 성능과 안정성을 유지할 수 있는지 확인하는 것이었다. 당시 기본적인 인덱스 처리와 DB 커넥션 풀 조정은 이미 진행한 상태였다. 팀원이 진행한 1차 부하 테스트 결과, 관리자 API는 30초…</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate><category>AWS</category><category>ECS</category><category>병목현상</category><category>오토스케일링</category><category>Fatgate</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] 이탈률 구현 설계 (2) - 오케스트레이션 구축</title><link>https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-%EC%84%A4%EA%B3%84-2</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-%EC%84%A4%EA%B3%84-2</guid><description>1\. 개요 해당 글에서는 이전 글에서 정리한 이탈률 생명주기를 바탕으로, 각 이벤트가 어떤 방식으로 이탈률 계산에 반영되는지, 그리고 이탈률 임계치에 도달한 이유를 기록하기 위해 어떤 파이프라인을 구축했는지를 설명하고자 한다. 이번 글에서는 그중에서도 실제 구축 과정에서 팀원들과 함께 고민했던 지점들, 그리고 그 문제를 어떤 방식으로 해결해 나갔는지를 중심으로 기록하려 한다. 2\. Eve…</description><pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate><category>crm</category><category>설계</category><category>이탈률</category><category>오케스트레이션</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[TR1L] Event Storming, DDD, Bounded Context, Domain Model 설계</title><link>https://tkv00.github.io/posts/tr1l-event-storming-ddd-bounded-context-domain-model-%EC%84%A4%EA%B3%84</link><guid isPermaLink="true">https://tkv00.github.io/posts/tr1l-event-storming-ddd-bounded-context-domain-model-%EC%84%A4%EA%B3%84</guid><description>팀원들 모두 나를 포함해 도메인 모델링에 대한 이해도가 높지 않았기 때문에, 나는 공통 이해를 맞추기 위한 두 가지 방법을 제안했다. 첫째, Event Storming에 들어가기 전에 팀원 전원이 관련 강의를 먼저 수강하도록 했다. 특히 Microservice 설계(with EventStorming, DDD) 강의(진짜 도움 많이 됨 ㅜㅜ)는 개념을 처음 접하는 팀원들도 흐름을 잡는 데 큰…</description><pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate><category>도메인</category><category>DDD</category><category>도메인 주도 설계</category><category>도메인 설계</category><category>Event Storming</category><category>이벤트 스토밍</category><category>TR1L</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] AWS Infra 구축기(1) - 내가 AWS CDK를 선택한 이유</title><link>https://tkv00.github.io/posts/holliverse-aws-infra-%EA%B5%AC%EC%B6%95%EA%B8%B0-1</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-aws-infra-%EA%B5%AC%EC%B6%95%EA%B8%B0-1</guid><description>1달 반?만에 포스팅입니다.(프로젝트 너무 바빴어요.. 그래도 우수상 2개 ^^) 이제 \[LG U+\] 유레카 3기가 막 끝나서 진행한 프로젝트 문서 정리 및 회고 정리 시작할게요... 1\. 개요 Holliverse 프로젝트에서 인프라를 맡기 전까지는, 인프라 구성이라고 하면 그냥 AWS Console 켜서 리소스 하나하나 눌러서 만드는 거라고만 알고 있었습니다. 블로그나 유튜브 강의들도…</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><category>인프라</category><category>AWS</category><category>Infra</category><category>IaC</category><category>Holliverse</category><category>유레카 3기</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] AWS Infra 구축기(2) - Network 설계 / 구현</title><link>https://tkv00.github.io/posts/holliverse-aws-infra-%EA%B5%AC%EC%B6%95%EA%B8%B0-2</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-aws-infra-%EA%B5%AC%EC%B6%95%EA%B8%B0-2</guid><description>1\. 개요 이번 인프라를 설계하면서 가장 먼저 고민한 주제는 기능이 아니라 보안 경계 였습니다. Holliverse 는 구조상 고객용 웹앱과 관리자용 백오피스가 함께 존재합니다. 고객용 서비스는 누구나 접속할 수 있어야 하지만, 관리자 페이지는 그렇게 두면 안 된다고 생각했습니다. 관리자 기능은 회사 내부나 허용된 특정 IP 대역에서만 접근 가능해야 했고, 그 기준은 애플리케이션 코드가 아…</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><category>network</category><category>AWS</category><category>ECS</category><category>ALB</category><category>NAT Gateway</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] AWS Infra 구축기(3) - CI/CD/CT 설계 및 구현(서비스  배포 -50.9% 절감, 모니터링 서비스 배포 -81.6% 절감)</title><link>https://tkv00.github.io/posts/holliverse-aws-infra-%EA%B5%AC%EC%B6%95%EA%B8%B0-3-ci-cd-ct-%EC%84%A4%EA%B3%84-%EB%B0%8F-%EA%B5%AC%ED%98%84-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%B0%B0%ED%8F%AC-50-9-%EC%A0%88%EA%B0%90-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%B0%B0%ED%8F%AC</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-aws-infra-%EA%B5%AC%EC%B6%95%EA%B8%B0-3-ci-cd-ct-%EC%84%A4%EA%B3%84-%EB%B0%8F-%EA%B5%AC%ED%98%84-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%B0%B0%ED%8F%AC-50-9-%EC%A0%88%EA%B0%90-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%B0%B0%ED%8F%AC</guid><description>1\. 개요 중앙 Infra Repository 하나로 배포 통합 이번에 인프라를 설계하면서 Network Architecture 다음으로 가장 먼저 손댄 영역은 CI/CD/CT였습니다. 개발을 빠르게 시작하고, MVP를 만들고, 실제 E2E 테스트를 반복하려면 결국 가장 먼저 필요한 것은 지속적으로 배포할 수 있는 구조 였기 때문입니다. 인프라 구조가 아무리 잘 나와 있어도, 변경 사항을…</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] AWS Step Function 실행 실패와 ECS 정상 상태 모순: CDK 배포 불일치와 Security Group Egress 누락 추적기</title><link>https://tkv00.github.io/posts/holliverse-aws-step-function-%EC%8B%A4%ED%96%89-%EC%8B%A4%ED%8C%A8%EC%99%80-ecs-%EC%A0%95%EC%83%81-%EC%83%81%ED%83%9C-%EB%AA%A8%EC%88%9C-cdk-%EB%B0%B0%ED%8F%AC-%EB%B6%88%EC%9D%BC%EC%B9%98%EC%99%80-security-group-egre</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-aws-step-function-%EC%8B%A4%ED%96%89-%EC%8B%A4%ED%8C%A8%EC%99%80-ecs-%EC%A0%95%EC%83%81-%EC%83%81%ED%83%9C-%EB%AA%A8%EC%88%9C-cdk-%EB%B0%B0%ED%8F%AC-%EB%B6%88%EC%9D%BC%EC%B9%98%EC%99%80-security-group-egre</guid><description>1\. 문제 발생 최근 변경된 On Demand 워크플로우를 구현하며 운영환경에서 배포 이후, 실행 과정(KST 기준: 2026년 3월 14일 11시 2분 15.769초)에서 예상하지 못한 장애를 직면했다. 해당 워크플로우는 EventBridge 에서 시작되어 Step Functions , Lambda(Readiness Probe) , ECS RunTask , DynamoDB Lock 으로…</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><category>AWS Security Group</category><category>트러블 슈팅</category><category>step function</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] 예외처리 고도화 - 인증 보호율 0% → 100%</title><link>https://tkv00.github.io/posts/holliverse-%EC%98%88%EC%99%B8%EC%B2%98%EB%A6%AC-%EA%B3%A0%EB%8F%84%ED%99%94</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-%EC%98%88%EC%99%B8%EC%B2%98%EB%A6%AC-%EA%B3%A0%EB%8F%84%ED%99%94</guid><description>2026년 3월 20일 (금)에 진행한 융합 프로젝트 경진 대회에서 본선 3팀 중 하나로 진출하게 되었다. 그 과정에서 서비스 전반을 다시 점검해보니, 그동안 계속 문제로 남아 있던 예외처리 부족을 이제는 제대로 개선해야겠다는 생각이 들었다. 1\. 우리 서비스 예외처리의 문제점 기능 개발이 어느 정도 마무리된 시점에서 돌아보니, 우리 서비스는 겉으로는 GlobalExceptionHandle…</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><category>예외처리</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Holliverse] 이탈률 구현 설계 (1) - 이탈률의 생명주기</title><link>https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-%EC%84%A4%EA%B3%84-1</link><guid isPermaLink="true">https://tkv00.github.io/posts/holliverse-%EC%9D%B4%ED%83%88%EB%A5%A0-%EA%B5%AC%ED%98%84-%EC%84%A4%EA%B3%84-1</guid><description>우리 서비스가 이탈률 시스템을 도입하게 된 계기와 파이프 라인의 당위성은 아래 문서에서 확인할 수 있다. 이탈률 도입 이탈률 설계 Holliverse Wiki 안녕하세요. 저희 프로젝트는 크게 두 축으로 구성되어 있습니다. 하나는 고객에게 맞춤형 상품을 추천하는 CRM 기능, 다른 하나는 고객의 이탈 징후를 감지하고 대시보드에서 관리할 수 있도록 one year gap.github.io ML…</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><category>crm</category><category>설계</category><category>이탈률</category><category>Holliverse</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[JAVA-STUDY] 2주차 - JVM 2-힙과 GC</title><link>https://tkv00.github.io/posts/java-study-2%EC%A3%BC%EC%B0%A8-jvm-2</link><guid isPermaLink="true">https://tkv00.github.io/posts/java-study-2%EC%A3%BC%EC%B0%A8-jvm-2</guid><description>📘 1. 힙 영역 1) 힙 영역 Heap Area : JVM이 관리하는 프로그램상에서 데이터를 저장하기 위해 런타임 시 동적으로 할당하여 사용하는 영역. new 연산자로 생성되는 객체와 배열이 생성되는 영역. Q. static이 아니라 new 생성자, 메서드들도 Heap영역에 저장하는 이유? A. 클래스가 로딩될 때, 클래스의 모든 메서드 정보가 메서드 영역에 저장됨. 이 클래스를 이용하여…</description><pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate><category>자바</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[JAVA-STUDY] 1주차 - Java JVM</title><link>https://tkv00.github.io/posts/java-study-1%EC%A3%BC%EC%B0%A8</link><guid isPermaLink="true">https://tkv00.github.io/posts/java-study-1%EC%A3%BC%EC%B0%A8</guid><description>📘 1. JVM의 개념 1) 기본 개념 : Java Virtual Machine 자바를 실행하기 위한 가상 기계 Java 는 OS(운영체제)에 종속받지 않고 실행할 수 있다. C언어 같은 경우 소스 코드 를 작성 → 컴파일러 : 기계어 로 해석 → 실행 프로그램( .exe) 생성(Binary code) 특정 OS나 CPU 구조에 의해 컴파일러마다 다르게 컴파일이 수행됨 ⇒ 이식성 ⬇️ Ja…</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate><category>java</category><category>자바</category><category>JVM</category><category>자바</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[JAVA-STUDY] 3주차 - 객체와 클래스</title><link>https://tkv00.github.io/posts/java-study-3%EC%A3%BC%EC%B0%A8</link><guid isPermaLink="true">https://tkv00.github.io/posts/java-study-3%EC%A3%BC%EC%B0%A8</guid><description>📘 1. Call By Value VS Call By Reference 스택 프레임 하나의 메서드에 필요한 메모리 덩어리 하나의 메서드당 하나의 스택 프레임. 메서드 호출 전 스택프레임을 자바 Stack에 생성 → 메서드 호출 메서드 호출 범위 종료 → 스택에서 제거 1) Call By Value :호출 시 값을 직접 넘겨주는 방식 변수의 복사본이 전달되며 원래 값은 수정되지 않는다. 실제…</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate><category>자바</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Shoot-Pointer] Refactoring02.도메인의 이해 - 재료와 도구 이해하기</title><link>https://tkv00.github.io/posts/shoot-pointer-refactoring02-%EB%8F%84%EB%A9%94%EC%9D%B8%EC%9D%98-%EC%9D%B4%ED%95%B4</link><guid isPermaLink="true">https://tkv00.github.io/posts/shoot-pointer-refactoring02-%EB%8F%84%EB%A9%94%EC%9D%B8%EC%9D%98-%EC%9D%B4%ED%95%B4</guid><description>[\[Shoot Pointer\] Refactoring01.설계의 원칙 스파게티 코드를 해결할 3가지 레시피 &quot;소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인적 자원을 최소화하는 것이다.&quot; 로버트 C. 마틴 (Robert C. Martin) 현재 ShootPointer의 게시물 도메인의 전체적 codekim3570.tistory.com](https://code…</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate><category>Shoot-Pointer</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[DB-STUDY] 5주차 - 인덱스 튜닝</title><link>https://tkv00.github.io/posts/db-study-5%EC%A3%BC%EC%B0%A8</link><guid isPermaLink="true">https://tkv00.github.io/posts/db-study-5%EC%A3%BC%EC%B0%A8</guid><description>Ureca 3기 백엔드 대면 교육을 들으며 따로 진행한 약 8주간의 데이터베이스 스터디 내용입니다. GitHub Study Castle/Database\ Study Contribute to Study Castle/Database\ Study development by creating an account on GitHub. github.com 📘 1. 테이블 액세스 최소화 1) 테이블 랜덤…</description><pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate><category>데이터베이스</category><category>Oracle</category><category>mysql</category><category>database</category><category>CS</category><category>db</category><category>데이터 베이스</category><category>데이터베이스</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Shoot-Pointer] Refactoring01.설계의 원칙 - 스파게티 코드를 해결할 3가지 레시피</title><link>https://tkv00.github.io/posts/shoot-pointer-refactoring01-%EC%84%A4%EA%B3%84%EC%9D%98-%EC%9B%90%EC%B9%99</link><guid isPermaLink="true">https://tkv00.github.io/posts/shoot-pointer-refactoring01-%EC%84%A4%EA%B3%84%EC%9D%98-%EC%9B%90%EC%B9%99</guid><description>&quot;소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인적 자원을 최소화하는 것이다.&quot; 로버트 C. 마틴 (Robert C. Martin) 게시판 도메인 클래스 다이어그램 현재 ShootPointer의 게시물 도메인의 전체적인 계층 구조입니다. 누가봐도 “더럽고” 과도한 인터페이스 남용+ 무지성 컨트롤러/서비스 구현체가 남발하는 상태입니다. 처음 아키텍처를 설계할 때…</description><pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate><category>DDD</category><category>Refactoring</category><category>리팩토링</category><category>MSA</category><category>모놀리스</category><category>헥사고날</category><category>모듈러 모노리스</category><category>리팩토링 수치</category><category>Shoot-Pointer</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[DB-STUDY] 4주차 - 인덱스</title><link>https://tkv00.github.io/posts/db-study-4%EC%A3%BC%EC%B0%A8</link><guid isPermaLink="true">https://tkv00.github.io/posts/db-study-4%EC%A3%BC%EC%B0%A8</guid><description>Ureca 3기 백엔드 대면 교육을 들으며 따로 진행한 약 8주간의 데이터베이스 스터디 내용입니다. https://github.com/Study Castle/Database\ Study GitHub Study Castle/Database\ Study Contribute to Study Castle/Database\ Study development by creating an account on…</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><category>데이터베이스</category><category>mysql</category><category>database</category><category>CS</category><category>db</category><category>데이터 베이스</category><category>데이터베이스</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[DB-STUDY] 2주차 - I/O 옵티마이저와 힌트</title><link>https://tkv00.github.io/posts/db-study-2%EC%A3%BC%EC%B0%A8</link><guid isPermaLink="true">https://tkv00.github.io/posts/db-study-2%EC%A3%BC%EC%B0%A8</guid><description>Ureca 3기 백엔드 대면 교육 을 들으며 따로 진행한 약 8주간의 데이터베이스 스터디 내용입니다. https://github.com/Study Castle/Database\ Study GitHub Study Castle/Database\ Study Contribute to Study Castle/Database\ Study development by creating an account o…</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><category>데이터베이스</category><category>mysql</category><category>database</category><category>CS</category><category>db</category><category>데이터 베이스</category><category>데이터베이스</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[DB-STUDY] 3주차 - 트랜잭션/잠금</title><link>https://tkv00.github.io/posts/db-study-3%EC%A3%BC%EC%B0%A8</link><guid isPermaLink="true">https://tkv00.github.io/posts/db-study-3%EC%A3%BC%EC%B0%A8</guid><description>Ureca 3기 백엔드 대면 교육 을 들으며 따로 진행한 약 8주간의 데이터베이스 스터디 내용입니다. https://github.com/Study Castle/Database\ Study GitHub Study Castle/Database\ Study Contribute to Study Castle/Database\ Study development by creating an account o…</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><category>데이터베이스</category><category>mysql</category><category>database</category><category>CS</category><category>db</category><category>데이터 베이스</category><category>데이터베이스</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Shoot-Pointer] CI/CD 배포 시간 4.5배 빠르게 실행시키기 - Docker 최적화</title><link>https://tkv00.github.io/posts/shoot-pointer-ci-cd-%EB%B0%B0%ED%8F%AC-%EC%8B%9C%EA%B0%84-4-5%EB%B0%B0-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%8B%A4%ED%96%89%EC%8B%9C%ED%82%A4%EA%B8%B0</link><guid isPermaLink="true">https://tkv00.github.io/posts/shoot-pointer-ci-cd-%EB%B0%B0%ED%8F%AC-%EC%8B%9C%EA%B0%84-4-5%EB%B0%B0-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%8B%A4%ED%96%89%EC%8B%9C%ED%82%A4%EA%B8%B0</guid><description>1. 배경 1\. 문제 상황 Shoot Pointer 는 현재 Jenkins 를 이용하여 CI/CD 파이프라인을 구축하여 운영 중입니다. 프론트엔드와 AI 쪽과의 좀 더 원활한 테스트 진행을 위해서 Ubuntu LTS 기반의 홈서버를 구축하여 지속적인 배포를 진행중입니다. (현재는 Spring 서버는 Azure로 이전하여 운영되고 있습니다.) ⚙️운영 환경 CI/CD tool : Jenkin…</description><pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate><category>젠킨스</category><category>최적화</category><category>spring</category><category>Docker</category><category>도커</category><category>CICD</category><category>Shoot-Pointer</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Shoot-Pointer] 게시물 검색 성능 개선 - ElasticSearch 도입기(2) (검색용 쿼리 + nDCG/MRR/MAP 성능 지표 비교 55.89%🔺 정확성 향상)</title><link>https://tkv00.github.io/posts/shoot-pointer-%EA%B2%8C%EC%8B%9C%EB%AC%BC-%EA%B2%80%EC%83%89-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-elasticsearch-%EB%8F%84%EC%9E%85%EA%B8%B0-2-%EA%B2%80%EC%83%89%EC%9A%A9-%EC%BF%BC%EB%A6%AC-ndcg-mrr-map-%EC%84%B1%EB%8A%A5-%EC%A7%80%ED%91%9C-%EB%B9%84%EA%B5%90-55-8</link><guid isPermaLink="true">https://tkv00.github.io/posts/shoot-pointer-%EA%B2%8C%EC%8B%9C%EB%AC%BC-%EA%B2%80%EC%83%89-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-elasticsearch-%EB%8F%84%EC%9E%85%EA%B8%B0-2-%EA%B2%80%EC%83%89%EC%9A%A9-%EC%BF%BC%EB%A6%AC-ndcg-mrr-map-%EC%84%B1%EB%8A%A5-%EC%A7%80%ED%91%9C-%EB%B9%84%EA%B5%90-55-8</guid><description>1. 배경 [2025.09.25 \[프로젝트/Shoot Pointer\] \[Shoot Pointer\] 게시물 검색 성능 개선 ElasticSearch 도입기(1) (Docker를 이용한 ElasticSearch + Kibana 구축 및 테스트 환경 구축)](https://codekim3570.tistory.com/entry/Shoot Pointer %EA%B2%8C%EC%8B%9C%EB%…</description><pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate><category>Shoot-Pointer</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Shoot-Pointer] 게시물 검색 성능 개선 - ElasticSearch 도입기(1) (Docker를 이용한 ElasticSearch + Kibana 구축 및 테스트 환경 구축)</title><link>https://tkv00.github.io/posts/shoot-pointer-%EA%B2%8C%EC%8B%9C%EB%AC%BC-%EA%B2%80%EC%83%89-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0</link><guid isPermaLink="true">https://tkv00.github.io/posts/shoot-pointer-%EA%B2%8C%EC%8B%9C%EB%AC%BC-%EA%B2%80%EC%83%89-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0</guid><description>1\. 배경 기존 Shoot Pointer 에서 게시물 전체 검색을 개발하면서, 제목 또는 내용을 바탕으로 검색으로 like 연산을 사용하고 있었습니다. 여기서 문제가 되는 부분은 단순히 검색 단어의 유무만을 판단하고 이를 최신순으로 정렬 후 NoOffset+Slice 방식으로 조회하는 것입니다. 대부분의 포털 사이트 혹은 SNS에서는 검색 시에 정확도를 기준으로 정렬을 진행합니다. 추가로…</description><pubDate>Thu, 25 Sep 2025 00:00:00 GMT</pubDate><category>Shoot-Pointer</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Shoot-Pointer] 좋아요 동시성 제어하기</title><link>https://tkv00.github.io/posts/shoot</link><guid isPermaLink="true">https://tkv00.github.io/posts/shoot</guid><description>1\. 배경 Shoot Pointer 프로젝트를 진행하던 중 유저가 자신의 하이라이트 영상을 올릴 수 있는 게시판을 구현하던 중에 좋아요의 개수를 Post 테이블에서 관리하면서 동시성 문제가 발생할 것 같다고 예상할 수 있었습니다. 동시에 여러명의 클라이언트가 요청을 보내게 되면 좋아요의 개수에 대한 정합성 문제가 발생할 수 있습니다. 물론, 좋아요의 개수를 증가시키고 좋아요 객체를 생성하는…</description><pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate><category>Shoot-Pointer</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[LG 유플러스] 유레카 3기 백엔드 대면 합격 후기</title><link>https://tkv00.github.io/posts/lg-%EC%9C%A0%ED%94%8C%EB%9F%AC%EC%8A%A4-%EC%9C%A0%EB%A0%88%EC%B9%B4-3%EA%B8%B0-%EB%B0%B1%EC%97%94%EB%93%9C-%EB%8C%80%EB%A9%B4-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0</link><guid isPermaLink="true">https://tkv00.github.io/posts/lg-%EC%9C%A0%ED%94%8C%EB%9F%AC%EC%8A%A4-%EC%9C%A0%EB%A0%88%EC%B9%B4-3%EA%B8%B0-%EB%B0%B1%EC%97%94%EB%93%9C-%EB%8C%80%EB%A9%B4-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0</guid><description>개요 LG 유플러스 에서 교육하는 유레카 3기 SW 교육 백엔드과정(대면) 과정에 합격했습니다. 방학동안 앞으로의 플랜을 다음과 같이 A, B, C를 세워두었습니다. A. 스타트업 혹은 중견기업 이상의 서비스 기업에서 인턴활동. B. LG U+ 유레카 교육과정. C. 프로그래머스 데브코스. 방학동안 10개 정도의 다양한 기업들에 서류를 내밀었지만 결과는 모두 탈락이었고, 내가 지금까지 진행한…</description><pubDate>Wed, 13 Aug 2025 00:00:00 GMT</pubDate><category>합격후기</category><category>유레카</category><category>부트캠프</category><category>lg u+</category><category>유레카</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Qampus] AWS S3 이미지 업로드 테스트 코드 작성은 어떻게?</title><link>https://tkv00.github.io/posts/qampus-aws-s3-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-%EC%9E%91%EC%84%B1%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C</link><guid isPermaLink="true">https://tkv00.github.io/posts/qampus-aws-s3-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-%EC%9E%91%EC%84%B1%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C</guid><description>1\. 배경 해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. SWYP 8기 의 서비스 제출 및 시연이 2주 정도밖에 남지 않았습니다. 우리의 서비스 Qampus 의 주요 질문 및 답변의 CRUD는 백엔드 팀원분인 재하님이 어느정도 완료를 해주셨고 서비스의 주요기능이 대학생들간의 전공지식을 바탕으로 서로 질문하고 답변하며 학교별 순위측정이다 보니 질문과 답변을 게시하는 과정에서 이미지…</description><pubDate>Tue, 12 Aug 2025 00:00:00 GMT</pubDate><category>Qampus</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Vero] SMS 인증 서비스의 관심사 분할 - SRP 단일 책임 원칙 기반</title><link>https://tkv00.github.io/posts/vero-sms-%EC%9D%B8%EC%A6%9D-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9D%98-%EA%B4%80%EC%8B%AC%EC%82%AC-%EB%B6%84%ED%95%A0</link><guid isPermaLink="true">https://tkv00.github.io/posts/vero-sms-%EC%9D%B8%EC%A6%9D-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9D%98-%EA%B4%80%EC%8B%AC%EC%82%AC-%EB%B6%84%ED%95%A0</guid><description>해당 글을 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 주요 메서드 설명. void init() NurigoApp 라이브러리를 이용하여 coolsms 의 message api 초기화 메서드. SingleMessageSentResponse sendOne(String to, String verificationCode) coolsms api 의 단건 메세지 전송 객체를 생성하는 메서…</description><pubDate>Sat, 09 Aug 2025 00:00:00 GMT</pubDate><category>Vero</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Vero] 로그인 실패 후 30분 동안 계정 잠금.</title><link>https://tkv00.github.io/posts/vero-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%8B%A4%ED%8C%A8-%ED%9B%84-30%EB%B6%84-%EB%8F%99%EC%95%88-%EA%B3%84%EC%A0%95-%EC%9E%A0%EA%B8%88</link><guid isPermaLink="true">https://tkv00.github.io/posts/vero-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%8B%A4%ED%8C%A8-%ED%9B%84-30%EB%B6%84-%EB%8F%99%EC%95%88-%EA%B3%84%EC%A0%95-%EC%9E%A0%EA%B8%88</guid><description>해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 웹 및 앱 어플리케이션에서 로그인 시도가 반복적으로 실패하는 경우, 단순히 사용자의 실수이 수도 있지만 Brute Force 공격일 가능성 또한 존재합니다. 이러한 공격을 방치할 경우 공격자가 Brute Force 방식으로 계정을 탈취할 가능성이 커집니다. 이를 해결하기 위해 로그인 실패 횟수를 제한하는 동시에 일정 시간…</description><pubDate>Sat, 09 Aug 2025 00:00:00 GMT</pubDate><category>Vero</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Qampus] AWS S3 이미지 업로드 테스트 코드</title><link>https://tkv00.github.io/posts/qampus-aws-s3-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C</link><guid isPermaLink="true">https://tkv00.github.io/posts/qampus-aws-s3-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C</guid><description>해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 SWYP 8기의 서비스의 제출 및 시연이 2주정도밖에 남지 않았다. 우리의 서비스 Quampus의 주요 질문 및 답변의 CRUD작성은 같은 백엔드 팀원분인 재하님이 어느정도 완료를 해주셨고 서비스의 주요기능이 대학생들간의 전공지식을 서로 질문하고 답변하며 학교별 순위측정이다 보니 질문과 답변을 게시하는 과정에서 이미지를 공…</description><pubDate>Sat, 26 Jul 2025 00:00:00 GMT</pubDate><category>Qampus</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Qampus] 공공 데이터로 대학교 위치 정보 자동으로 저장하기</title><link>https://tkv00.github.io/posts/qampus-%EA%B3%B5%EA%B3%B5-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A1%9C-%EB%8C%80%ED%95%99%EA%B5%90-%EC%9C%84%EC%B9%98-%EC%A0%95%EB%B3%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0</link><guid isPermaLink="true">https://tkv00.github.io/posts/qampus-%EA%B3%B5%EA%B3%B5-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A1%9C-%EB%8C%80%ED%95%99%EA%B5%90-%EC%9C%84%EC%B9%98-%EC%A0%95%EB%B3%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0</guid><description>해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 프론트엔드에서 대학교 지도 부분 파트를 담당하신 분께서 기존 프론트엔드 내부 로컬 파일 형태로 저장하던 대학교의 위도와 경도를 서버에서 정보를 저장한 후 이를 조회하는 방식으로 위도와 경도를 가져오는 편에 대하여 제안을 하셔서 나는 다음과 같은 이유로 서버에서 정보를 저장하는 것이 더 좋은 방법이라고 생각했다. 1. 202…</description><pubDate>Sat, 26 Jul 2025 00:00:00 GMT</pubDate><category>Qampus</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Vero] NoOffset + Slice 무한 스크롤 구현하기</title><link>https://tkv00.github.io/posts/vero-nooffset-slice-%EB%AC%B4%ED%95%9C-%EC%8A%A4%ED%81%AC%EB%A1%A4-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0</link><guid isPermaLink="true">https://tkv00.github.io/posts/vero-nooffset-slice-%EB%AC%B4%ED%95%9C-%EC%8A%A4%ED%81%AC%EB%A1%A4-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0</guid><description>해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 Vero LLM 대화 이미지(1) Vero LLM 대화 이미지(2) 위 사진들과 같이 Vero 의 주요 기능인 다양한 LLM 과의 대화부분에서 이전 채팅 내용을 불러와야 하는 부분이 존재했다. 2\. 해결과정 익숙한 방법 그대로? 처음에는 채팅 데이터를 각 테이블들의 Join을 통해서 한 번에 전체 채팅내용을 한 번에 조회…</description><pubDate>Sat, 26 Jul 2025 00:00:00 GMT</pubDate><category>Vero</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[WealthTracker] 성능 개선 이야기 4004ms-&gt;108.2ms - (4)Caffeine 캐시 적용</title><link>https://tkv00.github.io/posts/wealthtracker-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%9D%B4%EC%95%BC%EA%B8%B0-4004ms-108-2ms-4-caffeine-%EC%BA%90%EC%8B%9C-%EC%A0%81%EC%9A%A9</link><guid isPermaLink="true">https://tkv00.github.io/posts/wealthtracker-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%9D%B4%EC%95%BC%EA%B8%B0-4004ms-108-2ms-4-caffeine-%EC%BA%90%EC%8B%9C-%EC%A0%81%EC%9A%A9</guid><description>1\. 배경 [\[WealthTracker\] 성능 개선 이야기 (3)SQL 쿼리 튜닝 1.배경WealthTracker 서비스에서 제공하는 /api/expend/graph API는 사용자의 지출 데이터를 주차(week) 단위로 요약하여 시각화에 활용되는 중요한 API입니다. 해당 API에서 사용되는 서비스 로직은 아래와 codekim3570.tistory.com](https://codekim…</description><pubDate>Sat, 26 Jul 2025 00:00:00 GMT</pubDate><category>WealthTracker</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[WealthTracker] 성능 개선 이야기 4004ms-&gt;108.2ms - (3)SQL 쿼리 튜닝</title><link>https://tkv00.github.io/posts/wealthtracker-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%9D%B4%EC%95%BC%EA%B8%B0-4004ms-108-2ms-3-sql-%EC%BF%BC%EB%A6%AC-%ED%8A%9C%EB%8B%9D</link><guid isPermaLink="true">https://tkv00.github.io/posts/wealthtracker-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%9D%B4%EC%95%BC%EA%B8%B0-4004ms-108-2ms-3-sql-%EC%BF%BC%EB%A6%AC-%ED%8A%9C%EB%8B%9D</guid><description>1.배경 WealthTracker 서비스에서 제공하는 /api/expend/graph API는 사용자의 지출 데이터를 주차(week) 단위로 요약하여 시각화에 활용되는 중요한 API입니다. 해당 API에서 사용되는 서비스 로직은 아래와 같습니다. 코드 설명 이번 달 총 지출 금액 , 저번 달 총 지출 금액을 주차별로 조회합니다. JPQL 의 기능을 활용하여 지출 날짜를 기준으로 group b…</description><pubDate>Fri, 25 Jul 2025 00:00:00 GMT</pubDate><category>WealthTracker</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[WealthTracker] 성능 개선 이야기 4004ms-&gt;108.2ms - (2)DB 커넥션 풀 설정</title><link>https://tkv00.github.io/posts/wealthtracker-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%9D%B4%EC%95%BC%EA%B8%B0-4004ms-108-2ms-2-db-%EC%BB%A4%EB%84%A5%EC%85%98-%ED%92%80-%EC%84%A4%EC%A0%95</link><guid isPermaLink="true">https://tkv00.github.io/posts/wealthtracker-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%9D%B4%EC%95%BC%EA%B8%B0-4004ms-108-2ms-2-db-%EC%BB%A4%EB%84%A5%EC%85%98-%ED%92%80-%EC%84%A4%EC%A0%95</guid><description>1\. 배경 이전 게시물에서는 단순히 API 조회에 따라 아래와 같은 지표들을 확인할 수 있었습니다. Total Request Per Second (초당 전체 요청 수) 그래프 Response Time (응답 시간) P95와 P50 그래프 Number Of Users (유저 수) 그래프 위의 3가지 지표 이외에도 DB의 커넥션 풀을 이용량과 제한량을 확인하기 위해 Prometheus+Graf…</description><pubDate>Thu, 24 Jul 2025 00:00:00 GMT</pubDate><category>WealthTracker</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[WealthTracker] 성능 개선 이야기 4004ms-&gt;108.2ms - (1)성능 목표 잡기</title><link>https://tkv00.github.io/posts/wealthtracker-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%9D%B4%EC%95%BC%EA%B8%B0-4004ms-gt-108-2ms</link><guid isPermaLink="true">https://tkv00.github.io/posts/wealthtracker-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%9D%B4%EC%95%BC%EA%B8%B0-4004ms-gt-108-2ms</guid><description>1\. 배경 WealthTracker 서비스의 핵심 API 중 유저의 지출 내역을 그래프로 표현하기 위한 /api/expend/graph의 성능을 점검하기 위해 부하 테스트를 진행했습니다. 이번 테스트에서는 최대 1,000명의 유저가 동시에 이 API를 호출하는 상황을 가정했고, 총 100만 건의 더미 데이터 를 준비해 실제 트래픽 환경에 가까운 조건을 구성했습니다. 부하 시뮬레이션 도구:…</description><pubDate>Mon, 21 Jul 2025 00:00:00 GMT</pubDate><category>WealthTracker</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[Vero] JWT+Refresh Token Rotation+HTTP Only 인가 처리</title><link>https://tkv00.github.io/posts/vero-jwt-refresh-token-rotation-http-only-%EC%9D%B8%EA%B0%80-%EC%B2%98%EB%A6%AC</link><guid isPermaLink="true">https://tkv00.github.io/posts/vero-jwt-refresh-token-rotation-http-only-%EC%9D%B8%EA%B0%80-%EC%B2%98%EB%A6%AC</guid><description>1.배경 보안을 주제로 하는 웹/앱 공모전 중 우리 플랫폼의 세부주제는 AI 보안 솔루션제공 이다. 따라서, 기업 또는 개인이 Vero 를 안전하게 사용할 수 있도록 가장 첫 번째 단계인 회원가입과 로그인 단계에서부터 보안성을 강화하는 것이 중요하다. 현재 가장 안전한 회원가입/로그인 방법으로는 OAuth 2.0 방식이 널리 사용된다. 이 방식은 쉽게 말하면 SNS 로그인이고 개발 플랫폼에…</description><pubDate>Wed, 09 Jul 2025 00:00:00 GMT</pubDate><category>Vero</category><author>tkv0098@gmail.com (김도연)</author></item><item><title>[WealthTracker] Named Lock을 활용한 동시성 문제 해결</title><link>https://tkv00.github.io/posts/wealthtracker-named-lock%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%8F%99%EC%8B%9C%EC%84%B1-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0</link><guid isPermaLink="true">https://tkv00.github.io/posts/wealthtracker-named-lock%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%8F%99%EC%8B%9C%EC%84%B1-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0</guid><description>1.배경 WealthTracker에서는 사용자가 지출 내역을 입력할 때 카테고리를 선택하게 된다. 기본 카테고리는 납부, 식비, 교통, 오락, 쇼핑, 기타 등이며, ENUM으로 관리하고 있다. 문제는 사용자가 새로운 카테고리를 추가할 때 발생했다. 기존 ENUM에 해당하지 않으면 customCategoryName이라는 컬럼에 값을 넣어 새로 등록하도록 구현했는데, 여러 사용자가 동시에 같은…</description><pubDate>Mon, 07 Jul 2025 00:00:00 GMT</pubDate><category>spring</category><category>mysql</category><category>lock</category><category>동시성 제어</category><category>name lock</category><category>WealthTracker</category><author>tkv0098@gmail.com (김도연)</author></item></channel></rss>