본문 바로가기
정보처리기사/소프트웨어 개발

인터페이스 구현

by jhwannabe 2023. 7. 13.

인터페이스 기능 확인

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

  • 시스템의 인터페이스 현황을 한눈에 확인하기 위하여, 이기종의 시스템 간 데이터 교환과 처리르 위하여 사용되는 데이터뿐 아니라 업무, 그리고 송·수신 시스템 등에 관한 상세 내용을 기술한 문서
  • 정적, 동적 모형을 통한 설계서, 일반적 형태의 설계서로 구분됨
클래스 분할 배치 - 시각적인 다이어그램을 이용하여 정적, 동적 모형으로 각 시스템의 구성 요소를 표현한 문서
- 각 인터페이스가 어느 부분에 속하는지 분석할 수 있음
- 교환 트랜잭션 종류를 분석할 수 있음
적절한 주석 - 개별 인터페이스의 상세 데이터 명세, 시스템 인터페이스 목록, 각 기능의 세부 인터페이스 정보를 정의한 문서
- 시스템 인터페이스 설계서 : 시스템 인터페이스 목록을 만들고 각 인터페이스 목록에 대한 상세 데이터 명세를 정의하는 것
- 상세 기능별 인터페이스 명세서 : 각 기느으이 세부 인터페이스 정보를 정의한 문서

내/외부 모듈 간 공통 기능, 데이터 인터페이스 확인 순서

  • 인터페이스 설계서의 외부 및 내부 모듈의 기능을 확인
  • 인터페이스 설계서의 외부 및 내부 모듈을 기반으로 공통적으로 제공되는 기능과 각 데이터의 인터페이스를 확인함

 

모듈 연계

모듈 연계

  • 시스템 인터페이스를 목적으로 내부 모듈 - 외부 모듈 또는 내부 모듈 - 내부 모듈 간 인터페이스를 위한 관계를 설정하는 것으로 EAI와 ESB 방식이 있음

EAI(Enterprise Application Integration)

  • 기업 내부에서 운영되는 각종 플랫폼 및 애플리케이션 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
  • 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높일 수 있음
  • 각 시스템 간의 확정성을 높여 줄 수 있음

EAI 유형

유형 기능
Point-to-Point
- 애플리케이션을 중간 미들웨어없이 Point to Point로 연결하는 기본적인 통합 방식
- 별도로 솔루션(미들웨어)을 구매하지 않고 구축할 수 있음
- 상대적으로 저렴하게 구축 가능하지만 변경 및 재사용이 어려움
Hub & Spoke
- 단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중형 방식으로 확장 및 유지보수가 수월함
- 중앙 허브에 장애가 발생하면 시스템 전체에 영향을 줌
Message Bus
- 애플리케이션 사이에 미들웨어를 배치하여 처리하는 방식으로 확장성이 뛰어남
- 대용량 데이터 처리에 유리함
Hybrid
- Hub & Spoke와 Message Bus의 혼합 방식
- 그룹 내 : Hub & Spoke, 그룹 간 : Message Bus
- 데이터 병목현상을 최소화할 수 있음
-필요한 경우 한 가지 방식으로 EAI 구현이 가능

ESB(Enterprise Service Bus)

  • 애플리케이션 간의 데이터 변환 및 연계 지원 등을 제공하는 인터페이스 제공 솔루션
  • 애플리케이션 간의 통합 관점으로 EAI와 유사하다고 볼 수 있으나 애플리케이션보다는 서비스 중심으로 통합을 지향하는 아키텍처 또는 기술을 의미함
  • 범용적으로 사용하기 위해서는 애플리케이션과의 결합도를 약하게 유지해야 함
  • 웹 서비스 중심으로 표준화된 데이터, 버스를 통해 이 기종 애플리케이션을 유연(Loosely-Coupled)하게 통합하는 핵심 플랫폼(기술)
  • 관리 및 보안이 쉽고 높은 수준의 품질 지원이 가능함

데이터 표준 확인

  • 내/외부 모듈 간 데이터를 교환 시 데이터 표준을 정의하고 이를 관리하여야 함
  • 기존 데이터 중 공통 영역을 추출하여 정의하는 경우와 인터페이스를 위해 다른 한쪽의 데이터 형식을 변환하는 경우가 있음
  • JSON, DB, XML, YAML, AJAX 등 다양한 표준으로 인터페이스 모듈을 표현할 수 있음
  • 절차 : 인터페이스 기능을 통해 인터페이스 데이터 표준을 확인 → 인터페이스 데이터 항목을 식별 →데이터 표준을 최종 확인

 

인터페이스 기능 정의

인터페이스 기능 정의

  • 인터페이스를 실제로 구현하기 위해 인터페이스 기능에 대한 구현 방법을 기능별로 기술하는 과정
  • 정의 순서 : 컴포넌트 명세서 확인 → 인터페이스 명세서 확인 → 일관된 인터페이스 기능 구현 정의 → 정의된 인터페이스 기능 구현 정형화

모듈 세부 설계서

  • 모듈 구성 요소와 세부적 동작 등을 정의한 설계서
