• [Design Pattern] Decorator 패턴

    Decorator Pattern 이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴입니다. 즉, 런타임 시에 동적으로 객체에 새로운 기능을 추가하거나 변화시켜서 기능을 유연하게 확장할 수 있게 해줍니다. 여기서 데코레이터 패턴은 상속 대신 합성을 사용하기 때문에 서브클래싱 대안으로 사용할 수 있습니다. 여기서 Component 는 Concrete Component 와 Decorator 에서 공통적으로...


  • [Design Pattern] State 패턴

    State Pattern 이란 객체 내부의 상태가 바뀜에 따라 객체의 행동을 바꿀 수 있는 패턴을 의미합니다. 행동을 변경하는 메소드들로 이루어진 인터페이스를 정의하고, 인터페이스 구현에서 각 상태에 맞는 행동을 정의함으로써 분기문(ex> if, switch) 을 캡슐화, 분리화 하는 패턴입니다. 사용하는 이유 객체들은 종종 상태에 따라 행동을 변화시킬 필요가 있습니다. 이 때 가장 간단한...


  • [Design Pattern] Template Method 패턴

    Template Method Pattern 이란 상속을 통해서 기능을 확장하는 패턴을 의미합니다. 즉, 상위 클래스(Abstract 클래스)에 알고리즘의 로직 흐름을 정의하고, 그 일부를 abstract 메소드(혹은 protected 메소드)를 호출하여 상위 클래스에서 일반화될 수 없는 연산을 수행합니다. 그러면 전체적인 큰 구조를 변경하지 않고 알고리즘의 행위를 변경하지 않아도 됩니다. 또한 Hook 메서드(일반 메서드) 를 함께 제공하여...


  • [책 리뷰] 파이썬 라이브러리를 활용한 머신러닝(개정판)

    이 책의 리뷰는 한빛미디어 ‘나는 리뷰어다’로 부터 책을 지원받아 작성된 글입니다. 이 책은 개정판 이전에 이미 많은 사람들이 읽고 좋은 평을 남겼던 책이라 읽기 전부터 기대가 되는건 사실이었다. 최근 라이브러리가 계속해서 업데이트 되던 탓에 이 책을 사야하나 망설였었는데 개정판이 나왔다는 소식을 듣고 한 권 마련하려던 중 한빛미디어로 부터 책을 받아...


  • [Design Pattern] Strategy 패턴

    Strategy Pattern 이란 말 그대로 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴입니다. 스트래티지 패턴(Strategy pattern)에서는 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만들게 해줍니다. 즉, 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있게 됩니다. 다시 말하면 어떤 알고리즘을 위한 전략을 정의하는 인터페이스를 정의(Strategy)한 후, 상호 교환...