인터페이스 구현이란 모듈간의 분산이 이루어진 경우를 포함하여 단위 모듈간의 데이터 관계를 분석하고 이를 기반으로 한 매커니즘을 통해 모듈간의 효율적인 연계를 구현하고 검증하는 능력이다.
-인터페이스 설계 확인
1. 인터페이스 기능 확인
1.1 인터페이스 기능 확인 방법
1. 인터페이스 기능 확인이란?
내/외부 모듈간에 연계 기능을 인터페이스 기능이라고 한다.
2. 인터페이스 기능 확인 방법
상세 인터페이스 기능은 인터페이스 설계서를 보고 확인한다.
시스템 정적/동적 기능분석을 통하여 내/외부 인터페이스 기능을 확인한다.
인터페이스 되는 데이터 유형, 값의 범위, 예외처리 규칙을 확인한다.
1.2 인터페이스 설계서를 통한 기능 확인
1. 인터페이스 설계서란?
인터페이스 설계서는 이기종 시스템 또는 컴포넌트 간 데이터 교환 및 처리를 위한 목적으로 각 시스템의 교환 데이터 및 업무, 송/수신 주체 등이 정의 되어 있다.
인터페이스 설계서에는 인터페이스 목록과 인터페이스 명세서가 있다.
2. 인터페이스 목록
인터페이스 목록은 내/외부 인터페이스 대상들을 리스트화 하였다.
3. 인터페이스 명세서
인터페이스 목록에 정의도니 리스트에 대해서 만든 상세 설계서를 말한다.
4. 인터페이스 흐름도
인터페이스 데이터의 흐름을시간 순서로 표현한 것이다.
1.3 정적/동적 기능 분석을 통한 인터페이스 기능 확인
1. 시스템 정적/동적 모형 분석을 통한 인터페이스 기능 확인
시느템 구성요소 간에 트랜잭션을 분석하여 상호 교호나하는 기능에서 인터페이스 기능을 확인한다.
2. 데이터 표준 확인
2.1 인터페이스 데이터 표준 개요
1. 인터페이스 데이터 표준이란?
연계가 되어야 할 범위의 데이터들의 형식과 표준을 정의하는 것이다.
송신과 수신 시스템 간에 데이터 형식이 동일한 경우 공통 영역을 추출하여 표준화를 할 수 있지만 송신과수신 시스템 간에 데이터 형식이 다를 경우 표준화를 위하여 일부 시스템의 데이터 형식 변환이 필요하다.
2. 인터페이스 데이터 표준 확인
인터페이스 구현 전에 개발자는 인터페이스 데이터 표준을 확인한다.
인터페이스 구현 시 데이터 표쥰을 준수하여 구현한다.
Json, DB, XMl 등 다양한 형태로 인터페이스 모듈의 표현이 가능하다.
2.2 송/수신 시스템간 데이터 매핑 방법 확인
1. 송신 시스템 코드를 수신 시스템 코드로 매핑
송/수신 시스템간 데이터가 표준화가 되어 있지 않다면 직접 코드 변환을 위한 코드매핑 테이블을 작성해야 한다.
2. 송/수신 시스템의 코드를 통합하여 표준화 후 매핑
송/수신 시스템 간 데이터 표준화가되어 있다면 이를 기준으로 송신, 수신 시스템 간 코드 매핑 테이블을 작성한다.
2.3 내/외부 인터페이스 기술 표준 확인
1. EAI 방식
기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션이다.
2. ESB 방식
ESB는 애플리케이션 간의 통합 측면에서 EAI와 유사하다고 볼 수 있으나 애플리케이션 보다는 서비스 중심의 통합을 지향하는 아키텍쳐이다.
웹서비스 중심으로 표준화된 데이터, 버스르 통해 이기종 애플리케이션을 유연하게 통합하는 핵심플랫폼 기술이다.
-인터페이스 기능 구현
1. 인터페이스 보안
1.1 인터페이스 보안 취약점
1. 데이터 통신 시 데이터 탈취 위협
인터페이스를 위하여 송/수신 시스템간에 데이터 통신 시 중간에서 통신 내역을 감청하여 데이터를 유출 시킨다.
2. 데이터 통신 시 데이터 위변조 위협
인터페이스를 위하여 송/수신 시스템 간에 데이터 통신 시 데이터의 위/변조 위협
1.2 인터페이스 시큐어 코딩 가이드
1. 인터페이스 보안 기능
민감정보가상화, 필드 암복호화 등 인터페이스 보안 기능 제공
암호화 알고리즘은 DES 보다 AES 알고리즘을 적용한다.
2. 중요 인터페이스 데이터 암호화 저장
개인정보, 금융정보, 패스워드 등 중요 인터페이스 정보는 암호화하여 저장한다.
3. 중요 인터페이스 데이터 암호화 전송
민감한 정보를 통신 채널을 통하여 내보낼 때에는 반드시 암호화 과정을 거쳐야하며, 필요한 경우 SSL 또는 HTTPS 등과 같은 보안 채널을 사용한다.
2. 인터페이스 모듈 구현
구성된 연계 매커니즘에 따라 내외부 연계 모듈 구현을 한다.
내외부 연계 모듈은 EAI방식과 웹 서비스 방식이 가장 많이 사용된다.
2.1 EAI/ESB 방식
1. EAI/ESB 방식이란?
EAI/ESB 방식은 트리거를 자바와 같은 프로그램 언어를 사용한 응용 애플리케이션으로 구현하거나, 연계 테이블 혹은 연계 파일을 이용하여 송신에서 수신시스템으로 전송하는 방식이다.
송신시스템의 운영 데이터베이스에서 트리거를 이용하여 전송할 데이터를 연계 데이터베이스로 전달하면 EAI/ESB Adapter에서 이를 네트워크를 통하여 수신 시스템의 수신 Adapter까지 전송한다. 수신 시스템의 연계 데이터베이스에서는 수신 Adapter로 전송된 데이터를 운영 데이터베이스로 전달한다.
2. 연계 데이터베이스 또는 계정 생성
송신 시스템과 수신 시스템에 연계 데이터베이스와 계정을 생성한다.
운영 데이터베이스의 사용자와 연계를 위한 사용자는 생성되는 스키마의 목적이 다르므로 물리적, 논리적으로 분리하여 관리한다.
3. 연계 테이블 생성
생성한 연계 데이터베이스 사용자 계정으로 연계를 위한 인터페이스 테이블, 송/수신 이력 및 오류 확인을 위한 로그 테이블을 생성한다.
코드 매핑 및 변환을 위한 매핑 테이블, 오류 처리를 위한 오류 코드 테이블 등을 생성한다.
4. 연계 응용 프로그램 구현
송신 시스템에서는 운영 데이터베이스에서 트리거를 구현하여 연계 데이터베이스 전송에 필요한 데이터를 복사한다.
트리거를 사용하지 않고 Java 혹은 C#과 같은 응용 애플리케이션 코드를 이용하여 운영 데이터베이스에서 연계 데이터베이스로 전송 데이터를 복사하기도 한다.
특히 연계 데이터 보안 적용을 위해서는 Java 혹은 C#과 같은 응요 애플리케이션 코드를 이용하여 암호화 알고리즘을 적용한다.
2.2 웹서비스 방식
1. 웹서비스 방식이란?
웹서비스는 데이터의 소비자와 공급자 간에 SOAP, WSDL, UDDI 기술을 이용하여 데이터를 주고 받는 기술이다.
2. 웹서비스 방식의 연계 모듈 구현 환경 구축 절차
송신은 웹서비스 소비자, 수신은 웹서비스 공급자가 된다.
웹서비스 방식은 EAI/ESB방식과는 달리 실제 전송이나 전송 이력에 대한 기록 및 모니터링 기능을 별도로 구현해야한다.
송신 시스템에서는 송신 연계 파일, 로그파일, 오류 로그 파일이 생성될 위치와 파일명을 정의한 후 디렉토리를 생성한다.
수신 시스템에서는 수신 연계파일, 로그파일, 오류 로그 파일이 생성될 위치와 파일명을 정의한 후 디렉토리를 생성한다.
송신 시스템에서 운영DB로 부터 연계 데이터를 추출하여 송신파일을 XML 형식을 생성하는 Java 프로그램을 구현한다.
구현된 서비스는 주기적으로 실행하기 위해서는 운영체제의 크론 또는 데이터베이스 관리 시스템의 잡스케줄러에 등록한다.
3. 연계 파일 전송 및 수신 시스템의 DB반영 서비스 호출 처리
SOAP 프로토콜을 이용하여 송신에서 수신 시스템으로 연계 파일을 전송한다.
SOAP 프로토콜의 SOAP Header 와 Body에 전송하려는 데이터를 넣어서 전송한다. 또는 SOAP Attachment에 파일을 첨부하여 전송하는 방법도 있다.
전송 시스템과 수신 시스템 간에 동일한 WSDL을 작성하여 공유한다. WSDL에는 수신 시스템에 연계 파일을 전송 후 연계 파일의 내용을 수신 시스템 운영 DB에 반여하는 서비스의 위치, 서비스명 등이 기술되어 있다.
4. 수신 시스템의 연계 응용 프로그램 구현
수신 시스템에서는 웹서비스로 전달 받은 파일을 운영 DB에 반영해야 한다. 이를 위하여 Java 혹은 C# 같은 언어를 활용하여 프로그램을 구현하여 반영한다.
3. 소프트웨어 연계 테스트
내외부 연계 모듈 구현에서 소프트웨어 연계 테스트는 송신 시스템간 수신 시스템 간에 연계테스트를 의미한다.
송신 시스템에서 중계 시스템을 거쳐서 수신 시스템까지 연계 하였을 경우 데이터의 정합성 및 데이터 전송 여부를 테스트 한다.
3.1 소프트웨어 연계 테스트
1. 소프트웨어 연계 테스트 구간
소프트웨어 연계 테스트 구간은 송신 시스템에서 연계 서버 또는 중계 서버를 거치고 수신시스템까지 데이터가 전달되는가를 테스트한다.
2. 소프트웨어 연계 단위 테스트
소프트웨어 연계 단위 테스트는 연계 자체만을 테스트한다. 송신 시스템에서 연계 데이터를 추출 및 생성하고 이를 연계 테이블 간 송수신을 한다.
연계 서버 또는 중계 서버에서는 수신 된 연계 테이블을 생성한다.
수신 시스템에서는 연계 테이블에서 연계 데이터를 수신 시스템으로 로드 한다.
최종적으로 수신 시스템의 운영 DB에 반영이 제대로 되는지 테스트 한다.
3. 소프트웨어 연계 통합 테스트
비즈니스 프로세스 흐름에 맞춰 데이터 생성, 전송, 저장까지 한다.
보다 큰 통합 기능 테스트의 일부로서 연계 통합 테스트를 수행한다.
인위적인 조작없이 비즈니스프로세스 흐름에 맞춰 연계 기능을 점검한다.
최종적으로 수신 시스템의 운영 DB에 반영된 데이터를 검색 및 활용한다.
3.2 소프트웨어 연계 테스트 케이스
1. 소프트웨어 연계 테스트 케이스 작성 방법
연계 테스트 케이스는 송신 시스템과 수신 시스템에서 확인해야 할 사항을 각각 도출하며, 송/수신 시스템 각각에서 단순 개별 데이터의 유효값을 체크하는 경우의 수와 데이터 간의 연관 관계를 체크하는 경우의 수로 식별하여 작성한다.
단순 개별 데이터의 유효값은 코드일 경우, 코드 테이블에 등록된 값의 여부 또는 유효 데이터 타입, 길이 ,필수 입력 드으이 체크를 의미한다.
데이터 간의 연관 관계 체크는 연계 서버 또는 중계 서버를 통하여 연관 관계가 주어진 규칙대로 데이터 변환을 시켜 주는지를 점검한다.
2. 송신용 연계 응용 프로그램의 단위 테스트 케이스 작성
송신시스템에서 연계 데이터 추출이 제대로 되었는지, 연계 데이터가 수신시스템에 맞게 코드 변환이 제대로 되었는지 등을 테스트 한다.
3. 연계 통합 테스트 케이스 작성
송신용 연계 응용 프로그램과 수신용 연계 응용 프로그램의 기능 위주 결함을 확인하는 통합 테스트 케이스로 작성한다.
제품소프트웨어 패키징이란 개발이 완료된 제품소프트웨어를 고객에게 전달하기 위한 형태로 패키징 하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성하며, 제품 소프트웨어에 대한 패치 개발과 업그레이드를 위해 버전 관리를 수행하는 능력이다.
- 제품 소프트웨어 패키징
1. 애플리케이션 패키징
1.1 애플리케이션 패키징 개요
1. 애플리케이션 패키징이란?
애플리케이션 패키징은 개발이 완료된 소프트웨어를 고객에게 전달하기 위하여 패키징, 설치 및 사용 매뉴얼을 작성하는 활동이다.
2. 애플리케이션 패키징 특징
애플리케이션 패키징은 개발자가 아닌 사용자 중심으로 진행된다.
신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징한다.
고객 편의를 위해, 신규/변경 이력을 확인하고, 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리해간다.
사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행된다.
1.2 사용자 중심의 애플리케이션 패키징
1. 사용자 실행 환경 이해
고객 편의성을 위해 사용자 실행 환경을 우선 고려한다 운영체제 , 실행 환경, 시스템 사용, 개발 언어, 고객의 사용방법 까지 상세 분석하여 실행 환경을 사전 정의한다.
다양한 실행 환경이 나오면 별도의 애플리케이션 패키징 작업이 필요하다.
2. 사용자 관점의 애플리케이션 패키징 고려 사항
사용자 운영체제, 시스템 사양 등 최소환경
직관적인 화면을 고려하고 매뉴얼과 일치시켜 패키징 작업을 하낟.
애플리케이션은 하드웨어와 함꼐 통합 적용될 수 있도록, 패키징은 Managed Service 형태로 제공한다.
다양한 사용자 요구사항을 반영하기 위해 패키징 변경 및 개선 관리를 고려한다.
1.3 애플리케이션 패키징 순서
1. 기능 식별
신규 개발 소스의 목적 및 기능을 식별한다.
입출력 데이터 , 전체적인 기능 정의 및 데이터 흐름을 식별한다.
2. 모듈화
모듈 단위 분류 및 모듈화를 순서에 맞게 진행한다.
수행을 위한 기능 단위 및 서비스 분류와 패키징 개념에서의 기능의 공유와 재활용 단위를 수행한다.
3. 빌드 진행
애플리케이션 빌드 도구를 활용한 빌드를 단위별로 진행한다.
신규 개발 소스 및 컴파일 결과물을 준비한다.
빌드 도구 확인 및 정상 수행여부를 확인한다.
4. 사용자 환경 분석
고객 편의성을 위한 사용자의 요구사항 및 사용 환경을 사전에 분석한다.
사용자 pc 운영 체제, 서버 사양, 네트워크 환경 등을 분석한다.
5. 패키징 적용 시험
최종 패키징에 대해서 사용자 입장에서 불편한 점을 체크한다.
사용자 환경과 똑같은 환경에서 패키징 적용을 해본다.
화면 사용 및 시스템 사의 편의성을 체크한다.
6. 패키징 변경 개선
사용자 입장을 반영하여 패키징에서 변경 및 개선을 진행한다.
사용자 최소 pc사양에서 서비스 가능한 수준의 개선 포인트를 도출한다.ㅇ자에게전
1.4 애플리케이션 릴리즈 노트
1. 애플리케이션 패키징 릴리즈 노트란?
애플리케이션 최종 사용자에게 전달되는 제품에 대한 공유 정보이다.
애플리케이션 패키징 버전별 릴리즈 노트는 제품의 주요 변경 사항을 담고있다.
2. 애플리케이션 패키징 릴리즈 노트 작성 항목
릴리즈 노트는 애플리케이션 최종 사용자에게 전달되는 제품에 대한 공유 정보이다.
2. 애플리케이션 배포 도구
애플리케이션 배포 도구란 배포를 위한 패키징 시에 디지털 컨텐츠의 지적 재산권을 보호하고 관리하는 기능을 제공하며, 안전한 유통과 배포를 보장하는 도구이자 솔루션이다.
2.1 애플리케이션 배포 도구 활용시 고려사항
1. 반드시 암호화/보안을 고려한다.
2. 추가로 다양한 이기종 연동을 고려한다.
3. 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려한다.
4. 애플리케이션의 종류에 적합한 암호화 알고리즘을 적용한다.
5. 지속적 배포 고려
3. 애플리케이션 모니터링 도구
제품소프트웨어 패키징에서 애플리케이션 모니터링 도구가 필요한 이유는 사용자 환경에 제품소프트웨어가 설치되었을 때에 애플리케이션 성능을 모니터링하여 제품의 장애를 미리 예방하기 위함이다.