-
디자인 패턴 2. 팩토리 패턴, 전략 패턴Today I Learned/CS공부 2023. 12. 22. 19:42
1. 팩토리 패턴
팩토리 패턴(Factory pattern)은 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다.
상위 클래스와 하위 클래스가 분리되기 때문에, 느슨한 결합을 가지며 상위 클래스에서는 인스턴스 생성 방식에 대해 전혀 알 필요가 없기 때문에 더 많은 유연성을 갖게 된다. 그리고 객체 생성 로직이 따로 떼어져 있기 때문에, 코드를 리팩토링 하더라도 한 곳만 고칠 수 있게 되니 유지보수성이 증가된다.
2. 전략 패턴
전략 패턴은 객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고, 전략이라고 부르는 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하도록 만드는 패턴이다. 예를 들어, 우리가 어떤 것을 살 때 네이버페이, 카카오페이 등 다양한 방법으로 결제하듯이, 어떤 아이템을 살 때 LUNA Card로 사는 것과 KAKAO Card로 사는 결제 방식의 전략 만 바꿔서 두가지 방식으로 결제하는 것을 구현할 수 있다.
전략 패턴을 활용한 라이브러리로는 Passport가 있는데, Node.js에서 인증 모듈을 구현할 때 쓰이는 미들웨어 라이브러리로 여러가지 전략을 기반으로 인증할 수 있게 해준다. 서비스 내의 회원가입된 아이디와 비밀번호를 기반으로 인증하는 LocalStrategy 전략과, 페이스북, 네이버 등 다른 서비스를 기반으로 인증하는 Oauth 전략 등을 지원한다.
'Today I Learned > CS공부' 카테고리의 다른 글
디자인패턴 6. 프록시패턴, 프록시 서버 (0) 2023.12.28 디자인패턴 5 - MVC, MVP , MVVM 패턴 (0) 2023.12.26 디자인패턴 4- 이터레이터 패턴, 노출모듈 패턴 (0) 2023.12.24 디자인 패턴 3- 옵저버 패턴, 프록시 객체 (0) 2023.12.23 디자인 패턴 1. 싱글톤 패턴 (TDD, 의존성 주입) (0) 2023.12.21