본문 바로가기
2020 정보처리기사

[정보처리기사 실기] 인터페이스 구현

by SungJe 2020. 7. 7.

1. 인터페이스 설계서 확인하기

인터페이스 설계서

  • 개요 : 시스템 사이의 데이터 교환 및 처리를 위해 교환 데이터 및 관련 업무, 송·수신 시스템 등에 대한 내용을 정의한 문서

  • 종류

    • 시스템 인터페이스 설계서 : 시스템 인터페이스 목록을 만들고 각 인터페이스 목록에 대한 상세 데이터 명세를 정의

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

    • 정적·동적 모형을 통한 인터페이스 설계서 : 시스템의 구성 요소를 표현한 다이어그램을 이용하여 만든 문서

    • 데이터 정의를 통한 인터페이스 설계서 : 제공하는 인터페이스 서비스에 대한 상세 명세를 표현하는 산출물

 

내외부 모듈 연계

  • EAI(Enterprise Application Integration)
    • 개요 : 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합 솔루션
    • 구축 유형
유형 개념도 설명 특징
Point-to-Point
중간에 미들웨어를 두지 않고 각 애플리케이션 간 Point to Point 형태로 연결 솔루션 구매 없이 통합
상대적으로 저렴하게 통합 가능
변경, 재사용 어려움
Hub&Spoke
단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식 모든 데이터 전송 보장
확장, 유지 보수 용이
허브 장애 시 전체 영향
Message Bus
(ESB 방식)
애플리케이션 사이에 미들웨어(버스)를 두어 처리 어댑터가 각 시스템과 버스를 두어 연결하므로 뛰어난 확장성, 대용량 처리 가능
미들웨어를 통한 통합
Hybrid
그룹 내에는 Hub&Spoke 방식, 그룹 간에는 Message Bus 방식을 사용 표준 통합 기술, 데이터 병목 현상 최소화
  • ESB(Enterprise Service Bus)
    • 개요 : 애플리케이션 간 표준 기반의 인터페이스를 제공하는 솔루션, EAI와 유사하지만 서비스 중심의 통합을 지향
    • 구성

 

인터페이스 데이터 표준

  • 개요 : 모듈 간 인터페이스에 사용되는 데이터의 형식을 표준화 하는 것

  • 확인 순서

    1. 데이터 인터페이스 확인 : 입·출력 값의 의미와 데이터의 특성 등을 구체적으로 확인

    2. 인터페이스 기능 확인 : 인터페이스 기능 구현을 위해 필요한 데이터 항목을 확인

    3. 인터페이스 데이터 표준 확인 : 데이터 표준과 데이터 항목들을 검토하여 최족적으로 확인

 

2. 인터페이스 기능 구현하기

인터페이스 구현

  • 데이터 통신을 통한 구현 : 인터페이스 형식에 맞춘 데이터 포맷을 전송하고 수신 측에서 파싱하여 해석

    • JSON(JavaScript Object Notation) : 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 객체를 전달하기 위한 개방형 표준 포맷

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

  • 인터페이스 엔티티를 통한 구현 : 인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어 상호 연계

 

인터페이스 예외 처리

  • 데이터 통신을 이용한 예외 처리 : 객체를 이용해 구현한 인터페이스 동작이 실패할 경우를 대비

    • 송신 실패 시 예외 처리

예외 상황 예외 처리 방안
네트워크 불안정 네트워크 또는 서버 상태를 확인
송신 데이터 크기,
데이터 정합성 체크 오류
사전에 데이터를 정제
송신 시 데이터 크기 및 정합성을 체크하는 기능을 추가
송신 데이터 생성 시
프로세스의 논리적 결함
논리적 결함을 수정
충분한 테스트를 통해 사전 예방
  • 수신 실패 시 예외 처리

예외 상황 예외 처리 방안
네트워크 및 서버 불안정 입력 대기 큐에 요청을 적재하여 순차적 처리
파싱 시 오류 발생 파싱 시 오류가 발생하지 않는 문자로 우선 대치 후 다시 처리
수신 데이터 처리 시
프로그램의 논리적 결함
논리적 결함을 수정
충분한 테스트를 통해 사전 예방
예외사항이 수신 되지 않도록 송신 측 프로그램을 수정
  • 인터페이스 엔티티를 이용한 예외 처리 : 인터페이스의 실패 상황과 원인 등을 기록하고, 관리자에게 알려주는 방식

    • 송신 인터페이스 기능 실패 시 예외 처리

예외 상황 예외 처리 방안
- 선택 SQL, 프로그램 오류
- 데이터 객체 생성 오류
사용자에게 알람을 통해 알림
재발 방지를 위해 프로그램을 개선
- 입력 SQL 오류
- 데이터 정합성 오류
인터페이스 실패 결과와 원인을 인터페이스 테이블에 기록
입력 실패 결과를 사용자에게 알림
- DB Connection 오류
- 전송 주체의 논리적 오류
인터페이스 실패 결과와 원인을 인터페이스 테이블에 기록
인터페이스 실패 결과를 사용자와 관리자에게 이메일 등으로 전송
  • 수신 인터페이스 기능 실패 시 예외 처리

예외 상황 예외 처리 방안
- 데이터 선택 시 오류
- 데이터 트랜잭션 시
  프로그램의 논리상 오류
사용자에게 예외사항을 알림
인터페이스 테이블에 예외사항을 기록
재발 방지를 위해 프로그램을 개선
DB Connection 오류 인터페이스 테이블에 예외사항을 기록
·수신자에게 이메일 등으로 예외사항을 알림

 

인터페이스 보안

  • 개요 : 보안성 향상을 위해 보안 취작점을 분석한 후 적절한 보안 기능을 적용
  • 보안 취약점 분석 : 인터페이스 기능이 수행되는 각 구간들을 확인하고, 어떤 보안 취약점이 있는지를 분석
  • 보안 기능 적용
영역 설명
네트워크 영역
·수신 간 스니핑(Sniffing) 등을 이용한 데이터 탈취 및 변조 위협을 방지하기 위해 암호화 설정
암호화는 아키텍처에 따라 IPSec, SSL, S-HTTP 등의 다양한 방식으로 적용
애플리케이션 영역 소프트웨어 개발 보안 가이드(시큐어 코딩 : Secure Coding)를 참조하여 코드 상의 보안 취약점을 보완
데이터베이스 영역
데이터베이스, 스키마, 엔티티의 접근 권한과 데이터베이스 동작 객체의 보안 취약점에 보안 기능을 적용
보안 기법은 API방식(App 레벨)과 Fiter(Plug-in) 방식(DB 레벨), Hybrid 방식 등의 방식을 적용

 

3. 인터페이스 구현 검증하기

인터페이스 구현 검증

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

  • 구현 검증 도구

도구 설명
xUnit 다양한 언어를 지원하는 단위 테스트 프레임워크
STAF 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
FitNesse 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
NTAF STAF와 FitNesse를 통합한 NHN의 테스트 자동화 프레임워크
Selenium 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크
water Ruby 기반 웹 애플리케이션 테스트 프레임워크
  • 구현 감시 도구

    • 리소스 방식 : Nagios, Zabbix, Cacti 등

    • 엔드투엔드 방식 : VisualVM, 제니퍼, 스카우터 등