2022/04/27 2

전략(Strategy) 패턴이란?

1. 전략 패턴이란? 의도 동일 계열의 알고리즘군을 정의하고, 각 알고리즘을 캡슐화하여, 이들을 상호교환이 가능하도록 만든다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게 한다. 다시 말하면, 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성(알고리즘군 정의)하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여(알고리즘을 캡슐화), 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말한다.(이들을 상호교환이 가능하도록 만든다.) 이름에서 볼 수 있듯이, 객체의 행위를 우리가 원할 때, 즉 전략에 맞도록 변경하는 패턴이다. 사용시기 행동들이 조금씩 다를 뿐 개념적으로 관련된 ..

Tree 구조(Structure)란?

필자는 Tree 구조에 대해 많이 들었지만 정확히 이해를 하지 못한것 같다. 이번에는 제대로 개념에 대해 이해하고 이것을 코드로도 작성해볼 것이다. 이 글은 다음 사이트들를 참조했다. 출처 사이트 목록 클릭 더보기 https://en.wikipedia.org/wiki/Binary_tree https://yoongrammer.tistory.com/71 https://www.programiz.com/dsa/trees https://www.geeksforgeeks.org/introduction-to-tree-data-structure/ https://justin-miguel-fernandez.medium.com/algorithm-time-complexity-9bf96bc84d2d https://www.geek..