템플릿 콜백 패턴 이해
템플릿 콜백 패턴의 이해 템플릿 콜백 패턴은 전략 패턴의 일종으로, 전략 패턴에서는 클라이언트가 전략 객체를 선택하고 호출하는 방식이지만, 템플릿 콜백 패턴에서는 특정 알고리즘(콜백)을 포함한 템플릿 메서드를 호출하고, 클라이언트가 필요한 콜백을 구현하여 전달하는 방식입니다. 즉, 템플릿 콜백 패턴은 전략 패턴의 구현 ...
Backend Programmer, Spring Boot, Java, Kotlin. and I consider it important to record. Such as TIL and Blog.
템플릿 콜백 패턴의 이해 템플릿 콜백 패턴은 전략 패턴의 일종으로, 전략 패턴에서는 클라이언트가 전략 객체를 선택하고 호출하는 방식이지만, 템플릿 콜백 패턴에서는 특정 알고리즘(콜백)을 포함한 템플릿 메서드를 호출하고, 클라이언트가 필요한 콜백을 구현하여 전달하는 방식입니다. 즉, 템플릿 콜백 패턴은 전략 패턴의 구현 ...
전략 패턴의 이해 비슷한 동작을 하지만 다르게 구현되어 있는 행위(전략)들을 공통의 인터페이스를 구현하는 각각의 클래스로 구현하고, 동적으로 바꿀 수 있도록 하는 패턴입니다. 전략 패턴으로 구현된 코드는 직접 행위에 대한 코드를 수정할 필요 없이 전략만 변경하여 유연하게 확장할 수 있습니다. 전략 패턴의 구조 전...
템플릿 메서드 패턴 이해 핵심 기능 vs 부가 기능 핵심 기능 해당 객체가 제공하는 고유의 기능 부가 기능 핵심 기능을 보조하기 위해 제공하는 기능 좋은 설계는 핵심 기능과 부가 기능을 분리하는 것이다. 템플릿 메서드 패턴(Template M...
@Transactional과 AOP, 그리고 프록시 패턴 @Transactional에는 Spring AOP의 프록시 패턴을 사용하여 동작한다. @Transactional을 알아가기 앞서 프록시 패턴과 Spring AOP에 대해 알아보도록 한다. 프록시 패턴 프록시 패턴은 객체 지향 디자인 패턴 중 하나로, 다른 객체에 대...
Java 동시성 이슈와 쓰레드 로컬 (ThreadLocal) Java의 동시성 이슈 동시성 이슈 (Concurrency issues)는 다중 쓰레드 환경에서 발생하는 문제로, 여러 쓰레드가 공유된 자원에 동시에 접근할 때 예기치 않은 결과가 발생할 수 있다. 동시성 이슈는 아래 상황에서 발생할 수 있다. 경쟁 조건 ...
Spring Boot and OAuth2 이 가이드는 OAuth 2.0과 Spring Boot을 사용하여 “소셜 로그인”으로 다양한 작업을 수행하는 샘플 앱을 구축하는 방법을 보여줍니다. 단순한 단일 공급자 싱글 사인-온 (single-provider single-sign on) 으로 시작하여 GitHub 또는 Google...
그리디 알고리즘 현재 상태에서 가장 좋은 선택만을 취하는 알고리즘 매 순간 최적이라고 생각하는 답을 선택하는 알고리즘 방식으로 해당 그리디 알고리즘이 잘 동작하는 문제로 앞 상황에서의 선택이 뒤에 나오는 선택 상황에 영향을 주지 않는다는 속성과 문제의 전체에 대한 최적의 선택이 부분적인 문...
일반적인 행렬의 곱 Naive matrix multiplication 일반적인 행렬을 구하는 방식 m * n 행렬과 n * k 행렬을 곱하면 O(mnk) 가 되어 결과적으로 O(n^3)의 시간복잡도를 가진다. for(int i = 0; i < size; i++) { for(int j = 0; ...
최대공약수 응용 문제 원하는 개수의 정수들의 최대공약수 3개 이상 정수의 최대공약수 구하기 예를 들어 24, 15, 48 세 수의 최대공약수를 구한다고 가정한다면 먼저 최소값을 구해준다. (예제는 15) 최소값으로 각 정수를 나눈 나머지값을 비교해서 그 수가 모두 0일 경우 최소값이 최대공약수가 된다. 만약 나...