티스토리 툴바



문서보기:
http://www.scribd.com/doc/3669689/Structure-for-reusable-Object-Oriented-Design

GoF 디자인 패턴을 중심으로 다양한 패턴을 공부하면서....
패턴의 우수성을 인식할 수 있었습니다.

그러나, 문제는...
적절하게 습득한 패턴들을 현장에 적용하는 것이 그렇게 만만하지 않다는 사실 또한 알게 되었습니다.
여러 가지 이유가 있겠지만...

개인적으로는.... 오히려 패턴이 문제가 아닐까(?)... 라는 고민을 하게 되었습니다.
패턴은 사실... Good design들을 정리한 것인데....

댓글을 달아 주세요

  1. Favicon of http://ikpil.com BlogIcon 최익필 2008/07/28 02:27  댓글주소  수정/삭제  댓글쓰기

    저는 패턴책을 사기만 하고 안 보았는데, 한번 봐야겠습니다.

  2. Favicon of http://hhko.tistory.com BlogIcon 고가별 2008/07/28 10:38  댓글주소  수정/삭제  댓글쓰기

    저 또한 GoF 패턴 책을.... 사고..... 한참 있다.... 봐서리..ㅋ....ㅋ....

  3. 기돈 2010/10/04 20:53  댓글주소  수정/삭제  댓글쓰기

    어... 완전 사랑합니다. 정말 참고가 많이 되고있습니다. 완전 감사드려요

객체지향 설계 원칙

Object-Oriented Design 2008/05/27 10:14 Posted by 고가별

문서보기: http://www.scribd.com/doc/3199769/OOD-Principles

오랜만에... 글을 올리네요. ㅋ.

작년에 객체지향 설계원칙 관련 자료가 너무 많은 부분에서 부족한 점들이 있어.
다시 정리해서 올립니다.

그러나.... 여전히 부족한 부분이 있지만.... 예전 보다는 아주 조금은 개선된 듯 합니다.

   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)

댓글을 달아 주세요

  1. Daniel 2009/02/17 21:26  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    정말 좋은 자료 감사합니다.
    인터넷 블로그에 댓글 달기는 난생처음이네요.
    근데 너무 좋은 자료를 그냥 받아가기 너무 죄송해서 이렇게 댓글 답니다.

    항상 건강하시구요.
    좋은자료 계속 부탁드립니다.

  2. likebebop 2009/08/30 23:40  댓글주소  수정/삭제  댓글쓰기

    그림으로 알기 쉽게 정리하신 것 같네요.
    좋은 참고 될 것 같습니다.
    감사합니다.

  3. 지정 2010/02/23 02:57  댓글주소  수정/삭제  댓글쓰기

    감사합니다

그동안...

PT 중심으로... Design Pattern 자료를 만들고 있었는데요...
Sample Source Code를 제공하고 있지 않아서.. 처음 디자인 패턴을 익히는 분들에게는
어려움이 있는 듯 싶어서....

C++과 C# 언어로 Sample Source Code를 PT와 함께 제공하려고 합니다.
우선... 기존 PT 부터 정리하고... 다음 PT부터는 ... 처음부터... 같이 제공할 수 있도록
하겠습니다...

그리고...
내년에는... Refactoring 도..... 자료를 업하도록 할 예정입니다...

모두 행복하시고요....

메리.... 크리스마스....^^;

가별이가.


"통계모든 과학문법이다."
소프트웨어 아키텍처를 꿈꾸고 있다면.... 개인적으로.... 통계 지식이 필수적이라고... 생각합니다.
오잉... ㅋ..
추천 인사들 중에서.... 존경하는.... 저의 회사 이사님이 계시네요... ㅋ...
사용자 삽입 이미지
























댓글을 달아 주세요

GoF[11] - Prototype 패턴

Object-Oriented Design 2007/11/30 10:11 Posted by 고가별


Create objects without knowing exactly what that type is

C++ 개발자들에게 Clone은 조금 나선감이 없잖아 있습니다.

Java, C# 개발자에게는 조금 더 익숙하죠.... IClonable 인터페이스가 있기 때문이
아닐까 합니다.

오히려 C++ 개발자들에게는 복사 생성자로 이야기하는 것이 조금 더 쉬운 듯합니다.
Clone를 구현한다는 것이 C++ 개발자들에게는 복사 생성자를 구현하는 것과 유사하기 때문이죠.

