본문 바로가기
반응형

전체 글154

Data Structure - Graph Structure 왜 그래프 구조인가 - 가장 보편적인 구조 atomic -> 선형구조 -> 부분 순서 구조 -> 자유 구조 -> 해슁 구조 그래프의 형식적 정의 G(V,E) - vertex / edge / {vertex, edge} induced subgraph / simple graph와 general graph / connectedness, connected component / path와 trail, cycle Graph는 vertex와 edge로 이루어진 한정된 자료구조를 의미함. / vertex는 정점, edge는 정점과 정점을 연결하는 간선. / 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조( ex: 지도, 지하철 노선도의 최단 경로, 전기회로의 소자들, 도로 등) / 그래프는 여러개의 고립된 부분.. 2022. 4. 17.
응집도(Cohesion)과 결합도(Coupling) 응집도(Cohesion)란 한 클래스 또는 모듈이 특정 목적 또는 역할을 얼마나 일관되게 지원하는지를 나타내는 척도. / 명령어나 호출문 등의 모듈의 내부 요소들의 서로 관련있는 정도. / 모듈이 독립적인 기능으로 구성됐는지 정도를 의미함. / 응집도가 강할수록 독립적인 모듈. -> 어떤 모듈 또는 클래스의 응집도가 높다는 것은 일련의 서로 연관된 기능이 묶여있다는 것을, 응집도가 낮다는 것은 서로 상관없는 기능들이 묶여있다는 것을 뜻함. / 응집도는 강할수록 좋다. 응집도는 단일 역할 원칙에서만 쓰이는 용어가 아닌 광범위한 용도로 쓰이는 용어. 이 원칙을 잘 따르는 클래스는 두 개 이상의 역할을 맡고 있는 클래스에 비해 응집도가 높고, 관리하기도 더 용이함. 응집도 강한 순서대로 ㆍ기능적 응집도(Fun.. 2022. 4. 16.
디자인 패턴 - Composite Pattern 컴포지트 패턴 = 여러개의 객체들로 구성된 복합 객체와 단일 객체를 클라이언트에서 구별없이 다루게 해주는 패턴. (클라이언트가 복합 객체(group of object)나 단일 객체를 동일하게 취급하는 것을 목적으로 함) / 컴포지트의 의도는 계층적으로 구성된 정보를 트리 구조로 작성하여, 전체-부분(whole-part) 관계 표현 / 전체와 부분의 관계를(Directory와 File같은) 갖는 객체들 사이의 관계를 정의할 때 유용함. / 클라이언트는 전체와 부분을 구분하지 않고 동일한 인터페이스 사용 가능. 컴포지트 패턴은 언제 사용하는가 - 복합 객체와 단일 객체의 처리 방법이 다르지 않을 경우, 전체-부분 관계로 정의 가능. 이 관계를 효율적으로 정의할때 유용함. 역할이 수행하는 작업 - Compon.. 2022. 4. 16.
Data Structure - Priority Queue 우선순위 큐 (Priority Queue) 일반적인 Queue는 먼저 집어넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조로 저장하는 linear Data Structure. 하지만 Priority Queue는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 Queue. 일반 queue - 처음 줄 선 순서대로 / 특수 queue - 우리가 지정한 어떠한 순서대로 Priority Queue의 속성 : ㆍ모든 항목에는 우선순위가 있음. ㆍ우선 순위가 높은 요소는 우선 순위가 낮은 요소보다 먼저 queue에서 제외됨. ㆍ두 요소의 우선 순위가 같으면 queue의 순서에 따라 제공됨. Priority Queue가 지원하는 기능 ㆍenqueue() : queue에 새 요소.. 2022. 4. 14.
Tree Structure 노트10 - Suffix Tree Search Tree 구성의 종류 - key 전체를 비교하는 방법 / key의 일부를 비교하는 방법 / 각 node마다 동일한 기준으로 비교하는 방법 / 각 node마다 비교하는 기준이 다른 경우 Trie 구조가 필요한 Text Application의 전형적인 예) - Dictionary : memory를 작게 만드는 것이 중요한 작업 - 자동차 네비게이션에서 주소 찾기 or 우편번호 주소 찾기 Digital Search Tree - key 값을 binary로 바꿔서 각 level마다 비교대상을 다르게 함. - level i node에서 볼때 왼쪽 subtree의 모든 값은 i번쨰 bit = 0, 오른쪽 subtree의 i번째 bit = 1 Trie는 기본적으로 multi-way branch tree. .. 2022. 4. 14.
디자인 패턴 - Template Method pattern Template Method pattern : 객체가 실행해야 하는 알고리즘 기본 골격을 추상(부모)클래스에 구현해 놓은 후 서브클래스에서 메소드를 override하여 객체가 수행해야 할 행위의 다양성을 표현하는 방법. ==> 객체지향 프로그래밍 시에 생활화해야 되는 코딩 스타일 / 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴. / 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 함. - 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화할때 유용함. - 동.. 2022. 4. 12.
반응형