포스트

07. 인터페이스 설계

07. 인터페이스 설계

인터페이스 요구사항 확인

내외부 인터페이스 요구사항

개념

  • 모듈 간 혹은 시스템 간 연동을 통해 상호작용하는 접속 방법이나 규칙을 정의

  • 시스템 간 데이터를 주고 받으면서 시스템에서 처리해야 할 목적을 파악하여 정의

구성

  • 내외부 인터페이스 대상 시스템 및 기관과 시스템 연동 방안을 사전에 협의

  • 요구사항의 구성은 소프트웨어 성격별로 상이하고, 협의에 의해서 정의

명시 사항

  • 인터페이스 이름

  • 연계 대상 시스템

  • 연계 범위 및 내용

  • 연계 방식

  • 송신 데이터

  • 인터페이스 주기

  • 기타 고려사항

분류

기능적 요구사항

  • 내외부 시스템 연계를 통해 수행될 기능과 관련되어 입력, 처리과정, 출력 등 소프트웨어가 가져야 할 기능적 속성에 대한 요구사항

비기능적 요구사항

  • 시스템의 기능에 관련되지 않는 사항으로 정상적으로 작동하기 위한 시스템 내외부의 제약조건

  • 성능(응답시간, 처리량, 반환시간, 가용성), 사용 용이성, 신뢰성, 보안성, 운용상의 제약, 안전성 등

시스템 인터페이스 요구사항 분석

  1. 요구사항 분류
  • 요구사항을 유형별, 우선순위별, 제품 및 프로세스 연관성 등에 따라 분류하는 작업
  1. 요구기능 분석
  • 시스템 사용자와 이해관계자 등이 요구되는 서비스와 기능을 분석하는 방법

  • 요구사항을 구체화하기 위해 Use Case Diagram, Data Flow Model, State Model, UML등의 다양한 모델링 기법 사용

  1. 요구사항 할당
  • 요구사항을 만족시키는데 필요한 아키텍처 구성 요소를 식별하는 과정

  • 다른 아키텍처 구성요소의 상호작용을 분석하는 과정에서 추가적인 요구사항을 발견

  1. 요구사항 협상
  • 요구사항을 분석하는 과정 중 이해 관계자들 간의 상충되는 내용이나, 필요한 자원, 기능&비기능 요구사항들을 합의
  1. 정형 분석
  • 구문과 의미를 갖는 정형화된 언어를 이용하여 요구사항을 수학적 기호로 표현한 후 이를 분석

요구사항 명세서

  • 요구사항 분석을 통해 정의된 요구사항들을 기능적, 비기능적으로 명확하고 완전히 정의

작성 시 고려사항

  • 고객과 개발자가 쉽게 이해할 수 있도록 간결하게 작성

  • 요구사항 명세서의 내용은 사용자와 개발자가 모두 동의해야 함

  • 시스템의 모든 기능과 시스템에 영향을 미치는 모든 제약 조건을 기술

  • 요구사항 검증을 위해 원하는 시스템의 품질과 품질 측정 및 검증 방법, 인수 테스트 기준 등을 기술

  • 우선순위에 따른 중요도를 기술

  • 요구사항을 쉽게 참조할 수 있도록 고유의 식별자를 기술

인터페이스 요구사항 명세서 작성 시 고려사항

  • 인터페이스별로 연계방식(Web Service, DB, File 등)과 연계 유형(온라인/배치), 연계 주기(특정 날짜, 이벤트 발생 시 등)를 식별할 수 있도록 작성

  • 송수신 데이터 정보와 코드 정보 등 교환되는 데이터에 대한 정보를 식별할 수 있도록 작성

  • 송수신 데이터의 보안이나 통신 네트워크 환경, 송수신 데이터의 크기 제한 등 인터페이스 구현에 필요한 환경 정보와 기술적인 요구사항 포함

  • 인터페이스와 관련된 송수신 시스템의 업무 담당자와 IT 담당자 정보를 확인

검증

  • 사용자 요구가 요구사항 명세서에 올바르게 기술되어 있는가에 대해 검토하는 활동

검증 내용

  • 요구사항이 사용자나 고객의 목적을 완전하게 기술하는가?

  • 요구사항 명세가 문서 표준을 따르고, 설계 단계의 기초로 적합한가?

  • 요구사항 명세의 내부적 일치성과 완전성이 있는가?

  • 기술된 요구사하이 참여자의 기대에 일치하는가?

검증 방법

요구사항 검토 | Requirements Review

Peer Review

  • 2~3명이 진행하는 리뷰의 형태
  • 요구사항 명세서 작성자가 요구사항 명세서를 설명하고, 이해관계자들이 설명을 들으며 결함을 발견해 나아가는 형태

