Learning Notes
학습 노트
공부한 내용을 정리한 개인 노트 — 알고리즘, 시스템 디자인, 언어, DevOps
11개의 노트
C# 프로그래밍 1주차 — 과목 소개와 개발환경 구축하기
C# 언어 소개, .NET 플랫폼 구조, Framework vs Library 개념, Visual Studio 개발환경 구축 방법을 다룬다. 고려사이버대학교 김선영 교수 강의.
테스트
테스트
JPA N+1 문제 완전 정복 — fetch 전략과 EntityGraph
JPA 사용 시 가장 흔히 겪는 N+1 문제의 원인과 EAGER/LAZY fetch, Fetch Join, EntityGraph를 이용한 해결 전략을 정리했습니다.
MySQL 인덱스 설계 — 느린 쿼리를 10배 빠르게
MySQL 인덱스의 동작 원리와 복합 인덱스 설계 기준, EXPLAIN 분석 방법을 실무 예시 중심으로 정리했습니다.
분산 트랜잭션과 SAGA 패턴
마이크로서비스 환경에서 여러 서비스에 걸친 데이터 일관성을 확보하기 위한 SAGA 패턴의 Choreography와 Orchestration 방식을 정리했습니다.
외부 인증 서비스 장애 대응 — Fallback 로직 설계
Cloudflare Turnstile 장애로 로그인 불가 상황을 겪은 뒤, 외부 서비스 의존성을 안전하게 격리하는 Fallback 설계 패턴을 정리했습니다.
비밀번호 암호화 체계 변경 시 무중단 전환 설계
레거시 MD5 암호화를 BCrypt로 전환하면서 기존 회원의 로그인 중단 없이 점진적으로 마이그레이션한 전략을 정리했습니다.
Spring Batch로 대용량 데이터 처리 시간 3분 → 40초 단축
차량 업세일 금액 복사 배치 작업의 처리 시간을 약 3분에서 40~50초로 단축한 쿼리 최적화 과정을 기록했습니다.
ORS 의존 제거로 로그인 응답 속도 개선
로그인 시 ORS(Opera Reservation System) 호출로 인한 응답 지연 문제를 DB 기반 최소 정보 조회와 구조 분리로 해결한 과정을 정리했습니다.
결제 데이터 상태 기반 취소/환불 처리 로직 설계
서비스 오픈 전/후 결제 데이터 유무에 따라 취소/환불 처리 기준이 달라지는 문제를 상태 기반 분기 구조로 해결한 설계를 기록했습니다.
국문/다국어 회원 구분 — CI/DI 기반 식별 체계 보완
페이지 기준으로 동작하던 국문/다국어 회원 구분 로직을 CI/DI 기반 속성 기준으로 전환해 회원 유형 오인식을 방지한 설계를 정리했습니다.