---
description: 기술적인 경험과 시행착오, 성능 개선 과정을 기록하는 공간입니다.
---

# Tech-log

### Java

* [`null`은 오버 로딩된 메서드 중 어떤 메서드를 호출할까?](posts/null-overloading)
* [System.out.println()의 동작 원리와 성능 이슈](posts/java-print-performance)

### Spring & JPA

* [`BeanCreationException` 예외로 알아보는 빈 생명주기](posts/spring-boot-exception-handling-and-bean-initialization)
* [`@Builder` 사용의 여러가지 방법과 안전하게 사용하기](posts/safe-builder-annotation)
* [JPA N+1 문제](posts/jpa-n+1)
* [Spring Data JPA Cursor 기반 페이징 성능 개선기](posts/cursor-based-paging-in-spring-data-jpa)
* [`@Trasncational`을 통한 선언적 트랜잭션 관리 방식에서 Self Invocation 문제가 발생하는 이유](posts/transactional-self-invocation)
* [멀티 스레드 테스트에서 발생하는 `@Transactional`가 주는 문제](posts/multi-thread-test)

### Payment Platform Project

* [결제 정보 검증을 통한 안전한 결제 연동 시스템 구현 - 토스 페이먼츠](posts/payment-system-with-toss)
* [트랜잭션 범위 최소화를 통한 성능 및 안정성 향상](posts/minimize-transaction-scope)
* [결제 상태 전환 관리와 재시도 로직을 통한 결제 복구 시스템 구축](posts/payment-status-with-retry)
* [외부 의존성 제어를 통한 결제 프로세스 다양한 시나리오 검증](posts/payment-system-test)
* [Logger 성능 저하 방지와 구조화된 로깅 설계](posts/log-structure-and-performance)

### Database

* [MySQL COUNT() 함수의 동작 원리와 성능](posts/how-count-query-work)
