cover story3 시스템구축과소프트웨어아키텍처 GoF 패턴에서아키텍처패턴으로 필자의지인중 SI 기업의사내강사가있다. 강의가주업무이긴하지만, 과정개발이나과정관리업무도담당하고있다. 지인은과정개발을하게되 면과정개설전에직접마케팅을한다. 본인이만든과정은무엇에대한내용인지,

Similar documents
Inclusion Polymorphism과 UML 클래스 다이어그램 구조에 의거한 디자인패턴 해석

제8장 자바 GUI 프로그래밍 II

MVVM 패턴의 이해

Architectural Design


Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

2Q SWG Teleweb Business Plan & 1Q Recovery Plan April 2, 2003

UX410 SAP Fiori UI 개발. 과정개요 과정버전 : 02 학습시간 : 5 일

슬라이드 1

열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2

Windows 8에서 BioStar 1 설치하기

......

ISP and CodeVisionAVR C Compiler.hwp

<312E D65B8A620C0CCBFEBC7D120B8D6C6BCC7C3B7A7C6FB20C1F6BFF820BEC6C5B0C5D8C3B320C7A5C7F628BCF6C1A4292E687770>

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

*BA_01

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3

Software Modeling < < OOAD Stage 김정태 최정명 이낙원 송준현

제목

i4uNETWORKS_CompanyBrief_ key

Convenience Timetable Design

1

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

B _00_Ko_p1-p51.indd

±³À°È°µ¿Áö

PowerPoint Presentation

<B3EDB4DC28B1E8BCAEC7F6292E687770>

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint Presentation

영구기록_내지(수정)-최종

객체지향설계와패턴 Lecture #0: 강의소개 Eun Man Choi

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

슬라이드 1

Ⅰ Ⅱ ? ? Ⅲ Ⅳ

텀블러514

<C0DAB7E120C7D5BABB2E687770>

객체지향설계와패턴 Lecture #14: 아키텍처패턴 Eun Man Choi

1. 파일 명명규칙

소프트웨어개발방법론

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

<C3CA36B0FAC7D020B1B3BBE7BFEB2E687770>

광주시향 최종22

ÆÞ¹÷-Æîħ¸é.PDF


example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

Microsoft PowerPoint - chap01-C언어개요.pptx

Module 2 Active Directory Domain Services 소개

슬라이드 1

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000 ver2.docx

레이아웃 1

<484C41B8A620C0CCBFEBC7CFBFA920466F E20BFA3C1F820C0E7BBE7BFEBBCBAC0BB20C0A7C7D120B9E6BEC820BFACB1B82E687770>

PowerPoint Template

메뉴얼41페이지-2

자연언어처리

논리적 구조 설계: 패키지도

coverbacktong최종spread

소프트웨어 개발의 성공 열쇠 - 오브젝트 디자인

쓰리 핸드(삼침) 요일 및 2405 요일 시간, 및 요일 설정 1. 용두를 2의 위치로 당기고 반시계방향으로 돌려 전날로 를 설정합니다. 2. 용두를 시계방향으로 돌려 전날로 요일을 설정합니다. 3. 용두를 3의 위치로 당기고 오늘 와 요일이 표시될 때까지 시계방향으로

~

#유한표지F


e-spider_제품표준제안서_160516

해피메이커 표지.indd

Print

Microsoft Word - PLC제어응용-2차시.doc

ÀÛ¾÷

<3934C8A35FB0F8C7D05FC6AEB7BBB5E55FC7B0C1FAB0EDB5B5C8ADB8A65FC0A7C7D15FBDC7BFEBC0FBC0CE5FBCD2C7C1C6AEBFFEBEEE5FBEC6C5B0C5D8C3B35FB8AEBAE45F F312E687770>

엘릭시르 3.4월pdf

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8>

내지(교사용) 4-6부

슬라이드 1

소프트웨어공학개론 강의 7: 시퀀스다이어그램 최은만동국대학교컴퓨터공학과

