A future that integrates LLMs and LAMs (Symposium)
Pattern and EA
1. 패턴과 EA의 만남
손영수
데브피아 아키텍쳐 시삽
삼성전자 솔루션 개발 그룹
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
2. 오늘 나눌 이야기 거리들.
§패턴의 정의 (패턴이란?)
§패턴에 대한 오해와 진실
§패턴으로 가는 길
§패턴 빌드 오더
§패턴 + 생산성 두 마리 토끼 잡기
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
3. 도대체..
1. 도대체..
무엇일까?
패턴은 무엇일까?
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
4. Pattern
is
Father
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
5. 한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
6. 우리는 아버지와 비슷한
생김새, 성격, 습관 등을
생김새, 성격,
있다.
가지고 있다.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
7. 이미 해결한 문제와
문제들은..
유사한 문제들은..
방법(패턴)
유사한 방법(패턴)으로
있다.
해결 할 수 있다.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
8. 과연..
그럼 패턴은 과연..
왜 내가 적용하려면
안될까?
안될까?
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
9. 2. 패턴에 대한 오해와 진실
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
10. GoF 23개의 Pattern으로
23개의 Pattern으로
만들기?
우아한 프로그램 만들기?
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
11. 패턴들..
지구상의 패턴들..
+
논문 형태로 발표된
패턴 몇 백개.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
12. 아니다.
패턴은 섬이 아니다.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
13. 여러 개의 패턴이 뭉쳐서
사용된다.
사용된다.
Common
Strategy Part
Variable <<CREATES>>
Part (Modularity)
Factory
Log
<<LINKS>>
Security
Configurable
Part Component Transaction
Configurator
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
14. 여러 개의 패턴이 뭉쳐서
사용된다.
사용된다.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
15. 패턴은 소프트웨어 설계만
다룬다 ?
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
16. 패턴?
솔로들을 위한 패턴?
http://www.amazon.com/Dating-Design-Patterns-Solveig-Haugland/dp/0974312002/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1239125189&sr=8-1
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
17. 다룬다.
소프트웨어와 관련된 모든 행위들을 다룬다.
§ 팀을 이루어 설계 대련을 수행하는 패턴
- http://portal.acm.org/citation.cfm?id=273484
+
§ 팀 생산성을 향상 시키는 패턴
- http://arload.wordpress.com/2008/09/02/teampro
ductivity/
그 외에도 기타 등등….
§ 지리적으로 떨어져 있는 팀 협업하는 패턴
- http://hillside.net/plop/2006/Papers/Library/patter
http://arload.wordpress.com/2008/04/02/plopfestival/
nstoenablePLoP2006_submission_v4.pdf
- http://hillside.net/plop/2004/papers/vbricout0/PLo
P2004_vbricout0_0.doc
한국SW아키텍트nd
§2009 한국 아키텍트 대회 2 이끄는 패턴
효율적인 회의를 KSAS COEX 장보고 홀. 2009.7.9~10
18. 만병통치약?
패턴은 만병통치약?
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
19. 비약적인
§비약적인 성능 향상 ?
생산성
§생산성 증대 ?
최적화
§최적화 ?
심지어
§심지어 Silver Bullet ??
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
20. 장점은..
패턴의 장점은..
유연성 확장성
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
21. 3. 패턴으로 가는 길...
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
22. 패턴에 대한 올바른 마음가짐
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
23. 아키텍쳐의 이해 대상
Martin Fowler says …
The expert developers working on that project have
a shared understanding of the system design.
This shared understanding is called ‘architecture
architecture’
architecture
http://www.martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
24. 패턴도..
역시 패턴도..
팀 내 의사 소통의 수단이
위해선,
되기 위해선,
필요하다.
팀원들의 이해가 필요하다.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
25. 과유불급
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
26. 남용.
패턴의 남용.
리소스 제약이 심한 시스템에
추가하기??
유연성 추가하기??
- Pipe & Filter
- Component Configurator
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
27. 찾아라!
패턴의 가족관계를 찾아라!
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
28. Compound Pattern
versus
Composite Pattern
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
29. 전형적인 가족관계
Strategy
Common
Variable Part
<<CREATES>>
Part
Factory
Log
<<LINKS>>
Security
Configurable
Part Component Transaction
Configurator
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
30. JAWS - 웹 서버의
복잡한 문제를 잘 해결한 사례
패턴을 이용한 웹 서버 만들기 (한국어 강좌)
http://www.devpia.com/NET2/EvaCast/Lecture/?cu=view&r=11
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
31. 많은
가족관계 (Compound Pattern)
사례를 알아야..
알아야..
쉽다.
실제 설계 시 적용하기 쉽다.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
32. 4. 패턴의
오더..
올바른 빌드 오더..
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
33. 빌드오더..
초보를 위한 패턴 빌드오더..
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
42. 1. StreoType 생성
Setting – UML – Streotypes
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10 4
2
43. 2. 클래스 설계 후 StreoType 할당
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10 4
3
44. 3. 메소드 속성에 맞는 태깅생성
예를 들어 현재 재고를 파악하는 메소드는
Database에서
Database에서 데이터를 가져오는 (Get) 타입인 경우.
경우.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10 4
4
45. 4. 코드 생성 탬플릿 작성
Settings – Code Generation Templates
다양한 생성할 코드
언어 선택 입력
생성할 코드
템플릿
Namespace,
Class,
Operation 등
스트레오
타입별
템플릿을
지정
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10 4
5
46. 스트레오 타입 코드 템플릿 추가
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10 4
6
47. 스트레오 템플릿 추가
§ Import Section
- DLL 이나 Namespace를 추가하는 부분
§ Operation Body
- 메소드 구현 부에 사용자 코드를 추가 함
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10 4
7
57. Unit Testing과 연동됨
Testing과
현재 JUnit, Nunit)
§현재 xUnit (JUnit, Nunit) 형태로 생성및
가능함.
관리가 가능함.
다른 Test는 Script로
§다른 Unit Test는 Package Script로
연동가능.
연동가능.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
58. Visual Studio.NET
mstest)
내장 UnitTest (mstest)셋팅 법
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
59. 참고자료
“Pattern
Pattern-
§ Frank Buschmann et al, “Pattern-Oriented Software Architecture : A System of
Patterns”,
Patterns”, Volume 1, Wiley
“Pattern
Pattern- Architecture”,
§ Douglas Schmidt et al, “Pattern-Oriented Software Architecture”, Volume 2,
Wiley
§ Eric Gamma et al, “Design Patterns : Elements of Reusable Object Oriented
“Design
Software” , Addison Wesley
Software”
§ Pipe & Filter Pattern, http://www.codeproject.com/cs/design/PipesAndFilters.asp
§ Reflection Pattern, http://www.codeproject.com/csharp/introreflection.asp
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
60. 참고자료
Douglas C. Schmidt (PLoP Editor, POSA 2, 4 Writter)
JAWS: An Application Framework for High Performance
Web System
http://citeseer.ist.psu.edu/81775.html (En)
http://www.devpia.com/net2/EvaCast/Lecture/?cu=view&r
=11 (Kr)
Ralph Johnson (GoF , Design Patterns)
Evolving Frameworks
http://st-www.cs.uiuc.edu/users/droberts/evolve.html (En)
http://arload.wordpress.com/2008/09/15/evolvingframewor
ks/ (Kr)
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
61. 참고자료
Robert C. Martin
Principles of Package Architecture (Design Principles and
Design Patterns)
http://www.objectmentor.com/resources/articles/Principles_a
nd_Patterns.pdf (En)
http://www.devpia.com/net2/EvaCast/Lecture/?cu=view&r=1
08 (Kr)
Load to Architect
http://www.arload.net
EvaCast (Online Free Lecture)
http://www.evacast.net
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10
62. Question?
저작자표시-비영리
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 비영리 동일조건변경허락 2.0 비영리-동일조건변경허락
라이센스에
대한민국 라이센스에 따라 이용하실 수 있습니다 있습니다.
This work is licensed under Creative Commons Korea Attribution 2.0 License.
한국SW아키텍트 대회 2 nd KSAS
2009 한국 아키텍트 COEX 장보고 홀. 2009.7.9~10