본문 바로가기

디자인 패턴

(4)
자바 팩토리 메소드 패턴 (Java Factory Method Pattern) 팩토리 메소드 패턴에 대해서 알아볼게요. 굉장히 많이 쓰이는 패턴이고, 익혀두면 나름 유용하게 쓸 수 있어요. 자바 소스 안에서도 많이 볼 수 있구요. 저도 때때로 사용하는 것 같습니다. 예제로는 패스워드를 암호화하는 기능을 구현해볼거에요. 실제 암호화 로직은 뺄거구요. 최대한 완성도 높게 구조를 만들겠습니다. 1. 인터페이스 만들기 Password라는 인터페이스를 만들었고, 클래스에서 세부 구현할 encode라는 메소드를 추가했어요. 혹은 추상클래스를 만들어서 추상 메소드를 추가하셔도 상관없습니다. public interface Password { String encode(String str); } 2. 구현체 작성 라이트하게 암호화하는 SimplePassword 클래스 강하게 암호화하는 SuperPa..
Node.js 코딩 패턴 (Routes-Controllers-Services 구조) 서버 개발을 하다보면 코드의 특성별로 소스 파일을 나누게 되어있어요. Node도 마찬가지에요. 처음에 잘 구조를 잡아두면 유지보수할 때 큰 이득을 볼 수 있어요. 구조만 잘 잡아줘도 Node에서도 충분히 복잡한 비즈니스를 말끔하게 볼 수 있습니다. 반대로 매우 간단한 로직을 나눠버리면 비효율적인 작업이 될 수도 있으니 잘 판단해서 디자인해야되요. 우선, 기본으로 사용할 수 있는 Routes-Controllers-Services 구조로 게시판 CRUD 예제를 구현해볼게요. board-route var express = require('express') var router = express.Router() const BoardController = require('../controllers/board-con..
자바 싱글톤 패턴 (Java Singleton Pattern) 자바 환경에서 싱글톤으로 객체를 사용하는 방법에 대해서 알아볼게요. 싱글톤 패턴은 디자인 패턴 중 하나로 최초 한 번만 객체를 생성을 하여 메모리에 할당하는 기법이에요. 동일한 객체를 지속적으로 사용해야 할 때가 있어요. 이 때마다 인스턴스를 생성해내는 것보다 하나의 인스턴스를 사용하는 것이 리소스 절약면에서 유리합니다. 싱글톤을 구현하는 방법은 굉장히 많이 나와있지만 딱 두 가지만 알면 되요. 기본 방법 많이 쓰는 방법 Simple 방법 우선, 가장 기본 방법부터 작성해볼게요. 최초 한 번 객체를 초기화하기 때문에 Thread-Safe를 보장합니다. 하지만, 객체를 사용하지도 않는 경우에도 이미 생성되어 있어서 사용하지 않는다면 리소스 낭비가 있을 수 있습니다. 사실 사용하지 않을 객체를 싱글톤으로 만..
자바 템플릿 메소드 패턴 (Java Template Method Pattern) 자바 디자인 패턴에서 많이 언급되는 패턴 중 하나에요. 도대체 이게 뭔지 바로 구현해볼게요. 예제로 길을 찾는 기능을 구현하려고 해요. 출발지와 목적지를 입력하면 빠른 길, 가까운 길, 무료 길 등등 원하는 길을 알려줄거에요. 템플릿 클래스 어떤 길을 찾건 출발지와 목적지는 공통적으로 받아야되요. 공통적인 기능은 템플릿 클래스에 구현하고 빠른, 가까운, 무료와 같이 알고리즘이 다른 기능은 추상 메소드로 선언하여 각각 구현하도록 할거에요. public abstract class Direction { // 출발, 도착 세팅 final void setStartAndDest(String start, String end) { System.out.println("출발지 : " + start); System.out...