You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 시스템 아키텍처 설계 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.Experience-Porthcawl.com team, along with other related topics such as: 시스템 아키텍처 설계 시스템 아키텍처 구성도, 소프트웨어 아키텍쳐, 아키텍처 종류, 인프라 아키텍처 설계, 아키텍처 설계 공부, 소프트웨어 아키텍처 뜻, 아키텍처란
프로젝트 계획(10) – 아키텍쳐 설계 [소프트웨어공학]
- Article author: luv-n-interest.tistory.com
- Reviews from users: 8307 Ratings
- Top rated: 3.3
- Lowest rated: 1
- Summary of article content: Articles about 프로젝트 계획(10) – 아키텍쳐 설계 [소프트웨어공학] Updating …
- Most searched keywords: Whether you are looking for 프로젝트 계획(10) – 아키텍쳐 설계 [소프트웨어공학] Updating 이번에는 아키텍쳐라는 것을 배워보자. 아키텍쳐는 (architecture) 해석하면 알 수 있듯이 무슨 구조인가?? 즉, 뼈대 같은 것들을 말할 것 같다?? 배워보자 우리는 앞서 요구 분석 작업을 했다. 그 요구 분석 작업..기술: C++, C#, Unity, Unreal, DX ++ devops k8s
관심분야: 새로운 컨텐츠를 구현하는게 제일 재밌는 것 이라고 생각하고 있으며 이미 있는 것에 대해 최적화 또는 리팩토링하는데에 관심이 있습니다(엔진 튜닝 또는 커스터마이징) 하지만 개발은 항상 힘이 듭니다. 그래서 포기하고 싶을 때도 많지만 내일 또다시 시도해봅니다.
요즘엔 새로운 것에 눈을 떴습니다. - Table of Contents:
프로젝트 계획(10) – 아키텍쳐 설계 [소프트웨어공학]
소프트웨어를 설계하기 위한 세부적인 작업(체계적인 접근)을 알아보자
그렇다면 소프트웨어 아키텍쳐는 뭐고 아키텍쳐 설계는 뭔가
그렇다면 이번에는 왜 를 따져보자
왜 우리는 아키텍쳐를 설계해야할까
그렇다면 아키텍쳐는 어떻게 나타내고 표현해야할까
티스토리툴바
소프트웨어 아키텍처 설계 : 개념, 정의, 개요
- Article author: jjeongil.tistory.com
- Reviews from users: 6501 Ratings
- Top rated: 3.8
- Lowest rated: 1
- Summary of article content: Articles about 소프트웨어 아키텍처 설계 : 개념, 정의, 개요 소프트웨어 아키텍처는 소프트웨어 시스템이 요구되는 기능과 품질로부터 궁극적으로 갖도록 소프트웨어 시스템을 용이하게 구축하고, 또한 지속적인 사용 … …
- Most searched keywords: Whether you are looking for 소프트웨어 아키텍처 설계 : 개념, 정의, 개요 소프트웨어 아키텍처는 소프트웨어 시스템이 요구되는 기능과 품질로부터 궁극적으로 갖도록 소프트웨어 시스템을 용이하게 구축하고, 또한 지속적인 사용 … 소프트웨어 아키텍처 설계 커다란 건축물을 만들기 위하여 사람들은 먼저 설계도를 그립니다. 설계도를 그리는 이유는 건축물을 만들 때 설계도에 맞추어 만들려는 의도가 있고, 원하는 모습과 기능, 특징, 속성..
- Table of Contents:
아키텍쳐 설계 프로세스
- Article author: bcho.tistory.com
- Reviews from users: 19354 Ratings
- Top rated: 4.1
- Lowest rated: 1
- Summary of article content: Articles about 아키텍쳐 설계 프로세스 Updating …
- Most searched keywords: Whether you are looking for 아키텍쳐 설계 프로세스 Updating 아키텍쳐 아키텍쳐란 무엇일까? 소프트웨어 시스템에 대해서 이야기 하다보면, “아키텍쳐가 어떻다”. “최신 아키텍쳐를 적용했다.” 등 아키텍쳐에 대한 언급이 많다. 그렇다면, 소프트웨어 아키텍쳐에 대한 정..평범하게 살고 싶은 월급쟁이
기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. - Table of Contents:
아키텍처의 종류 — Keon.
- Article author: montoo.tistory.com
- Reviews from users: 387 Ratings
- Top rated: 4.9
- Lowest rated: 1
- Summary of article content: Articles about 아키텍처의 종류 — Keon. Updating …
- Most searched keywords: Whether you are looking for 아키텍처의 종류 — Keon. Updating 목차 1. 비즈니스 아키텍처 비즈니스를 성공적으로 이끌기 위한 시스템 설계 요구사항을 만족하는 시스템 개발을 위한 비즈니스 모델을 도식화하는 것 비즈니스의 목표 이해 + 비즈니스의 전략 이해 -> 부합하는..
- Table of Contents:
블로그 메뉴
공지사항
티스토리
인기 글
최근 글
태그
1 비즈니스 아키텍처
2 시스템 아키텍처
3 데이터 아키텍처
티스토리툴바
[정보처리기사 필기 요약] 시스템 아키텍처
- Article author: cording-cossk3.tistory.com
- Reviews from users: 4322 Ratings
- Top rated: 3.1
- Lowest rated: 1
- Summary of article content: Articles about [정보처리기사 필기 요약] 시스템 아키텍처 Updating …
- Most searched keywords: Whether you are looking for [정보처리기사 필기 요약] 시스템 아키텍처 Updating * 시스템 아키텍처 : 시스템이 어떻게 작동하는지를 설명하는 프레임워크. 시스템 목적 달성 위해 시스템의 각 컴포넌트가 무엇이며 어떻게 상호작용하는지, 정보가 어떻게 교환되는지 설명 * 시스템 아키텍처 설..
- Table of Contents:
코딩하자
[정보처리기사 필기 요약] 시스템 아키텍처 본문시스템 아키텍처 – 위키백과, 우리 모두의 백과사전
- Article author: ko.wikipedia.org
- Reviews from users: 41941 Ratings
- Top rated: 3.5
- Lowest rated: 1
- Summary of article content: Articles about 시스템 아키텍처 – 위키백과, 우리 모두의 백과사전 정의편집 · 시스템 구성 및 동작 원리를 나타내고 있다. · 시스템 구성 요소(부품)에 대해 설계 및 구현을 지원하는 수준으로 자세히 기술된다. · 구성 요소 간의 관계 및 … …
- Most searched keywords: Whether you are looking for 시스템 아키텍처 – 위키백과, 우리 모두의 백과사전 정의편집 · 시스템 구성 및 동작 원리를 나타내고 있다. · 시스템 구성 요소(부품)에 대해 설계 및 구현을 지원하는 수준으로 자세히 기술된다. · 구성 요소 간의 관계 및 …
- Table of Contents:
정의[편집]
배경[편집]
각주[편집]
ìì¤í ìí¤í ì² ë¤ì´ì´ê·¸ë¨ ë구 | Lucidscale
- Article author: lucidscale.com
- Reviews from users: 24832 Ratings
- Top rated: 3.1
- Lowest rated: 1
- Summary of article content: Articles about ìì¤í ìí¤í ì² ë¤ì´ì´ê·¸ë¨ ë구 | Lucidscale 시스템 아키텍처 다이어그램 도구. Lucscale은 조직이 클라우드 환경을 보고 이해할 수 있도록 지원하므로 팀은 기업이 성장할 때 효과적으로 설계, 구축, … …
- Most searched keywords: Whether you are looking for ìì¤í ìí¤í ì² ë¤ì´ì´ê·¸ë¨ ë구 | Lucidscale 시스템 아키텍처 다이어그램 도구. Lucscale은 조직이 클라우드 환경을 보고 이해할 수 있도록 지원하므로 팀은 기업이 성장할 때 효과적으로 설계, 구축, … Lucidscaleì ì¬ì©íë©´ ê·íì íì´ ê¸°ì¡´ í´ë¼ì°ë ê³ì ìì ë°ì´í°ë¥¼ ê°ì ¸ì¤ê³ AWS, Azureë° GCP를 í¬í¨í ì¬ë¬ í´ë¼ì°ë íê²½ìì ìëì¼ë¡ ë¤ì´ì´ê·¸ë¨ì ìì±í ì ììµëë¤.
- Table of Contents:
ëì ë°ì´í° ê¸°ë° ìì¤í ìí¤í ì² ë¤ì´ì´ê·¸ë¨ ë구
Lucidscaleë¡ í´ë¼ì°ë ë¤í¸ìí¬ ë¤ì´ì´ê·¸ë¨ì 구ì¶í ë ì»ë 5ê°ì§ ì´ì
ìì¤í ìí¤í ì² ë¤ì´ì´ê·¸ë¨ ë구ì ëí ì주 묻ë ì§ë¬¸
Lucidscale ë¡ í´ë¼ì°ë ì¸íë¼ë¥¼ ëì± í¨ê³¼ì ì¼ë¡ ì´í´ ìµì í ê³í ë° íì¸
ìí¤í ì² êµ¬ì±ë ì½ê² 그리ë íë¡ê·¸ë¨?
- Article author: www.edrawsoft.com
- Reviews from users: 1001 Ratings
- Top rated: 4.8
- Lowest rated: 1
- Summary of article content: Articles about ìí¤í ì² êµ¬ì±ë ì½ê² 그리ë íë¡ê·¸ë¨? Updating …
- Most searched keywords: Whether you are looking for ìí¤í ì² êµ¬ì±ë ì½ê² 그리ë íë¡ê·¸ë¨? Updating ìí¤í ì²ë ê±´ì¶íì´ë¼ë ì미 ì¸ìë ì»´í¨í°ë¥¼ 기ë¥ë©´ìì 본 êµ¬ì± ë°©ìì ì미í기ë í©ëë¤. ìí¤í ì² êµ¬ì±ë를 그리ë íë¡ê·¸ë¨ì ì¬ì©íì¬ ê°ë¨í ìí¤í ì² êµ¬ì±ë를 ì§ì ê·¸ë ¤ë³´ëë¡ íê² ìµëë¤.
- Table of Contents:
소프트웨어 아키텍처란 왜 중요할까?
- Article author: wnsgml972.github.io
- Reviews from users: 42588 Ratings
- Top rated: 4.8
- Lowest rated: 1
- Summary of article content: Articles about 소프트웨어 아키텍처란 왜 중요할까? Updating …
- Most searched keywords: Whether you are looking for 소프트웨어 아키텍처란 왜 중요할까? Updating 이 게시글은 마틴 파울러의 소프트웨어 아키텍처의 중요성이라는 발표를 보고 요약정리한 게시글입니다.
- Table of Contents:
목차
소프트웨어 아키텍처의 정의
소프트웨어 아키텍처가 중요한 이유
See more articles in the same category here: Top 74 tips update new.
아키텍쳐 설계 [소프트웨어공학]
728×90
반응형
728×170
이번에는 아키텍쳐라는 것을 배워보자.
아키텍쳐는 (architecture) 해석하면 알 수 있듯이 무슨 구조인가??
즉, 뼈대 같은 것들을 말할 것 같다??
배워보자
우리는 앞서 요구 분석 작업을 했다.
그 요구 분석 작업을 통하여 무엇을 개발할 지 결정했고
그 이후에 도메인 영역의 문제에 집중해서 모델링 했다.
설계 단계로 넘어가면서 솔루션 영역의 과제들
예를 들어 소프트웨어의 내부 구조, 자료와 사용자 인터페이스를 어떻게 만들 것인지 정해야 한다.
다시 말해서 요구 분석 명세서에 기술된 기능을 여러가지 제한 요건에 맞도록 설계하는 일이 필요하다
건축 설계를 예로 들었지만 소프트웨어 설계도 마찬가지다.
** 설계는 일반적으로 창조작인 작업이라고 할 수 있다
++ 그렇다고 체계적인 접근이 없는 것은 아니다.
창의적인 방법은 기존의 것을 쓰지 않는 것을 의미하는 것은 아니다.
그래서 우리는 이 체계적인 접근을 배우고 있고 특히 소프트웨어에서 필요한 것들을 배우고 있다.
소프트웨어를 설계하기 위한 세부적인 작업(체계적인 접근)을 알아보자.
1. 소프트웨어 아키텍처 설계
전체 시스템을 이루는 서브시스템, 또는 모듈이 무엇이며 서브시스템 사이의 관계를 파악하는 것
2. 인터페이스 설계
서브시스템 사이의 인터페이스를 설계하고 정의하는 것
3. 자료 저장소 설계
파일이나 데이터베이스를 설계하는 것
4. 모듈 설계
시스템의 컴포넌트가 되는 모듈, 즉 프로그램의 알고리즘에 대한 설계
5. 사용자 인터페이스 설계
메뉴나 입력 양식, 출력 화면 및 인쇄물을 설계하는 작업
위 접근을 한 마디로 말하자면 분석 단계에서 파악한 요구를 구현 가능하게 만드는 설계안을 만드는 작업이랄까?
** 개념적이고 추상적인 것을 구체적이고 실제적으로 바꾸는 작업이다.
그렇다면 소프트웨어 아키텍쳐는 뭐고 아키텍쳐 설계는 뭔가?
용어를 정의해보자
소프트웨어 아키텍쳐란 주요 컴포넌트 사이의 인터페이스와 인터랙션을 포함한
시스템 구조의 설계 유형을 말한다.
그렇다면 아키텍쳐 설계는 뭐가 될까?
아키텍쳐 설계는 개발 중인 시스템에 대한 아키텍쳐를 정하는 의사 결정 과정이란다.
**그렇다 소프트웨어 아키텍쳐란 의사 결정의 집합체라고 볼 수 있다.
컴포넌트란 명백한 역할을 가지고 있으며 독립적으로 존재할 수 있는 시스템의 부분이다.
( 같은 기능을 가진 다른 컴포넌트로 대체 가능)
**대부분의 컴포넌트들은 재사용 가능하도록 설계된다.
++ 특정 목적을 위한 것들도 존재한다
모듈이란 프로그래밍 언어의 문법 구조에서 정의된 컴포넌트를 말한다.
예를 들자면 메소드, 클래스, 패키지는 Java프로그램의 모듈이다.
C프로그래밍 언어에서의 모듈의 파일과 함수이다.
그렇다면 이번에는 왜? 를 따져보자
왜 우리는 아키텍쳐를 설계해야할까?
우선 앞에서 체계적인 접근을 위해서라고 말했다.
두 번째는??
예를 들자면
어플리케이션 코드(C1,C2,C3,C4)가 써드파티 컴포넌트( 데이터 베이스)에 너무 의존하게 되고
만일 데이터베이스가 바뀐다면 어플리케이션 코드의 대부분을 수정해야 한다.
이런 위험을 피하려면 어플리케이션 객체로부터 데이터베이스를 숨기기 위하여
데이터베이스 래퍼(wrapper)를 개발해야 한다.
이렇게 하면 데이터베이스가 갱신되거나 교체되었을 때 비즈니스 객체에 대하여 보호할 수 있다.
데이터 베이스가 바뀐다면 비즈니스 객체를 그대로 두고 래퍼만 수정하면 된다.
근데 아키텍쳐 설계를 제대로 안하면???
데이터베이스가 바뀐다면???
오류는 나중에 발견할수록 미치고 팔짝 뛴다고 했었는데…
소프트웨어 완료 직전에 데이터베이스에 수정이 생긴다면???
말 안해도 알겠지?
그래서 아키텍쳐 설계를 한다.
그럼 이유도 알았겠다. 아키텍쳐에 더 알아보자
우리는 요구 분석에서 “비기능적 요구”에 대해 알아본 적이 있다.
비기능적 요구는 유스케이스에서 나오지도 않고
어플리케이션이 무엇을 하느냐가 아니라 어플리케이션이 어떻게 기능을 제공하느냐에 초점이 맞춰져있다.
비기능적 요구는 3가지 영역으로 나눌 수 있다.
1. 기술적 제약
ex) Java 언어로 개발해라, Linux에서만 실행가능하다. 등
2. 비즈니스 제약
말 그대로 경영측면에 대한 조건으로
“미들웨어 공급자가 가격을 올려 오픈소스 버전으로 바꿔야 한다” 같은 경우다.
3. 품질 제약
확장성, 가용성, 변경용이성, 이식성, 사용성, 성능 등에 대한 요구다.
++ 언제 많이 봤던 단어들 아닌가?? ㅋㅋㅋ 품질 측정할 때 저런 것 봤었다.
**아키텍쳐는 설계에 대한 여러 관점을 명시적으로 언급해야 한다.
**개발자는 기능적인 요구를 이해하고 동시에 기능들이 비기능적인 요구 다시 말해서 품질 목표를 만족하도록 플랫폼을 만들어야 한다.
++저기 품질 제약도 있다 살짝 참고하고
++ 왼쪽 그림도 어떤 흐름인지 살짝 보자.
?? 그렇다면 아키텍쳐는 어떻게 나타내고 표현해야할까??
완벽하게 만들어진 아키텍쳐는 시스템의 추상적인 요약이므로 매우 유용한데 이해하기 쉽도록 추상화 한 것이다.
**추상의 의미는 아무리 강조해도 계속나온다 다시 알아보자면 “불필요한 것 삭제, 가장 중요한 것만 남긴다”
그렇다면 아키텍쳐는 추상화 되었으니 정말 중요한 것만 남은 것으로 보이겠네요 ㅎㅎ
맞다.
아키텍쳐를 표현하는 방법 중 가장 많이 쓰이는 방법은 계층적 분할(hierarchical decompositions)라고 한다.
상세 수준에 따라 나누어 표현된 컴포넌트를 더 자세히 나타내기 위하여 분할하는 방법이다.
++ 브로커와 서버가 밑에서 더 나누어진 것이 보인다.
2개의 계층이 존재하고 2개의 컴포넌트가 분할되었다.
UML을 사용한 모델링에서 클래스 다이어그램이 어느 정도 작성되었으면
품질 목표에 맞는 아키텍쳐를 찾고 서브시스템으로 분할해야한다.
그런데 서브시스템 분할은 자꾸 바뀔 수 있다.
하나로 합쳐지기도 하고 다른 하나가 2개로 나눠지기도 하고 새로운 기능이 추가될 수 있다.
그래서 UML에서는 패키지라는 개념을 도입했는데
패키지는 클래스를 의미 있는 관련된 그룹으로 구성하는 메커니즘이다.
특징을 살펴보면
1. 패키지는 중첩될 수 있음
최상위층에는 구조적인 개체들 예를 들어 사용자 인터페이스, 비즈니스 도메인, 서브시스탬과 관련된 패키지가 형성되며 하위 층에는 더 작은 개념의 비즈니스 작업, 예를 들면 Video, Inventory 같은 것으로 표현한다.
2. 복잡한 시스템을 서브시스템으로 나누어 적절한 컨트롤 가능
패키지 이름을 정하여 알고 있으면 외부에서 패키지 안의 자세한 사항을 모르더라도 import할 수 있다.
ex) Java에서 버튼을 만들고 싶다?? Jbutton을 import하면 버튼에 관련된 것들은 다들어있다. ㅎㅎ
3. 소프트웨어 구조를 표현하는데 적합
패키지가 클래스의 그룹이므로 높은 수준의 추상화된 서브시스템을 표현할 수 있기 때문이다.
myGUI가 java.awt에 포함된 내용을 사용하고 있다는 의미다.
(패키지를 가리키면 클래스를 가리키는 것 보단 보기 쉬워지겠지?)
4. 서브시스템으로 분할하면 객체 사이의 의존성을 최소화할 수 있어 솔루션 도메인의 복잡성을 줄일 수 있음
Facade 패턴이 간결하고 통합된 인터페이스로 서브시스템을 캡슐화 하여 클래스 사이의 의존도를 줄일 수 있게 한다.
이 그림이 Clerk User Interface 패키지 안에 또 다른 패키지인 Business System Client가 있는 것이고
Business System Client 클래스는 Customer, Rental UI 클래스를 감추는 Facade 클래스이다.
다음에는 설계 원리부터 알아보자
반응형
그리드형
소프트웨어 아키텍처 설계 : 개념, 정의, 개요
반응형
소프트웨어 아키텍처 설계 : 개념, 정의, 개요
소프트웨어 아키텍처 설계
커다란 건축물을 만들기 위하여 사람들은 먼저 설계도를 그립니다. 설계도를 그리는 이유는 건축물을 만들 때 설계도에 맞추어 만들려는 의도가 있고, 원하는 모습과 기능, 특징, 속성을 건축물을 만들기 전에 확인해보기 위함입니다.
크고 복잡한 소프트웨어 시스템을 만들 때에도 마찬가지로 먼저 설계를 해야 합니다. 그 이유는 만드는 소프트웨어 시스템이 원하는 기능을 갖고 원하는 품질을 갖도록 하기 위해서 입니다. 건축물의 경우도 마찬가지지만 설계와 설계의 검증 없이 시스템을 만들었을 경우 기능이 잘못되었거나 품질이 원하는 수준에 미달하여 시스템을 다시 만들거나 고쳐야 하는 경우 큰 비용과 시간이 소요되게 됩니다.
더구나 시스템 개발은 보통 완료된 후에도 오랜 시간 지속적으로 업그레이드되면서 향상된 서비스와 새로운 서비스를 제공해야 하는데,설계 없이 이런 유지보수, 진화의 작업을 하는 것은 장기적으로 큰 비용의 낭비를 가져오게 됩니다. 그래서 크고 복잡한 소프트웨어 시스템을 만드는 방법이 발전하게 되었습니다.
먼저 요구사항으로부터 바로 시스템을 구현해가는 즉흥적인 개발의 문제를 알고, 먼저 설계를 하고 설계에 기반하여 시스템을 구현하는 설계 방법론 기반의 개발로 발전하게 됩니다. 그러나 전통적 설계 기반의 개발은 아키텍처를 먼저 설계하고, 이에 기반하여 상세설계를 하고, 상세설계에 따라 시스템 구현을 하는 아키텍처 기반의 개발로 다시 발전하게 됩니다.
그 이유는 아키텍처 설계는 전통적인 설계보다 더 높은 추상수준에서 더 큰 단위로 시스템을 보게 하여 시스템에 대한 크고 중요한 판단과 분석을 가능하게 합니다. 따라서 시스템에 요구되는 다양한 품질속성들을 충족시키는 대응을 할 수 있게 해주기 때문입니다.
소프트웨어 아키텍처의 정의
소프트웨어 아키텍처를 소프트웨어 시스템의 조직, 구성으로만 보는 게 아니라, 이런 사항을 포함하는 시스템 개발에 관한 중요한 결정들의 집합으로 보는 시각입니다. 그러나 이런 정의들도 오래 전에 만들어진 정의들이라 그동안 연구자들이 알아낸 중요한 발견들을 다 반영하고 있지 못합니다.
소프트웨어 아키텍처는 소프트웨어 시스템이 요구되는 기능과 품질로부터 궁극적으로 갖도록 소프트웨어 시스템을 용이하게 구축하고, 또한 지속적인 사용과 개선을 위하여 필요한 진화성을 갖도록 하는 소프트웨어 시스템의 구조와 이어지는 개발에 관한 중요한 결정입니다.
이 정의에서 시스템의 구축을 용이하게 해주는 성질 혹은 속성을 구축 용이성이고, 시스템의 지속적인 사용과 개선을 용이하게 해주는 성질 혹은 속성을 진화성이라고 합니다.
소프트웨어 아키텍처의 정의에 이 두 개의 품질속성을 담은 이유는 이들이 매우 중요하기 때문에 시스템의 의뢰자와 개발자가 간과하면 문제가 발생할 수도 있기 때문입니다.
입력물과 출력물
아키텍처 설계를 어떻게 할 것인지를 논의하기 위해서는 먼저 아키텍처 설계 활동의 입력물과 출력물이 무엇인지 알아야 합니다. 물론 소프트웨어 아키텍처 설계는 입력물로서 소프트웨어 시스템의 요구사항에서 출발합니다. 그러나 모든 요구사항이 아키텍처 설계의 직접적인 출발점이 되는 것은 아니고 아키텍처적으로 중요한 요구사항들 중에서도 특히 중요한 것들을 선정하여 이들을 아키텍처 설계의 출발점으로 해야 합니다.
아키텍처 설계의 출력물은 크게 두 가지 문서로 볼 수 있는데, 개발 대상 시스템의 아키텍처를 담은 아키텍처 문서와 이 시스템을 유지보수 및 진화 관리 할 때 도움을 주는 아키텍처 가이드라인입니다. 시스템의 설계라고 말할 때 설계는 크게 세 가지의 서로 다른 수준의 설계를 포함합니다.
가장 광범위한 설계는 시스템 아키텍처 설계로 소프트웨어와 하드웨어로 이루어진 시스템 전체에 대한 아키텍처 설계입니다. 이를 바탕으로 전체 시스템의 부분으로 소프트웨어 시스템에 대한 아키텍처 설계를 하게 됩니다. 또한 소프트웨어 시스템의 아키텍처를 바탕으로 하여 소프트웨어 시스템에 대한 상세설계도 하게 됩니다.
시스템 아키텍처 설계가 소프트웨어 아키텍처 설계에 영향을 줄 뿐 아니라, 소프트웨어 아키텍처 설계도 시스템 아키텍처 설계에 영향을 줍니다.그 이유는 시스템에서 소프트웨어 부분이 차지하는 기능 및 비용이 하드웨어가 차지하는 기능 및 비용을 능가하는 경우가 많은데, 그럴 때에는 소프트웨어에 관련된 아키텍처적 결정이 오히려 시스템 전체의 아키텍처 결정에 영향을 미칠 수 있기 때문입니다.
이를 위한 아키텍처 설계의 근본 원리들은 12개입니다. 이 원리들은 네 가지 종류로 나눠집니다. 첫 번째는 아키텍처 설계가 해결해야 할 문제를 정제하고 식별하는 데 사용되는 세 가지 원리입니다. 두 번째는 아키텍처 설계의 결과가 어떤 모습을 가져야 하는가를 판단하는 데 사용되는 원리들입니다. 아키텍처 설계는 개발 대상 시스템이 달라져도 똑같은 모습의 산출물이 나오는 과정이 아니라, 시스템이 달라지면 그 시스템에 맞는 설계 결과의 모습도 달라지는 복잡한 절차입니다. 세 번째는 본격적인 아키텍처 설계에 적용되는 원리들입니다. 앞서 말한 바와 같이 설계 활동은 합성과 분석의 방법이고, 합성은 경험적 지식과 창의적 아이디어로 수행됩니다.
아키텍처 패턴과 품질속성 설계 전략은 합성 활동을 도와주는 원리입니다. 설계 절차가 실행될 때 아키텍처 분석 원리는 중간 설계 결과의 문제점을 찾아내도록 합니다. 아키텍처 설계 활동도 하나의 설계 활동이므로 설계에 적용되는 원칙들이 소프트웨어 시스템의 설계에 적용될 수 있습니다. 이러한 설계에 일반 원리를 반영하여 본격적인 설계를 위한 절차를 결정해야 한다는 것이 아키텍처 설계 절차 원리입니다. 마지막으로 네 번째는 설계가 끝나고 그 결과물을 평가하는 데 사용되는 원리입니다. 이 단계에서 평가 결과가 기대하는 수준에 미달하면 그 원인이 어디에 있는가 하는 것을 찾아서 이 원리들이 적용 과정 중 원인을 발생시킨 곳으로 돌아가 해당 원리의 적용을 다시 해야 합니다.
시스템의 요구사항 분류
소프트웨어 아키텍처 설계는 시스템 요구사항에서부터 출발합니다. 그러므로 시스템 요구사항을 잘 정리하고 명세하는 것은 아키텍처 설계뿐 아니라 성공적인 시스템 개발을 하기 위해서 반드시 선행되어야 합니다. 이를 위해서는 먼저 시스템 요구사항이 어떤 종류가 있는지 알아야 합니다.
시스템 요구사항은 기능 요구사항과 비기능 요구사항으로 나눠집니다. 비기능 요구사항은 다시 품질 요구사항과 제약사항으로 나눠집니다. 기능 요구사항이란 시스템이 제공하는 서비스를 말하며, 품질 요구사항은 시스템이 제공하는 서비스의 수준이나 성능, 즉 서비스의 품질을 말합니다. 제약사항은 시스템 개발이 지켜야 하는 준수사항을 말합니다.
반응형
아키텍쳐 설계 프로세스
아키텍쳐
아키텍쳐란 무엇일까? 소프트웨어 시스템에 대해서 이야기 하다보면, “아키텍쳐가 어떻다”. “최신 아키텍쳐를 적용했다.” 등 아키텍쳐에 대한 언급이 많다. 그렇다면, 소프트웨어 아키텍쳐에 대한 정의는 무엇일까?
http://www.sei.cmu.edu/architecture/start/glossary/community.cfm 를 보면, 수많은 아키텍쳐에 대한 정의가 있다. 지금부터 설명하고자 하는 아키텍쳐에 대한 정의는 다음과 같다.
“아키텍쳐는 비지니스 요구 사항을 만족하는 시스템을 구축하기 위해서 전체 시스템에 대한 구조를 정의한 문서로, 시스템을 구성하는 컴포넌트와, 그 컴포넌트간의 관계, 그리고, 컴포넌트가 다루는 정보(데이타)를 정의한다.”
또한 소프트웨어 아키텍쳐는 현재의 요구사항뿐 아니라 변화되는 비지니스 전략에 대응이 가능하도록 장기적인 로드맵을 수용하여 확장가능한 형태로 디자인 되어야 하며 가능하면, 구현 및 사용하고자 하는 조직의 기술 수준, 조직의 규모와 형태 그리고 비지니스의 형태에 맞춰서 설계 되어야 한다.
아키텍쳐 설계 프로세스
앞에서 아키텍쳐에 대한 정의는 끝냈다. 그렇다면 실제 아키텍쳐는 어떤 형태로 설계해야 할까?
비지니스 아키텍쳐 이해
아키텍쳐는 앞서 정의하였듯이, 비지니스를 성공적으로 이끌기 위해서, 만들어지는 시스템에 대한 설계다. 목적이 “비지니스의 성공”에 있기 때문에, 그 비지니스 자체가 어떤 목표,전략을 가지고 있는지를 이해해야, 목표에 부합하는 아키텍쳐를 설계할 수 있다.
아키텍쳐 설계 원칙 정의 (Architecture Principals)
비지니스 아키텍쳐가 정의되었으면, 시스템을 설계 하기 위한 테크니컬 아키텍쳐를 설계하기 위한 원칙을 정한다. 품질 속성이나, 기간, 조직 운용론, 기반 기술등 설계의 기본 사상이 되는 원칙을 정의한다.
시스템 아키텍쳐의 (System Architecture) 설계
설계 원칙이 정해졌으면, 비지니스의 요구 사항을 이 설계 원칙에 따라서 설계한다. 시스템 아키텍쳐는 크게 아래와 같이 3가지로 나뉘어 정의된다.
① 애플리케이션 아키텍쳐 (Application Architecture) : 개발해야하는 애플리케이션 소프트웨어에 대한 아키텍쳐를 설계한다. 여기에는 컴포넌트의 정의, 컴포넌트 간의 관계, 특정 기능에 대한 컴포넌트간의 호출 흐름, 그리고 컴포넌트간의 통신을 위한 메세지에 대한 규격 정의를 포함한다.
② 테크니컬 아키텍쳐 (Technical Architecture) : 애플리케이션의 배포 구조를 정의한다. 애플리케이션을 배포할 하드웨어의 구조와, 애플리케이션 개발에 사용하는 미들웨어 (DBMS, 웹서버등)등의 배포 구조를 함께 정의한다.
③ 데이타 아키텍쳐 (Data Architecture) : 마지막으로, 애플리케이션에서 다루는 정보(데이타)의 구조와 관계를 정의한다.
이 아키텍쳐의 설계는 기반 지식이 없는 상태에서는 설계가 어렵다. 물론 경험을 가지고 할 수 있겠지만, 참고할 수 있는 레퍼런스가 있다면 실수나 실패를 줄이고, 시간 또한 단축 시킬 수 있다. 참고자료는 CBD,SOA,EAI와 같은 일반적인 애플리케이션을 개발하기 위해서 패턴화된 아키텍쳐 스타일을 응용하거나, 유사한 도메인의 CASE STUDY (선행 사례) 기반의 아키텍쳐, 그리고 솔루션을 사용할 경우, 솔루션 제공사의 컨설팅 서비스를 이용하면, 매우 효율적으로 아키텍쳐 설계를 할 수 있다.
※ 많은 분들이 이 페이지를 방문하시고, 질문이 많으셔서, 상세한 아키텍쳐 설계 프로세스, 아키텍쳐의 정의, 아키텍트의 역할, 그리고, 대용량 시스템 아키텍쳐에 대한 글을 별도 문서로 정리하였습니다. http://bcho.tistory.com/695
So you have finished reading the 시스템 아키텍처 설계 topic article, if you find this article useful, please share it. Thank you very much. See more: 시스템 아키텍처 구성도, 소프트웨어 아키텍쳐, 아키텍처 종류, 인프라 아키텍처 설계, 아키텍처 설계 공부, 소프트웨어 아키텍처 뜻, 아키텍처란