1-1. 현행 시스템 파악
- 사용하고 있는 소프트웨어 및 하드웨어는 무엇인지, 네트워크의 구성은 어떻게 되어 있는지 파악하는 활동이다.
1-2. 현행 시스템 파악 절차
1단계 | 2단계 | 3단계 |
구성/기능/인터페이스 파악 ➡ 아키텍처 및 소프트웨어 구성 파악 ➡ 하드웨어 및 네트워크 구성 파악 |
1-3. 소프트웨어 아키텍처
소프트웨어 아키텍처(Software Architecture) 개념
- 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체이다.
소프트웨어 아키텍처 프레임워크(Software Architecture Framework) 개념
- 소프트웨어 아키텍처 프레임워크는 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준이다.
소프트웨어 아키텍처 4 + 1 뷰
- 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법
- 4 + 1 에서 1은 유스케이스 뷰이며 나머지 구조를 요구사항을 충족시키는지 체크하는 방법으로 유스케이스를 사용한다.
- 소프트웨어 아키텍처 4 + 1 구성요소
- 논리 뷰 (Logical View) : 시스템의 기능적 요구사항 설명 // 설계자, 개발자 관점
- 프로세스 뷰 (Process View) : 시스템의 비기능적 요구사항 설명
- 구현 뷰 (Implementation View) : 정적인 소프트웨어 모듈의 구성을 보여주며 컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보 정의
- 배포 뷰 (Deployment View) : 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 보여주는 뷰
- 유스케이스 뷰 (Usecase View) : 다른 뷰(4)를 검증하는데 사용
유스케이스(Usecase) : 시스템 요구사항이자, 사용자의 입장에서 바라본 시스템의 기능
소프트웨어 아키텍처 패턴
- 소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식
소프트웨어 아키텍처 패턴 유형
- 계층화 패턴 (Layered Pattern) : 시스템을 계층으로 구분해 구성하는 패턴
- 클라이언트-서버 패턴 (Client-Server Pattern) : 하나의 서버와 다수의 클라이언트로 구성된 패턴
- 파이프-필터 패턴 (Pipe-Filter Pattern) : 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴
- 브로커 패턴 (Broker Pattern) : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 이 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴
- 모델-뷰-컨트롤러 패턴 (MVC; Model-View-Controller Pattern) : MVC 패턴은 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴
- 모델(Model) : 핵심 기능과 데이터 보관
- 뷰(View) : 사용자에게 정보 표시
- 컨트롤러(Controller) : 사용자로부터 요청을 입력받아 처리
소프트웨어 아키텍처 패턴 유형
- SAAM (Software Architecture Analysis Method) : 변경 용이성과 기능성에 집중, 경험이 없는 조직에서도 활용 가능한 비용 평가 모델
- ATAM (Architecture Trade-off Analysis Method) : 아키텍처 품질 속성을 만족시키는지 판단하는 모델
- CBAM (Cost Benefit Analysis method) : ATAM 바탕의 분석 중심으로 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델
- ADR (Active Design Review) : 소프트웨어 아키텍처 구송요소 간 응집도를 평가하는 모델
- ARID (Active Reviews for Intermediate Designs) : 전체 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중하는 비용 평가 모델
1-4. 디자인 패턴
- 디자인 패턴은 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
디자인 패턴의 유형
- 목적
- 생성 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식 구조화, 캡슐화 수행
- 구조 : 클래스나 객체의 조합을 다루는 패턴
- 행위 : 클래스나 객체들이 상호작용하는 방법과 역할 분담을 다루는 패턴
- 범위 : 클래스, 객체
디자인 패턴 종류
- 생성 패턴
- Builder : 복잡한 인스턴스를 조립해 만드는 구조, 복합 객체 생성 시 방법 분리, 서로 다른 표현 결과 만들 수 있음
- Prototype : 처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정해 사용하는 패턴
- Factory Method : 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
- Abstract Factory : 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
- Singleton : 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 디자인 패턴
- 구조 패턴
- Bridge : 기능의 클래스 계층과 구현의 클래스 계층을 연결, 구현부에서 추상 계층 분리
- Decorator : 기존에 구현되어 있는 클래스에 필요한 기능 추가해 나감
- Flyweight : 메모리 절약, '클래스의 경량화' 목적
- Composite : 객체들의 관계를 트리 구조로 구성, 부분-전체 계층 표현
- Adabter : 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할
- 행위 패턴
- Mediator : 객체 간의 원활한 통신을 위해 중간에 통제, 중재자 역할
- Interpreter : 언어의 다양한 해석, 구체적으로 구문을 나누고 그 분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴
- Iterator : 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공
- Template Method : 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화,
상위(추상) 클래스에는 추상 메서드를 통해 기능의 골격을 제공, 하위(구체) 클래스의 메서드에는 세부 처리를 구체화하는 방식으로 사용하는 디자인 패턴 - Observer : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법
- State : 객체의 상태에 따라 다르게 처리할 수 있도록 행위 내용 변경
- Visitor : 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업 수행
- Command : 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 디자인 패턴
- Strategy : 알고리즘 군 정의, 행위를 클래스로 캡슐화해 동적으로 행위 자유롭게 바꿀 수 있게 해주는 디자인 패턴
- Memento : Undo 기능을 개발할 때 사용하는 디자인 패턴
- Chain of Responsibility : 정적으로 어떤 기능에 대한 처리의 연결이 하드 코딩 되어 있을 때, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 디자인 패턴
1-5. 현행 시스템 분석서 작성 및 검토
현행 시스템 관련 자료 수집 ➡ 수집 자료의 분석 ➡ 분석한 결과를 기반으로 산출물 작성 ➡ 산출물에 대한 검토 수행
분석 산출물 작성 사례
- 정보시스템 구성 현황
- 정보시스템 기능 구성도
- 인터페이스 현황
- 현행 시스템 아키텍처 구성도
- 소프트웨어 구성도
- 하드웨어 구성도
- 네트워크 구성도
2-1. 개발 기술 환경 정의
운영체제(Operating System)
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당
- 사용자가 컴퓨터를 좀 더 쉽게 사용하기 위해 지원하는 소프트웨어
운영체제 종류 및 특징
- PC
- 윈도즈 (Windows / Microsoft) : 중/소규모 서버, 일반 PC 등 유지, 관리 비용 장점
- 유닉스 (UNIX / IBM, HP, SUN) : 대용량 처리, 안정성 높은 엔터프라이즈급 서버
- 리눅스 (Linux / Linus Torvalds) : 중/대규모 서버 대상, 높은 보안성 제공, 가장 저렴
- 모바일
- 안드로이드 (Android / Google) : 리눅스 운영체제 위에서 구동하는 리눅스 모바일 운영체제
- iOS / Apple : 스마트폰, 태블릿PC의 높은 보안성과 고성능 제공
네트워크(Network)
- 컴퓨터 장치들의 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술
OSI 7 계층(Layer) - 물데네전세표응
- OSI 7계층은 네트워크 통신에서 생긴 여러 가지 충돌 문제를 완화하기 위해 국제 표준화 기구(ISO)에서 제시한 네트워크 기본 모델이다.
1. 물리 계층(Pysical Layer)
- 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의함.
- 표준: RS-232C, X.21
- 관련 장비: 리피터, 허브
2. 데이터 링크 계층(Data Link Layer)
- 두 개의 인접한 개방 시스템들 간의 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함.
- 송신측과 수신측의 속도 차이를 해결하기 위한 흐름 제어 기능을 함.
- 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능을 함.
- 오류 제어
- 순서 제어 기능
- 표준: HDLC, LLC, LAPB, LAPD, PPP
- 관련 장비: 랜카드, 브리지, 스위치
3. 네트워크 계층(Network Layer)
- 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터 교환 및 중계 기능을 함.
- 네트워크 연결을 설정, 유지, 해체
- 경로 설정, 트래픽 제어, 패킷 정보 전송, 데이터 교환&중계
- 표준: X.25, IP
- 관련 장비: 리피터, 허브
4. 전송 계층(Transport Layer)
- 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End)간에 투명한 데이터 전송을 가능하게 함.
- 연결 해제, 주소 설정, 다중화, 오류&흐름 제어
- 표준: TCP, UDP
- 관련 장비: 게이트 웨이
5. 세선 계층(Session Layer)
- 송.수신 측 간의 관련성을 유지하고 대화 제어를 담당하는 계층임.
- 대화 구성 및 동기 제어, 데이터 교환 관리
6. 표현 계층(Presentation Layer)
- 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태를 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 함.
7. 응용 계층(Application Layer)
- 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공함.
OSI | TCP/IP | 기능 |
응용계층 표현 계층 세션 계층 |
응용 계층 | HTTP, FTP, SMTP, DNS, TELNET |
전송 계층 | 전송 계층 | TCP, UDP |
네트워크 계층 | 인터넷 계층 | IP, ICMP, IGMP, ARP, RARP |
데이터 링크 계층 물리 계층 |
네트워크 액세스 계층 | Etherner, IEEE 802, HDLC, X.25, RS232C, ARQ |
요약
- OSI 7계층 >> 물-데-네-전-세-표-응
- 데이터 전송 단위 >> 물리-비트, 데이터-프레임, 네트웤-패킷, 전송-세그먼트, 그 외-데이터
- 물리 : 비트 정보를 전기적 신호로 변환 | RC-232C
- 데이터 : 데이터 전송, 오류/흐름 제어 | HDLD
- 네트워크 : 노드 간 데이터 전송, 최적 경로 설정(라우팅) | IP
- 전송 : 데이터 분할/재조립, 혼잡/흐름 제어 | TCP
- 세션 : 연결 접속 및 동기 제어 | RPC
- 표현 : 암호화/복호화 | JPEG
- 응용 : 응용 서비스 연결, 정보 교환 등 | HTTP
DBMS 현행 시스템 분석
- DBMS : 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램
DBMS의 기능
- 중복 제어 : 동일 데이터 여러 위치에 중복 저장 방지
- 접근 통제 : 권한에 따라 데이터 접근 제어
- 인터페이스 제공 : 사용자에 SQL, CLI, GUI 등 다양한 인터페이스 제공
- 관계표현 : 서로다른 데이터간 다양한 관계 표현
- 샤딩/파티셔닝 : 구조 최적화 위해 작은 단위로 나눔
- 무결성 제약조건 : 무결성 제약조건 정의/검사 기능
- 백업 및 회복 : DB장애 발생 시 데이터 보존 기능
DBMS 현행 시스템 분석
- DB의 가용성, 성능, 기술지원, 호환성, 구축 비용을 분석한다.
DBMS 현행 시스템 분석 시 고려 사항
- 성능측면
- 가용성(비기능): 장기간 시스템운영 시 장애 발생 가능성, 백업/복구 편의성, DBMS 이중화 및 복제 지원 여부
- 성능(기능): 대규모 데이터 처리 성능, 대량 거래 처리 성능, 다양한 튜닝옵션 지원 여부, 비용기반 최적화 지원 및 설정의 최소화 지원 여부
- 상호호환성: 설치가능한 OS종류.. 다양한OS지원되는 JDBC, ODBC
- 지원측면
- 기술 지원: 공급업체들의 안정적 기술지원 여부, 사용자간 정보 공유 여부, 오픈 소스 여부
- 구축 비용: 라이선스 정책 및 비용, 유지관리 비용, 총 소유비용
JDBC : 자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스
ODBC : 데이터베이스를 엑세스하기 위한 표준 개방형 응용 프로그램 인터페이스
미들웨어(Middleware)
- 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어
- 운영체제와 소프트웨어 애플리케이션 사이에 위치하고 있음
- 대표적인 미들웨어로는 WAS가 있음
웹 애플리케이션 서버 (WAS; Web Application Server)
- 웹 애플리케이션 서버(WAS)는 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공, 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과의 애플리케이션 연동을 지원하는 서버이다.
'IT 자격증 > 정보처리기사 실기' 카테고리의 다른 글
[정보처리기사 실기] 02. 화면 설계 - UI 설계 (0) | 2022.09.29 |
---|---|
[정보처리기사 실기] 02. 화면 설계 - UI 요구사항 확인 (0) | 2022.09.29 |
[정보처리기사 실기] 01. 요구사항 확인 - 요구사항 확인 (0) | 2022.09.23 |
[정보처리기사 실기] 01. 요구사항 확인 - 소프트웨어 개발 방법론 (0) | 2022.09.21 |
[정보처리기사 실기] 0. 공부 계획 & 합격전략 수립 (0) | 2022.09.15 |