Prototype 패턴은 Clone을 통해 Type 정보 없이 객체를 생성할 때 사용할 수 있는
아주 유용한 패턴입니다.

Object-Oriented 부터 시작해서...
디자인 패턴등... 조금은 딱딱한 주제들을 임백준님께서 재미있게 이야기하고 있네요.
넘 좋은 도서입니다.....

사용자 삽입 이미지



댓글을 달아 주세요

Object-Oriented Design 특강

Object-Oriented Design 2007/10/31 11:41 Posted by 고가별

고려대학교 정보퉁신대 인 호 교수님의 배려로
2007년 10월 30일 소프트웨어 공학 강의 시간에 "Object-Oriented Design"을 주제로 발표한 자료입니다.

오후 학부생, 그러고 저녁에는 대학원생을 대상으로...
ㅋ..

강의하면서... 느낀 점인데... 음.... 준비는 많이 했지만....
역시.... 실수도 많았고... 제대로 그 의미를 전달하지 못하고 엉뚱한 이야기나 하고. ㅋ....
많은 노력이 필요하다는 것을 아주 아주~~~~~~~~~~~~~ 실감하면서...
기쁘기도 하고,, 슬프기도 하고...

대학교 강단에 첫 발을 내딛은 날.
인 호 교수님 감사합니다.



댓글을 달아 주세요

  1. Favicon of http://blog.naver.com/knbawe.do BlogIcon 짱가 2007/11/05 14:48  댓글주소  수정/삭제  댓글쓰기

    대단하십니다. ^^ 고생하셨고.. 축하드립니다.

  2. Favicon of http://hhko.tistory.com BlogIcon 고가별 2007/11/05 17:19  댓글주소  수정/삭제  댓글쓰기

    짱가님.... 안녕하세요. ㅋㅋ...
    유익한 강의를 못해서... 못내 아쉬움만 남긴체... 강의실을 떠난듯 해서.
    개인적으로는...
    넘 아쉬운 날이었습니다.

    감사합니다.

  3. 노랭이군 2007/11/07 22:20  댓글주소  수정/삭제  댓글쓰기

    강의 들었던 학부생 중 한 명입니다. ^^
    강의 정말 잘 들었습니다-

    Boost나 TR-1에 대해서도 이야기 들을 줄은 생각도 못했는데 그 또한 재미있었답니다- :)

  4. Favicon of http://hhko.tistory.com BlogIcon 고가별 2007/11/08 09:44  댓글주소  수정/삭제  댓글쓰기

    부족함이 많았던 강의를 들어 주셔서 대단히 감사합니다.
    개인적으로 많이 부족함이 많아 서리....
    강의 들으려고 많이 힘들었을 듯 한데...ㅋ....

    감사합니다.

GoF[10] Singleton 패턴

Object-Oriented Design 2007/10/31 11:30 Posted by 고가별


A class with a constrained number of instances

GoF 디자인 패턴을 학습하기 전 부터... 유일하게 알고 있었던..... 유일한 패턴.
사실 그 때는... 요놈이 패턴인지 알지도 못했지만. ㅋ.

책일 보니.... 패턴이라고 하네... 그런데... 왜 이리 단순해...ㅋㅋㅋ...
그러나~.. 예술이당.

드디어... ppt를 10장 만들었네.. 우앙... 힘들당....

"알기쉬운 디자인패턴"
정말 알기쉬운(?).... 음.... 설계의 핵심 지침과... 중요한 패턴 몇가지를 소개하고 있는데.
음.... 또 다른 시각으로 패턴을 바라볼수 있게 해주는 좋은 도서인듯...ㅋㅋ....

사용자 삽입 이미지

































댓글을 달아 주세요

고려대학교 정보통신대 인호 교수님께서

소프트웨어공학의 거장 보헴(Boehm)박사가 제안한 Win-Win 모델을
재미있는 일화와함께 소개하는 기사입니다.

http://sunday.joins.com/article/view.asp?aid=3664

It's Not Luck(The Goal 2) 도서에서도 이와 유사한 "구름 모양의 대립 해소도"를 소개하고 있습니다.
TAG Win-Win

댓글을 달아 주세요

GoF[09] Factory Method 패턴

Object-Oriented Design 2007/09/18 10:00 Posted by 고가별


Let Subclasses Decide What Which Objects to Instantiate

객체 생성과정을 특정한 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 원칙 그리고.... 여러 풍부한 내용을 습득 할 수 있었습니다.

