정보처리기사/실기

(정보처리기사 실기) 인터페이스 구현

hot_py 2020. 7. 21. 11:55

 

인터페이스 설계 확인

인터페이스 설계서 : 이기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 교환되는 데이터, 업무, 송수신 주체등이 정의된 문서

 

인터페이스 목록

-인터페이스 번호 : 같은 종류의 인터페이스 별로 부여된 번호

-일련번호 : 인터페이스 번호 내에서 부여된 순차적인 번호

-인터페이스 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. 수신 결과 반환

 

인터페이스 오류 처리 방법

- 사용자 화면에서 오류를 인지하도록 구현

- 인터페이스 오류 로그 생성

- 인터페이스 관련 테이블에 오류 사항 기록

 

인터페이스 오류 처리 보고 시기에 따른 보고서

- 최초 발생 보고

- 오류 처리 경과보고

- 완료 보고