Walk Through

  • 시스템 개발 단계마다 실시하는 비정형 검토회의 형태
  • 오류의 조기발견이 목적
  • 검토 자료를 회의 전에 배포해서 사전 검토 후 짧은 시간동안 회의를 진행하여 결함을 발견해 나아가는 형태

Inspection

  • 명세서 작성자를 제외한 다른 검토 전문가들이 명세서를 확인하여 결함을 발견해 나아가는 공식회의 형태
  • 계획 -> 개관 -> 준비 -> 검토회의 -> 재작업 -> 추적

정형 기술 검토회의 | Formal Technical Review

개념

  • 소프트웨어 엔지니어가 수행하는 소프트웨어 품질보증 활동
  • 개발단계에서 제작되는 문서나 프로그램의 문제점을 찾고, 문제해결을 촉구하는 일반적인 용어
  • S/W 개발 산출물을 대상으로 오류를 발견하기 위한 공식적인 활동

목적

  • 산출물 요구사항 일치여부
  • 소프트웨어가 미리 정한 기준에 따라 표현되었는가를 확인
  • 소프트웨어의 표현에 대한 기능, 논리적 오류 확인
  • 프로젝트를 보다 관리하기 쉽게 만듬

검토지침

  • 제작자가 아닌 제품의 검토에만 집중
  • 문제 영역을 명확히 표현
  • 제기된 모든 문제를 바로 해결하고자 하지 않음
  • 검토자들은 사전에 작성한 메모들을 공유
  • 논쟁이나 반박을 제한
  • 의제를 정하고 그 범위를 유지
  • 참가자의 수를 제한하고 사전 준비를 철저히 하도록 강요
  • 자원과 시간일정을 할당
  • 모든 검토자에게 의미있는 교육을 진행
  • 검토의 과정과 결과를 재검토

인터페이스 대상 식별

시스템 아키텍처

개념

  • 시스템의 구조, 행위 등을 정의하는 개념적 모형

  • 시스템의 각 컴포넌트가 무엇이며 어떻게 상호작용하는지, 정보가 어떻게 교환되는지 확인

  • H/W와 S/W 기반으로 시스템이 서비스를 제공하기 위한 기반

기본 요구사항

  • 시스템 구성 및 동작 원리를 나타내야 함

  • 시스템 구성 요소(부품)에 대해 설계 및 구현을 지원하는 수준으로 자세히 기술

  • 구성요소 간의 관계 및 시스템 외부 환경과의 관계가 묘사

  • 요구사양 및 시스템의 전체 수명주기를 고려

  • 시스템 전체(하드웨어와 소프트웨어를 포괄한 것)에 대한 논리적인 기능 체계와 구성 방식

  • 시스템의 전체적인 최적화가 목표

구성요소

DNS | Domain Name System

  • 서버의 도메인 이름으로부터 해당 서버의 IP 주소를 알려주는 역할

  • 도메인 이름에 대한 질의를 하고, 해당 도메인이 등록되어 있다면 도메인 이름에 해당하는 IP주소를 응답

Web Server + WAS

  • 웹서비스에서 필요로 하는 다양한 요청과 그에 대한 응답을 제공

  • 사용자의 요청을 받으면 사용자의 요구대로 연산을 수행하고 그 결과를 응답

API | Application Programing Interface

  • 요청이 들어오면 약속한 방식에 맞춰 정제된 데이터로 응답

Load Balancer

  • 여러 대의 서버가 존재할 경우 요청을 적절히 분배해주는 역할

  • 분배방식

    • Random : 요청을 랜덤으로 분배
    • Least loaded : 가장 적은 양의 작업을 처리하고 있는 서버에게 요청을 할당
    • Round Robin : 순서를 정하여 돌아가며 작업 분배

CDN | Content Delivery Network

  • 용량이 큰 컨텐츠 데이터(이미지, 비디오 등)를 빠른 속도로 제공하기 위해 사용자와 가까운 곳에 분산되어 있는 데이터 저장 서버

  • 클라이언트는 용량이 큰 컨텐츠 데이터를 가까운 CDN에 요청해 멀리있는 웹서버에서 직접 받는 것보다 빠르게 받을 수 있음

Database

  • 여러 사람이 공유하여 사용할 목적으로 체계화해 통합&관리하는 데이터의 집합

고려사항

확장성 | Scalability

  • 클라이언트 수가 늘어났을 때 무리 없이 요청을 처리할 수 있는 확장성을 고려

성능 | Performance

  • 요청한 내용을 정확하고 빠르게 수행

