wjdtmfgh.log
로그인
wjdtmfgh.log
로그인
아키텍처 유형들
Jeong seulho
·
2023년 4월 27일
팔로우
0
소프트웨어 공학
0
소프트웨어 공학
목록 보기
18/25
📌Layered architecture
계층적인 아키텍처
📖Layered architecture 특징
각 계층은 그 위 계층에 서버스를 제공한다
이미 있는 시스템 위에 새로운 기능을 쌓을 때 사용
여러 팀이 각 기능 계층을 하나씩 맡아 개발할 때 사용
보안성을 강화해야할 때(보안해야할 계층을 아래에 두어서 보안강화)
인터페이스를 동일하게 유지하면 하나의 계층을 새로운 구현으로 만들 수 있다
밑의 예에서 A운영체제의 상위 계층들을 인터페이스를 유지한채로(연결 선 5개) B운영체제(B운영체제에서 해당 인터페이스들을 지원한다면)로 그대로 옮겨서 사용 가능(새롭게 만든 구현)
각 계층에 중복되는 기능을 추가하여 신뢰성 높임(여러번 검사해서 보안성 강화느낌)
계층적으로 명백히 구분하는 작업이 어렵다
2계층이상 건너뛰어 인터페이스 연결할 수 없어서 성능문제 발생 가능
📌Client-server architecture
여러 각 서버에 역할을 나누어 클라이언트는 필요한 서버들만 조합하여 사용하는 아키텍처
📖Client-server architecture 특징
여러 지역에서 공유 DB를 사용할 때 사용
시스템 부하가 가변적일때 사용
네트워크로 서버들을 분산 배치할 수 있다
DDOS공격, 서버 다운에 취약
성능이 컴퓨터 시스템 뿐만 아니라 네트워크에도 의존
여러 서비스들이 서로 의존관계(연동)가 있을때 관리 문제 발생
📌Model-View-Controller(MVC)
Model : 비즈니스 로직 수행 및 DB관리
View : 사용자에게 보여지는 부분
Controller : Model과 View를 조합하여 사용자 입력을 처리
📖MVC 특징
데이터를 보여주는 것과 처리하는 것을 분리
데이터를 여러방식으로 보여주고 싶을 때 사용(한가지 데이터(Model)로 표, 원형차트, 막대차트(View) 등으로 보여주고 싶음 => Model은 그대로 View만 변경)
📌이벤트 주도 아키텍처
sub-system1이 sub-system2를 사용하고자 한다면 핸들러에게 텍스트를 전달(이벤트 발생), sub-system2이 동작
이벤트를 이용하여 서로 상호작용
📖이벤트 주도 아키텍처 특징
네트워크 상에 서로 다른 컴퓨터에 분산된 컴포넌트를 통합
시스템 추가, 수정, 변경등이 쉽다
한 시스템에서 발생한 이벤트가 언제 처리될지 모름
📌Repository 아키텍처
공유 Repository를 두고 서로 상호작용
각 언어 에디터에서 코드 작성 Repository에 공유 => code generator는 공유 repo에 코드를 컴파일
📖Repository 아키텍처 특징
새로운 데이터를 중앙 repo에 추가하면 어떤 액션이나 도구를 실행하게 되는 시스템에서 사용
각 컴포넌트들은 독립적
중앙 repo의 데이터를 일관성있게 관리
중앙 repo에 문제가 있으면 전체 시스템에 영향을 준다
속도측면에서 느릴 수 있다.
📌Pipe and Filter 아키텍처
아래는 실제코드를 컴퓨터가 이해하는 문자로 변환하고 실행하는 예시
📖Pipe and Filter 아키텍처 특징
한 컴포넌트가 출력한 데이터를 다른 컴포넌트의 입력이 됨
이해하기 쉽고, 재사용이 쉬움
변환, 수정이 쉽다
서로 인접한 컴포넌트들 간의 데이터 형식을 미리 정해두어야함
아웃풋을 인풋으로 하기위한 자료구조 변환이 생기는 부하 늘어남
Jeong seulho
팔로우
이전 포스트
아키텍처 표현
다음 포스트
상세 설계 원리
0개의 댓글
댓글 작성