사용자 삽입 이미지

댓글을 달아 주세요

삼성경제연구소에서 운영하는 세리에 포럼을 하나 만들었거든요...

기본적으로
기존 디자인 패턴 자료들을 등록하였고,,, 게시판과 자료실 기능이 있습니다...

게시판에서...는
설계 부터.... 개발 관련 많은 이야기를 할 수 있었으면 합니다....

자료실에서...는
설계 관련하여 좋은 자료들을 공유하려고 합니다....

저 또한 디자인 패턴을 공부하고 있는 중이라.... 많이 부족합니다....

많은 지적과 조언 부탁 드립니다...^^;

포럼 URL : http://www.seri.org/forum/designpattern

댓글을 달아 주세요

GoF[08] Abstract Factory 패턴

Object-Oriented Design 2007/09/14 01:53 Posted by 고가별

[최신 자료]


[이전 자료]

Create Objects Without Knowing Exactly

청룡영화상에서 영화배우 황정민은
"모든 스태프들이 준비한 잘 차려진 밥상을 먹기만 했을 뿐" 이라는 수상소감을 한적 있습니다.

우리(개발자)에게 잘 차려진 밥상이란..??
개인적으로는... 재사용 가능한 설계가 바로.... 잘 차려진 밥상이라고 생각합니다.

그럼... 우리는 그 곳에서.... 맛나게 먹기만 하면 될 듯한데... 쉽지가 않네요...

왜 ????....
즉, 개발자에게 맛나게 밥을 먹는 다는 것은 올바른 객체 생성일 듯 합니다.

올바른 객체 생성 ???
그냥 new 하면 되지 않나요..???

Abstract Factory 패턴을 통해.... 그 힌트를 얻을 수 있습니다.

PT 샘플 예제와 관련하여... Devpia에서 "강희기"님께서 지적한 내용이 있어 링크합니다.
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=7763&page=1

Head First 시리즈.... 음....
아무 생각 없이.... 출판하자마자... 구입한 도서.... 역시.... 실망 시키지 않네요...

사용자 삽입 이미지

'Object-Oriented Design' 카테고리의 다른 글

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

댓글을 달아 주세요

GoF[07] Composite 패턴

Object-Oriented Design 2007/09/14 01:52 Posted by 고가별


A Set of Contained Responsibilities

Decorator 패턴을 통해 Sub-HOW(HOW의 추가 책임, 부가 기능)가 지속적으로 추가되는 현상을
우리는 효과적으로 처리할 수 있었다.

그렇다면,
HOW의 지속적인 추가와 함께 이런 HOW를 하나의 Set으로 구성하여 처리 해야 한다면,....
우리는 어떻게 효과적으로 대응할 수 있을까?

Composite 패턴을 이용하여 이런 문제를 효과적으로 해결할 수 있습니다.

Head First 디자인 패턴은 아주 쉽고,,,, 흥미 있게... 정리한 도서입니다..
무엇보다... 다양한 시각적 표현이 넘 좋은 듯합니다.
가끔 설계 관련 도서를 읽고 있으면 조금 지루하고 따분한데.... 이 도서는 만화책을 읽듯...
디자인 패턴을 익힐 수 있었던 것 같습니다.
디자인 패턴 초보자 분들에게는 적극 추천하고 뿐 책입니다.

사용자 삽입 이미지

댓글을 달아 주세요

GoF[06] Decorator 패턴

Object-Oriented Design 2007/09/14 01:52 Posted by 고가별


Add Responsibilities

재사용 가능한 설계를 통해 어떻게 코드 재사용을 할 수 있을까???
가장 보편적인 방법은 Template Method 패턴을 이용하는 것이다......

그러나,
Template Method 패턴은 기본 클래스에서 기본 알로리즘 코드가 존재하기 때문에
결합도가 증가된다.

그렇다면, 좀 더 효율적인 방법으로...

재사용 가능할 설계와 코드 재사용을 함께 제공할 수 방법은 없는 것일까...???
Decorator 패턴을 통해서... 그 해답에 대한 힌트(?)를 얻을 수 있습니다.

위 도서는, 각 Chapter 첫 페이지에
해당 패턴을 간락히 표현하는 이미지가 삽입되어 있는데...
넘.... 시각적으로 패턴을 잘 표현한 듯 합니다.

사용자 삽입 이미지