응답 시간 | Response Time

  • 모든 요청은 클라이언트가 불편해하지 않을 정도로 빠른 시간 안에 수행

처리량 | Throughput

  • 같은 시간 안에 더욱 많은 요청 처리

가용성 | Availability

  • 사용자가 언제든지 시스템에 요청을 보내서 응답을 받을 수 있어야 함

일관성 | Consistency

  • 사용자가 서버에 보낸 요청이 올바르게 반영되어야 하고, 일정한 결과를 돌려주어야 함

인터페이스 시스템

개념

  • 서로 다른 시스템, 장치 사이에서 정보나 신호를 주고받을 수 있도록 도움을 주는 시스템

구성

송신 시스템

  • 연계할 데이터를 DB와 Application으로부터 연계 테이블 또는 파일 형태로 생성하여 송신

수신 시스템

  • 수신한 연계 테이블 또는 파일 데이터를 수신 시스템에서 관리하는 데이터 형식에 맞게 변환하여 DB에 저장하거나 Application에서 활용할 수 있도록 제공

중계 서버

  • 송신 시스템과 수신 시스템 사이에서 데이터를 송수신하고 연계 데이터의 송수신 현황을 모니터링

  • 연계 데이터의 보안 강화 및 다중 플랫폼 지원 등이 가능

연계 시스템 분류 체계와 식별 정보

시스템 분류 체계

  • 기업 내부에서 사용하고 있는 시스템 분류 체계를 기반으로 대내외 인터페이스 시스템의 식별자를 정의

  • 기업이 수행하는 업무를 대, 중, 소로 파악하여 상위 시스템과 하위 시스템을 구분

  • 업무를 기준으로 인터페이스 시스템에 식별 코드 부여

연계 시스템 식별 정보

대내외 구분 정보
기업 내부 시스템인지 외부 기관 시스템인지 구분
기관명
대외 기관일 경우 기관명을 기술
시스템 ID
시스템 식별 체계에 따라 부여된 식별 번호
한글명
시스템 한글명
영문명
시스템 영문명(영문 코드)
시스템 설명
시스템에 대한 업무, 위치 등에 대한 부가 정보
시스템 위치
시스템이 설치된 위치(노드) 정보
네트워크 특성
네트워크 속도, 대역폭, 유의사항 등 네트워크 특성
전용 회선 정보
전용회선을 사용할 경우 전용 회선 연결 방법과 속도 등의 정보
IP/URL
시스템 접속에 필요한 IP 또는 URL 정보
Port
접속에 필요한 Port 정보
Login 정보
시스템 로그인 ID와 암호
DB 정보
DB 연계 시 필요한 DBMS 유형, DBMS 로그인 정보
담당자 정보
해당 시스템의 인터페이스 담당자 연락처

송수신 데이터 식별

  • 송수신 시스템 사이에서 교환되는 데이터는 규격화된 표준 형식에 따라 전송

  • 인터페이스 설계 단계에서는 송수신 시스템 간에 전송되는 표준 항목과 업무 처리용 데이터 및 공동코드 정보 등을 누락 없이 식별하고 인터페이스 명세서를 작성

  • 송수신 전문 구성

    • 전문 공통부 : 인터페이스 표준 항목을 포함(인터페이스 ID, 서비스 코드, 접속 IP 등)
    • 전문 개별부 : 업무처리에 필요한 데이터를 포함
    • 전문 종료부 : 전송 데이터의 끝을 표시하는 문자 포함

인터페이스 상세 설계

내외부 송수신

연계 방식

직접 연계 방식

  • 중간 매체 없이 송신 시스템과 수신 시스템이 직접 인터페이스 하는 방식

  • 직접 연결로 속도가 빠르고, 구현이 단순하고, 개발 비용과 개발이 상대적으로 짧음

  • 송신 시스템과 수신 시스템 간의 결합도가 높아서 시스템 변경에 민감

  • 보안을 위한 암&복호화 처리와 비즈니스 로직 구현을 인터페이스별로 작성해야 하고, 전사 시스템 인터페이스에 대한 통합 환경 구축이 어려움

간접 연계 방식

  • 연계 솔루션에서 제공하는 송수신 엔진과 어댑터를 활용하여 인터페이스 하는 방식

  • 송수신 처리와 송수신 현황을 모니터링하고 통제하는 EAI(Enterprise Application Integration) 서버와 같은 연계 서버를 활용하는 방식

  • 서로 상이한 네트워크와 프로토콜 등 다양한 환경을 갖는 시스템들을 연계하고 통합 관리할 수 있음

  • 인터페이스 변경 시에도 유연하게 대처가 가능하고, 보안이나 업무 처리 로직 반영이 용이

  • 인터페이스 아키텍처와 연계 절차가 복잡하고 연계 서버로 인한 성능 저하, 개발 및 테스트 기간이 직접 연계 방식보다 오래 걸림

