(정보처리기사 실기) 인터페이스 구현
인터페이스 설계 확인
인터페이스 설계서 : 이기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 교환되는 데이터, 업무, 송수신 주체등이 정의된 문서
인터페이스 목록
-인터페이스 번호 : 같은 종류의 인터페이스 별로 부여된 번호
-일련번호 : 인터페이스 번호 내에서 부여된 순차적인 번호
-인터페이스 ID : 인터페이스를 구분하기 위한 식별자
-인터페이스 명 : 인터페이스의 목적을 나타냄
-송신 시스템 : 데이터 전송
-수신 시스템 : 수신한 데이터를 이용
-대내외 구분 : 기업 내부 시스템 또는 내/외부 시스템 간 발생 여부
-연계 방식 : 웹서비스, FTP, db link, socket등 아키텍처에서 정의한 인터페이스 방식
-통신 유형 : 동기/ 비동기
-처리 유형 : 실시간, 배치, 지연처리 등
-주기 : 발생 주기
-데이터 형식 : 고정길기, xml 같은 데이터 포맷
-요구사항 ID
인터페이스 명세 : 인터페이스가 되는 데이터, 데이터 형식, 송수신 시스템의 정보등을 구체화
상세 기능 인터페이스 정의서 : 데이터 송/수신 시스템간의 데이터 저장소와 속성등의 상세내역
상세 기능 인터페이스 정의서 주요 항목
- 인터페이스 ID : 인터페이스 구분을 위한 식별자
- 인터페이스 명 : 인터페이스를 나타내는 고유 명칭
- 오퍼레이션 명 : 해당 인터페이스의 세부 동작 명칭
- 오퍼레이션 개요 : 세부 동작에 대한 설명
- 사전 조건 : 정상적으로 작동하기 위한 사전 완료 조건 기술
- 사후 조건 : 동작이 정상적으로 작동된 이후에 발생되는 조건 기술
- 파라미터 : 구성 항목 값
- 변환 값 : 전송 후 반환 값
정적 동적 모형을통한 인터페이스 설계서 : 각 시스템의 구성요소를 표현한 다이어그램을 활용하여 시스템, 컴포넌트별 인터페이스와 요구조건을 확인
인터페이스 설계서의 내부 외부 모듈의 기능 확인
인터페이스 정의서를 통한 기능 확인
대상
- 시스템 인터페이스 정의서 : 외부 및 내부의 기능 확인
- 상세 기능 인터페이스 정의서 : 외부 및 내부의 상세 기능 확인
정적/동적 모형을 통한 기능 확인 : 다이어그램을 통해 내/외부 모듈의 기능 확인
공통적으로 제공되는 기능과 데이터의 인터페이스 확인
-인터페이스 설계서를 통한 공통 기능 확인 : 공통적으로 제공되는 기능 확인
-인터페이스 설계서를 통한 데이터 인터페이스 확인 : 공통 기능을 식별하고 이를 중심으로 데이터 인터페이스 항목 확인
외부, 내부 모듈 연계 방법 : EAI와 ESB
EAI : 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달,연계,통합 하는 솔루션
EAI 구축 유형
- 포인트 투 포인트 (Point to point) : 1:1 통합방법
- 허브 앤 스포크( hub & spoke) : 허브 시스템을 이용, 허브 장애시 전체 에러
- 메시지 버스 (message bus) : 애플리케이션 사이에 버스를 두는 미들웨어 통합 방식
- 하이브리드(hybrid) : 그룹 내는 허브 앤 스포크, 그룹 간에는 메시지 버스 방식 사용
ESB : 서로 다른 플랫폼 및 애플리케이션들 간 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향
버스를 중심으로 호환, 애플리케이션 통합을 느슨한 결합 방식으로 지원
느슨한 결합 : 서비스를 변경하더라도 연결된 다른 서비스에 영향을 주지 않는 구조
EAI 와 ESB 특징
EAI ESB
기업 내부의 이기종 모듈 통합 기업간의 서비스 교환을 위한 통합
어댑터, 브로커, 메시지 큐 웹서비스, 지능형 라우터, 포맷 변환
단단한 통합 느슨한 통합
기업 내부 기업 외부
송/수신 시스템 간 인터페이스 표준 확인 절차
1.데이터 인터페이스 입/출력 의미 파악
2.데이터 인터페이스 입/출력 의미 파악을 통한 데이터 표준 확인
3.인터페이스 데이터 항목 식별
4.데이터 표준 최종 확인
인터페이스 기능 구현
인터페이스 기능 구현 : 연계 대상 모듈간의 세부 설계서를 확인하여 일관되고 정형화 된 기능 구현
세부 설계서 종류
- 컴포넌트 명세서 : 컴포넌트의 개요, 내부 클래스의 동작, 인터페이스를 통해 외부와 통신하는 명세
-인터페이스 명세서 : 인터페이스 클래스의 세부적인 조건 및 기능을 명시한 명세서
- 인터페이스 ID
- 인터페이스 명
- 오퍼레이션 명
- 오퍼레이션 개요
- 사전 조건
- 사후 조건
- 파라미터
- 변환 값
인터페이스 기능 정의 사례
송신 측에서 필요한 대상을 선택하여 수신 측에 데이터 전송 : 대상자 선택, 인터페이스 데이터 생성
필요 항목에 대해서 데이터를 전달 : 인터페이스 데이터 전송, 인터페이스 데이터 수신
전달 후 수신 측으로부터 전달 여부에 대한 값을 반환 : 인터페이스 수신 결과 생성, 전송 , 수신측에서 처리한 인터페이스 결과 반환
정의된 인터페이스 기능에 대한 정형화
-기능을 표준화하고 사람들이 보기 쉽게 정형화
-하드웨어나 소프트웨어에 의존적이지 않게 작성하고 가독성을 높이기 위해 유스케이스 다이어그램으로 작성
정의된 인터페이스 기능 구현 분석
송신 측에서 필요한 대상을 선택하여 수신 측에 데이터 전송
-대상자 선택
-인터페이스 데이터 생성 : 제이슨 또는 테이블 형식에 맞게
-인터페이스 데이터 전송 요청
필요 항목에 대해서 데이터를 전달
-인터페이스 데이터 전송 : 레스트 방식, DB커넥션을 이용한 DB프로시저, 트리거 활용
-인터페이스 데이터 수신
-인터페이스 데이터 파싱
-인터페이스 데이터 검증
-후속 기능 수행
전달 후 수신 측으로부터 전달 여부에 대한 값을 반환
-인터페이스 수신 결과 생성, 전송
-수신측에서 처리한 인터페이스 결과 변환
인터페이스 구현 : 데이터 통신 이용 방법, 인터페이스 개체를 사용하여 구현하는 방법
데이터 통신을 이용한 인터페이스 구현
- 인터페이스 객체 생성 구현 : SQL을 통하여 선택하여 제이슨으로 생성
-인터페이스 객체 전송 후 전송 결과를 수신측에서 반환 받도록 처리 : AJAX 기술을 이용하여 수신측에 송신
수신측의 결과값은 송신측에 True / False 값 전달
AJAX : 자바 스크립트를 사용한 비동기 처리 통신 기술, 클라이언트와 서버가 XML데이터를 주고 받음
인터페이스 개체를 사용하여 인터페이스 구현
-송신 시스템의 인터페이스 테이블 : 데이터 전송을 위해 DB커넥션이 수신측 인터페이스 테이블과 연계 되게 구현
프로시저, 트리거, 배치작업으로 데이터 전송
-수신 시스템의 인터페이스 테이블 : 사전에 정의된 데이터 트랜잭션을 진행할 수 있게 구현
인터페이스 예외 처리 방안
데이터 통신을 사용한 인터페이스에서 예외 처리 사례
송신측에서 예외 처리 방법
시스템 환경 : 네트워크 불안정(404 오류)
프로그램 자체 원인 : 프로세스의 논리적 결함
수신측에서 예외 처리 방법
시스템 환경 : 네트워크 및 서버 불안정
수신 데이터 : 데이터 정합성 체크
프로그램 자체 원인 : 수신 인터페이스 데이터 처리 시 프로그램의 논리적 결함
인터페이스 개체를 사용하는 인터페이스에서 예외 처리 사례
송신 인터페이스 테이블에서 예외 처리 방법
-인터페이스 데이터 생성
-인터페이스 테이블 생성
-인터페이스 데이터 전송
수신 인터페이스 테이블에서 예외 처리 방법
-인터페이스 데이터 읽기
-데이터 트랜잭션
-처리 결과 응답
인터페이스 보안 기능 적용
인터페이스 보안 취약점
-데이터 통신 시 데이터 탈취 위협 : 송/수신 시스템 간의 데이터 통신 시 스니핑을 통해 데이터 감청 위협 존재
스니핑 : 직접 공격하지 않고 데이터만 몰래 들여다 보는 기법
-데이터 통신 시 데이터 위/변조 위협
시큐어 코딩 가이드
-입력 데이터 검증 및 표현
-보안 기능 : 인증,접근제어,기밀성,암호화 등의 적절
-시간 및 상태 : 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용
-에러 처리
-코드 오류
-캡슐화
-API 오용 : 취약 API 검증
직렬화 : 데이터 구조나 오브젝트를 다른 컴퓨팅 환경으로 재구성 가능할 수 있는 포맷
데이터베이스 암호화 알고리즘 : 양방향 암호화 알고리즘인 대칭키, 비대칭키, 일방향인 해시 알고리즘이 있다.
-대칭키 암호화 알고리즘 : 암/복호화에 같은 암호키 사용 (ARIA, SEED)
-비대칭키 암호화 알고리즘 : 공개키와 비밀키를 사용하는 알고리즘 (RSA, ECC, ECDSA)
-해시 암호화 알고리즘 : 원래 값을 알아낼 수 없는 일방향 알고리즘 (SHA-256,512, HAS-160)
데이터베이스 암호화 기법
-API 방식 : 애플리케이션 레벨에서 암호 모듈 작용
-Plug In 방식 : DB레벨의 확장성 프로시저 이용
-Hybrid 방식 : API + Plug In 방식
데이터 암호화 전송 : IPSec, SSL/TLS
IPSec : IP 계층(3계층)에서 무결성과 인증을 보장, 기밀성 보장 프로토콜
SSL/TLS : TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송시 기밀성 보장 공개키 기반 프로토콜
네트워크 구간에 대한 보안 기능 적용 사례
전송 계층 보안
-상대방 인증 :IPSec AH, IKE
-데이터 기밀성 보장 : IPSec ESP
AH : 체크섬을 이용한 데이터 인증, 무결성 보장
IKE : 키 교환 알고리즘
ESP : 암호화 알고리즘을 활용한 캡슐화 기반 기밀성 보장 프로토콜
응용 계층 보안
-서버만 공개키 인증서를 가지고 통신 : SSL 인증
-연결 단위 외 메시지 단위로도 인증 및 암호화 필요 : S-HTTP로 메시지 암호화
애플리케이션 보안 기능 적용
-비인가자 접근 권한 관리
-악의적 코드 삽입 금지
-악의적 시도 시 에러 처리
데이터베이스 보안 기능 적용
-데이터베이스 접근 권한
-악의적 코드 삽입 금지
-민감 데이터 관리
-악의적 시도시 에러 처리
인터페이스 구현 검증
인터페이스 구현 검증 도구
-인터페이스 동작 검증 및 모니터링
-기능단위로 단위 테스트, 시나리오를 통한 통합 테스트
인터페이스 구현 검증 도구 종류
-xUnit : 자바, c++, .net등을 단위 테스트 지원
-STAF : 분산 환경에 데몬을 사용하여 테스트 수행
-FitNesse : 웹 기반 테스트 케이스 설계/실행/결과 확인
-Selenium : 웹 애플리케이션 테스트 프레임 워크
-watir : 루비 기반 웹 애플리케이션 프레임 워크
인터페이스 감시 도구
-인터페이스가 잘 동작하는지 확인을 위해 모니터링 툴(APM)을 사용
-데이터 베이스, 웹 애플리케이션의 트랜잭션, 변숫값, 호출 함수 등을 조회
- 대표적 도구 스카우터
인터페이스 구현 검증 수행
1. 최초 데이터 입력
2. DB에서 조회
3. 송신 객체 생성
4. 송신 객체 전송
5. 수신 및 파싱
6. 데이터 트랜잭션
7. 수신 결과 반환
인터페이스 오류 처리 방법
- 사용자 화면에서 오류를 인지하도록 구현
- 인터페이스 오류 로그 생성
- 인터페이스 관련 테이블에 오류 사항 기록
인터페이스 오류 처리 보고 시기에 따른 보고서
- 최초 발생 보고
- 오류 처리 경과보고
- 완료 보고