Microsoft PowerPoint - 1주차 UML의 구성과 도구

제목

* pb61۲õðÀÚÀ̳ʸ

Microsoft PowerPoint - 06_ClassDiagram(2010).ppt [호환 모드]

*29 오토모티브4) 1, 2월호1229

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1]

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

제 3강 역함수의 미분과 로피탈의 정리

PowerPoint Presentation

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax

<4D F736F F F696E74202D205B31C0E55D20BCD2C7C1C6AEBFFEBEEEBFCD20BCD2C7C1C6AEBFFEBEEEB0F8C7D02E BC8A3C8AF20B8F0B5E55D>

수식모드수식의표현법 수학식표현 조남운 조남운 수학식표현

Microsoft Word - Armjtag_문서1.doc

Microsoft PowerPoint - 26.pptx

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Joseph Hwang, IBM Rational Software

슬라이드 1

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

About

C# Programming Guide - Types

Essence: Use Cases and Value Proposition

TTA Journal No.157_서체변경.indd

웹개발을위한 ComponentOne 사용법 (2) 권대건 부산대학교컴퓨터공학과 Abstract 최근웹개발이활성화되면서전문가를위한여러가지 Tool 웹애플리케이션형태로제공하는경우가늘고있다. ComponentOne 은.NET 기반의 UI C

SMV Vending Machine Implementation and Verification 김성민 정혁준 손영석

MySQL-.. 1

레이아웃 1

Transcription:

cover story3 시스템구축과소프트웨어아키텍처 GoF 패턴에서아키텍처패턴으로 필자의지인중 SI 기업의사내강사가있다. 강의가주업무이긴하지만, 과정개발이나과정관리업무도담당하고있다. 지인은과정개발을하게되 면과정개설전에직접마케팅을한다. 본인이만든과정은무엇에대한내용인지, 누구를위한것이며왜들어야하는지에대해사람들이모이는장소에 가서홍보하는것이다. 이글의목적도특정패턴을상세히다루기보다는아키텍처패턴이란어떤것이고, 어떤사람들을위한것인지에대한글이다. 마소홈페이지에서패턴이란단어로 PDF 서비스를검 색하면총 42 개의콘텐츠가뜬다. 그럼에도패턴은꾸준히기사거리가되고있다. 왜그런것일까? 널리알려진것처럼철학에서수학이분리되었고, 수학은다시과학으로나누어졌다. 이처럼많은사람들이관심을가지고참여하는학문들은진화할수록세분화된다. 패턴역시 1995년 GoF가 Design Patterns: Elements of Reusable Object-Oriented Software 란책을내면서널리알려지기시작했다. 그이후세분화되어분석영역의패턴 (Analysis Pattern), 구현패턴 (Implement Pattern), 테스트유닛패턴 (Test Unit Patterns) 등각각의도메인특화된패턴 박선욱 dikisun@naver.com 현대카드에서 2년간근무했으며, 2005년부터는한국예탁결제원에서분석설계업무를담당하고있다. 기회가된다면은행과보험업무를경험하여금융도메인전문가가되는것이목표이다. 패턴과방법론, 프레임워크등에많은관심을가지고 Eva 스터디활동을하고있다. < 그림 1> 책으로보는패턴의영역확장 124 m a s o

