SlideShare uma empresa Scribd logo
1 de 57
예제로 보는 Pattern 연상법우리에겐 Pattern 길잡이가 있다 아키텍트를 꿈꾸는 사람들(http://cafe.naver.com/architect1) 현수명  (http://soomong.tistory.com)
[object Object],이패턴! 아 이거! 하고  바로 생각날수있을까요? ,[object Object],   적용된 패턴을 바로 연상할수있을까요? ,[object Object],   이럴때는 이패턴이 딱이야! 하고  바로 떠올릴수있을까요?
[object Object],이패턴! 아 이거! 하고  바로 생각날수있을까요? ,[object Object],   적용된 패턴을 바로 연상할수있을까요? ,[object Object],   이럴때는 이패턴이 딱이야! 하고  바로 떠올릴수있을까요?
생성 Pattern 구조 Pattern 행위 Pattern GoF의 디자인 패턴 -피어슨에듀케이션코리아
연상
Picture Superiority Effect 그림 우월성 효과 한 장의 그림이 천 단어의 말과 같다는 말이 있는데, 이 말은 사실이다.  비록 그림과 단어를 함께 사용한 기억이  단어나 그림만을 홀로 이용한 기억보다 더 기억에 잘 남지만,  그림이 일반적으로 단어보다 더 쉽게 인지되고 기억이 더 잘 나게 한다.  그림 우월성 효과는 정보의 쉽고 정확한 기억이 필요한 교수 설계, 광고, 기술 문서나  그 밖에 다른 디자인 환경에 일반적으로 사용된다. - 본문 152쪽 중에서 디자인 불변의 법칙 100가지 -고려문화사
Pattern 연상 이렇게 한번 해보는건 어떨까요? Pattern 길잡이의 이미지 떠올리기 2. 이미지로부터 Pattern 이 하는일 연상하기 3. Pattern 길잡이의 UML 을 생각하기 3. Pattern 길잡이의 example 코드를 생각하기 OR
Pattern 길잡이의 이미지 떠올리기 패턴을 이미지로  설명해놓은 책 Bridge Pattern Chain of Responsibility  Pattern 2. 이미지로부터 Pattern 이 하는일 연상하기
       Design Pattern Card 3. Pattern 길잡이의      UML을 생각하기
Wikipedia 3. Pattern 길잡이의  example 코드를 생각하기 Bridge Pattern
자! 몇개만  해볼까요?
Memento Pattern Pattern 길잡이의 이미지 떠올리기 Pattern길잡이 2. 이미지로부터 Pattern 이 하는일 연상하기
Memento Pattern 3. Pattern 길잡이의      UML을 생각하기 Pattern길잡이         Design Pattern Card
3. Pattern 길잡이의  example 코드를 생각하기 Memento Pattern Pattern길잡이 Wikipedia
하나만 더 해볼까요?
 Abstract Factory Pattern Pattern 길잡이의 이미지 떠올리기 Pattern길잡이 2. 이미지로부터 Pattern 이 하는일 연상하기
 Abstract Factory Pattern 3. Pattern 길잡이의      UML을 생각하기 Pattern길잡이         Design Pattern Card
 Abstract Factory Pattern 3. Pattern 길잡이의  example 코드를 생각하기 Pattern길잡이 Wikipedia
[object Object],이패턴! 아 이거! 하고  바로 생각날수있을까요? ,[object Object],   적용된 패턴을  바로 연상할수있을까요? ,[object Object],   이럴때는 이패턴이 딱이야! 하고  바로 떠올릴수있을까요?
소스분석중 Pattern 연상 귤까기와 패턴 소스의 구조를 직접 그려보고  Pattern길잡이와 비교해가면서 찾는다. 소스를 통해 구조를 그려보면 패턴이 떠오른다 소스를 보는 순간  패턴이 떠오른다.
소스분석중 Pattern 연상 이렇게 한번 해보는건 어떨까요? 소스의 구조를 직접 UML 로 그려본다 2. Pattern 길잡이와 하나하나 비교해본다
자! 이번에도  해볼까요?
Pattern in Android 소스에서 패턴 연상하기 Pattern
Pattern
Pattern
Pattern 생성패턴? View 를 생성하자너 -_-; 행위패턴? 이름이  strategy 라서 -_-; Pattern길잡이         Design Pattern Card
Strategy Pattern
Strategy Pattern Strategy Pattern
[object Object],이패턴! 아 이거! 하고  바로 생각날수있을까요? ,[object Object],   적용된 패턴을 바로 연상할수있을까요? ,[object Object],   이럴때는 이패턴이 딱이야! 하고  바로 떠올릴수있을까요?
Refactoring 중 Pattern 연상 이렇게 한번 해보는건 어떨까요? 코드의 냄새를 찾고 (필요하면 UML 로 냄새를 맡아보고) 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다. 3. 해결 Pattern 을 적용해서      냄새가 사라졌는지 확인해본다
자! 냄새를  맡으러!
Pattern 코드의 냄새를 찾고 (필요하면 UML 로 냄새를 맡아보고) 어디선가 이기적인 냄새가 난다 각각의 draw 함수마다 그에 맞는 다른 인자를 알아서 센스있게 넣어주어야 한다
2. 냄새를 기준으로 각종 Pattern 길잡이를 통해      적절한 해결 Pattern 을 찾는다. Pattern [냄새] 각각의 draw 함수마다 그에 맞는 다른 인자를 넣어주어야 한다 [해결] 구조를 바꿔서  같은 인자를 넣어도 알아서 처리해주도록 하자 랩을 한번 씌울까? 구조패턴? Pattern길잡이         Design Pattern Card
Adapter Pattern 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해      적절한 해결 Pattern 을 찾는다. Adapter Pattern
Adapter Pattern 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해      적절한 해결 Pattern 을 찾는다.
Adapter Pattern 3. 해결 Pattern 을 적용해서     냄새가 사라졌는지 확인해본다
Adapter Pattern 3. 해결 Pattern 을 적용해서     냄새가 사라졌는지 확인해본다
자! xUnit Test Pattern  한번 해볼까요?
[object Object],이패턴! 아 이거! 하고  바로 생각날수있을까요? ,[object Object],   적용된 패턴을 바로 연상할수있을까요? ,[object Object],   이럴때는 이패턴이 딱이야! 하고  바로 떠올릴수있을까요? Test Code
Pattern 테스트 코드의 냄새를 찾고 (필요하면 UML 로 냄새를 맡아보고) 어디선가 욕심쟁이의 냄새가 난다 하나의 테스트메소드에서  너무 많은 기능을 검증하려 한다
2. 냄새를 기준으로 각종 Pattern 길잡이를 통해      적절한 해결 Pattern 을 찾는다. Pattern [냄새] 하나의 테스트메소드에서  너무 많은 기능을 검증하려 한다 Pattern길잡이 xUnit테스트 패턴 -에이콘
2. 냄새를 기준으로 각종 Pattern 길잡이를 통해      적절한 해결 Pattern 을 찾는다. Single Condition Test 욕심쟁이 테스트 [원인] 하나의 테스트 메소드에서  너무 많은 기능을 검증하려는 테스트 [해결책] 단일조건 테스트 스위트로 만들것! Single Condition Test 테스트별로 하나의 조건만 검증하라
Single Condition Test 3. 해결 Pattern 을 적용해서     냄새가 사라졌는지 확인해본다 Single Condition Test 테스트별로 하나의 조건만 검증하라
xUnit Test Pattern
One More?
Pattern 테스트 코드의 냄새를 찾고 (필요하면 UML 로 냄새를 맡아보고) 어디선가 변덕스러운 냄새가 난다 테스트가 변덕을 부린다. 어떨때는 통과하고 어떨때는 실패한다.
2. 냄새를 기준으로 각종 Pattern 길잡이를 통해      적절한 해결 Pattern 을 찾는다. Pattern [냄새] 테스트가 변덕을 부린다. 어떨때는 통과하고  어떨때는 실패한다. Pattern길잡이 xUnit테스트 패턴  -에이콘
2. 냄새를 기준으로 각종 Pattern 길잡이를 통해      적절한 해결 Pattern 을 찾는다. Fresh Fixture 변덕스러운 테스트 [원인] 공유 픽스처를 쓰면 어떤 테스트가 다른 테스트에 영향을 미치게 된다 [해결책] 신선한 픽스처 를 만들것! Fresh Fixture 테스트별로 전용 테스트 픽스쳐를 새로 만들어 쓴다
Fresh Fixture 3. 해결 Pattern 을 적용해서     냄새가 사라졌는지 확인해본다 Fresh Fixture 테스트별로 전용 테스트 픽스쳐를 새로 만들어 쓴다
[object Object],이패턴! 아 이거! 하고  바로 생각날수있을까요? ,[object Object],   적용된 패턴을 바로 연상할수있을까요? ,[object Object],   이럴때는 이패턴이 딱이야! 하고  바로 떠올릴수있을까요? ,[object Object],   이럴때는 이패턴이 딱이야! 하고  바로 떠올릴수있을까요?
우리의 목적은 Pattern 이 아니다. 우리의 목적은     - 더 좋은 디자인을 설계하는것이고    - 기존의 코드를 더 깊이 이해하는 것이다.   이 목적을 달성하기위해  Pattern  이라는 거인의 어깨위에  올라서는 것 뿐이다. Standing on the shoulders of giants
Refactoring  리펙토링을 통해 디자인을 개선하는것은 방대한 주제 [필요한 능력] 잘못되었다는것을 인지할수있는 능력.  즉, 냄새를 맡을수 있는 능력 2. 개선방안을 찾아내는 능력. 통찰력. 우리에겐 Pattern 길잡이가 있지만, 우선 다 읽어야함. 책 두꺼움. 3. 의지
Reference Design Pattern : GoF의 디자인 패턴 – 피어슨에듀케이션코리아 Pattern Image : Java 언어로 배우는 디자인 패턴 입문 – 유키히로시 Refactoring : Refactoring – 대청 Test Code Refactoring : xUnit테스트 패턴 - 에이콘 Picture Superiority Effect : 디자인 불변의 법칙 100가지 – 고려문화사 Pattern card : http://www.mcdonaldland.info/2007/11/28/40/ Android : http://source.android.com/ Pattern Example : http://www.wikipedia.org/ Pattern Analogy : http://www.vincehuston.org/dp/ 구구단 : http://k.daum.net/qna/ 주기율표 :http://gongsin.com
감사합니다

Mais conteúdo relacionado

Semelhante a 예제로 보는 Pattern 연상법

POSA 추천사
POSA 추천사POSA 추천사
POSA 추천사Haeil Yi
 
네이버 SW교육 교사 연수자료_ 송상수
네이버 SW교육 교사 연수자료_ 송상수네이버 SW교육 교사 연수자료_ 송상수
네이버 SW교육 교사 연수자료_ 송상수Sangsu Song
 
제9회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 너의 기분 이모지(emoji)?
제9회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 너의 기분 이모지(emoji)?제9회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 너의 기분 이모지(emoji)?
제9회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 너의 기분 이모지(emoji)?BOAZ Bigdata
 
훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기Changyol BAEK
 

Semelhante a 예제로 보는 Pattern 연상법 (6)

Pattern Writing
Pattern WritingPattern Writing
Pattern Writing
 
Pattern Writing
Pattern WritingPattern Writing
Pattern Writing
 
POSA 추천사
POSA 추천사POSA 추천사
POSA 추천사
 
네이버 SW교육 교사 연수자료_ 송상수
네이버 SW교육 교사 연수자료_ 송상수네이버 SW교육 교사 연수자료_ 송상수
네이버 SW교육 교사 연수자료_ 송상수
 
제9회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 너의 기분 이모지(emoji)?
제9회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 너의 기분 이모지(emoji)?제9회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 너의 기분 이모지(emoji)?
제9회 보아즈(BOAZ) 빅데이터 컨퍼런스 - 너의 기분 이모지(emoji)?
 
훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기
 

Mais de hyun soomyung

Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systemshyun soomyung
 
Dependency Breaking Techniques
Dependency Breaking TechniquesDependency Breaking Techniques
Dependency Breaking Techniqueshyun soomyung
 
아꿈사 매니저소개
아꿈사 매니저소개아꿈사 매니저소개
아꿈사 매니저소개hyun soomyung
 
HTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,AudioHTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,Audiohyun soomyung
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Designhyun soomyung
 
The Art of Computer Programming 2.4 다중연결구조
The Art of Computer Programming 2.4 다중연결구조The Art of Computer Programming 2.4 다중연결구조
The Art of Computer Programming 2.4 다중연결구조hyun soomyung
 
The Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 TreeThe Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 Treehyun soomyung
 
Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10hyun soomyung
 
The Art of Computer Programming 1.3.2 MIXAL
The Art of Computer Programming 1.3.2 MIXALThe Art of Computer Programming 1.3.2 MIXAL
The Art of Computer Programming 1.3.2 MIXALhyun soomyung
 
The Art of Computer Programming 1.2.5
The Art of Computer Programming 1.2.5The Art of Computer Programming 1.2.5
The Art of Computer Programming 1.2.5hyun soomyung
 
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)hyun soomyung
 
