본문 바로가기
정처기

[2과목] 5. 인터페이스 구현

by 3 8 2021. 2. 2.

 

[01 모듈간 공통 기능 및 데이터 인터페이스 확인] ★

 

01-1 모듈간 공통 기능 및 데이터 인터페이스의 개요

- 데이터 인터페이스 : 모듈 간 교환되는 데이터가 저장될 파라미터

- 인터페이스 설계서에서 정의한 모듈의 기능을 기반으로 확인 -> 모듈 간 연계가 필요한 인터페이스 식별에 사용

1) 인터페이스 설계서로 모듈별 기능 확인

2) 외부 및 내부 모듈을 기반으로 공통으로 제공되는 기능과 각 데이터의 인터페이스 확인

 

01-2 인터페이스 설계서(정의서)

: 시스템 사이의 데이터 교환 및 처리 위해 교환 데이터 및 관련 업무, 송수신 시스템 등을 정의한 문서

- 일반적인 인터페이스 설계서

- 시스템 인터페이스 설계서 : 시스템 인터페이스 목록과 상세 데이터 명세 정의

- 상세 기능별 인터페이스 명세서 : 각 기능의 세부 인터페이스 정보 정의한 문서

- 정적/동적 모형을 통한 인터페이스 설계서

: 시스템 구성 요소를 다이어그램으로 표현. 주요 구성 요소 간의 트랜잭션으로 인터페이스의 소속과 상호 교환되는 트랜잭션 종류 확인 가능

 

01-3 인터페이스 설계서별 모듈 기능 확인

1) 시스템 인터페이스

- 시스템 인터페이스 목록의 송신, 전달 부분 = 외부 모듈 / 수신 = 내부 모듈

- 데이터 송신 시스템 부분 = 외부 / 데이터 수신 시스템 부분 = 내부

2) 상세 기능 인터페이스

- 오퍼레이션, 사전 조건 = 외부 / 사후 조건 = 내부

3) 정적/동적 모형 인터페이스

- 인터페이스 영역 = 내부 / 나머지 = 외부

 

01-4 모듈 간 공통 기능 및 데이터 인터페이스 확인

: /외부 모듈 기능을 통해 공통적으로 제공되는 기능 확인, 그를 기반으로 필요한 인터페이스 항목 확인

 

 


 

 

[02 모듈 연계를 위한 인터페이스 기능 식별] ★★★

 

02-1 모듈 연계의 개요

: 내부와 외부 모듈, 내부 모듈끼리의 데이터 교환 위해 관계를 설정함

1) EAI(Enterprise Application Integration)

: 기업 내 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하도록 하는 솔루션 / 비즈니스 간 통합 및 연계성 , 효율성, 시스템 간의 확정성(Determinacy)

- Point-to-Point : 애플리케이션을 1;1로 연결, 변경 및 재사용 어려움

- Hub & Spoke : 허브 시스템을 이용해 데이터 전송하는 중앙 집중형 방식, 확장 및 유지 보수 용이, 허브 장애 발생 -> 전체 장애

- Message Bus (ESB) : 애플리케이션 사이에 미들웨어를 둠, 확장성 뛰어나 대용량 처리 가능

- Hybrid : Hub & SpokeMessage Bus 혼합 / 그룹 내에서는 Hub, 그룹끼리는 Message Bus 사용 / 데이터 병목 현상 최소화

2) ESB(Enterprise Service Bus)

- 애플리케이션 간 연계, 데이터 변환, 웹 서비스 지원 등 표준 기반의 인터페이스 제공

- EAI와 유사하지만 서버 중심의 통합

- 특정 서비스에 국한 X, 애플리케이션과의 결합도(Coupling)을 약하게 유지

- 관리, 보안 유지 쉬움, 높은 수준의 품질 지원

 

02-2 모듈 간 연계 기능 식별

: 모듈과 연계된 기능을 시나리오 형태로 구체화 -> 인터페이스 기능 식별

 

02-3 모듈 간 인터페이스 기능 식별

: 인터페이스 동작에 필요한 기능 식별

- 외부 및 인터페이스 모듈 간 동작하는 기능으로 인터페이스 기능 식별 -> 내부 모듈은 외부 모듈에서 호출된 인터페이스에 의해 수행되므로 해당 업무에 대한 시나리오 통해 내부 모듈과 관련된 인터페이스 기능 식별 -> 식별된 인터페이스 중 실제적으로 필요한 것 선별 -> 인터페이스 기능 구현 정의에 사용

 

 


 

 