들이계속해서나오고있다. 혹자들은이제패턴의홍수로인해패턴사용이오히려더힘들어지는시기라고이야기한다. 필자는많은영역의패턴중에서 GoF의디자인패턴만큼이나일찍 (1996년 Pattern-Oriented Software Architecture) 소개되어해외에서는많이전파되었으나, 아직까지우리나라에서는확산되지않은아키텍처패턴에대해이야기하고자한다. 소프트웨어아키텍처란? 족보 (?) 를거슬러올라가듯이아키텍처패턴은소프트웨어아키텍처에대한내용이고소프트웨어아키텍처의유래는많은 IT 용어들이그렇듯이건축의아키텍처에서유래되었다. 그족보순서대로아키텍처란무엇인지부터살펴보자. 아키텍처의영문어원은 Architecture = archi(first, chief, govern) + tect(build) 이다. 해석해보면건물을구축 (build) 할때전체적인구조를관리 (govern) 하는것을의미한다. 라틴어의어원을찾아보면 Architectura = Arch( 큰, 우두머리 ) + Tectura( 기술 ), 즉큰시스템을구축할때구조를관리하기위한기술을의미한다. 그렇다면소프트웨어아키텍처란무엇을의미하는가? 소프트웨어시스템을구성하는서브시스템과컴포넌트, 그리고그것들의관계를나타내는용어이다. - Pattern-Oriented Software Architecture, Volume 1: A System of Patterns 아키텍처는컴포넌트로구체화된시스템의기본적인조직이며환경에대한관계이고디자인과진화를이끄는원리이다. - IEEE1471 소프트웨어구성요소와그들이지니고있는특성중에외부에드러나는요소의특성, 그리고구성요소들간의관계를표현하는시스템의구조나구조체를말한다 < 그림 2> 아키텍처의비교 기하고있다. 우측에익숙한스트럿츠아키텍처도역시다를바가없다. 구성요소에대한정보 ( 명칭 ) 와연관된구성요소끼리의관계를표시하고있다. 이제소프트웨어아키텍처가어떤것인지감이왔을것이다. 그렇다고소프트웨어아키텍처가그림이라고생각하면안된다. 구성요소와관계를설명하기위한텍스트, 표등어떠한형태로든가능하며거의모든경우혼합되어사용된다. 왜소프트웨어아키텍처를알아야하는가? 드라마나영화에서연인들이 < 그림 3> 과같은퍼즐을사서함께머리를맞대고맞추는모습을본적이있을것이다. 만약좌측의 16 조각퍼즐이라면완성된 ( 구성요소와연관관계를표시한 ) 그림없이쉽게해낼수있다. 너무빨리끝나다른놀이도준비해두지않으면, 자칫연인이지루해할수도있다. 그러나우측같이 5,000조각의퍼즐이라면사정은달라진다. 완성된 ( 구성요소와연관관계를표시한 ) 그림은필수인것이다. 잘못하면서로에게 퍼즐하나못맞추나 라는식의실망감을안겨줄수도있으니조심해야한다. 소프트웨어아키텍처역시규모가작은프로그램에서는필요하지않다. 그러나복잡한시스템이라면성공적인구축과유지보수를위해반드시필요하다. - Software Architecture in Practice 몇몇책에서나온소프트웨어아키텍처에대한정의이다. 정의가조금씩다르지만공통적으로언급하고있는것은소프트웨어아키텍처란시스템을구성하는구성요소 ( 서브시스템, 컴포넌트 ) 와그들 ( 구성요소 ) 간의관계를나타낸다는점이다. 좀어렵다면더쉽게예로 < 그림 2> 를들어보자. 좌측그림은학창시절좋아했던프라모델의조립설명서이고, 우측은스트럿츠의아키텍처를표현한그림이다. 좌측조립설명서에는조립부품에대한정보 ( 부품번호 ) 와서로연결되는정보 ( 화살표 ) 를표 < 그림 3> 두가지퍼즐 아키텍처패턴이란? 아키텍처패턴이란디자인패턴과마찬가지로특정문제를해결하기위해반복되어사용되는솔루션을문서화한것이다. 단지문제의영역이설계 ( 디자인 ) 가아닌아키텍처라고생각하면된다. 나무를보느냐, 숲을보느냐의차이인셈이다. m a s o 125