연계 기술

DB Link

  • DB에 제공하는 DB Link 객체를 이용

  • 수신 시스템에서 DB Link를 생성하고 송신 시스템에서 해당 DB Link를 직접 참조하는 방식

DB Connection

  • 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB Connection Pool을 생성하고 연계 프로그램에서 해당 DB Connection Pool명을 이용

JDBC

  • 수신 시스템의 프로그램에서 JDBC 드라이버를 이용하여 송신시스템 DB와 연결

  • DBMS 유형, DBMS 서버 IP와 Port, DB instance 정보가 필요

API / OpenAPI

  • 송신 시스템의 Application Programming Interface program

  • API명, 입출력 파라미터 정보가 필요

Web Service

  • 프로토콜을 이용하여 연계
    • WSDLWeb Services Description Language
    • UDDIUniversal Description, Discovery and Integration
    • SOAPSimple Object Access Protocol

Hyper Link

  • 웹 애플리케이션에서 하이퍼링크 이용

Socket

  • 통신을 위한 소켓을 생성하여 포트를 할당하고 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신하는 네트워크 기술

통신 유형

실시간 처리

  • 단방향Notify
  • 동기Sync
  • 비동기Async
  • 지연 처리Deferred

배치 처리

  • DB / File 거래

암호화 필수 항목

  • 인터페이스를 통해 데이터 교환 시 정보통신망법과 개인정보보호법 등 법률로 정한 암호와 필수 항목이 있다면 해당 데이터 송수신 과정에서 암&복호화 처리

  • 암호화 필수 적용 대상 항목

    • 정보통신망법 : 주민등록번호, PW, 공개에 동의하지 않은 개인정보
    • 전자금융거래법 : 주민등록번호, PW, 계좌번호

인터페이스 오류 처리

오류 유형

연계 서버

  • 연계 서버의 실행 여부, 송수신, 전송 형식 변환 등 연계 서버의 기능과 관련된 장애 또는 오류

  • 연계 서버 다운, 송수신 시스템 접속 오류 등

송신 시스템

  • 연계 데이터 추출을 위한 DB 접근 권한 오류, 데이터 변환 시 예외상황 미처리 등으로 인한 연계 프로그램 오류

  • 미등록 코드로 인한 코드 매핑 오류

수신 시스템

  • 수신받은 데이터를 운영 DB에 반영하는 과정에서 접근 권한 문제, 데이터 변환 시 예외사항 미처리 등으로 인한 연계 프로그램 오류

  • 데이터 등록 / 갱신 오류

연계 데이터

  • 연계 데이터값이 유효하지 않음으로 인해 발생하는 오류

  • 일자 데이터값에 유효하지 않은 일자값 입력

오류 처리

절차

  1. 연계 서버와 송수신 시스템의 로그파일에 오류 코드와 에러 발생에 대한 로그 기록
  2. 오류 발생 시 연계 서버와 송수신 시스템에 기록된 로그 내용을 확인하여 오류 원인분석 및 해결방안 수립
  3. 오류 유형에 따라 적절한 방안 선택
  4. 데이터 오류의 경우 데이터를 보정하고 재전송 처리
  5. 접속 오류의 경우 접속 오류를 해결한 후 재전송

오류 코드

  • 오류를 식별할 수 있는 코드

  • 오류 발생지와 오류 유형, 일련번호를 포함하도록 오류 코드 명명규칙을 정의한 후 인터페이스 표준화 지침 / 가이드 문서로 정리해서 공유

  • 오류 발생 내용과 오류 발생 원인(데이터 에러, 네트워크 에러, 암&복호화 에러 등)을 포함하는 메시지를 기술


인터페이스 설계

설계서 구성

인터페이스 목록

  • 연계 업무와 연계에 참여하는 송수신 시스템의 정보, 연계 방식과 통신 유형 등에 대한 정보

주요 항목