[03 모듈 간 인터페이스 데이터 표준 확인] ★

 

03-1 인터페이스 데이터 표준의 개요

: 모듈 간 인터페이스에 사용되는 데이터의 형식을 표준화 / 기존의 데이터 중 공통 영역 추출 또는 한 쪽의 데이터 변환해 정의 => 인터페이스 기능 구현 정의에 사용

1) 데이터 인터페이스로 인터페이스 데이터 표준 확인

2) 인터페이스 기능으로 인터페이스 표준 확인

3) 데이터 인터페이스와 인터페이스 기능으로 확인된 인터페이스 표준 검토 -> 최종적인 인터페이스 데이터 표준 확인

 

03-2 데이터 인터페이스 확인

: 식별된 데이터 인터페이스에서 입/출력값의 의미와 데이터의 특성 확인

 

03-3 인터페이스 기능 확인

: 식별된 데이터 인터페이스 기능을 기반으로 그 기능을 구현하는 데에 필요한 데이터 항목 확인

 

03-4 인터페이스 데이터 표준 확인

: 확인된 데이터 표준과 인터페이스 기능으로 확인된 데이터 항목들 검토 -> 최종 데이터 표준 확인

 


 

[04 인터페이스 기능 구현 정의] ★

 

04-1 인터페이스 기능 구현의 정의에 대한 개요

: 인터페이스를 실제로 구현 위해 인터페이스 기능에 대한 구현 방법을 기술한 것

1) 컴포넌트 명세서 확인

2) 인터페이스 명세서 확인

3) 일관된 인터페이스 기능 구현 정의

4) 정의된 인터페이스 기능 정형화

 

04-2 모듈 세부 설계서

: 모듈의 구성 요소와 세부적인 동작 정의한 설계서

1) 컴포턴트 명세서

: 컴포넌트의 개요 및 내부 클래스의 동작, 인터페이스로 외부와 통신하는 명세 정의 (컴포넌트ID, 컴포넌트명, 컴포넌트 개요, 내부 클래스, 인터페이스 클래스 등)

2) 인터페이스 명세서

: 컴포넌트 명세서의 항목 중 인터페이스 클래스의 세부 조건 및 기능에 대해 정의 (인터페이스ID, 인터페이스명, 오퍼레이션명 사전/사후조건, 파라미터, 반환값 등)

 

04-3 모듈 세부 설계서 확인

- 컴포넌트 명세서와 인터페이스 명세서로 인터페이스에 필요한 기능이 뭔지 확인

- 컴포넌트 명세서의 주요 기능 확인 / 인터페이스 명세서로 인터페이스의 주요 기능 확인

 

04-4 인터페이스 기능 구현 정의

: 인터페이스의 기능, 인터페이스 데이터 표준, 모듈 세부 설계서로 일관성있고 정형화된 인터페이스 기능 구현

- 일관성 있는 인터페이스 기능 구현 : 위에서 정의한 인터페이스 기능 구현에 대해 송수신 측에서 진행해야 할 절차까지 다시 세부적으로 정의

- 정의된 인터페이스 기능 구현 정형화

: 특정 하드웨어나 소프트웨어에 의존적이지 않도록 보기 쉽게 정형화 / 가독성을 위해 프로세스 형태나 유스케이스 다이어그램 형태로

 


 

[05 인터페이스 구현] ★★

 

05-1 인터페이스 구현

: 송수신 시스템 간의 데이터 교환 및 처리를 실현해주는 작업

- 정의된 인터페이스 기능 구현 -> 구현 방법 및 범위 고려해 인터페이스 구현 방법 분석 -> 이 정의를 기반으로 인터페이스 구현

 

05-2 데이터 통신을 이용한 인터페이스 구현

: 애플리케이션 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송 -> 이를 수신 측에서 파싱(Parsing)해서 해석함

*파싱(Parsing) : 주어진 문장이 정의된 문법 구조에 따라 완전한 문장으로 사용될 수 있는지 확인

- 주로 JSON이나 XML 형식의 데이터 포맷 사용해 인터페이스 구현함

*JSON(JavaScript Object Notation) : 속성-값 쌍으로 이루어진 데이터 객체 전달 위해 사람이 읽을 수 있는 텍스트 이용하는 개방형 표준 포맷