cover story 3_GoF 패턴에서아키텍처패턴으로 아키텍처패턴은소프트웨어시스템의구조를체계적으로구성하기위한기본적인스키마를제시한다. 아키텍처패턴에는미리정의된서브시스템을제공하고각각의아키텍처패턴간의책임을명시하며패턴들사이의관계를조직화하는규칙과가이드라인을포함하고있다. 은큰도움이될것이다. - PATTERN-ORIENTED SOFT WARE ARCHITECTURE 1 Predefined subsystems Subsystem responsibilities Fundamental Structural organization schema Rules for organizing the ralationship Guidelines for organizing the relationships < 그림 5> 카라얀 < 그림 4> 아키텍처패턴 즉, 소프트웨어시스템의전체구조를나타내는조감도이면서구성요소들에대한설명서이기도하며, 구성요소들사이의관계를조직화하는규정집이기도하다. 아키텍처패턴은아키텍처는아니나시스템의유용한이미지를전달해준다. 패턴의또다른유용한측면은품질속성을명확히보여준다. 왜아키텍처패턴을알아야하는가? 아키텍트 ( 아키텍처를총책임지는사람 ) 는곧잘오케스트라의지휘자와비교된다. < 그림 5> 는유명한지휘자카라얀의지휘모습을보여준다. 카라얀은원래피아니스트로서의길을가려했다. 그러나그는그분야에서성공할가능성이희박하다는것을느끼고있던차에은사였던파움가르트 (BernhardPaum gartner) 의조언으로지휘자의길을택한다. 카라얀이지휘를공부하면서그의인생엔많은행운이잇따르는데다름아니라당시빈국립가극장의건물관리자겸감독관이었던사람이바로카라얀의숙부였다. 숙부는조카에게유명한지휘자의연주회나비공개연습을들을수있도록해주었다. 거장들의모습을가까이보면서그는많은것을배울수있었다. 여러분들이아키텍처패턴을알고사용한다는것은카라얀의경우처럼좋은숙부가없이도훌륭한아키텍트의노하우를배울수있다는것이다. 다시말하면거장들이이미사용해구축한시스템이존재하는검증된아키텍처를이용할수있는것이다. 개발에서설계를하게되고그러면서디자인패턴을공부했듯이, 전체적인소프트웨어의시스템을다루고자할때아키텍처패턴 음악계에재미있는에피소드가하나있다. 또다른유명한지휘자안프란츠샬크 (F. Schalk 1863-1931) 가오케스트라를객석에서감상할때의일이었다. 연주가무르익어가자무의식적으로눈을감았다. 그랬더니옆에앉아있던한남자가가만히속삭였다. 그것은현대회화를볼때만그렇게하는것입니다. 여기서는귀를막아야해요. 모두가아키텍처패턴을상세히알아야할필요는없지만, 최소한다른사람과의대화나전체시스템에서자신이맡은바를이해할수있는정도는알고있어야, 귀를막거나눈을감는사람이되지않는다. [ 아키텍처패턴의장점 ] - 검증된아키텍처이다. - 구축전에시스템의특성에대해시뮬레이션할수있다. - 기존시스템을쉽게이해할수있다. 아키텍처패턴과디자인패턴앞에서부터디자인패턴과아키텍처패턴을계속묶어서이야기해왔다. 이쯤에서명확히서로간의관계를정리하도록하자. 두가지모두는소프트웨어개발에있어서반복되는문제들에대한해법이라는점에서동일하다. 하지만, 디자인패턴이프로그램의설계에서나타나는반복 Architecture Pattern Design Pattern Ownership Architect Modeler, Developer Domain System, Subsystem Component Phase Inception,Elaboration Elaboration, Construction < 표 1> 아키텍처패턴과디자인패턴의비교 126 m a s o

