ETC(79)
-
Design Pattern, Strategy
Behavioral Object Pattern Strategy Pattern Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. - GoF Design Patterns 전략 패턴은 동일 계열의 알고리즘군을 정의하고, 각 알고리즘을 캡슐화하며, 이들을 상호교환이 가능하도록 만듭니다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있습니다. 아주 간단히 말하자면 무엇을 할지에 따라 사용할 알고리즘Strategy을 갈아끼우는 방식으로 이해할 수 있습..
2021.12.29 -
Design Pattern, Builder
Builder Pattern Separate the construction of a complex object from its representation so that the same construction process can create different representations. - GoF Design Patterns 빌더 패턴은 복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여, 동일한 절차에서도 서로 다른 표현을 생성하는 방법을 제공합니다. 추상 팩토리를 확장하여 크고 복잡한 객체를 생성할 수 있습니다. Builder의 사전적 의미는 ‘건축물을 짓는 사람 또는 회사’. 즉, 커다란 구조의 큰 물체를 설계하고 만드는 것을 의미합니다. 왜 필요할까? 생성 패턴의 주요 목적은 객체의 생성..
2021.12.29 -
Design Pattern, Facade
Facade Pattern Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. - GoF Design Patterns Facade Pattern은 서브시스템의 통일된 인터페이스에 대한 통합된 인터페이스를 제공합니다. Facade Pattern에서는 시스템 결합과 사용이 용이하도록 관심사(위의 통합된 인터페이스)를 분리합니다. 내부 로직이 어떻게 구성되어 있는지 알지 못해도, 인터페이스를 통해 사용만 할 수 있도록 관심사를 묶는 것이 바로 Facade 패턴입니다. API 서비스와 라이브러리, 패키지..
2021.12.26 -
Design Patterns, 제대로 이해하기
안녕하세요. GoF 디자인 패턴을 정리하고자 합니다. 디자인 패턴은 일주일 전부터 공부를 시작했는데, 스스로 설명하듯 적는게 익히는데 도움이 클 것같아 정말 오랜만에 시리즈로 포스팅하려 합니다 👊🏻 아래의 책들을 보며 정리했습니다. - GoF Design Patterns - 쉽게 배워 바로 써먹는 디자인 패턴 - Head First Design Patterns, 2nd Edition 아래는 디자인 패턴을 분류한 테이블입니다. Scope에 따라 Class와 Object로 분류합니다. Class는 상속과 관련된 패턴이며, Object는 연관된 객체들과 관련된 패턴입니다. 제가 이해하기로는 Class가 조금 더 수직적인 관계를 다루지 않나 싶습니다. Creational Pattern Class Scope는 객..
2021.12.26 -
2021년 회고
2021년 돌아보기 2021년은 내 인생을 가장 많이 바꿔놓은 해이다. 코로나로 인해 하루 루틴이 정반대가 되며, 건강에 대한 관심으로 신체적 변화가 생기기도 했고 가장 소중한 사람 중 한 사람을 떠나보내야 했다. 2022년은 본인의 인생에 있어 중요한 해라고 한다. 2022년, 내 인생의 전성기를 준비하려고 2021년에 수없이 많은 시행착오를 겪은 것이 아닐까. 많은 상처들로 견고함을 단련하며 지금껏 단단해진 것 아닌가 싶다. 실제로 나는 작년에 비해 이성적이고 멘탈이 아주 강한 사람이 되어있었다. 많은 일들을 도전하고 실행하며 쓸데없는 걱정보다는 해결해 나아가는 법을 먼저 생각하게 됐고, 남들에게 기대는 것보다 남들이 기댈 수 있게끔 독립심을 키웠다. 상반기부터 정리를 하자면 운동, 외주, 졸업, 아..
2021.12.23 -
Programmers, 징검다리
🔗 문제 링크 이분탐색 문제! 문제 설명 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 [2, 14, 11, 21, 17] 지점에 놓여있을 때 바위 2개를 제거하면 출발지점, 도착지점, 바위 간의 거리가 아래와 같습니다. 제거한 바위의 위치 각 바위 사이의 거리 거리의 최솟값 [21, 17] [2, 9, 3, 11] 2 [2, 21] [11, 3, 3, 8] 3 [2, 11] [14, 3, 4, 4] 3 [11, 21] [2, 12, 3, 8] 2 [2, 14] [11, 6, 4, 4] 4 위에서 구한 거리의 최솟값 중에 가장 큰 값은 4입니다. 출발지점..
2021.12.10