익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT위키
검색
소프트웨어 아키텍처 스타일
편집하기
IT위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
[[분류:소프트웨어 공학]] ;Software Architecture Style * 아키텍처 설계에서 반복해서 나타나는 문제를 해결하고 아키텍처가 만족시켜야 하는 시스템 품질 속성을 달성할 수 있는 방법을 체계화 한 것 * 아키텍처를 구성하는 컴포넌트와 커넥터 종류와 이것들이 결합하는 방법 정의 * 아키텍처 설계시 이용 가능한 베스트 프랙티스 {| class="wikitable" ! 구분 ! 특징 ! 예시 |- | [[계층형 아키텍처 스타일|계층형 스타일]] | * SW를 계층 단위(Unit)로 분할 * 각 계층은 모듈들의 응집된 집합 * 계층간의 관계는 사용가능의 관계로 표현 * 계층적으로 조직화될 수 있는 서비스로 구성된 어플리케이션에 적합 * 장점 : 정보은닉의 원칙 적용 → 높은이식성 * 단점 : 추가적인 실행시 오버헤드(너무 많은 계층으로 성능 감소 발생) | [[파일:계층형 아키텍처 스타일 예시.png|150px]] |- | MVC 스타일 | * 모델 : APP의 핵심기능 및 적절한 데이터 캡슐화 * 뷰 : 사용하게 될 데이터를 엑세스하기 위한 기능 제공 * 컨트롤러 : 이벤트로서 사용자의 입력사항 처리 * 장점 : 동일한 모델, 다양한 뷰 제공 및 뷰 동기화로 실시간 변경 데이터 제공 * 단점 : 단순 어플리케이션은 복잡성증가 | |- | Client Server 스타일 | * 여러 컴포넌트에 걸쳐서 데이터와 데이터를 처리하는 어플리케이션에 적합 * 컴포넌트는 다른 컴포넌트에게 서비스 요청 함으로써 커뮤니케이션 * n-Tier 클라이언트 서버 모델(3-Tier) * 장점 : 직접적으로 데이터 분산, 위치 투명성 제공 * 단점 : 서비스와 서버의 이름을 관리하는 레지스터 부재로 이용가능 서비스 탐색 불편 | |- | Pipe & Filters 스타일 | * 데이터 스트림 처리 시스템을 위한 구조 * 컴포넌트:필터, 커넥터:파이프 * 필터는 파이프를 통해 받은 데이터를 변경시키고 그 결과를 파이프로 전송 * 장점 : 필터 교환과 재조합을 통한 높은 유연성 제공 * 단점 : 상태정보 공유를 위한 고비용과 데이터 변환 가부화 | |- | Publish Subscribe 스타일 | * 컴포넌트는 발생된 이벤트를 통해 의사소통 * 출판자 : 이벤트 발생 컴포넌트 * 구독자 : 이벤트 수신 컴포넌트 * 장점 : 컴포넌트 분리로 독립성 우수 | |- | Peer-To-Peer 스타일 | * 클라이언트/서버 스타일에 대칭적 특징추가 * 컴포넌트는 클라이언트와 서버역할 모두수행 * 장점 : 분산컴퓨팅 어플 구축시 유연성 제공 | |- | [[칠판형 아키텍처 스타일|칠판형 스타일]] | * 블랙보드, 지식자원의집합, 컨트롤컴포넌트로 구성 * 결정적 해결전략이 존재하지 않는 문제 해결에 유용 * 장점 : 다양한 접근법, 유지보수성,가변성,재사용 가능한 지식자원 * 단점 : 테스팅 어려움, 완전한 해결책 미보장 | [[파일:칠판형 아키텍처 스타일 예시.png|150px]] |- | Repository 스타일 | * 적어도 하나의 저장소에 지속성을 갖는 데이터 저장, 이 데이터를 여러 모듈에 사용 * 예) 데이터베이스시스템 * 장점 : 대량 데이터 저장, 공유모델 발행 가능, 중앙집중화 관리 * 단점 : 데이터모델의 사전 동의 필요, 데이터 분산의 어려움 | |- | [[브로커 아키텍처 스타일|브로커 스타일]] | * 외부에 분산된 컴포넌트에 값을 전달하고 응답을 받아서 전달해주는 브로커 이용 * 장점 : 위치 투명성, 연동 용이, 재사용 컴포넌트 확보 용이 * 단점 : 성능 불이익, 장애 대처 어려움, 디버깅 어려움 | [[파일:브로커형 아키텍처 스타일 예시.png|150px]] |} == 참고 문헌 == * 소프트웨어 아키텍처(이덕우)
요약:
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
분류별 보기
일반 IT용어
프로젝트 관리
디지털 서비스
블록체인
인공지능
소프트웨어 공학
운영체제
컴퓨터 구조
자료 구조
데이터 과학
데이터베이스
네트워크
프로토콜
보안
컴플라이언스
개인정보보호
표준
경영학
기업 IT
조직/단체
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록