Pattern MVC 패턴을이용해두가지를동시에개발하기로했다. DJ오디오시스템에서는아이팟이모델역할을, 스크래치가컨트롤러역할을맡고뷰컴포넌트의역할은스피커이다. 심장박동기에서는모델은내부적으로아날로그 ( 박동 ) 를디지털 ( 화면에보이는수치, 그래프 ) 로바꾸어주는부분이고, 컨트롤러는측정대상과연결되는입력단자가될것이다. Desing Pattern Architecture Pattern MVC 패턴이란? < 그림 6> 아키텍처패턴과디자인패턴의관계를나타낸 Composit Pattern 적인문제를다루는반면아키텍처패턴은소프트웨어시스템전체적으로영향을미치는사안들에대한해결방법이다. < 표 1> 로간단히둘의차이점을정리해보았다. 예를들면 파이프 & 필터 라는아키텍처패턴이있다. 이패턴의장점중하나는동시개발이가능하다는점이다. 필터또는파이프단위로나누어개발가능하기때문에병렬적개발이가능하다. 하지만디자인패턴중에는이런장점을가진패턴이존재하지않는다. 이는디자인패턴은설계문제에있어서의해결책이기때문이고, 아키텍처패턴은소프트웨어시스템전반에관한문제해결이기때문이다. 따라서아키텍처패턴은디자인패턴과달리조직의구조나개발프로세스의효율성까지도포함한다. 둘은이렇게다루는문제의영역이다르지만, 곧잘어울려다닌다. 아키텍처패턴의구성은디자인패턴들로이뤄지는경우가많다. 그래서둘사이의관계를 Composit Pattern으로표현할수있다. 아키텍처패턴의구성요소와구성요소사이의관계를반드시디자인패턴으로해야하는것은아니다. 하지만앞으로나올예제에서도볼수있듯이둘은함께사용되는경우가많다. 대표적인아키텍처패턴의하나로시스템전체를 Model과 View, Controller 세개의컴포넌트로나누어서각부분의변경영향도를최소화하기위한패턴이다. Model 컴포넌트는핵심데이터와기능을캡슐화한다. 모델은특정출력표현방식이나특정입력동작에영향을받지않는다. 뷰컴포넌트는사용자에게정보를디스플레이한다. 뷰는모델로부터데이터를얻는다. 모델로부터제공된데이터는다양한뷰를통해표시될수있으며, 각뷰마다컨트롤러컴포넌트하나씩연결된다. 컨트롤러컴포넌트는사용자의입력, 특정이벤트등을서비스요청으로변환한다. 사용자는오직컨트롤러를통해서만시스템과상호작용한다. 이제두가지시스템을전체적인 UML 그림으로보자. MVC 중 VIEW와 Model 관계는모델의변경에따라자동으로화면을바꿔주기위해 Observer Pattern으로이뤄져있다. 플레이어는작동하는데음악이안나오는 DJ오디오시스템이나 아키텍처패턴과디자인패턴간의관계예제 Head First Design Patterns 에나오는예제로아키텍처패턴과다지인패턴간의관계를설명하고자한다. 예를들어보자. 한개발회사에서묘하게 DJ오디오시스템과심장박동기의공통점이많음을발견하고 < 그림 7> 시스템아키텍처에적용된 MVC 패턴 m a s o 127

