정보처리기사/part01.소프트웨어 설계
4. 인터페이스 설계
kyunge_ev
2023. 12. 12. 23:06
✅ 인터페이스 요구사항 확인
1. 내외부 인터페이스 요구사항
(1) 인터페이스 요구사항
- 인터페이스 요구사항이란 목표 시스템과 외부 환경이 상호작용할 수 있도록 연결하기 위한 조건이나 특성 및 규약 등에 대한 요건을 기술한 것
- 상호 운영을 통해 작용하기 위한 접속 방법이나 규칙
(2) 인터페이스 요구사항 검토 방법
- ‘리뷰’ 회의를 통해 오류 발견을 목적
동료 검토 (Peer Review) |
요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해 관계자들이 설명을 들으면서 결함을 발견한다. |
워크 스루 (=검토회의) (Walk-througj) |
회의 전에 검토 자료를 배포해서 사전 검토한 후 짧은 시간 동안 검토 회의를 진행하면서 결함을 발견한다. |
인스펙션 (=검열, 보다 강한 검토회의) (Inspection) |
작성자 이외의 전문 검토 그룹이 요구사항 명세서를 상세히 조사하여 결함, 표준 위배, 문제점 등을 파악한다. |
(3) 외부 인터페이스 요구사항
사용자 인터페이스(User Interface)
- 시스템이 요구하는 각각의 사용자 인터페이스의 논리적인 특징을 설명한다.
- 폰트, 아이콘, 버튼 레이블, 이미지, 색상 체계, 필드탭 순서, 공통으로 사용되는 컨트롤 등에 대한 표준
- 화면 레이아웃 또는 해상도 제약 조건
- 도움말 버튼과 같이 모든 화면에 나타나는 표준 버튼, 기능 또는 탐색 링크
하드웨어 인터페이스(Hardware Interface)
- 시스템의 소프트웨어와 하드웨어 컴포넌트 간의 모든 인터페이스의 특징을 설명
소프트웨어 인터페이스(SorftWare Interface)
- 제품과 다른 소프트웨어 컴포넌트(데이터베이스, 운영체제, 툴, 라이브러리, 통합 상업용 컴포넌트) 간의 연결을 설명
- 소프트웨어 컴포넌트 간에 교환되는 메시지, 데이터와 컨트롤 항목을 설명
통신 인터페이스(Communications Interface)
- 이메일, 웹 브라우저, 네트워크 통신 프로토콜, 전자 문서와 같이 제품이 사용할 모든 통신 기능에 대한 요구사항을 설명
- 관련된 모든 메시지 형태를 정의하고 통신 보안 또는 암호화 문제, 데이터 전송률과 동기화 메커니즘을 명시
(4) 내부 인터페이스 요구사항
- 시스템 초기화 함수를 제공해야 한다.
- 시스템 시작 시 관련 변수 초기화 함수를 요구한다.
- 새로운 타입의 폰트 추가가 용이해야 한다.
- 추가 용이성을 위하여 아키텍쳐 패턴 사용이 구현되어야 한다.
2. 요구공학
(1) 요구공학 개요
- 요구사항을 정의하고 문서화하는 데 필요한 요구사항의 추출, 분석, 명세, 검증, 유지보수 및 관리의 제반공정에 대한 체계적 접근 방법 (IEEE Standard)
(2) 요구공학의 특징
- 개발 범위, 각종 테스트 기준(단위, 통합, 인수), 감리, 검수 등이 프로젝트 수행의 중요한 기준으로 활용된다.
- 사용자의 요구사항은 추상적인고 불분명하므로 분석이 필요하며, 지속적으로 변화하는 특성을 가진다.
- 사용자의 요구사항은 개발자와 사용자 간의 표현의 차이가 커서 상호 이해가 쉽지 않다.
(3) 요구사항 문제점 및 해결 방안
문제점 | 해결방안 |
이해 부족 | 경험 있는 인력 투입, 유스케이스 모델링 |
의사소통 부족 | Walk-through, Inspection, 워크숍, 의사소통 채널 단일화 |
표현의 어려움 | 모델링 기법(구조적 분석 기법, 객체지향 분석 기법)으로 가시화 |
요구사항 변경 | 변경 관리 계획, 유형별 관리 |
(4) 요구공학 프로세스🔥
절차 | 내용 | 방법 |
요구사항 추출 (Elicitation) |
기능적/비기능적 요구 수집 과정 | 인터뷰, 워크샵(JRP, JAD), 설문조사, 브레인스토밍 |
요구사항 분석 (Analysis) |
분석 기법을 이용해 가능한 문제 도출 및 요구 사항을 이해/정제하는 과정 | 객체지향 분석(UML, 모델링), 구조적 분석(DFD, Data Dictionary) |
요구사항 명세 (Specification) |
분석된 요구사항의 문서화 과정 | ER 모델링, FSM, 구조적 분석과 설계 기술(SADT) |
요구사항 검증 (Validation) |
명세화된 요구사항 검증과정 | Review, Inspection, Walk-through |
✅ 인터페이스 대상 식별
1. 시스템 아키텍처
(1) 시스템 아키텍처의 정의
- 경영 전략의 달성을 위해 필요한 업무 프로세스의 원할한 지원과 효율적 처리를 위해 필요한 하드웨어, 시스템 소프트웨어, DBMS, 네트워크 및 보안으로 구성된 전산 시스템의 기반이 되는 환경
(2) 시스템 아키텍처의 특징
- 물리적 구성을 기반으로 정의되는 시스템의 상세 설계도이다.
- 이해 당사자들과의 상호 이해, 협상, 동의 및 의사 교환을 위한 도구이다.
- 프로젝트 초기의 설계 결정으로 시스템 개발 및 유지보수 전반에 걸쳐 지속적인 영향력을 갖는다.
(3) 시스템 아키텍처의 구성 기술
구분 | 내용 |
시스템 플랫폼 | UNIX 서버, Windows NT 서버 |
OS 및 기타 소프트웨어 | Web 서버 S/W, 미들웨어, 메일 S/W, 시스템 관리 S/W 등 |
Storage 기술 | RAID, DAS, NAS, SAN |
이중화/부하 분산 기술 | HA, RAC, WAS, Cluster, L4 Switch |
(4) 시스템 아키텍처의 구성 요소
1. 집중/분산 구조
구분 | 내용 |
중앙 집중형 구조 | 통합 센터에 시스템과 데이터 저장 및 관리, 대용량 서버에 통합 DB를 구축한다. |
지역별 분산 구조 | 지역별 시스템 및 응용 시스템 분산 운영, 지역별 데이터 관리, 중소형 서버로 구성된다. |
2. 응용 구조
구분 | 내용 |
호스트 중심 시스템 구조 | - 애플리케이션 기능 모두 호스트에 집중 - 클라이언트는 더미 단말기나 PC에 에뮬레이터를 통하여 호스트에 접속 |
클라이언트/서버 시스템 구조 | - 애플리케이션의 각 기능들을 서버와 클리언트에 조합 위치 시킴 - 업무 규모와 환경에 따라 조합을 선택 |
웹 시스템 구조 | - 서버에 애플리케이션 기능을 두고, 클라이언트는 웹 브라우저를 통해 서버에 접속 |
에뮬레이터(Emulator)
- 다른 프로그램이나 장치를 모방하는 컴퓨터 프로그램 또는 전자기기의 능력을 말한다.
2. 인터페이스 시스템
(1) 인터페이스(Interface) 시스템의 특징
- 인터페이스는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이라 할 수 있다. 즉, 사용자가 기기를 쉽게 동작시키는 데 도움을 주는 시스템을 의미한다.
- 송신 시스템과 수신 시스템 그리고 연계 응용 시스템 등이 있다.
(2) 인터페이스 시스템의 구성
송신 시스템 | - 운영 데이터베이스에서 연계 데이터를 식별 및 추출하여 인터페이스 테이블(파일)로 생성하여 송신하는 시스템 - 개인 정보와 같은 보안이 필요한 정보는 암호화하여 저장 |
수신 시스템 | - 송신 시스템으로부터 수신한 테이블을 수신 시스템의 운영 데이터베이스나 환경에 맞게 변환하여 처리에 활요할 수 있도록 하는 시스템 - 송신 시스템에서 암호화되어 생성된 연계 데이터는 수신 시스템에서 운영 데이터베이스에 반영할 때 복호화 처리한다. - 연계 데이터의 암/복호화를 위해 사전에 암호 알고리즘과 키를 협의하여 배포하여야 한다. |
연계 응용 시스템 | - 송신 시스템과 수신 시스템을 연계해 주는 서버나 시스템에 해당한다. - 역할 : 데이터 송수신, 데이터 암/복호화, 응답 처리, 데이터 변화 등 |
✅ 인터페이스 상세 설계
1. 내외부 송수신
(1) 직접 연계 방식
- 중간 매개체 없이 송신 시스템과 수신 시스템이 직접 연계되는 방식
- 연계 및 구현이 단순하고, 개발 소요 비용과 기간이 적게 소요된다.
- 중간 매개체가 없기 때문에 데이터 연계 처리 성능이 대체적으로 좋다.
- 시스템 간의 결합도가 높고, 시스템 변경에 민감하게 반응한다.
- 보안을 위해 암/복호화 처리와 비즈니스 로직 적용 등이 불가하다.
(2) 간적 연계 방식
- 간접 연계 방식은 연계 솔루션과 같이 중간 매개체를 이용하여 연계하는 방식이다.
- 운영 데이터베이스에서 연계 데이터를 생성 및 변환과 송신 로그를 모니터링하는 구현 대상 소루션에서 제공하는 송수신 엔진과 어댑터로 구성된다.
- 중간 매개체가 존재하므로 서로 상이한 네트워크, 프로토콜 등 다양한 환경을 연계 및 통합할 수 있다.
- 시스템 간 인터페이스 변경 시에도 장애나 오류 없이 서비스가 간으하며, 암/복호화나 비즈니스 로직 적용이 용이하다.
- 중간 매개체로 인해 성능이 저하도리 수 있으며, 매커니즘이 복잡하다.
(3) 연계 기술
직접 연계 방식 : DB Link / DB Connection / JDBC
DB Link | - 데이터베이스에서 제공하는 객체(Object)를 이용한다 - 수신 시스템 DB에 송신 시스템에서 접근 가능한 Database Link 객체를 생성한 후 송신 시스템에서 DBLINK명으로 직접 참조하여 연계 |
DB Connection Pool(WAS) | - 수신 시스템 WAS에서 송신 시스템 DB로 연결되는 Connection Pool을 생성한다. - 프로그램 소스에서 WAS에 설정된 Connection Pool명을 참고하여 구현한다. |
JDBC | 수신 시스템의 배치(Batch) 또는 온라인(On-line) 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템의 DB와 연결을 생성한다. |
간접 연계 방식 : Web Service / Socket
Web Service | - 웹 서비스가 설명된 WSDL과 SOAP 프로토콜을 이용한 시스템 간 연계 - 미들웨어인 ESB에서 서비스(컴포넌트) 간 연동을 위한 변환 처리로 다중 플랫폼(Platfform)을 지원한다. |
Socket | - 소켓(Socket)을 생성하여 포트를 할당하고, 클라이언트의 요청을 연결하여 통신한다. - 네트워크 프로그램의 기반 기술이다. |
2. 데이터 명세화
인터페이스 정의서 | - 연계 항목, 연계 데이터 삽입, 길이 등을 구성하고 형식을 정의하는 과정의 결과물로 인터페이스 정의서를 작성 - 송신 시스템과 수신 시스템 간의 인터페이스 현황을 작성하며, 인터페이스별로 송수신하는 데이터 타입, 길이 등 인터페이스 항목을 상세하게 작성한다. |
개체 정의서 | - 개체에 포함되어 있는 속성과 타입 등을 명세한 정의서 |
테이블 정의서 | - 테이블을 구성하는 컬럼과 도메인, 키 등을 명세한 정의서 |
코드 정의서 | - 코드에 대한 명명 규칙에 따라 어떤 코드를 사용할지를 명세한 정의서 |
3. 오류 처리방안 명세화
구분 | 오류 | 해결 방안 |
송신 시스템 | 접근 권한 오류, 데이터 변화 처리 오류 등 | 송신 시스템에 기록된 로그 파일의 내용을 확인하여 오류의 원인을 분석하고 해결 방안을 모색한다. |
수신 시스템 | 데이터베이스 반영 오류, 데이터를 변환할 때 발생하는 오류 등 | 수신 시스템에 기록된 로그 파일의 내용을 확인하여 오류의 원인을 분석하고 해결 방안을 모색한다. |
연계 응용 시스템 | 접속 오류, 연계 서버 다운 등 | 시스템의 상태 확인을 통해 오류의 원인 분석과 해결 방안을 모색한다. |
4. 미들웨어 솔루션
(1) 미들웨어(Middle Ware)의 정의
- 클라이언트와 서버를 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할을 함
- 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들이 어떤 서비스를 사용할 수 있도록 연결해주는 시스템 소프트웨어를 말한다.
(2) 미들웨어의 특성🔥
1. 기존 플랫폼의 통합
- 기존의 다양한 벤더의 플랫폼을 네트워크 차이를 의식하지 않고, 상호 접속하여 이용한다.
2. 시스템 통합에 따를 DATA의 공유 활용
- 현재 사내 각 부문에서 각각 관리되고 있는 정보를 통합 관리함으로써 분배 작업을 통해 이중으로 작접을 하지 않으므로 업무 효율화를 기할 수 있다.
3. 조작의 우수성, 사용의 편리성
- 호스트 단말과 비교, 사용자가 사용하기 쉬운 GUI, 일상적으로 사용하고 있는 표계산 SW 등으로 사내의 각 데이터베이스에 접근 및 이용이 가능하다.
4. 상호 운용성
- 데이터베이스에 자유로운 접근이 가능하므로, 각 개인이 실시간 데이터를 분석 및 활용하여 업무의 질을 향상할 수 있다.
(3) 미들웨어의 분류
DB 미들웨어🔥 | - DB 미들웨어는 애플리케이션과 데이터베이스 간 통신을 원할하게 하는 것을 목적으로하는 미들웨어 - 다양한 형태로 구축된 데이터베이스 간의 통신이 가능하도록 해주는 제품을 말함 - DB 미들웨어를 도입함으로써 하드웨어, 데이터베이스, 네트워크 프로토콜로 이루어진 복합 시스템 환경에서 생성된 다양한 데이터베이스를 클라이언트에서 보다 쉽게 조작 및 운여할 수 있다. |
원격 프로시저 호출 (RPC : Remote Procedure Call) |
- RPC는 네트워크 상에서 애플리케이션과 애플리케이션 간의 연동을 하기 위한 미들웨어 - 다른 컴퓨터에 있는 원격 애플리케이션을 연동시키는 경우 많이 이용한다. - 근래에는 일반적으로 RPC 기능이 OS에 포함되어 제공되는 경우가 많아서 RPC 기반 미들웨어 제품군은 OS에서 제공되는 RPC 기능을 보다 편하게 사용할 수 있도록 도와주는 역할을 하는 경우도 많다. |
메시지 지향 미들웨어 (MOM : Message-Oriented Middleware) |
- MOM은 애플리케이션과 미들웨어 간의 상호 연동을 위한 미들웨어이다. - 애플리케이션에서 미들웨어로의 작업 요청이 바로 이루어질 수 있도록 한다. |
트랜잭션 처리🔥 (TP : Transaction Processing) |
- TP 모니터는 통신량이 많은 클라이언트와 서버 사이에 위치하여 서버 애플리케이션 및 자원을 효율적으로 관리한다. - 통신 부하를 효과적으로 분배함으로써 클라이언트와 서버 사이의 통신이 원할하게 이루어질 수 있도록 해주는 역할을 하며, 분산 환경의 핵심 기술인 분산 트랜잭션을 처리하기 위해서 필요한 미들웨어이다. |
WAS (Web Application Server) |
- 클라이언트(웹 브라우저)로 부터 웹 서버가 요청을 받으면 애플리케이션에 대한 로직을 수행하여 웹 서버로 다시 반환해주는 서버 |
ORB (Object Request Broker) |
- 객체 지향 미들웨어로 분산 컴퓨팅 환경에서 프로그래머에게 다른 컴퓨터의 프로그램을 네트워크롤 통해 호출 할 수 있다. |