[1과목] 어플리케이션 설계
소프트웨어 아키텍처
▶︎ SW/ 아키텍처 뜻 : 기본 구조, 개발 기반
▶︎ 품질 유지 , 원칙 , 지침
▶︎ 모듈 = 부품
아키텍처 기본원리
▶︎ 모듈화 : 유지관리에 좋음 ( 많으면 통합비용 증가 / 적으면 개발비용 증가)
▶︎ 추상화 : 포괄적 개념, 구체화 하기 위해 필요, 가성비, 구조파악
ex) 로그인 기능, 아이디 찾기 , 회원가입 등 -> 인증 기능
▶︎ 단계적 분해 : 하양식, 추상화의 반복으로 더 많은 단계의 분해 가능
▶︎ 정보 은닉 : 접근금지, 별도의 인터페이스 사용, 유지보수에 용이
시스템 : 성능,보안
비즈니스 : 비용, 자원
아키텍처 : 결함
▶︎ 목표 - 시스템 타입 - 아키텍처 패턴 - 시스템 구체화 - 검토
아키텍처 패턴
1. 레이아웃 패턴 ( 계층 패턴 )
▶︎ 각각의 상위, 하위 레이어끼리 상호 호환
▶︎ 특정 레이어만 유지보수, 개선 가능
2. 클라이언트 - 서버 패턴
▶︎ 서버 : 자원 제공
▶︎ 클라이언트 : 자원 요청 -> 다수가 요청하기 때문에 서버는 항상 대기
3. 파이프 - 필터 패턴
▶︎ 파이프로 넘어온 데이터 -> 필터 : 처리 , 캡슐화 (정보은닉)
▶︎ 재사용성과 확장성이 좋음
▶︎ 다양하게 파이프라인 생성 사능 , 데이터 변환 ,버퍼링 , 동기화에 유리
4. 모델 - 뷰 - 컨트롤러 (MVC) 패턴
▶︎ 모델 : 핵심기능과 데이터 보관
▶︎ 컨트롤러 : 입력처리
▶︎ 뷰 : 저리된 정보 보여줌 -> 여러 형태의 뷰 생성 가능
▶︎ 대화형 어플리케이션에 적합
5. 마스터 - 슬레이브 패턴
▶︎ 여러 슬레이브 컴포넌트가 데이터를 병렬로 처리, 결과 취합
▶︎ 몇 개가 고장나도 업무 처리 문제 없음
6. 브로커 패턴
▶︎ 클라이언트 요청 -> 브로커가 적절한 서버로 연결해줌 ( 분산환경)
7. 피어 투 피어 패턴 (P2P)
▶︎ 클라이언트와 서버 역할 변경 가능
▶︎ 2가지 일 병렬 처리 가능
8. 이벤트 버스 패턴
9. 블랙보드 패턴
▶︎ 공유 데이터를 관리하는 블랙보드 -> 기능에서 요청하여 데이터 수집
▶︎ 음성 인식, 차량 식별, 신호 식별에 사용 .