- Today
- Total
목록스터디 (246)
작심삼일
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 이 패턴도 개념은 이해하기 쉬웠다. 이름이 Template인 것처럼 알고리즘의 뼈대만 정의하고, 구체적인 수행 방법은 서브클래스에서 정의한다. 하지만 곧 Factory method와 헷갈리기 시작했다.내 스스로 정리해본 결과, Factory method보다 Template method가 좀 더 작은 내용인 것 같다.밑에도 써놨지만, 서브클래스의 확장을 제어하기 때문이다. 어떻게 쓰는가 대부분의 기능은 같지만, 사소한 부분이 다를 때 주로 사용한다. 또한 동시에 서브클래스를 어느 정도 제어하고 싶을 때도 사용한다. 많은 분들이 커피 만드는 것을 예시로 드는데, 이 예..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 Prototype method. 한글로는 원형 패턴이라고 한다. 난 이 '원형'이 circular list처럼 circle이라는 뜻인 줄 알았는데, 그게 아니라 '원본'의 뜻이었다;; Prototype의 의미먼저 생각해봤으면 이런 일은 없었을텐데 멍청하게 왜그랬을까... 아무튼 이 패턴도 매우 간단하다. 쉽게 말해 ctrl+C/V, 복붙을 할 때 사용하면 된다. 똑같은 객체를 매번 만들기 귀찮으니 cloning을 하는 것이다. 예시를 보면 이해가 빠르다. 어떻게 쓰는가 Prototype: 인터페이스 정의 ConcretePrototype: 복제 연산 구현 Client..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 Singleton 패턴은 개념이 어렵지 않기 때문에 쉽게 이해할 수 있다.두가지 조건을 만족할 때 이 패턴을 사용한다. 1. 객체가 딱 한 개만 존재해야 하는 경우 2. 이 객체를 어디서든지 참조할 수 있도록 해야할 때 사용 그렇기 때문에 Singleton 패턴을 사용하면 처음 생성할 때만 메모리를 할당하기 때문에 메모리를 절약할 수 있고 데이터를 공유하기에도 용이하다. 하지만 그렇기 때문에 OCP 원칙(Open-Closed-Principle)을 어기게 된다는 단점이 있다. 어떻게 쓰는가 인스턴스가 유일해야 함을 보장하는 것이 이 패턴을 사용할 때 제일 중요한 부분..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 이전에 설명한 Abstract Factory Pattern은 Factory method를 여러 개 묶은 것으로 볼 수 있다. 전에 예를 들었을 때의 그림을 가져와보면, 위에서 수학, 물리, 화학을 각각 Factory method로 볼 수 있다. 어떻게 쓰는가 Factory method는 크게 네 가지(Product, ConcreteProduct, Creator, ConcreteCreator)로 구성된다. Product는 물건을 정의하고, Creator는 만드는 것이다. Concrete가 붙은 것은, 실제로 물건을 정의하거나 실제로 만들 때 사용한다. 이렇게 Conc..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 하나의 System이 여러 sub-module들로 구성되어 있다고 하자. 성적을 잘 받아 높은 등수를 얻기 위해서는 한 과목만 공부하면 안 된다. 모든 과목을 다 공부해야 한다. '공부하기'라는 시스템을 실행시킬 때 그 안에 속한 '수학', '물리', '화학'을 모두 실행시켜야 하는 것이 Abstract Factory Pattern이다. 비슷한 제품 군을 묶어주는 역할을 하며, 내부를 건드리지 않을 수 있다는 것이 장점이다. 후에 서술할 Factory mathod를 한 번 더 추상화한다. 어떻게 쓰는가 Abstract Factory Pattern을 사용하면 실제 객..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 나쁜 코드란 무엇인가 좋은 코드란 직관적으로 이해할 수 있는 코드다. 그럼 나쁜 코드란 무엇일까? 나쁜 코드라는 것은 수많은 예시가 있지만 한마디로 정리하자면 한눈에 들어오지 않거나 설명이 많이 필요한 코드라고 생각한다. 구체적으로 생각해보면 여러 가지가 있을 수 있다. 첫째, 이름을 직관적으로 짓지 않는다. 흔히 코딩을 하다보면 나만 아는 이름이나 편한 이름으로 변수명을 짓는 경우가 많다. 혹은 함수명을 정해두고 코딩을 하고 있는데 어쩌다보니 점점 그 함수가 하는 일이 많아지기도 한다. 이런 경우 모두 타인이 봤을 때 그 코드를 이해하는 데 시간이 많이 걸리게 된다. 전자의 경우에 대한 예시를 들어보면 다음과 같다...