컴포넌트 명세서 인터페이스 명세서
- 내부 클래스 동작, 컴포넌트 개요, 인터페이스를 통해 외부와 통신하는 명세를 정의
- 구성 : 컴포넌트 ID, 컴포넌트명, 컴포넌트 개요, 내부 클래스(ID, 클래스명, 설명), 인터페이스 클래스(ID, 인터페이스명, 오퍼레이션명 구분)
- 컴포넌트 명세서 항목 중 인터페이스 클래스의 세부 조건 및 기능 등을 정의
- 구성 : 인터페이스 ID, 인터페이스명, 오퍼레이션명, 오퍼레이션 개요, 사전 조건, 사후 조건, 파라미터, 반환값

모듈 세부 설계서 확인

  • 컴포넌트가 가지고 있는 주 기능은 컴포넌트 명세서(컴포넌트 개요, 내부 클래스의 클래스명, 설명 등)를 확인
  • 인터페이스에 필요한 기능을 각 모듈의 컴포넌트 명세서, 인터페이스 명세서를 통하여 분석
  • 인터페이스에 필요한 주 기능은 인터페이스 클래스를 통해 확인하고 인터페이스 명세서를 통해서 컴포넌트 명세서의 인터페이스 클래스에 작성된 인터페이스 세부 조건 및 기능을 확인

 

인터페이스 구현

인터페이스 구현

  • 송·수신 시스템 간의 데이터 교환 및 처리를 실현해주는 작업
  • 사전에 정의된 기능 구현을 분석하고 인터페이스를 구현함
  • 인터페이스 기능 구현을 기반으로 인터페이스 구현 방법을 분석하고 분석된 인터페이스 구현 정의를 바탕으로 인터페이스를 구현함

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

  • 애플리케이션 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고 이를 수신 측에서 파싱하여 해석하는 방식

AJAX(Asynchronous Javascript And Xml)

  • JavaScript를 사용한 비동기 통신 기술로 클라이언트와 서버 간에 XML 데이터를 주고받는 기술
  • 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법

JSON(JavaScript Object Notation)

  • 데이터 통신을 이용한 인터페이스 구현 방법
  • 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성·값의 쌍 형태로 표현하는 형식으로 자바스크립트를 토대로 개발되어진 형식
  • 속성 값의 쌍(Attribute-Value Pairs)인 데이터 객체 전달을 위해 사람이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷으로 비동기 처리에 쓰이는 AJAX에서 XML을 대체하는 주요 데이터 포맷

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

  • 인터페이스가 필요한 시스템 사이에 별도의 중계 인터페이스 엔티티를 배치하여 상호 연계하는 방식

 

인터페이스 구현 검증

인터페이스 구현 검증

  • 인터페이스 구현 및 가시 도구를 통해서 구현된 인터페이스의 동작 상태를 검증 및 감시(Monitoring)할 수 있음
  • 검증 순서 : 구현된 인터페이스 명세서를 참조하여 구현 검증에 필요한 감시 및 도구를 준비한 뒤 인터페이스 구현 검증을 위하여 외부 시스템과의 연계 모듈 상태를 확인

인터페이스 구현 검증 도구의 종류

  • 인터페이스 구현 검증을 위해서 단위 기능 및 시나리오에 기반한 통합 테스트가 필요하며, 테스트 자동화 도구를 이용하여 단위 및 통합 테스트의 효율성을 높일 수 있음
구분 설명
Watir - Ruby 기반 웹 애플리케이션 테스트 프레임워크
- 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성으 ㄹ테스트할 수 있음
xUnit - Java(Junit), C++(Cppunit), .Net(Nunit), JMockit, EMMA, PHPUnit, HttpUnit, DBUnit 등 다양한 언어를 지원하는 단위 테스트 프레임워크
- 함수, 클래스 등 다른 구성 단위들의 테스트를 도와줌
FitNesse - 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
- 테스트 케이스 테이블 작성하면 자동으로 빠르고 쉽게 작성한 테스트를 수행할 수 있음
STAF - 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
- 데몬을 사용하여 테스트 대상 분산 환경에서 대상 프로그램을 통한 테스트를 수행하고 통합하는 자동화 검증 도구
NTAF
Naver
테스트 자동화 프레임워크이며, STAF와 FitNesse를 통합함
Selenium - 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크
- 테스트를 위한 스크립트 언어 습득 없이, 기능 테스트 작성을 위한 플레이백 도구를 제공함

인터페이스 구현 감시 도구

  • APM(Application Performance Management)을 사용하여 동작 상태를 감시할 수 있음
  • 데이터베이스, 웹 애플리케이션의 트랜잭션과 변수값, 호출 함수, 로그 및 시스템 부하 등 종합적인 정보를 조회하고 분석할 수 있음
  • 예) 스카우터, 제니퍼 등

인터페이스 구현 검증 시 필요한 설계 산출물

  • 데이터 전송 주기, 전송 포맷 등을 확인하여 송·수신 시스템에 데이터가 정확하게 전송되었는지 인터페이스 명세서를중심으로 확인함
  • 인터페이스 단위 테스트 케이스나 통합 테스트 케이스를 활용함
  • 모듈 세부 설계서(컴포넌트 명세서, 인터페이스 명세서), 인터페이스 정의서, 동적/정적 모형 설계도, 식별된 인터페이스 기능 목록, 인터페이스 데이터 표준 정의서
728x90
반응형

'정보처리기사 > 소프트웨어 개발' 카테고리의 다른 글

인터페이스 보안  (1) 2023.07.13
소스 코드 최적화  (0) 2023.07.13
애플리케이션 성능 개선  (0) 2023.07.13
결함 관리  (0) 2023.07.12
통합 테스트  (0) 2023.07.12