'개발도 하냐?' 카테고리의 다른 글
| JSP_MVC 형식 (0) | 2009.09.16 |
|---|---|
| Eclipse + JEUS (0) | 2009.08.19 |
| 아키텍쳐에 대한 정의 (0) | 2009.08.07 |
| 허드슨(Hudson)을 이용한 지속적인 통합(Continuous integration with Hudson) (0) | 2009.07.31 |
| [펌]트위터의 마케팅 활용 (0) | 2009.07.29 |
| JSP_MVC 형식 (0) | 2009.09.16 |
|---|---|
| Eclipse + JEUS (0) | 2009.08.19 |
| 아키텍쳐에 대한 정의 (0) | 2009.08.07 |
| 허드슨(Hudson)을 이용한 지속적인 통합(Continuous integration with Hudson) (0) | 2009.07.31 |
| [펌]트위터의 마케팅 활용 (0) | 2009.07.29 |
| 하나노케이지 (0) | 2010.01.11 |
|---|---|
| abydos openvpn gui client (0) | 2009.12.05 |
| openvpn Windows Client config dir (0) | 2009.08.09 |
| 좋은책 고르기 (0) | 2009.08.08 |
| 시간관리에 대한 생각들 (0) | 2009.08.07 |
| fckeditor에서 이미지경로를 위한 Tip (0) | 2010.05.13 |
|---|---|
| PHP 게시판 (0) | 2010.05.12 |
| CentOs 5.2 vsftpd 설치 (0) | 2009.08.10 |
| CentOS 5.2 Final + BIND 9.3.4 (0) | 2009.08.02 |
| UML 지원 CASE Tool (0) | 2009.04.29 |
| PHP 게시판 (0) | 2010.05.12 |
|---|---|
| Automating Linux Unix (0) | 2009.08.11 |
| CentOS 5.2 Final + BIND 9.3.4 (0) | 2009.08.02 |
| UML 지원 CASE Tool (0) | 2009.04.29 |
| Timeline 소개 (0) | 2008.12.26 |
| abydos openvpn gui client (0) | 2009.12.05 |
|---|---|
| 쇼핑몰 하우투코디 (0) | 2009.08.13 |
| 좋은책 고르기 (0) | 2009.08.08 |
| 시간관리에 대한 생각들 (0) | 2009.08.07 |
| RSS의 활용 (0) | 2009.08.07 |
| 쇼핑몰 하우투코디 (0) | 2009.08.13 |
|---|---|
| openvpn Windows Client config dir (0) | 2009.08.09 |
| 시간관리에 대한 생각들 (0) | 2009.08.07 |
| RSS의 활용 (0) | 2009.08.07 |
| GTD 그리고 ZTD (0) | 2009.08.01 |
| openvpn Windows Client config dir (0) | 2009.08.09 |
|---|---|
| 좋은책 고르기 (0) | 2009.08.08 |
| RSS의 활용 (0) | 2009.08.07 |
| GTD 그리고 ZTD (0) | 2009.08.01 |
| 살기힘든세상 - 학벌에 대한 해결방법 (0) | 2009.07.03 |
| 좋은책 고르기 (0) | 2009.08.08 |
|---|---|
| 시간관리에 대한 생각들 (0) | 2009.08.07 |
| GTD 그리고 ZTD (0) | 2009.08.01 |
| 살기힘든세상 - 학벌에 대한 해결방법 (0) | 2009.07.03 |
| 연애에 고민하는 남여를 위한 조언 (0) | 2009.06.23 |
출처 : http://www.swarchitect.org/
위의 정의들을 요약하여 소프트웨어 아키텍처를 다음과 같이 정의한다.
소프트웨어 아키텍처는 시스템의 핵심 구성 요소와 구성 요소들 사이의 연결 관계로 이루어진다. 핵심 구성 요소는 시스템이 가지고 있는 모듈, 모듈 사이의 연결, 시스템의 변경, 진화하기 위한 기술적인 원칙, 모듈들 사이의 상호작용, 시스템이 동작하기 위한 기술을 포함한다.
즉 소프트웨어 아키텍처는 구현할 시스템에 대한 top-down view이며 시스템에 대한 기술적인 명세서이며 공학적인 청사진이다.
소프트웨어 아키텍처는 다음과 같은 구성 요소로 이루어져 있다.
개발 프로젝트에서 초기에 기술적인 부분에 대하여 의사결정을 진행한다. 또한 프로젝트가 진행될 수 있도록 기술적인 이슈들을 해결한다. 아키텍트가 프로젝트의 각 단계마다 해결하는 문제는 다음과 같다.
표 Ⅱ-1. 프로젝트의 각 단계마다 아키텍트가 수행하는 역할
단계 |
아키텍트가 수행하는 역할 |
|
|
|
|
|
|
|
|
개발 프로젝트에서 아키텍트가 하는 역할은 다음과 같다.
아키텍트는 아키텍처를 만들고 컴포넌트와 컴포넌트 사이의 관계를 파악하고 인터페이스를 설계해야 한다. 프로젝트 관리자는 아키텍트가 아키텍처 문서를 생산하도록 관리해야 한다.
프로젝트에서는 아키텍처에 대한 일차 문서가 만들어지면 아키텍처 팀이 해체되고 각 subsystem에 대한 개발 리더로서 역할을 할 경우가 많다. 이 경우 시스템 전체를 보고 아키텍처를 upgrade하는 역할이 없어진다. 아키텍처가 일차 완성된 후에도 아키텍처는 자주 수정된다. 개발자들은 아키텍처 팀이 만든 문서를 받아들이지 않고 새로운 요구사항이 들어오면 아키텍처의 본래 목적에서 벗어난 방식으로 나름대로 개발하려 한다. 따라서 아키텍처 팀은 프로젝트 끝까지 해체되지 않고 아키텍처에 대한 수정 및 업그레이드에 대한 책임을 져야 한다.
또한 아키텍트는 개발자들이 아키텍처를 이해하도록 도와야 하고 아키텍처 밑에 숨은 결정 사항을 설명해야 한다. 즉 아키텍트는 개발자들에게는 컨설턴트로서 리더로서의 역할을 해야 한다.
| 아키텍트가 알아야 할 것 | 아키텍트는 무엇을 해야 하는가? | 갖춰야 할 자질 |
|
|
|
아키텍트가 알아야 할 것 |
아키텍트는 무엇을 해야 하는가? |
갖춰야 할 자질 |
|
|
|
| Eclipse + JEUS (0) | 2009.08.19 |
|---|---|
| 약도 만들기 (0) | 2009.08.14 |
| 허드슨(Hudson)을 이용한 지속적인 통합(Continuous integration with Hudson) (0) | 2009.07.31 |
| [펌]트위터의 마케팅 활용 (0) | 2009.07.29 |
| Trac, Ticket system과 workflow의 이해 (0) | 2009.07.27 |
| Automating Linux Unix (0) | 2009.08.11 |
|---|---|
| CentOs 5.2 vsftpd 설치 (0) | 2009.08.10 |
| UML 지원 CASE Tool (0) | 2009.04.29 |
| Timeline 소개 (0) | 2008.12.26 |
| 웹 방화벽을 구축하기 위한 mod_security 설치기 (0) | 2008.12.26 |