검색결과 리스트
데이터구조에 해당되는 글 1건
- 2011.08.16 알고리즘과 데이터 구조 그리고 패턴
글
알고리즘과 데이터 구조 그리고 패턴
디자인패턴로그
2011. 8. 16. 22:51
디자인 패턴의 카테고리는 크게 생성, 행동, 구조 이렇게 3가지로 분류된다. 왜 이렇게 3가지로 분류될까?
경험이 많지는 않지만 내 생각에는 소프트웨어 개발에 있어서 빠질래야 빠질 수 없는 가장 큰 범주의 패턴이
바로 이 3가지 이기 때문이다. 컴퓨터 공학에서 "알고리즘과 데이터 구조" 는 굉장히 중요한 분야이다. 프로그래밍의
근본을 이루는 분야이기 때문에 대학 및 실무에서도 "알고리즘과 데이터 구조" 에 대한 기초를 중요시 여긴다.
데이터를 어떠한 형태로 구성하는냐 그리고 어떠한 처리방법을 선택하느냐 에 따라 프로그램에 유지보수성과 성능이
좌지우지 되기 때문일 것이다. 객체지향 패러다임으로 관점을 옮겼을 때 그대로 맵핑된 것이다. "행동" 과 "구조" 패턴이다.
클래스를 사용하는 객체지향의 문맥에 맞게 표현된 단어이지만 근본적으로 각각 알고리즘과 데이터 구조를 표현하는 말이다.
이에 더하여 프로그램에서 빠질 수 없는 것이 (변수 또는 객체에 대한) 생성이다. 일단 생성이 되어야 "행동"과 "구조"를 적용할
수 있지 않겠는가?
이러한 이유들로 인해서 여러 패턴들이 3가지 카테고리로 분류되어 있다. 이점을 염두해 두고 패턴들을 생각하면 좀더 쉽게 이해가 될 것이다. 사내 스터디 교재로 Head First Design Pattern을 택했기 때문에 여기에서 등장하는 패턴순으로 설명해나갈 것이며
패턴을 설명하기 위한 예제는 될수 있으면 실제로 사용하고 적용했던 코드를 사용할 것이다.
경험이 많지는 않지만 내 생각에는 소프트웨어 개발에 있어서 빠질래야 빠질 수 없는 가장 큰 범주의 패턴이
바로 이 3가지 이기 때문이다. 컴퓨터 공학에서 "알고리즘과 데이터 구조" 는 굉장히 중요한 분야이다. 프로그래밍의
근본을 이루는 분야이기 때문에 대학 및 실무에서도 "알고리즘과 데이터 구조" 에 대한 기초를 중요시 여긴다.
데이터를 어떠한 형태로 구성하는냐 그리고 어떠한 처리방법을 선택하느냐 에 따라 프로그램에 유지보수성과 성능이
좌지우지 되기 때문일 것이다. 객체지향 패러다임으로 관점을 옮겼을 때 그대로 맵핑된 것이다. "행동" 과 "구조" 패턴이다.
클래스를 사용하는 객체지향의 문맥에 맞게 표현된 단어이지만 근본적으로 각각 알고리즘과 데이터 구조를 표현하는 말이다.
알고리즘을 캡슐화하여 어떻게 유연하게 알고리즘에 변경을 적용할 수 있을까에 대한 고민이 "행동" 카테고리의 패턴들이다.
클래스들(객체들) 간에 어떻게 구조를 형성하여 특정 요구사항에 유용한 구조를 얻을 수 있을까에 대한 고민이 "구조" 카테고리의 패턴들이다.
이에 더하여 프로그램에서 빠질 수 없는 것이 (변수 또는 객체에 대한) 생성이다. 일단 생성이 되어야 "행동"과 "구조"를 적용할
수 있지 않겠는가?
클래스(객체)들을 생성하는 방식을 어떻게 캡슐화하여 유연성을 얻을까에 대한 고민이 "생성" 카테고리의 패턴들이다.
이러한 이유들로 인해서 여러 패턴들이 3가지 카테고리로 분류되어 있다. 이점을 염두해 두고 패턴들을 생각하면 좀더 쉽게 이해가 될 것이다. 사내 스터디 교재로 Head First Design Pattern을 택했기 때문에 여기에서 등장하는 패턴순으로 설명해나갈 것이며
패턴을 설명하기 위한 예제는 될수 있으면 실제로 사용하고 적용했던 코드를 사용할 것이다.
이 책에서 소개하는 패턴들의 순서는 다음과 같다.
디자인 패턴 소개
옵저버 패턴
데코레이터 패턴
팩토리 패턴
싱글턴 패턴
커맨드 패턴
어댑터 패턴과 퍼사드 패턴
템플릿 메소드 패턴
이터레이터와 컴포짓 패턴
스테이트 패턴
프록시 패턴
컴파운드 패턴
...
'디자인패턴로그' 카테고리의 다른 글
| 객체지향의 원칙 (0) | 2011.08.17 |
|---|---|
| 알고리즘과 데이터 구조 그리고 패턴 (0) | 2011.08.16 |
| 디자인 패턴에 대한 고찰 (0) | 2011.08.16 |