*XML(eXtensible Markup Language) : 특수한 목적을 갖는 마크업 언어를 만드는데 사용되는 다목적 마크업 언어

*AJAX : 자바스크립트를 사용한 비동기 통신 기술로 클라이언트와 서버간에 XML 데이터 주고 받는 기술

 

05-3 인터페이스 엔티티를 이용한 인터페이스 구현

: 인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어 상호 연계하는 방식

- 인터페이스 테이블을 주로 엔티티로 활용 (한 개 또는 송/수신용으로 각각 두어 활용)

- 송수신 인터페이스 테이블 구조는 유사, 상황에 따라 다를 수 있음

 


 

[06 인터페이스 예외 처리] ★

 

06-1 인터페이스 예외 처리의 개요

: 구현된 인터페이스가 동작 중 예외 상황이 발생했을 때

(인터페이스 구현 방식과 유사)

 

06-2 데이터 통신을 이용한 인터페이스 예외 처리

: JSON, XML 등 인터페이스 객체를 이용해 구현한 인터페이스의 동작이 실패할 경우 대비, 인터페이스 객체의 송수신 시 발생할 수 있는 예외 케이스를 모두 정의하고 각각에 처리방법 기술 / 시스템 환경, 송수신 데이터, 프로그램 자체 원인 등

 

<인터페이스 객체 송신 실패 시 예외 처리>

구분

예외 상황

예외 처리 방안

시스템 환경

네트워크 불안정

POST 이후 오류 메시지 확인 / 404 오류의 경우 네트워크나 서버 상태 확인

송신 데이터

송신 데이터 크기, 데이터 정합성(모순 없는 정확한 특성) 체크 오류 발생

송신 데이터의 원활한 전송 위해 미리 데이터 정제

데이터 송신 시 데이터 크기 먼저 체크하도록 함

프로그램 자체 원인

송신 데이터 생성 시 프로세스의 논리적 결함

논리적 결함 수정

충분한 테스트로 사전 예방

프로세스에 따라 예상되는 예외를 사용자에게 알림

 

<인터페이스 객체 수신 실패 시 예외 처리>

구분

예외 상황

예외 처리 방안

시스템 환경

네트워크 및 서버 불안정

입력 대기 큐에 요청 적재 -> 순차적으로 처리해 서버가 정상적으로 가동될 때 동작할 수 있도록 함

수신 데이터

특수 문자 등으로 파싱 시 오류 발생

특수문자 입력 케이스를 미리 파악, 다음 파싱 시 오류가 발생하지 않는 문자로 우선 대치, 이후 다시 처리

프로그램 자체 원인

수신 데이터 처리 시 프로그램의 논리적 결함

논리적 결함 수정

충분한 테스트로 사전 예방

프로세스에 따라 예상되는 예외를 사용자에게 알림

예외 사항이 수신되지 않도록 송신측 프로그램 수정

 

06-3 인터페이스 엔티티를 이용한 인터페이스 예외 처리

: 인터페이스 동작이 실패할 경우를 대비해 해당 엔티티에 인터페이스의 실패 상황과 원인 기재하도록 함 -> 이에 대한 조치 취할 수 있도록 사용자 및 관리자에게 알려주는 방식

 

<송신 인터페이스 테이블 이용한 인터페이스 기능 실패 시 예외 처리>

 

구분

예외 상황

예외 처리 방안

인터페이스 데이터 생성

선택 SQL, 프로그램 오류 / 데이터 객체 생성 오류

오류 발생 시 사용자에게 알림

예외 케이스와 재발 방지 위해 프로그램 개선

인터페이스 테이블에 입력

입력 SQL 오류 / 데이터 정합성 오류

입력 실패 결과와 원인을 인터페이스 테이블에 기록

입력실패 결과를 사용자에게 알림

예외 케이스와 재발 방지 위해 프로그램 개선

인터페이스 데이터 전송

DB connection 오류

통신 결과를 통해 인터페이스 실패 결과와 원인을 테이블에 기록, 관리자에게 이메일로 전송

데이터 전송 주체의 논리적 오류

인터페이스 실패 결과와 원인을 테이블에 기록, 관리자에게 이메일로 전송

예외 케이스와 재발 방지 위해 프로그램 개선

 

<수신 인터페이스 테이블 이용한 인터페이스 기능 실패 시 예외 처리>

