2011년 12월 17일 세미나에서 발표한 자료입니다.
발표를 넘 못해서... 많이 아쉽네요.... 다음에는... 조금 더 나은 모습으로.... ... ..
'Parallel' 카테고리의 다른 글
| 구조적 병렬 패턴을 통한 ArBB 활용법 (0) | 2011/12/19 |
|---|---|
| ArBB(Array Building Blocks) 세미나 발표 자료 (0) | 2011/06/27 |
| 구조적 병렬 패턴을 통한 ArBB 활용법 (0) | 2011/12/19 |
|---|---|
| ArBB(Array Building Blocks) 세미나 발표 자료 (0) | 2011/06/27 |
| 구조적 병렬 패턴을 통한 ArBB 활용법 (0) | 2011/12/19 |
|---|---|
| ArBB(Array Building Blocks) 세미나 발표 자료 (0) | 2011/06/27 |
문서보기:http://www.scribd.com/doc/3669689/Structure-for-reusable-Object-Oriented-Design
GoF 디자인 패턴을 중심으로 다양한 패턴을 공부하면서....
패턴의 우수성을 인식할 수 있었습니다.
그러나, 문제는...
적절하게 습득한 패턴들을 현장에 적용하는 것이 그렇게 만만하지 않다는 사실 또한 알게 되었습니다.
여러 가지 이유가 있겠지만...
개인적으로는.... 오히려 패턴이 문제가 아닐까(?)... 라는 고민을 하게 되었습니다.
패턴은 사실... Good design들을 정리한 것인데....
| Structure for reusable Object-Oriented Design (3) | 2008/06/27 |
|---|---|
| 객체지향 설계 원칙 (3) | 2008/05/27 |
| 예제 Source Code와 함께... Design Pattern 익히기... (0) | 2007/12/25 |
| GoF[11] - Prototype 패턴 (0) | 2007/11/30 |
| Object-Oriented Design 특강 (4) | 2007/10/31 |
| GoF[10] Singleton 패턴 (0) | 2007/10/31 |
| Structure for reusable Object-Oriented Design (3) | 2008/06/27 |
|---|---|
| 객체지향 설계 원칙 (3) | 2008/05/27 |
| 예제 Source Code와 함께... Design Pattern 익히기... (0) | 2007/12/25 |
| GoF[11] - Prototype 패턴 (0) | 2007/11/30 |
| Object-Oriented Design 특강 (4) | 2007/10/31 |
| GoF[10] Singleton 패턴 (0) | 2007/10/31 |
| Structure for reusable Object-Oriented Design (3) | 2008/06/27 |
|---|---|
| 객체지향 설계 원칙 (3) | 2008/05/27 |
| 예제 Source Code와 함께... Design Pattern 익히기... (0) | 2007/12/25 |
| GoF[11] - Prototype 패턴 (0) | 2007/11/30 |
| Object-Oriented Design 특강 (4) | 2007/10/31 |
| GoF[10] Singleton 패턴 (0) | 2007/10/31 |
C++ 개발자들에게 Clone은 조금 나선감이 없잖아 있습니다.
Java, C# 개발자에게는 조금 더 익숙하죠.... IClonable 인터페이스가 있기 때문이
아닐까 합니다.
오히려 C++ 개발자들에게는 복사 생성자로 이야기하는 것이 조금 더 쉬운 듯합니다.
Clone를 구현한다는 것이 C++ 개발자들에게는 복사 생성자를 구현하는 것과 유사하기 때문이죠.
Prototype 패턴은 Clone을 통해 Type 정보 없이 객체를 생성할 때 사용할 수 있는
아주 유용한 패턴입니다.
Object-Oriented 부터 시작해서...
디자인 패턴등... 조금은 딱딱한 주제들을 임백준님께서 재미있게 이야기하고 있네요.
넘 좋은 도서입니다.....
| 객체지향 설계 원칙 (3) | 2008/05/27 |
|---|---|
| 예제 Source Code와 함께... Design Pattern 익히기... (0) | 2007/12/25 |
| GoF[11] - Prototype 패턴 (0) | 2007/11/30 |
| Object-Oriented Design 특강 (4) | 2007/10/31 |
| GoF[10] Singleton 패턴 (0) | 2007/10/31 |
| ‘요구공학’ 응용해 생활 갈등 풀자(Win-Win 모델) (0) | 2007/10/18 |
| 예제 Source Code와 함께... Design Pattern 익히기... (0) | 2007/12/25 |
|---|---|
| GoF[11] - Prototype 패턴 (0) | 2007/11/30 |
| Object-Oriented Design 특강 (4) | 2007/10/31 |
| GoF[10] Singleton 패턴 (0) | 2007/10/31 |
| ‘요구공학’ 응용해 생활 갈등 풀자(Win-Win 모델) (0) | 2007/10/18 |
| GoF[09] Factory Method 패턴 (0) | 2007/09/18 |
GoF 디자인 패턴을 학습하기 전 부터... 유일하게 알고 있었던..... 유일한 패턴.
사실 그 때는... 요놈이 패턴인지 알지도 못했지만. ㅋ.
책일 보니.... 패턴이라고 하네... 그런데... 왜 이리 단순해...ㅋㅋㅋ...
그러나~.. 예술이당.
드디어... ppt를 10장 만들었네.. 우앙... 힘들당....
"알기쉬운 디자인패턴"
정말 알기쉬운(?).... 음.... 설계의 핵심 지침과... 중요한 패턴 몇가지를 소개하고 있는데.
음.... 또 다른 시각으로 패턴을 바라볼수 있게 해주는 좋은 도서인듯...ㅋㅋ....
| GoF[11] - Prototype 패턴 (0) | 2007/11/30 |
|---|---|
| Object-Oriented Design 특강 (4) | 2007/10/31 |
| GoF[10] Singleton 패턴 (0) | 2007/10/31 |
| ‘요구공학’ 응용해 생활 갈등 풀자(Win-Win 모델) (0) | 2007/10/18 |
| GoF[09] Factory Method 패턴 (0) | 2007/09/18 |
| http://www.seri.org/forum/designpattern (0) | 2007/09/14 |
| Object-Oriented Design 특강 (4) | 2007/10/31 |
|---|---|
| GoF[10] Singleton 패턴 (0) | 2007/10/31 |
| ‘요구공학’ 응용해 생활 갈등 풀자(Win-Win 모델) (0) | 2007/10/18 |
| GoF[09] Factory Method 패턴 (0) | 2007/09/18 |
| http://www.seri.org/forum/designpattern (0) | 2007/09/14 |
| GoF[08] Abstract Factory 패턴 (0) | 2007/09/14 |
객체 생성과정을 특정한 Template으로 구성할 수 있다면...???
그럼.... 혹..?? Template Method 패턴을 활용할 수 있지 않을까???
즉,
Factory Method 패턴은.... 단순히 Template Method 패턴을 활용한 좋은 Sample 입니다.
Method을 문법적 그리고 그 역할로 구분한다면.... 아마 아래와 같이 정리할 수 있을 듯.... 합니다..
문법적 역할(의미)
------------------------------------------------------------
Method - 일반 Method
- Static Method
- Hook Method
- Template Method
Pure Virtual Method - 일반 Pure Virtual Method
- Factory Method
소프트웨어 개발의 지혜 저자이기도 한... Robert Cecil Martin이 쓴 도서입니다.
UML과 OOD 원칙 그리고.... 여러 풍부한 내용을 습득 할 수 있었습니다.
| GoF[10] Singleton 패턴 (0) | 2007/10/31 |
|---|---|
| ‘요구공학’ 응용해 생활 갈등 풀자(Win-Win 모델) (0) | 2007/10/18 |
| GoF[09] Factory Method 패턴 (0) | 2007/09/18 |
| http://www.seri.org/forum/designpattern (0) | 2007/09/14 |
| GoF[08] Abstract Factory 패턴 (0) | 2007/09/14 |
| GoF[07] Composite 패턴 (0) | 2007/09/14 |
| ‘요구공학’ 응용해 생활 갈등 풀자(Win-Win 모델) (0) | 2007/10/18 |
|---|---|
| GoF[09] Factory Method 패턴 (0) | 2007/09/18 |
| http://www.seri.org/forum/designpattern (0) | 2007/09/14 |
| GoF[08] Abstract Factory 패턴 (0) | 2007/09/14 |
| GoF[07] Composite 패턴 (0) | 2007/09/14 |
| GoF[06] Decorator 패턴 (0) | 2007/09/14 |
[최신 자료]
[이전 자료]
청룡영화상에서 영화배우 황정민은
"모든 스태프들이 준비한 잘 차려진 밥상을 먹기만 했을 뿐" 이라는 수상소감을 한적 있습니다.
우리(개발자)에게 잘 차려진 밥상이란..??
개인적으로는... 재사용 가능한 설계가 바로.... 잘 차려진 밥상이라고 생각합니다.
그럼... 우리는 그 곳에서.... 맛나게 먹기만 하면 될 듯한데... 쉽지가 않네요...
왜 ????....
즉, 개발자에게 맛나게 밥을 먹는 다는 것은 올바른 객체 생성일 듯 합니다.
올바른 객체 생성 ???
그냥 new 하면 되지 않나요..???
Abstract Factory 패턴을 통해.... 그 힌트를 얻을 수 있습니다.
PT 샘플 예제와 관련하여... Devpia에서 "강희기"님께서 지적한 내용이 있어 링크합니다.
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=7763&page=1
Head First 시리즈.... 음....
아무 생각 없이.... 출판하자마자... 구입한 도서.... 역시.... 실망 시키지 않네요...
| GoF[09] Factory Method 패턴 (0) | 2007/09/18 |
|---|---|
| http://www.seri.org/forum/designpattern (0) | 2007/09/14 |
| GoF[08] Abstract Factory 패턴 (0) | 2007/09/14 |
| GoF[07] Composite 패턴 (0) | 2007/09/14 |
| GoF[06] Decorator 패턴 (0) | 2007/09/14 |
| GoF[05] Template Method 패턴 (0) | 2007/09/14 |
Decorator 패턴을 통해 Sub-HOW(HOW의 추가 책임, 부가 기능)가 지속적으로 추가되는 현상을
우리는 효과적으로 처리할 수 있었다.
그렇다면,
HOW의 지속적인 추가와 함께 이런 HOW를 하나의 Set으로 구성하여 처리 해야 한다면,....
우리는 어떻게 효과적으로 대응할 수 있을까?
Composite 패턴을 이용하여 이런 문제를 효과적으로 해결할 수 있습니다.
Head First 디자인 패턴은 아주 쉽고,,,, 흥미 있게... 정리한 도서입니다..
무엇보다... 다양한 시각적 표현이 넘 좋은 듯합니다.
가끔 설계 관련 도서를 읽고 있으면 조금 지루하고 따분한데.... 이 도서는 만화책을 읽듯...
디자인 패턴을 익힐 수 있었던 것 같습니다.
디자인 패턴 초보자 분들에게는 적극 추천하고 뿐 책입니다.
| http://www.seri.org/forum/designpattern (0) | 2007/09/14 |
|---|---|
| GoF[08] Abstract Factory 패턴 (0) | 2007/09/14 |
| GoF[07] Composite 패턴 (0) | 2007/09/14 |
| GoF[06] Decorator 패턴 (0) | 2007/09/14 |
| GoF[05] Template Method 패턴 (0) | 2007/09/14 |
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
재사용 가능한 설계를 통해 어떻게 코드 재사용을 할 수 있을까???
가장 보편적인 방법은 Template Method 패턴을 이용하는 것이다......
그러나,
Template Method 패턴은 기본 클래스에서 기본 알로리즘 코드가 존재하기 때문에
결합도가 증가된다.
그렇다면, 좀 더 효율적인 방법으로...
재사용 가능할 설계와 코드 재사용을 함께 제공할 수 방법은 없는 것일까...???
Decorator 패턴을 통해서... 그 해답에 대한 힌트(?)를 얻을 수 있습니다.
위 도서는, 각 Chapter 첫 페이지에
해당 패턴을 간락히 표현하는 이미지가 삽입되어 있는데...
넘.... 시각적으로 패턴을 잘 표현한 듯 합니다.
| GoF[08] Abstract Factory 패턴 (0) | 2007/09/14 |
|---|---|
| GoF[07] Composite 패턴 (0) | 2007/09/14 |
| GoF[06] Decorator 패턴 (0) | 2007/09/14 |
| GoF[05] Template Method 패턴 (0) | 2007/09/14 |
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
| GoF[03] Strategy 패턴(Object-Oriented Design 원칙) (0) | 2007/09/14 |
C++ Project Sample
C# Project Sample
대부분 개발자(저를 포함해서)들은 인터페이스 보다는 구현 상속에 익숙해 있다.
인터페이스가 아닌 구현 상속에 익숙한 이유는..?
그 보다 더욱 중요한 점은 올바른 구현 상속을 사용하는 것이다.
올바른 구현 상속에 대한 힌트를 Template Method 패턴에서 찾을 수 있다.
올바른 구현 상속은
기반 클래스가 파생 클래스의 확장에 대한 제어권을 갖게 하는 것이다.
국내 도서 중에서 C++ 언어로 기술한 디자인 패턴 서적이다.
또한 저자(장세찬)님께서 패턴을 사용할 때 같이 고민해야할 꺼리들을 넘 잘 정리해 주셨다.
사실...
디자인 패턴은 개발 언어와는 아무런 관련이 없다고 할 수 있다.
| GoF[07] Composite 패턴 (0) | 2007/09/14 |
|---|---|
| GoF[06] Decorator 패턴 (0) | 2007/09/14 |
| GoF[05] Template Method 패턴 (0) | 2007/09/14 |
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
| GoF[03] Strategy 패턴(Object-Oriented Design 원칙) (0) | 2007/09/14 |
| GoF[02] Object-Oriented (0) | 2007/09/14 |
객체재향 설계를 이용하여 개발하는 이유는 많지만...
대표적인 이유는.....
Flexibility와 Reusability입니다.
그렇다면....
어떻게 이런 목적을 달성할 수 있을까?
유연성과 재사용을 위한 개발 지침
1. Programming to Interface, not an Implementation.
구현이 아닌 인터페이스에 따라 프로그래밍하자.
2. Favor Object Composition(with Interface Inheritance) over Class Implementation.
구현 상속(Is-a 관계) 보다는 (인터페이스 상속을 기반으로 한) 객체 합성(Has-a 관계)을 선호하자.
위 지침을 통해서 우리는 Flexibility와 Reusability을 달성할 수 있게 됩니다.
두말할 필요 없는 명서...
위 도서에서 객체지향 설계에 관한 많은 가르침을 얻을 수 있었습니다.
| GoF[06] Decorator 패턴 (0) | 2007/09/14 |
|---|---|
| GoF[05] Template Method 패턴 (0) | 2007/09/14 |
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
| GoF[03] Strategy 패턴(Object-Oriented Design 원칙) (0) | 2007/09/14 |
| GoF[02] Object-Oriented (0) | 2007/09/14 |
| GoF[01] 몸 풀기(Class Diagram) (0) | 2007/09/14 |
C++ Sample Project
C# Sample Project
객체지향 설계를 위해서 무엇 보다 우선 습득해야 할 것은
객체지향 설계 원칙입니다.
1. SRP - 단일 책임의 원칙(Single Responsibility Principle)
2. DIP - 의존 관계 역전의 원칙(Dependency Inversion Principle)
3. ISP - 인터페이스 분리의 원칙(Interface Segregation Principle)
4. LSP - 리스코프 대체 원칙(Liskov Substitution Principle)
5. OCP - 개방 폐쇄 원칙(Open-Closed Principle)
마소에서 객체지향 설계 원칙을 연재한 자료가 있습니다.
http://www.zdnet.co.kr/builder/dev/modeling/
참고하시면 더욱 좋을 듯 합니다.
또한 "소프트웨어 개발의 지혜" 도서에도 객체지향 설계 원칙을 설명하고 있습니다.
| GoF[05] Template Method 패턴 (0) | 2007/09/14 |
|---|---|
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
| GoF[03] Strategy 패턴(Object-Oriented Design 원칙) (0) | 2007/09/14 |
| GoF[02] Object-Oriented (0) | 2007/09/14 |
| GoF[01] 몸 풀기(Class Diagram) (0) | 2007/09/14 |
| GoF[00] Gof Design Patterns을 공부하면서.... (0) | 2007/09/14 |
왜?
우리는 객체지향 설계로 개발을 진행하고 있을까?
여러가지 이유가 있을 수 있지만...
그 보다 더 중요한 점은...
현재 우리는 객체지향 설계를 기반으로 개발 업무를 진행하고 있다는 점이다.
즉,
객체지향의 특징
즉,,, 객체지향 주 무기를 좀더 세련되고 유용하게 사용하는 것이 더욱 중요할 듯 하다.
그러기 위해서는 개념 정리 부탁 필요할 듯....
객체는 Service Proiver이다.
상속의 목적은 다형성 획득이다.
재사용의 목적은 재사용 가능한 설계이다.
"캡슐화, 상속, 다형성" 관련하여 송치형님께서 말끔하게 정리한 자료입니다.
http://innolab.tistory.com/1173513598
송치형님 블러그 : http://innolab.tistory.com
송치형님께서 번역한 도서입니다.
개인적으로 GoF 디자인 패턴 관련 서적을 많이 접해 보왔지만....
가장 실용적인 도서인 듯 합니다....
강추 합니다.
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
|---|---|
| GoF[03] Strategy 패턴(Object-Oriented Design 원칙) (0) | 2007/09/14 |
| GoF[02] Object-Oriented (0) | 2007/09/14 |
| GoF[01] 몸 풀기(Class Diagram) (0) | 2007/09/14 |
| GoF[00] Gof Design Patterns을 공부하면서.... (0) | 2007/09/14 |
| GoF 패턴 재해석하기 (0) | 2007/09/14 |
설계를 위해 Class Diagram 이해는 개발자에게 필수적으로 요구되는 사항이다.
특히 Gof 패턴은 Class Diagram을 기본으로 표현되어지고 있습니다.
패턴 학습을 위한 몸 풀기로...
UML 공부하면서...참고했던 도서 중에서...
넘... 쉽고, 가볍게 읽을 수 있었던... 도서... ㅋ...
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
|---|---|
| GoF[03] Strategy 패턴(Object-Oriented Design 원칙) (0) | 2007/09/14 |
| GoF[02] Object-Oriented (0) | 2007/09/14 |
| GoF[01] 몸 풀기(Class Diagram) (0) | 2007/09/14 |
| GoF[00] Gof Design Patterns을 공부하면서.... (0) | 2007/09/14 |
| GoF 패턴 재해석하기 (0) | 2007/09/14 |
Gof의 Design Patterns을 공부하면서 정리한 문서들...
초기는 정말 열정적으로 공부를 했는데.... PT를 만든 것 보면... ㅋㅋㅋ...
[Strategy 패턴]
[Abstract Factory 패턴]
[Iterator 패턴][Command 패턴]
이전에 작성한 문서를 보고 있으면
내가 너무 패턴의 철학(?)을 왜곡시킨듯 하기도 하고..... 넘... 부족한 문서들인 듯.... 하다.
그럼.... 다시 시작해 볼까나...!!
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
|---|---|
| GoF[03] Strategy 패턴(Object-Oriented Design 원칙) (0) | 2007/09/14 |
| GoF[02] Object-Oriented (0) | 2007/09/14 |
| GoF[01] 몸 풀기(Class Diagram) (0) | 2007/09/14 |
| GoF[00] Gof Design Patterns을 공부하면서.... (0) | 2007/09/14 |
| GoF 패턴 재해석하기 (0) | 2007/09/14 |
| GoF[04] Flexibility(유연성) & Reusability(재사용성) (0) | 2007/09/14 |
|---|---|
| GoF[03] Strategy 패턴(Object-Oriented Design 원칙) (0) | 2007/09/14 |
| GoF[02] Object-Oriented (0) | 2007/09/14 |
| GoF[01] 몸 풀기(Class Diagram) (0) | 2007/09/14 |
| GoF[00] Gof Design Patterns을 공부하면서.... (0) | 2007/09/14 |
| GoF 패턴 재해석하기 (0) | 2007/09/14 |
| Exception Handling[4] RAII Boost and Effective Exception (1) | 2007/09/14 |
|---|---|
| Exception Handling[3] Effective try - throw - catch (0) | 2007/09/14 |
| Exception Handling[2] RAII (0) | 2007/09/14 |
| Exception Handling[1] Basic & Dump (0) | 2007/09/14 |
| Exception Handling[4] RAII Boost and Effective Exception (1) | 2007/09/14 |
|---|---|
| Exception Handling[3] Effective try - throw - catch (0) | 2007/09/14 |
| Exception Handling[2] RAII (0) | 2007/09/14 |
| Exception Handling[1] Basic & Dump (0) | 2007/09/14 |
| Exception Handling[4] RAII Boost and Effective Exception (1) | 2007/09/14 |
|---|---|
| Exception Handling[3] Effective try - throw - catch (0) | 2007/09/14 |
| Exception Handling[2] RAII (0) | 2007/09/14 |
| Exception Handling[1] Basic & Dump (0) | 2007/09/14 |
[프로젝트 소스]
Exception Handling 관련된 기초 지식을 정리한 자료입니다.
추가적으로 Dump 파일 생성 및 Debugging 관련 자료를 추가 하였습니다.
자료를 만들면서 참고한 서적인데.... 음.... 개발 분야에 또 다른 세상이 있는 듯 합니다.....
Dump 파일 관련 API : SetUnhandledExceptionFilter, MinidumpWriteDump, ...
Dump 파일 생성 도구 : Userdump 8.1, ...
| Exception Handling[4] RAII Boost and Effective Exception (1) | 2007/09/14 |
|---|---|
| Exception Handling[3] Effective try - throw - catch (0) | 2007/09/14 |
| Exception Handling[2] RAII (0) | 2007/09/14 |
| Exception Handling[1] Basic & Dump (0) | 2007/09/14 |
댓글을 달아 주세요