인터페이스 ID
인터페이스를 구분하기 위한 식별자, 명명 표준에 맞게 부여
인터페이스명
인터페이스의 목적을 나타내는 이름
송신 시스템
인터페이스를 통해 데이터를 전송하는 시스템
수신 시스템
인터페이스를 통해 전송된 데이터를 이용하는 시스템
대내외 구분
인터페이스가 기업 내부 시스템 간 또는 내&외부 시스템 간에 발생하는지 여부
연계 방식
웹 서비스, FTP, DB Link, Socket 등 아키텍처에서 정의한 인터페이스 방식
통신 유형
동기(Request-Reply), 비동기(Send-Receive, Send-Receive-Acknowledge, Publish Subscribe) 등 아키텍처에서 정의한 통신 유형
처리 유형
실시간, 배치, 지연어 처리 등 인터페이스 처리 유형
처리 유형이 실시간인 경우 수시, 그 외 상세 주기를 표시
주기
인터페이스가 발생하는 주기
데이터 형식
고정 길이, XML 등 인터페이스 항목의 데이터 포맷
관련 요구 사항 ID
해당 인터페이스와 관련된 요구사항 식별 정보

인터페이스 정의서

  • 데이터 송신 시스템과 수신 시스템 간의 데이터 저장소와 속성 등의 상세 내역을 포함

주요 항목

인터페이스 ID
인터페이스를 구분하기 위한 식별자, 명명 표준에 맞게 부여
최대 처리 횟수
단위 시간당 처리될 수 있는 해당 인터페이스 최대 수행 건수
데이터 크기(평균/최대)
해당 인터페이스 1회 처리 시 소요되는 데이터의 평균 크기와 최대 크기
시스템 정보
시스템명, 업무, 서비스 명, 연계방식, 담당자 / 연락처
데이터 정보
번호, 필드, 식별자 여부, 데이터 타입, 크기, 설명 등

설계 명세화

  • 인터페이스 설계 가이드와 인터페이스 설계서 작성 양식을 준비

  • 분석 단계에서 정의된 정보를 인터페이스 목록 양식에 맞춰 작성

  • 인터페이스 정의서 작성 양식에 맞춰 송수신 시스템의 정보를 각각 작성

  • 인터페이스 식별 당시 작성한 서비스의 프로그램 명세서를 확인하고 보완이 필요한 경우 수정

  • 인터페이스 설계서 작성 양식에 맞춰 송수신 데이터 항목 상세를 작성

  • 송수신 시스템 간의 코드 변환을 위한 코드 매핑 규칙을 인터페이스 정의서에 작성하고 코드 매핑 시 참고할 수 있도록 코드 매핑 테이블을 별도로 작성

  • 인터페이스 설계 내용을 검토하고 보완


미들웨어 솔루션

개념

  • 양쪽을 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어

  • 네트워크를 통해서 연결된 여러 대의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해 주는 소프트웨어

  • 분산 컴퓨팅 환경에서 서로 다른 기종 간의 하드웨어나 프로토콜, 통신환경 등을 연결하여 응용프로그램과 운영환경 간에 원만한 통신이 이루어지 수 있게 서비스를 제공하는 소프트웨어

활용 이점

  • 표준화된 인터페이스 제공이 가능

  • 다양한 환경 지원, 체계가 다른 업무와 상호 연동이 가능

  • 분산된 업무를 동시에 처리 가능하여 자료의 일관성이 유지

  • 부하의 분산이 가능

  • 위치 투명성(Location Transparency) 제공

종류

원격 프로시저 호출 | Remote Procedure Call

  • 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템

메시지 지향 미들웨어 | Message Oriented Middleware

  • 클라이언트가 생성한 메시지는 저장소에 요청할 때 저장하면서, 다른 업무를 지속할 수 있도록 하는 비동기식 미들웨어

ORB | Object Request Broker

  • 객체지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어

DB 접속 미들웨어

  • 애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어

TP 모니터 | Transaction Processing Monitor

  • 분산 시스템의 애플리케이션을 지원하는 미들웨어

  • 트랜잭션이 올바르게 처리되고 있는지 데이터를 감시하고 제어

Web Application Server

  • 웹 애플리케이션을 지원하는 미들웨어

Enterprise Service Bus

  • 메시지 기반으로 느슨한 결합 형태의 표준 인터페이스 통신을 지원하는 미들웨어로 기업 안팎에 있는 모든 시스템 환경을 연동하는 미들웨어

다층구조

  • 비즈니스 로직을 완전히 분리하여 데이터베이스 시스템과 클라이언트의 사이에 배치한 클라이언트 서버 시스템의 일종

계층별 특징

Presentation Tier

  • 사용자 인터페이스를 지원
  • Front-end 라고도 불림
  • 비즈니스로직이나 데이터 관리 코드를 포함하지 않음

Application Tier

  • 정보를 가공하는 역할
  • middleware 또는 back-end 라고도 불림
  • 프레젠테이션 코드나 데이터관리 코드를 포함하지 않음

Data Tier

  • 데이터베이스를 주로 말함
  • DB 또는 File System 접근을 관리
  • 주로 DB 서버를 말함
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.