프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장hyun soomyung
 
[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술hyun soomyung
 
실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부hyun soomyung
 
xUnitTestPattern/chapter8
xUnitTestPattern/chapter8xUnitTestPattern/chapter8
xUnitTestPattern/chapter8hyun soomyung
 
프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?hyun soomyung
 

Mais de hyun soomyung (20)

Scalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed SystemsScalable Web Architecture and Distributed Systems
Scalable Web Architecture and Distributed Systems
 
Dependency Breaking Techniques
Dependency Breaking TechniquesDependency Breaking Techniques
Dependency Breaking Techniques
 
아꿈사 매니저소개
아꿈사 매니저소개아꿈사 매니저소개
아꿈사 매니저소개
 
HTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,AudioHTML5 & CSS3 - Video,Audio
HTML5 & CSS3 - Video,Audio
 
Hybrid app
Hybrid appHybrid app
Hybrid app
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
MapReduce
MapReduceMapReduce
MapReduce
 
MongoDB
MongoDBMongoDB
MongoDB
 
The Art of Computer Programming 2.4 다중연결구조
The Art of Computer Programming 2.4 다중연결구조The Art of Computer Programming 2.4 다중연결구조
The Art of Computer Programming 2.4 다중연결구조
 
The Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 TreeThe Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 Tree
 
Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10Design Pattern - Multithread Ch10
Design Pattern - Multithread Ch10
 
The Art of Computer Programming 1.3.2 MIXAL
The Art of Computer Programming 1.3.2 MIXALThe Art of Computer Programming 1.3.2 MIXAL
The Art of Computer Programming 1.3.2 MIXAL
 
The Art of Computer Programming 1.2.5
The Art of Computer Programming 1.2.5The Art of Computer Programming 1.2.5
The Art of Computer Programming 1.2.5
 
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
 
Clojure Chapter.6
Clojure Chapter.6Clojure Chapter.6
Clojure Chapter.6
 
프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장프로그래머의 길,멘토에게 묻다 2장
프로그래머의 길,멘토에게 묻다 2장
 
[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술[페차쿠차] 배움의 기술
[페차쿠차] 배움의 기술
 
실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부실전 윈도우 디버깅. Ch3. 디버거 해부
실전 윈도우 디버깅. Ch3. 디버거 해부
 
xUnitTestPattern/chapter8
xUnitTestPattern/chapter8xUnitTestPattern/chapter8
xUnitTestPattern/chapter8
 
프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?프로그램은 왜 실패하는가?
프로그램은 왜 실패하는가?
 

Último

[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and AdoptionSeung-chan Baeg
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'Hyundai Motor Group
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Último (7)

[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

예제로 보는 Pattern 연상법

  • 1. 예제로 보는 Pattern 연상법우리에겐 Pattern 길잡이가 있다 아키텍트를 꿈꾸는 사람들(http://cafe.naver.com/architect1) 현수명 (http://soomong.tistory.com)
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. 생성 Pattern 구조 Pattern 행위 Pattern GoF의 디자인 패턴 -피어슨에듀케이션코리아
  • 7.
  • 9. Picture Superiority Effect 그림 우월성 효과 한 장의 그림이 천 단어의 말과 같다는 말이 있는데, 이 말은 사실이다. 비록 그림과 단어를 함께 사용한 기억이 단어나 그림만을 홀로 이용한 기억보다 더 기억에 잘 남지만, 그림이 일반적으로 단어보다 더 쉽게 인지되고 기억이 더 잘 나게 한다. 그림 우월성 효과는 정보의 쉽고 정확한 기억이 필요한 교수 설계, 광고, 기술 문서나 그 밖에 다른 디자인 환경에 일반적으로 사용된다. - 본문 152쪽 중에서 디자인 불변의 법칙 100가지 -고려문화사
  • 10. Pattern 연상 이렇게 한번 해보는건 어떨까요? Pattern 길잡이의 이미지 떠올리기 2. 이미지로부터 Pattern 이 하는일 연상하기 3. Pattern 길잡이의 UML 을 생각하기 3. Pattern 길잡이의 example 코드를 생각하기 OR
  • 11. Pattern 길잡이의 이미지 떠올리기 패턴을 이미지로 설명해놓은 책 Bridge Pattern Chain of Responsibility Pattern 2. 이미지로부터 Pattern 이 하는일 연상하기
  • 12. Design Pattern Card 3. Pattern 길잡이의 UML을 생각하기
  • 13. Wikipedia 3. Pattern 길잡이의 example 코드를 생각하기 Bridge Pattern
  • 14. 자! 몇개만 해볼까요?
  • 15. Memento Pattern Pattern 길잡이의 이미지 떠올리기 Pattern길잡이 2. 이미지로부터 Pattern 이 하는일 연상하기
  • 16. Memento Pattern 3. Pattern 길잡이의 UML을 생각하기 Pattern길잡이 Design Pattern Card
  • 17. 3. Pattern 길잡이의 example 코드를 생각하기 Memento Pattern Pattern길잡이 Wikipedia
  • 19. Abstract Factory Pattern Pattern 길잡이의 이미지 떠올리기 Pattern길잡이 2. 이미지로부터 Pattern 이 하는일 연상하기
  • 20. Abstract Factory Pattern 3. Pattern 길잡이의 UML을 생각하기 Pattern길잡이 Design Pattern Card
  • 21. Abstract Factory Pattern 3. Pattern 길잡이의 example 코드를 생각하기 Pattern길잡이 Wikipedia
  • 22.
  • 23. 소스분석중 Pattern 연상 귤까기와 패턴 소스의 구조를 직접 그려보고 Pattern길잡이와 비교해가면서 찾는다. 소스를 통해 구조를 그려보면 패턴이 떠오른다 소스를 보는 순간 패턴이 떠오른다.
  • 24. 소스분석중 Pattern 연상 이렇게 한번 해보는건 어떨까요? 소스의 구조를 직접 UML 로 그려본다 2. Pattern 길잡이와 하나하나 비교해본다
  • 25. 자! 이번에도 해볼까요?
  • 26. Pattern in Android 소스에서 패턴 연상하기 Pattern
  • 29. Pattern 생성패턴? View 를 생성하자너 -_-; 행위패턴? 이름이 strategy 라서 -_-; Pattern길잡이 Design Pattern Card
  • 32.
  • 33. Refactoring 중 Pattern 연상 이렇게 한번 해보는건 어떨까요? 코드의 냄새를 찾고 (필요하면 UML 로 냄새를 맡아보고) 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다. 3. 해결 Pattern 을 적용해서 냄새가 사라졌는지 확인해본다
  • 34. 자! 냄새를 맡으러!
  • 35. Pattern 코드의 냄새를 찾고 (필요하면 UML 로 냄새를 맡아보고) 어디선가 이기적인 냄새가 난다 각각의 draw 함수마다 그에 맞는 다른 인자를 알아서 센스있게 넣어주어야 한다
  • 36. 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다. Pattern [냄새] 각각의 draw 함수마다 그에 맞는 다른 인자를 넣어주어야 한다 [해결] 구조를 바꿔서 같은 인자를 넣어도 알아서 처리해주도록 하자 랩을 한번 씌울까? 구조패턴? Pattern길잡이 Design Pattern Card
  • 37. Adapter Pattern 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다. Adapter Pattern
  • 38. Adapter Pattern 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다.
  • 39. Adapter Pattern 3. 해결 Pattern 을 적용해서 냄새가 사라졌는지 확인해본다
  • 40. Adapter Pattern 3. 해결 Pattern 을 적용해서 냄새가 사라졌는지 확인해본다
  • 41. 자! xUnit Test Pattern 한번 해볼까요?
  • 42.
  • 43. Pattern 테스트 코드의 냄새를 찾고 (필요하면 UML 로 냄새를 맡아보고) 어디선가 욕심쟁이의 냄새가 난다 하나의 테스트메소드에서 너무 많은 기능을 검증하려 한다
  • 44. 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다. Pattern [냄새] 하나의 테스트메소드에서 너무 많은 기능을 검증하려 한다 Pattern길잡이 xUnit테스트 패턴 -에이콘
  • 45. 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다. Single Condition Test 욕심쟁이 테스트 [원인] 하나의 테스트 메소드에서 너무 많은 기능을 검증하려는 테스트 [해결책] 단일조건 테스트 스위트로 만들것! Single Condition Test 테스트별로 하나의 조건만 검증하라
  • 46. Single Condition Test 3. 해결 Pattern 을 적용해서 냄새가 사라졌는지 확인해본다 Single Condition Test 테스트별로 하나의 조건만 검증하라
  • 49. Pattern 테스트 코드의 냄새를 찾고 (필요하면 UML 로 냄새를 맡아보고) 어디선가 변덕스러운 냄새가 난다 테스트가 변덕을 부린다. 어떨때는 통과하고 어떨때는 실패한다.
  • 50. 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다. Pattern [냄새] 테스트가 변덕을 부린다. 어떨때는 통과하고 어떨때는 실패한다. Pattern길잡이 xUnit테스트 패턴 -에이콘
  • 51. 2. 냄새를 기준으로 각종 Pattern 길잡이를 통해 적절한 해결 Pattern 을 찾는다. Fresh Fixture 변덕스러운 테스트 [원인] 공유 픽스처를 쓰면 어떤 테스트가 다른 테스트에 영향을 미치게 된다 [해결책] 신선한 픽스처 를 만들것! Fresh Fixture 테스트별로 전용 테스트 픽스쳐를 새로 만들어 쓴다
  • 52. Fresh Fixture 3. 해결 Pattern 을 적용해서 냄새가 사라졌는지 확인해본다 Fresh Fixture 테스트별로 전용 테스트 픽스쳐를 새로 만들어 쓴다
  • 53.
  • 54. 우리의 목적은 Pattern 이 아니다. 우리의 목적은 - 더 좋은 디자인을 설계하는것이고 - 기존의 코드를 더 깊이 이해하는 것이다.   이 목적을 달성하기위해 Pattern 이라는 거인의 어깨위에 올라서는 것 뿐이다. Standing on the shoulders of giants
  • 55. Refactoring 리펙토링을 통해 디자인을 개선하는것은 방대한 주제 [필요한 능력] 잘못되었다는것을 인지할수있는 능력. 즉, 냄새를 맡을수 있는 능력 2. 개선방안을 찾아내는 능력. 통찰력. 우리에겐 Pattern 길잡이가 있지만, 우선 다 읽어야함. 책 두꺼움. 3. 의지
  • 56. Reference Design Pattern : GoF의 디자인 패턴 – 피어슨에듀케이션코리아 Pattern Image : Java 언어로 배우는 디자인 패턴 입문 – 유키히로시 Refactoring : Refactoring – 대청 Test Code Refactoring : xUnit테스트 패턴 - 에이콘 Picture Superiority Effect : 디자인 불변의 법칙 100가지 – 고려문화사 Pattern card : http://www.mcdonaldland.info/2007/11/28/40/ Android : http://source.android.com/ Pattern Example : http://www.wikipedia.org/ Pattern Analogy : http://www.vincehuston.org/dp/ 구구단 : http://k.daum.net/qna/ 주기율표 :http://gongsin.com