구분

예외 상황

예외 처리 방안

인터페이스 데이터 읽기

데이터 선택 시 오류

수신 측 사용자에게 예외 사항 알림

인터페이스 테이블에 예외사항 기록

재발 없도록 프로그램 개선

데이터 트랜잭션

데이터 트랜잭션 시 프로그램의 논리상 오류

사용자에게 예외 사항 알림

인터페이스 테이블에 예외사항 기록

재발 없도록 프로그램 개선

처리 결과 응답

DB connection 오류

인터페이스 테이블에 예외사항 기록

송수신자에게 이메일 전송

 

 


 

 

[07 인터페이스 보안] ★★

 

07-1 인터페이스 보안의 개요

: 인터페이스는 시스템 모듈 간 통신 및 정보 교환을 위한 통로로 사용 -> 보안 기능이 충분하지 않다면 시스템 모듈 전체에 악영향

 

07-2 인터페이스 보안 취약점 분석

- 인터페이스 기능이 수행되는 각 구간들의 구현 현황 확인(송수신 영역의 구현 기술 및 특징), 보안 취약점 분석

- 영역별로 발생할 수 있는 보안 취약점을 시나리오 형태로 작성 (송신 데이터 선택, 송신 객체 생성, 인터페이스의 송수신 및 데이터 처리 결과 전송 등)

 

07-3 인터페이스 보안 기능 적용

: 분석한 인터페이스 기능과 보안 취약점 기반으로 인터페이스 보안 기능 적용

네트워크 영역 : 인터페이스 송/수신 간 스니핑 등을 이용한 데이터 탈취 및 변조 위협을 방지 위해 네트워크 트래픽에 대한 암호화 설정 (IPSec, SSL, S-HTTP 등의 방식 적용)

애플리케이션 영역 : 소프트웨어 개발 보안 가이드 참조, 코드 상의 보안 취약점 보완

데이터베이스 영역 : 데이터베이스, 스키마, 엔티티의 접근 권한과 프로시저(Procedure), 트리거 등 데이터베이스 동작 객체의 보안 취약점에 보안 적용

*IPsec(IP security) : IP패킷 단위의 데이터 변조 방지 및 은닉 기능 제공하는 프로토콜

*SSL(Secure Sockets Layer) : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성 보장하는 프로토콜

*S-HTTP(Secure Hypertext Transfer Protocol) : 클랄이언트와 서버 간에 전송되는 모든 메시지 암호화 하는 프로토콜

 

 


 

 

[08 연계 테스트]

 

08-1 연계 테스트의 개요

: 구축된 연계 시스템과 연계 시스템의 구성 요소(/수신 모듈, 연계 서버, 모니터링 현황)가 정상적으로 잘 동작 하는지 확인

연계 테스트 케이스 작성 -> 연계 테스트 환경 구축 -> 연계 테스트 수행 -> 연계 테스트 수행 결과 검증

 

08-2 연계 테스트 케이스 작성

: 연계 시스템 간의 데이터 및 프로세스 흐름 분석해 필요한 테스트 항목 도출

송수신용 연계 응용 프로그램 단위 테스트 케이스

: 송수신 시스템에서 확인해야 할 항목 도출 (단순 개별 데이터 유효값을 확인하는 경우의 수 / 데이터 간의 연관 관계 확인하는 경우의 수)

연계 테스트 케이스

: 송수신용 연계 응용 프로그램의 기능상 결함을 확인하는 단위 테스트 케이스(연계 테이블 간 송수신 절차의 앞뒤로 연결해 흐름 확인 가능하도록) 형태로 작성

 

08-3 연계 테스트 환경 구축

: 테스트의 일정, 방법, 절차, 소요 시간 등을 송수신 기관과의 협의 통해 결정

송수신용 어댑터 설치, 연계 위한 IP 및 포트 허용 신청, 연계를 위한 DB 개정 및 테이블과 데이터 생성

 

08-4 연계 테스트 수행

: 연계 응용 프로그램 실행해 연계 테스트 케이스의 시험 항목 및 처리 절차를 실제로 진행

송수신용 연계 응용 프로그램의 단위 테스트 먼저 수행 -> 연계 테스트 케이스에 따라 데이터 추출, 데이터 송수신, 데이터 반영 과정 등의 연계 테스트 수행

 

08-5 연계 테스트 수행 결과 검증

