Hello, I’m Gyumyung Lee👋

Backend Programmer, Spring Boot, Java, Kotlin. and I consider it important to record. Such as TIL and Blog.

Latest Posts

웹에 날개를 달아주는 웹 성능 최적화 기법 Chapter1

웹에 날개를 달아주는 웹 성능 최적화 기법 본 책을 읽고 책의 내용을 간략하게 정리한 글입니다. Chapter 1. 웹 성능이란 무엇인가 웹의 대표적인 요소 URL (Uniform Resource Locator) 웹 자원이 인터넷상 어느 위치에 존재하고 있는지 알려주는 방법 ...

Kafka 도입에 대하여

Kafka 도입에 대하여 Kafka란 무엇인가? Kafka는 Apache 소프트웨어 재단이 개발한 오픈 소스 분산 메시징 시스템으로, 주로 데이터 스트리밍, 이벤트 처리, 로그 수집 등 다양한 분야에서 사용된다. Kafka는 특히 대용량 데이터를 처리하고 다양한 시스템 간에 데이터를 안전하게 전송하는 데 용이하다. 조...

DB 조회 성능 향상을 위한 방법

DB 조회 성능 향상을 위한 방법 1. 적절한 인덱스 사용 데이터베이스에서 레코드 검색 시 인덱스를 활용하면 검색 속도를 향상시킬 수 있다. 인덱스는 특정 열의 값을 저장하고 해당 열의 검색을 빠르게 만든다. 적용 예제 CREATE INDEX idx_order_number O...

Spring Boot 에서의 재시도 수행 전략

Spring Boot 에서의 재시도 수행 전략 Spring Boot 에서 예외 발생 시 메서드 재시도를 수행하는 전략은 애플리케이션에서 예외 처리를 개선하고 내결함성을 향상시키는 중요한 부분이다. Spring에서는 이를 위해 다양한 방법을 제공하고 있으며, 주로 다음에 설명하는 전략들을 주로 사용한다. RetryTe...

템플릿 콜백 패턴 이해

템플릿 콜백 패턴의 이해 템플릿 콜백 패턴은 전략 패턴의 일종으로, 전략 패턴에서는 클라이언트가 전략 객체를 선택하고 호출하는 방식이지만, 템플릿 콜백 패턴에서는 특정 알고리즘(콜백)을 포함한 템플릿 메서드를 호출하고, 클라이언트가 필요한 콜백을 구현하여 전달하는 방식입니다. 즉, 템플릿 콜백 패턴은 전략 패턴의 구현 ...

전략 패턴 패턴 이해

전략 패턴의 이해 비슷한 동작을 하지만 다르게 구현되어 있는 행위(전략)들을 공통의 인터페이스를 구현하는 각각의 클래스로 구현하고, 동적으로 바꿀 수 있도록 하는 패턴입니다. 전략 패턴으로 구현된 코드는 직접 행위에 대한 코드를 수정할 필요 없이 전략만 변경하여 유연하게 확장할 수 있습니다. 전략 패턴의 구조 전...

템플릿 메서드 패턴 이해

템플릿 메서드 패턴 이해 핵심 기능 vs 부가 기능 핵심 기능 해당 객체가 제공하는 고유의 기능 부가 기능 핵심 기능을 보조하기 위해 제공하는 기능 좋은 설계는 핵심 기능과 부가 기능을 분리하는 것이다. 템플릿 메서드 패턴(Template M...

Transactional과 AOP, 그리고 프록시 패턴

@Transactional과 AOP, 그리고 프록시 패턴 @Transactional에는 Spring AOP의 프록시 패턴을 사용하여 동작한다. @Transactional을 알아가기 앞서 프록시 패턴과 Spring AOP에 대해 알아보도록 한다. 프록시 패턴 프록시 패턴은 객체 지향 디자인 패턴 중 하나로, 다른 객체에 대...

Java 동시성 이슈와 ThreadLocal

Java 동시성 이슈와 쓰레드 로컬 (ThreadLocal) Java의 동시성 이슈 동시성 이슈 (Concurrency issues)는 다중 쓰레드 환경에서 발생하는 문제로, 여러 쓰레드가 공유된 자원에 동시에 접근할 때 예기치 않은 결과가 발생할 수 있다. 동시성 이슈는 아래 상황에서 발생할 수 있다. 경쟁 조건 ...

Spring Boot and OAuth2

Spring Boot and OAuth2 이 가이드는 OAuth 2.0과 Spring Boot을 사용하여 “소셜 로그인”으로 다양한 작업을 수행하는 샘플 앱을 구축하는 방법을 보여줍니다. 단순한 단일 공급자 싱글 사인-온 (single-provider single-sign on) 으로 시작하여 GitHub 또는 Google...