Design Pattern(5)
-
[05] Singleton Pattern
Singleton Pattern 하나뿐인 객체를 의미함 Application에서 실행 후 최초 한번만 메모리에 할당 후 그 메모리에 Instance를 만들어 사용함 생성자가 여러번 호출되어도 실제로 생성되는 객체는 하나이고, 최초 생성이후 호출된 생성자는 최초에 생성한 객체를 반환함. (자바에서는 생성자를 Private으로 만들어 생성을 불가하게 하고, getInstance(); 로 받아서 쓰기도 함) Why to use Singleton Pattern 고정된 메모리 영역을 얻으면서 한번의 생성으로 Instance를 메모리에 할당해 쓰기 때문에 이 후 메모리 낭비 방지 가능 Singleton으로 만들어진 객체(Class)의 Instance는 Public Instance 이기 때문에 다른 객체(Class)..
2022.01.04 -
[04] SOLID 원칙
SOLID 원칙은 객체 지향 설계 원칙으로 총 5가지의 원칙이 합쳐져 SOLID라고 부른다. SOLID 원칙 SPR(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 함수와 데이터 구조를 Class로 배치하는 방법, 클래스를 서로 결합하는 방법, 소프트웨어는 변경하기 쉬워야 하며 아키텍처는 형태에 독립적으로 하자는 원칙이다. 목적 변경에 유연해야 한다...
2021.12.09 -
[03] MVC, Flux Pattern
Redux를 사용할 때 알아두면 좋은 Pattern이다. Redux의 동작 원리가 Flux Pattern에서 파생되었기 때문에 Flux Pattern을 이해하고 나면 Redux의 동작 원리에 대해 이해가 더 쉬워진다. 먼저 Flux Pattern이 무엇인지 알아보기 전, 이 패턴이 왜 생겨났으며 왜 좋은지에 대해서 알아봐야 한다. 이 패턴이 생겨난 이유는 MVC 패턴의 단점을 보완하기 위해 발표한 패턴이다. 먼저 MVC 패턴이 무엇일까? MVC는 Model, View, Controller을 뜻한다. 동작순서는 아래와 같다. 사용자의 Action을 Controller가 받는다. Controller는 사용자의 Action에 따라 Model을 업데이트한다. Controller는 업데이트한 Model을 나타나게..
2021.12.09 -
[02] Presentational & Container Pattern
몰랐지만 평소 개발할 때 React.js, Angular.js 에서 자주 쓰는 패턴이다. 간단하게 설명하면, Container Component (부모)에서 데이터를 관리하고, Presentational Component (자식)에서는 Container Component에서 받은 데이터를 기반으로 뿌려주는 역할을 하는 것 이다. 각 Component 별로 React-Redux 관점에서 정리하였을 때에는 아래와 같다. Presentational Component : Data 및 Callback은 Props로 전달 받아 사용하며, Redux의 영향을 받지 않고 Style(U/I) 에 집중할 수 있는 Component (쉽게 생각하면 Button을 만드는 Component로 생각하면 된다.) Container..
2021.12.09 -
[01] Facade 패턴
회사에서 프로젝트를 진행하면서, 결제 로직을 만들 때 결제를 하기 위한 파라미터가 너무 많아 실제로 사용하는 Class에서는 많은 파라미터를 넘기지 않고, 간단히 찾아올 수 있으며 그 찾아온 것을 따로 가공하지 않고 원형 그대로 넘겨서 바로 처리하고 싶어서 찾은 패턴이다. ▶ Facade 패턴이란 ? 밖에서는 최대한 Simple한 구조를 갖고 있으며, 내부로 들어갈 수록 Deep한 Logic을 사용하는것이라고 이해했다. 예를들어, 사용자가 게임을 실행시키고자 하면 사용자는 아래 동작을 거치게 된다. 컴퓨터를 킨다. 모니터를 킨다. 컴퓨터에 게임을 설치한다. 설치된 게임을 실행한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 fun executionGame(): ..
2021.10.26