til

Language

템플릿 메서드 패턴

템플릿 메서드 패턴은 생각보다 우리 주변에서 굉장히 많이 사용되고 있습니다. 그 중에서 백엔드에서 스프링을 사용한다면 데이터베이스와 연동해서 어떠한 작업을 할 때 JdbcTemplate 라고 들어봤을 거에요. JdbcTemplate는 템플릿 메서드 패턴의 단점을 해결한 전략패턴과 스프링의 템플릿 메서드 콜백 패턴을 이용한 방식입니다. 템플릿 메서드 패턴이란 GOF에서 말하는 템플릿 메서드 패턴의 정의는 다음과 같습니다. 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 이전한다. 하위 클래스가 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계를 재정의 할 수 있다. 어떤 얘기인지 잘 이해가 안될텐데 다음 예시 코드를 한 번 살펴봅시다. @Test void templateMethodV0() { lo..

Computer Science/Data Structure

편향 이진탐색트리를 해결하기 위한 방법(2) RED-BLACK TREE

이전에 포스팅 했던 편향 이진 탐색 트리를 해결 하기 위한 방법 중 하나인 AVL TREE 가 아닌 또 다른 해결 방법인 RED-BLACK TREE에 대해서 알아보자. RED-BLACK TREE 레드-블랙 트리도 처음 공부할 때, 많이 헷갈릴 수 있다. 특히 나중에 해결하기 위한 방법으로 Recoloring 과 Restructuring 방식 두 가지가 나오는데, 언제 적용해야 하는지가 분명하지만 이상하게도 자주 헷갈린다! 이를 쉽게 구분하기 위한 개인적인 팁도 제공해보려고 한다. 먼저 RED-BLACK TREE 의 특징에 대해서 알아보자. RED-BLACK TREE 특징 모든 노드는 빨간색 or 검은색 이다. 루트 노드는 무조건 검은색이다. RED-BLACK 트리에 존재하는 NIL은 검은색이다. 빨간색 ..

Language/Java

enum의 Enum 상수 객체의 변수 사용과 생성

Enum 상수 컬렉션을 정의하는데 사용하는 특수한 자바 유형이다. Enum 클래스로 상수를 정의할 때에는 다음과 같이 정의를 한다. enum Constants { AA, BB, CC, DD } enum에 접근 할 때에는 Constants.AA 와 같이 스태틱 변수에 접근하는 것처럼 접근을 할 수 있고, 각 값에 대해서 ordinal 순서에 대한 값이 생긴다. 어떻게 생기는 것일까? 위에 힌트가 있다. 자세히 살펴보면 Enum 클래스라고 명시를 했는데, 선언을 하는 것을 보니 enum이라고 되어 있다. 사실 enum은 Enum 클래스를 생성하는 특수한 방식이다. Enum 클래스의 생성자를 살펴보면 그 비밀을 알 수 있다. /** * Sole constructor. Programmers cannot invo..

Bombo_
'til' 태그의 글 목록 (4 Page)