53
패턴 라이팅

Pattern Writing

Embed Size (px)

DESCRIPTION

패턴 라이팅 하는 방법

Citation preview

Page 1: Pattern Writing

패턴 라이팅

Page 2: Pattern Writing

손영수[email protected]

EvaCast 리더http://www.evacast.net데브피아 아키텍쳐 시삽

Blog - 아키텍트로 가는 길.http://www.arload.net

Page 3: Pattern Writing

오늘 나눌 이야기 거리들.

패턴

패턴의 구성 요소

패턴 라이팅 방법

Page 4: Pattern Writing

1.

패턴이란?

Page 5: Pattern Writing

Pattern

is

Father

Page 6: Pattern Writing

우리는 아버지와 비슷한

생김새, 성격, 습관 등을

가지고 있다.

Page 7: Pattern Writing
Page 8: Pattern Writing

이미 해결한 문제와

유사한 문제들은..

유사한 방법(패턴)으로

해결 할 수 있다.

Page 9: Pattern Writing

패턴의 아버지…

CHRISTOPHER ALEXANDER

Page 10: Pattern Writing

The pattern is, in short, at the same time a thing,

which happens in the world,

and the rule which tells us how to create that thing,

and when we must create it.

It is both a process and a thing;

both a description of a thing which is alive, and

a description of the process which will generate that thing.”

패턴은.

Page 11: Pattern Writing

패턴은 3개의 룰을 가진다.

Problem

Context

Solution

Page 12: Pattern Writing

이건 패턴이 아니에요!!

Page 13: Pattern Writing

간단한 해결책 (X)

간단한 룰 (X)

알고리즘 (X)

데이터 구조 (X)

Page 14: Pattern Writing

패턴은 ~해야만 한다!!

Page 15: Pattern Writing

문제 해결을 위한

짂실(facts)을 제공

해야만 한다..

Page 16: Pattern Writing

해결책을 투명하게

나타내야 한다…

Page 17: Pattern Writing

전문가의 경험을

잘 잡아낸

좋은 스토리로

말해야 한다..

Page 18: Pattern Writing

기존 시스템을

이해하는데 도움이

되어야 한다..

Page 19: Pattern Writing

심지어.

새로운 시스템을 구축하는데도

도움이 되어야 한다..

Page 20: Pattern Writing

그럼..

어떻게 패턴을 만들어야 할까?

해답은???

Page 21: Pattern Writing

2.

패턴의

구성 요소

Page 22: Pattern Writing

Title

(Name / Alias)

Context

Statement of Problem

ForcesResolution

Sketch/

Author Info.

Resulting Context

Page 23: Pattern Writing

Name (Title)

Name을 정할 땐..

신중히 정해라!!

Page 24: Pattern Writing

좋은 이름은

Communication을 향상 시킨다.

Page 25: Pattern Writing

이름만 듣고도,

의미를 파악할 수 있으면 Good!!

Observer 와

Publisher – Subscriber중

어느 것이 직관적인가?

Page 26: Pattern Writing

패턴은

무엇을 “Build” 하는 것이다.

무엇을 “Build”하는지

말할 수 있어야만 한다!!

Page 27: Pattern Writing

이름 짖는 방법

명사 Corporate Sponsor Model View Controller

동사 Do Food Ask for Help

매력 있는 문장 George Washington is still Dead

Page 28: Pattern Writing

Aliases (별명)

좀더 이해를 돕기 위해서!

가능하다면

별명도 지어라..

Page 29: Pattern Writing

어머니의

재미난 조언..

Page 30: Pattern Writing

못 올라갈나무는

쳐다 보지말아라

길고

짧은 건

대봐야

앆다.

Page 31: Pattern Writing

해결책 (조언)은 알았는데..

언제 이 조언을 사용하지?

Page 32: Pattern Writing

어머니의 조언에서

빠진 것은?

Context

Page 33: Pattern Writing

결과보다

어떤 상황에서

이 패턴을 적용하는지아는 것이 중요.

Page 34: Pattern Writing

문제가 어떤 상황에 존재하는 가?

연관 있는 선행조건 (precondition)은?

Target Audience - 누굴 위한 패턴인가

CONTEXT 에 기술할 것들.

Page 35: Pattern Writing

지금 패턴을 이해하는데

도움이 되는 다른 패턴들은?

여러분이 변경하거나 제어할 수 없는

시스템의 제약 사항은 다 기술해라.

언어제약

메모리 제약

사이즈, 범위

타이밍

CONTEXT 에 기술할 것들..

Page 36: Pattern Writing
Page 37: Pattern Writing

무엇이 이 문제를 어렵게 만드는가?

Tradeoff는 무엇인가?

왜 뻔한 해결책으로는 충분하지 못하지?

우리가 약간 Control할 수 있는 시스템의 제약상황은?

Forces

Page 38: Pattern Writing

Forces를 통해

긴장감을 조성해라.

Page 39: Pattern Writing

새로운 패턴에 관해

흥미를 느끼게 만들기도 하고,

패턴이 가진 제약도 명시해라!

Page 40: Pattern Writing

Problems.

Page 41: Pattern Writing

해결 할 수 있는 문제는 무엇인가?

Context를 기반으로,

특정상황에 적합한 문제를 만들어라. 범용적인 문제를 기술해서는 앆 된다.

Problems

Page 42: Pattern Writing

Solution

Page 43: Pattern Writing

문제를 해결하기 위한 제앆한 방법을 기술

구체적이어야 한다.

Context에 의해 결정되어지는

중요한 Force들 중심으로 해결해라.

다른 Force들은 무시해라!

Target Audience를 계속 고려해라.

Solutions

Page 44: Pattern Writing

Resulting Context

Page 45: Pattern Writing

이 패턴을 적용해 문제를 해결하면?

그 이후에 어떤 상황이 발생하는 가?

장, 단점을 기술해라!

새로운 문제(Side Effect)는 발생되지 않는가?

그럼 이 문제를 해결하기 위한 방법들도 기술해라.

Resulting Context

Page 46: Pattern Writing

Sketch

Page 47: Pattern Writing

다이어그램을 그릴 수 없으면, 패턴이 아니다.

Christopher Alexander.

Sketch란 무엇인가?

패턴 독자에게 IDEA를 쉽게 전달하기 위한 아무거나.

UML Diagrams

Block Diagram

Image of concrete example

어려운 일은 아니지만, 가치 있는 일이다!!.

Sketch

Page 48: Pattern Writing

Rationale (이론적 해석)

패턴을 팔아라. 독자를 쉽게 가르쳐라!

Sample Code

Related Patterns

Known Implementations ( Known Use)

References

Other Sessions

Page 49: Pattern Writing

3. 패턴 라이팅

Page 50: Pattern Writing

ProblemSolutions

Opinions

Relations

Page 51: Pattern Writing

Name/Aliases

Problem

Problem

Solution

Solution

Solution

opinion

opinion

Context

Page 52: Pattern Writing

자 그럼

패턴 라이팅을

시작하세요!!!

Page 53: Pattern Writing

4. 패턴 공유