04장. 서버 프로그램 구현
070. 개발 환경 구축
1) 개발 환경 구축
- 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것
2) 하드웨어 환경
- 사용자와의 인터페이스 역할을 하는 클라이언트(Client), 클라이언트와 통신하여 서비스를 제공하는 서버(Server)로 구성됨
- 서버의 종류
: 웹 서버, 웹 애플리케이션 서버(WAS), DB 서버, 파일 서버
: WAS는 웹 서버와 DB 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행함
3) 소프트웨어 환경
- 클라이언트와 서버 운영을 위한 시스템 소프트웨어와 개발에 사용되는 개발 소프트웨어로 구성됨
- 시스템 소프트웨어의 종류: OS, 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS 등
- 개발 소프트웨어의 종류: 요구사항 관리 도구, 설계/모델링 도구, 구현 도구, 빌드 도구, 테스트 도구, 형상 관리 도구
4) 웹 서버의 기능
- HTTP/HTTPS 지원, 통신 기록, 정적 파일 관리, 대역폭 제한, 가상 호스팅, 인증 범용성
5) 개발 언어 선정 기준
- 적정성, 효율성, 이식성, 친밀성,
071. 소프트웨어 아키텍처
1) 소프트웨어 아키텍처
- 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체
2) 모듈화(Modularity)
- 시스템의 기능들을 모듈(특정 기능을 처리할 수 있는 소스 코드) 단위로 나누는 것
3) 추상화(Abstraction)
- 전체적이고 포괄적인 개념을 설계한 후 구체화 시켜 나가는 것
- 과정 추상화(전반적인 흐름 파악), 데이터 추상화(데이터 구조를 대표), 제어 추상화(이벤트 발생 대표)
4) 단계적 분해(Stepwise Refinement)
- 상위의 중요 개념으로부터 하위의 개념으로 구체화 시키는 분할 기법
5) 정보 은닉(Information Hiding)
- 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
6) 상위 설계와 하위 설계
상위 설계
|
하위 설계
|
|
별칭
|
아키텍처 설계, 예비 설계
|
모듈 설계, 상세 설계
|
설계 대상
|
시스템의 전체적인 구조
|
시스템의 내부 구조 및 행위
|
세부 목록
|
구조, DB, 인터페이스
|
컴포넌트, 자료 구조, 알고리즘
|
7) 소프트웨어 아키텍처의 품질 속성
- 품질 평가 요소들을 구체화 시켜 놓은 것
- 품질 평가 요소들의 종류 : 시스템 측면, 비즈니스 측면, 아키텍처 측면
8) 소프트웨어 아키텍처 설계 과정
1. 설계 목표 설정
2. 시스템 타입 설정
3. 아키텍처 패턴 적용
4. 서브 시스템 구체화
5. 검토
9) 협약(Contract)에 의한 설계
- 컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것
- 명세에 포함될 조건
: 선행 조건 - 호출되기 전에 참
: 결과 조건 - 수행된 후 만족
: 불변 조건 - 실행되는 동안 항상 만족
072. 아키텍처 패턴
1) 아키텍처 패턴
- 호출되기 전에 참
- 수행된 후 만족
- 실행되는 동안 항상 만족
- 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
2) 레이어 패턴(Layers Pattern)
- 시스템을 계층으로 구분하여 구성하는 고전적인 방법의 패턴
3) 클라이언트-서버 패턴(Client-Server Pattern)
- 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
4) 파이프-필터 패턴(Pipe-Filter Pattern)
- 데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
5) 모델-뷰-컨트롤러 패턴(Model-View-Controller Pattern)
- 서브시스템을 모델, 뷰, 컨트롤러로 구조화하는 패턴
6) 기타 패턴
Master-Slave Pattern
|
슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴
|
Broker-Pattern
|
사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 브로커 컴포넌트가 요청에 맞는 컴포넌트와 사용자를 연결해주는 패턴
|
Peer-To-Peer Pattern(P2P)
|
피어(Peer)라 불리는 하나의 컴포넌트가 클라이언트가 될 수도, 서버가 될 수도 있 는 패턴
|
Event-Bus Pattern
|
소스가 특정 채널에 이벤트 메시지를 발행하면 해당 채널을 구독한 리스너들이 메시 지를 받아 이벤트를 처리하는 패턴
|
Blackboard Pattern
|
모든 컴포넌트들이 고유 데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 패턴
|
Interpreter Pattern
|
프로그램 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성된 패턴
|
'it자격증 준비 > 정보처리기사(실기)' 카테고리의 다른 글
04. 서버 프로그램 구현 | 모듈(Module), 단위 모듈(Unit Module), 공통 모듈 (0) | 2023.08.14 |
---|---|
04. 서버 프로그램 구현 | 객체지향(Object-Oriented), 객체지향 분석 및 설계 (0) | 2023.08.12 |
03. 통합 구현 | 통합 구현, XML(eXtensible Markup Language), 연계 테스트 (0) | 2023.08.07 |
02. 데이터 입 · 출력 구현 | 자료 구조, 정렬(Sort) (0) | 2023.08.05 |
02. 데이터 입 · 출력 구현 | 데이터베이스 보안, 데이터베이스 백업 (0) | 2023.08.04 |