: 연계 테스트 케이스의 시험 항목 및 처리 절차를 수행한 결과 = 예상 결과 인지 확인

테스트 케이스 항목별 검증 방법

1) 운영 DB 테이블의 건수 확인

2) 테이블 또는 파일을 열어 데이터 확인

3) 파일 생성 위치에서 파일 생성 여부 및 파일 크기 확인

4) 연계 서버에서 제공하는 모니터링 현황 확인

5) 시스템에서 기록하는 로그 확인

 

 

 


 

 

[09 인터페이스 구현 검증] ★★

 

09-1 인터페이스 구현 검증의 개요

: 인터페이스가 정상적으로 문제 없이 작동하는지 확인

인터페이스 구현 검증 도구와 감시 도구 이용해 인터페이스의 동작 상태 확인

 

09-2 인터페이스 구현 검증 도구

인터페이스 단위 기능

시나리오 등을 기반으로 하는 통합 테스트(테스트 자동화 도구 주로 이용)

- xUnit : 자바, C++, 닷넷 등의 언어를 지원하는 단위 테스트 프레임워크

- STAF : 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

- FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인

- NTAF : FitNesse의 협업 기능 + STAF의 재사용 및 확장성 = NHN(Naver)의 테스트 자동화 프레임워크

- Selenium : 다양한 브라우저 및 개발 언어 지원하는 웹 애플리케이션 테스트 프레임워크

- watir : Ruby(인터프리터 방식의 객체지향 스크립트 언어)를 사용하는 애플리케이션 테스트 프레임워크

 

09-3 인터페이스 구현 감시 도구

: APM을 사용해 감시(Monitoring)

애플리케이션 성능 관리 도구로 DB, 웹 애플리케이션의 트랜잭션, 변수값, 호출 함수, 로그 및 시스템 부하 등 조회 및 분석 가능 (ex 스카우터, 제니퍼)

*스카우터 : 애플리케이션 및 OS 자원에 대한 모니터링 기능 제공하는 오픈소스 APM

*제니퍼 : 애플리케이션의 개발부터 테스트, 오픈, 운영, 안정화까지 전 단계의 성능을 모니터링하고 분석 해주는 APM

 

09-4 인터페이스 구현 검증 도구 및 감시 도구 선택

인터페이스 명세서의 세부 기능을 참조 -> 인터페이스의 정상적 동작 여부 확인 위한 검증 도구와 감시 도구 요건 분석 -> 시장 및 솔루션 조사로 적절한 도구 선택

 

09-5 인터페이스 구현 검증 확인

구현 검증 도구로 외부 시스템과 연계 모듈의 동작 상태 확인

전반적인 인터페이스 동작 프로세스상에서 예상되는 결과값이 실제 검증값과 동일한지 비교

 

09-6 인터페이스 구현 감시 확인

구현 감시 도구로 외부 시스템과 연계 모듈의 정상 동작 확인

인터페이스 동작 여부, 에러 발생 여부 등 감시 도구에서 제공해 주는 리포트 활용

 

 


 

[10 인터페이스 오류 확인 및 처리 보고서 작성]

 

10-1 인터페이스 오류 확인 및 처리 보고서의 개요

: 인터페이스는 독립적으로 떨어진 시스템 간의 연계를 담당하기에 인터페이스에서 발생하는 오류는 중요한 오류 -> 사용자 또는 관리자는 이를 확인하고 오류 처리 보고서를 작성해야함

 

10-2 인터페이스 오류 발생 즉시 확인

: 화면에 오류 메시지를 표시하고 SMS, 이메일을 발송함

 

10-3 주기적인 인터페이스 오류 발생 확인

: 시스템 로그나 인터페이스 오류 관련 테이블을 주기적으로 확인

발생하는 오류에 대한 정보가 주기적으로 축적될 시 오류의 원인 파악 용이 -> 오류의 재발 방지

 

10-4 인터페이스 오류 처리 보고서 작성

: 인터페이스 작동 시 발생하는 오류의 발생 및 종료 시점, 원인 및 증상, 처리사항 등을 정리한 문서 자성

신속히 작성, 조직의 보고 체계를 따름

일반적인 정형화된 형식 X

오류 관련 사항을 시간 경과에 따라 기록

'정처기' 카테고리의 다른 글

[2과목] 4. 애플리케이션 테스트 관리  (0) 2021.02.02