댓글을 달아 주세요

GoF[05] Template Method 패턴

Object-Oriented Design 2007/09/14 01:52 Posted by 고가별

C++ Project Sample
C# Project Sample

Code Reuse

대부분 개발자(저를 포함해서)들은 인터페이스 보다는 구현 상속에 익숙해 있다.

인터페이스가 아닌 구현 상속에 익숙한 이유는..?

그 보다 더욱 중요한 점은 올바른 구현 상속을 사용하는 것이다.
올바른 구현 상속에 대한 힌트를 Template Method 패턴에서 찾을 수 있다.

올바른 구현 상속은
기반 클래스가 파생 클래스의 확장에 대한 제어권을 갖게 하는 것이다.

국내 도서 중에서 C++ 언어로 기술한 디자인 패턴 서적이다.
또한 저자(장세찬)님께서 패턴을 사용할 때 같이 고민해야할 꺼리들을 넘 잘 정리해 주셨다.
사실...
디자인 패턴은 개발 언어와는 아무런 관련이 없다고 할 수 있다.

사용자 삽입 이미지

댓글을 달아 주세요


객체재향 설계를 이용하여 개발하는 이유는 많지만...
대표적인 이유는.....

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을 달성할 수 있게 됩니다.

두말할 필요 없는 명서...
위 도서에서 객체지향 설계에 관한 많은 가르침을 얻을 수 있었습니다.

사용자 삽입 이미지





















댓글을 달아 주세요

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[02] Object-Oriented

Object-Oriented Design 2007/09/14 01:52 Posted by 고가별


왜?
우리는 객체지향 설계로 개발을 진행하고 있을까?
여러가지 이유가 있을 수 있지만...

그 보다 더 중요한 점은...
현재 우리는 객체지향 설계를 기반으로 개발 업무를 진행하고 있다는 점이다.

즉,
객체지향의 특징
즉,,, 객체지향 주 무기를 좀더 세련되고 유용하게 사용하는 것이 더욱 중요할 듯 하다.
그러기 위해서는 개념 정리 부탁 필요할 듯....

객체는 Service Proiver이다.
상속의 목적은 다형성 획득이다.
재사용의 목적은 재사용 가능한 설계이다.

"캡슐화, 상속, 다형성" 관련하여 송치형님께서 말끔하게 정리한 자료입니다.
http://innolab.tistory.com/1173513598

송치형님 블러그 : http://innolab.tistory.com

송치형님께서 번역한 도서입니다.
개인적으로 GoF 디자인 패턴 관련 서적을 많이 접해 보왔지만....
가장 실용적인 도서인 듯 합니다....
강추 합니다.

사용자 삽입 이미지

댓글을 달아 주세요

GoF[01] 몸 풀기(Class Diagram)

Object-Oriented Design 2007/09/14 01:52 Posted by 고가별


설계를 위해 Class Diagram 이해는 개발자에게 필수적으로 요구되는 사항이다.
특히 Gof 패턴은 Class Diagram을 기본으로 표현되어지고 있습니다.
패턴 학습을 위한 몸 풀기로...

UML 공부하면서...참고했던 도서 중에서...
넘... 쉽고, 가볍게 읽을 수 있었던... 도서... ㅋ...

사용자 삽입 이미지

댓글을 달아 주세요

Gof의 Design Patterns을 공부하면서 정리한 문서들...
초기는 정말 열정적으로 공부를 했는데.... PT를 만든 것 보면... ㅋㅋㅋ...

[Strategy 패턴]

[Abstract Factory 패턴]
[Iterator 패턴]
[Command 패턴]

이전에 작성한 문서를 보고 있으면
내가 너무 패턴의 철학(?)을 왜곡시킨듯 하기도 하고..... 넘... 부족한 문서들인 듯.... 하다.

그럼.... 다시 시작해 볼까나...!!
 

댓글을 달아 주세요

GoF 패턴 재해석하기

Object-Oriented Design 2007/09/14 01:51 Posted by 고가별
Object-Oriented Design 원칙을 기반으로
GoF 디자인 패턴을 재해석 해보려고 합니다...

나름대로.... 연구(?)한 하면서.... 정리한 자료라서...
오타 부터 시작해서... 부족한 점이 넘 많더라도.... 너그러이 보아 주시기 바랍니다.

어떤 지적(?)이든,,, 늘 환영 합니다....^^;

댓글을 달아 주세요