전략 패턴(Strategy)
객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다.
전략 패턴의 핵심 아이디어는 공통 인터페이스를 구현하거나 공통 추상 클래스에서 상속하는 전략이라는 별도의 클래스로 각 알고리즘 또는 동작을 캡슐화하는 것이다.
옵저버 패턴(Observe)
객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. e.g.) Twitter, Instagram
옵저버 패턴은 주로 이벤트 기반 시스템에 사용하며 MVC패턴에도 사용된다.
상속(extends)
자식 클래스가 부모 클래스의 메서드 등을 상속받아 사용하며 자식 클래스에서 추가 및 확장을 할 수 있는 것이다. 이로 인해 재사용성, 중복성의 최소화가 이루어진다.
구현(implements)
부모 인터페이스를 자식 클래스에서 재정의하여 구현하는 것이다.
상속과는 달리 부모 클래스의 메서드를 재정의하여 구현해야 한다.
XGBoost 논문 Ch.3까지 리뷰를 했다. 잘 모르겠는데 대체 어디부터 질문을 해야 할지 가늠이 안돼 질문은 거의 못했다. 웃긴 건 대부분 모르겠는데 어느 부분은 이해가 되는 것이다. 리뷰 후반부턴 거의 포기 상태로 있었다. 기초가 부족하니 이해가 어려운 게 당연하다는 생각이 들었다. 머신러닝의 처음부터 다시 공부를 해야겠다.
백준 4단계 마지막 문제의 정답을 맞히고 질문 게시판에 갔더니 가장 최근 글에 답글이 없는 게시글을 봤다.
결과가 잘 출력되는데 자꾸 틀린다는 질문에 코드를 실행해 보니 문제가 있는 부분을 발견하여 설루션과 함께 답글을 달아줬다. 되게 뿌듯하고 공부를 헛되게 하고 있지 않구나라는 생각이 들었다.
내일부턴 다시 머신러닝 이론과 실습을 한다고 하는데, 집중해서 잘 배워보자