heechann
이전 블로그 글 : https://heechann.github.io/
close
프로필 배경
프로필 로고

heechann

  • 글 (27)
    • Java (5)
    • Spring Boot (6)
    • Spring Framework (1)
    • Spring JPA (1)
    • Gradle (2)
    • MySQL (1)
    • 오픈소스 (2)
    • 일상 (5)
    • 책 (0)
    • archives (1)
    • 프로젝트 (3)
    • 취준 (0)
  • 홈
  • 태그
  • 방명록
[페스티맵] 진행한 프로젝트 메인 페이지 조회 구조 및 성능 개선하기

[페스티맵] 진행한 프로젝트 메인 페이지 조회 구조 및 성능 개선하기

2024년부터 진행해온 축제 SaaS 서비스 페스티맵은 고객(축제 운영팀)마다 하나의 축제를 등록하고, 각 축제의 메인페이지를 위젯 단위로 구성해 축제 분위기에 맞는 사이트를 만들어주는 서비스입니다.2024년 상반기, 메트릭 모니터링을 통해 `/home/{festivalId}` API의 응답 시간이 다른 API들보다 눈에 띄게 높다는 것을 발견했습니다. 이를 단일 테이블 상속 전략으로 개선했었는데, 이 글에서는 그 당시 왜 그런 선택을 했고, 그 선택이 어떤 새로운 문제를 낳았으며, 이를 어떻게 해결했는지를 다룰려고 합니다. 나아가 2025년 한 해 동안의 Google Analytics 통계를 기반으로 메인페이지 조회 성능을 한 단계 더 개선한 과정까지 함께 정리해 보겠습니다. 1. 단일 테이블 상속 전..

  • format_list_bulleted 프로젝트
  • · 2026. 2. 20.
  • textsms
[페스티맵] 티켓 예매 시스템 개선하기

[페스티맵] 티켓 예매 시스템 개선하기

축제 SaaS 서비스 페스티맵(Festimap)은 고객마다 하나의 축제를 등록하고, 각 축제의 메인페이지를 위젯 단위로 구성해 축제 분위기에 맞는 사이트를 만들어주는 서비스입니다. 그러던 중 고객사로부터 티켓 예매 기능 요청이 들어왔고, 빠른 일정 안에 비관적 락 기반의 예매 시스템을 구현하여 실제 목포 W쇼 티켓팅에 도입했습니다.다행히 초과 발급은 발생하지 않았지만, 운영 과정에서 응답 지연과 커넥션 풀 고갈 문제가 드러났습니다. 이 글에서는 비관적 락을 선택한 배경부터, 기존 코드의 문제 분석, 그리고 두 번의 걸친 개선 과정을 정리해 보겠습니다. 1. 비관적 락 도입 배경축제 티켓 예매는 평소에는 트래픽이 거의 없다가, 오픈 시점에 수백 명이 동시에 같은 잔여 티켓을 두고 경쟁하는 구조다. 동시성 ..

  • format_list_bulleted 프로젝트
  • · 2026. 2. 19.
  • textsms
Spring Boot 로깅 (2) - logback-spring.xml 설정 및 Grafana Loki 연동

Spring Boot 로깅 (2) - logback-spring.xml 설정 및 Grafana Loki 연동

이번글에서는 Logback 아키텍처를 이해하고 `logback-spring.xml` 파일 작성하는 방법을 정리하려 합니다. 그리고 최종적으로 Grafana Loki로 연동하여 수집된 로그가 모니터링 도구에서 어떻게 표시되는지까지 확인해보려고 합니다. 이전에는 AI의 도움을 받아 설정 파일을 급하게 작성한 적이 있었는데 앞으로는 직접 작성할 수 있으면 좋을 것 같고, Grafana Loki에 연동했을 때 대시보드에 어떻게 로그가 보이는지 직접 살펴보는 것이 목표입니다. 실습을 진행한 환경은 윈도우 11이며 아래 링크는 제가 실습을 진행하며 사용한 Spring Boot 프로젝트 입니다. java-play-ground/practice_logging at main · HeeChanN/java-play-groun..

  • format_list_bulleted Spring Boot
  • · 2025. 9. 21.
  • textsms
Spring 공식문서 개선까지 이끈 메서드 검증(Method Validation) 동작 원리 분석

Spring 공식문서 개선까지 이끈 메서드 검증(Method Validation) 동작 원리 분석

Spring Boot 프로젝트에서 Controller 검증을 구현하던 중, Container Parameter(예: `List`)를 검증할 때 예상과 다른 예외가 발생하는 것을 발견했습니다. 일반적인 `@Valid @RequestBody` 검증에서는 `MethodArgumentNotValidException`이 발생하는데, Container Parameter에서는 `HandlerMethodValidationException`이 발생했습니다. 공식문서를 확인해봤지만 Container Parameter에 대한 명확한 설명을 찾을 수 없었고, "왜 다른 예외가 발생할까?"라는 궁금증이 생겼습니다. 이 의문을 해결하기 위해 Spring Framework의 소스코드를 직접 분석하기 시작했습니다. 분석 결과, Ha..

  • format_list_bulleted Spring Framework
  • · 2025. 7. 14.
  • textsms
Spring Rest Docs 사용하기 (1) - 기본 설정과 API 문서 생성

Spring Rest Docs 사용하기 (1) - 기본 설정과 API 문서 생성

그동안 API 문서화를 위해 Swagger UI를 사용했다. 하지만 사용하면서 몇 가지 아쉬운 점들이 있었다. 문서의 최신화가 어려웠다. 코드가 변경될 때마다 어노테이션을 함께 수정해야 했는데, 이 과정에서 종종 누락이 발생했고 실제 API와 문서 간의 불일치가 생겼다.둘째, 비즈니스 로직과 무관한 문서화 코드가 Controller에 계속 쌓이는 것이 불편했다. @ApiOperation, @ApiParam 등의 어노테이션들이 Controller 클래스를 복잡하게 만들고, 코드의 가독성을 떨어뜨렸다. 최근 테스트 코드 작성에 집중하면서 Controller Slice 테스트를 통해 API 문서를 자동 생성할 수 있는 Spring Rest Docs를 알게 되었다. 테스트가 성공해야만 문서가 생성되는 구조라 문..

  • format_list_bulleted Spring Boot
  • · 2025. 7. 4.
  • textsms
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 글 (27)
    • Java (5)
    • Spring Boot (6)
    • Spring Framework (1)
    • Spring JPA (1)
    • Gradle (2)
    • MySQL (1)
    • 오픈소스 (2)
    • 일상 (5)
    • 책 (0)
    • archives (1)
    • 프로젝트 (3)
    • 취준 (0)
최근 글
인기 글
태그
  • #멀티캠퍼스부트캠프
  • #객체지향
  • #멀티캠퍼스IT부트캠프
  • #[LG유플러스] 유레카 백엔드
  • #부트캠프후기
  • #유레카 3기
  • #일상
  • #restdocs-api-spec
  • #java
  • #Spring Boot
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바