cover story 3_GoF 패턴에서아키텍처패턴으로 < 그림 8> 모델과뷰를연결하는 Observer Pattern 심장박동수가표시되지않는심장박동기를누가사겠는가? 같은시스템이설정에따라서 DJ오디오시스템일수도있고, 심장박동기가될수도있다. 그때마다원하는기기로사용하기위해모델컴포넌트를교체할수있어야한다. 그래서모델에는 Strategy Pattern이적용되어있다. 뷰컴포넌트는복합적인화면을쉽게구성하기위해 Composite Pattern 을사용해구현되어있다. 하나의 MVC 패턴의구성요소인모델과뷰는각각 Strategy Pattern 과 Composite Pattern을이용했고뷰와모델의연결에는 Observer Pattern을사용했다. 이렇듯아키텍처패턴에서이야기하는구성요소나 DJ 오디오시스템과심장박동기에적용된디자인패턴 본문예제에등장하는디자인패턴에대해간단하게설명하고자한다. 각패턴에대한자세한내용은참고자료에나오는 Design Patterns: Elements of Reusable Object-Oriented Software 또는 Head First Design Patterns 을참고하면된다. Observer Pattern 두객체사이의의존성때문에한객체의상태가변경되면자동적으로관련된객체들에게알려주기위한설계이다. 우리가다른사람의블로그를매일같이들어가서새로운아티클이등록되었는지 < 그림 9> DJ오디오시스템과심장박동기살펴볼필요없이 RSS를등록하면새글이올라왔을때, 자동으로알려주는것과같다. 여기서는아이팟에의해다음음이해석되면스피 Composite Pattern 커에게자동으로알려주는용도로사용하고있다. 부분과전체구조가트리형식으로표현되는조립객체를 Composite Object라고한다. 클라이언트가조립객체나개별객체나모두동일하게 Strategy Pattern 취급할수있도록해준다. 문서를작성하게되면글상자를이용하기도한같은알고리즘들을각각캡슐화해서로호환가능하게만드는설계이다. 다. 글상자는문서와동일하게안에텍스트나그림을넣을수있다. 클라이언트에따라서독립적으로원하는알고리즘을사용할수있다. 전이렇게워드프로세서를사용자입장에서는글상자가문서의부분이지만투기게임에서파워를먹을때마다한번에발사되는미사일의개수와모문서와동일하게취급할수있게해준다 ( 글상자안에텍스트를입력하거양이달라진다. 이렇게동일한행위 ( 미사일발사 ) 를다른방법 ( 개수와모나그림을삽입하는방법이다르다면얼마나불편하겠는가 ). 여기서는사양 ) 으로선택가능하게해주는설계이다. 여기서는음의해석을음악으로용자 UI를구성함에있어모든 UI 파트를 Graphics라는유형으로단일볼것인지, 심장박동으로볼것인지선택가능하도록하기위해사용되고취급할수있게사용하고있다. 있다. 128 m a s o

구성요소간의관계에대한규칙을만족시키기위해디자인패턴을이용하는경우가많다. 이제까지아키텍처패턴에대해설명했다. 왜우리가아키텍처패턴을알아야하는지를따져보고디자인패턴과의공통점과차이점에대해살펴봤다. 큰건물을지을때처럼큰시스템을구축할때는아키텍처가필요하다. 시스템의요구사항에맞는아키텍처를찾기위해아키텍처패턴을사용한다. 아키텍처패턴은실제구현을완료하지않고도시스템의특성을예측가능하게해주는유용한지식이다. 아키텍처의세부설계는디자인패턴을이용할수있고, 많이그렇게사용한다. 디자인패턴이여러분의많은고민을해결해주었듯이, 아키텍처패턴도그럴수있기를기원한다. < 그림 10> 모델컴포넌트에적용된 Strategy Pattern 참고자료 1. Pattern-Oriented Software Architecture, Volume 1: A System of Patterns, Frank Buschmann, WILEY, 1996. 8 2. Software Architecture in Practice (2/E), Paul Clements, Addison-Wesley Professional, 2003. 4 3. IEEE 1471 국제표준 (IEEE Recommended Practice for Architectural Description of Software-Intensive Systems) 4. Head First Design Patterns, Kathy Sierra, 2004. 10 5. Pattern-Oriented Analysis and Design: Composing Patterns to Design Software Systems, Sherif M. Yacoub 6. Design Patterns: Elements of Reusable Object-Oriented Software, JOHN VLISSIDES, 1995. 8 7. [GoF] 패턴이야기 - GoF Pattern Overview ( 손영수 ) - http://www.devpia.com/net2/evacast/lecture/?cu=view&r =122 < 그림 11> 뷰컴포넌트에적용된 Composite Pattern 마소를만드는 넓고예리한눈으로마소를채워갑니다작지만세심한손으로마소가만들어집니다월간 < 마소 > 는열정과자부심을가진사람들이만나개발자와 IT 산업발전을위해오늘하루도달리고있습니다. 앞으로도 < 마소 > 는최신 IT 기술과기본기를두루갖춘개발자를위한듬직한버팀목으로자리매김하겠습니다. m a s o 129