수달이네 기술 블로그

1. 소프트웨어 설계(인터페이스) 본문

공부/정보처리기사

1. 소프트웨어 설계(인터페이스)

슬픈 수달이 2026. 5. 4. 18:45

인터페이스 설계

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

조직 내, 외부에 존재하는 시스템들이 상호 접속을 통해 특정 기능을 수행하기 위한 접속 방법이나 규칙에 대한 필수적 요구사항.

구성

  • 사전 준비: 대상 시스템, 기관, 연동 방안에 대한 협의가 필요함
  • 구성: 인터페이스 이름, 연계 대상 시스템, 연계 범위 및 내용, 연계 방식, 송신 데이터, 인터페이스 주기, 기타 고려사항

분류

  • 기능적 요구사항: 수행될 기능과 관련해 소프트웨어가 가져야할 기능적 속성 요구사항
  • 비기능적 요구사항: 성능, 용이성, 신뢰도, 보안성, 제약,안정성 등

요구공학(Requirements Engineering)

사용자 요구사항의 도출, 분석, 명세, 확인, 검증하는 과정의 구조화된 활동(요구사항의 파악)

목적

  • 공통된 이해 설정
  • 요구사항 누락 방지
  • 불필요한 비용 절감
  • 요구사항 변경 추적
  • 효과적인 의사소통 수단 제공

분류

구분 기능적 요구 비기능적 요구
개념 기능에 대한 요구 기능제외 제약사항
도출방법 • 특정 입력에 어떻게 반응하는지
• 특정 상황에 어떻게 동작한
• 품질
• 시스템이 준수해야할 제한
특성 기능성, 완전성, 일관성 신뢰성, 사용성, 효율성, 유지보수성, 이식성, 보안성 및 품질 관련 요구사항, 제약사항

요구사항 개발 프로세스

도출

  • 문제 이해, 추상적 요구의 정보 식별, 수집 방법 결정, 수집 요구사항 구체화의 단계
  • 이해관계자(shakeholder): 개발팀과 고객 사이의 관계 형성, 다양한 이해관계자와 효율적인 의사소통이 중요
  • 기법
    인터뷰(interview) 직접적인 대화로 정보 수집
    브레인스토밍(Brainstorming) 말을 꺼내기 쉬운 분위기로 아이디어를 비판없이 수용
    델파이(Delphi Method) 전문가의 경험적 지식을 이용해 문제 해결, 미래예측
    롤플레잉(RolePlaying) 사람들이 현실의 일을 연기해 요구사항 분석
    워크숍(Workshop) 단기간의 집중적 노력으로 정보 획득.
    전문 영역 별로 팀 협력 필요. 모든 핵심 인물의 참여 필요
    설문조사(survey) 설문지, 여론조사로 간접정보를 수집
    개발될 시스템의 사용자가 다수일 때 의견 수렴에 용이

분석

  • 개념
    • 추출된 요구사항에 대해 충돌, 중복, 누락의 분석으로 완전성, 일관성 확보
    • 시스템 요구사항 정제 → 소프트웨어 요구사항 정의
    • 요구사항 우선순위, 후보 요구사항 모델링, 릴리즈별 수행할 요구사항 산정 요구사항 협의등
    • 일정, 비용 제약 설정, 타당성 조사, 문서화 등 수행
  • 기법 
    자료 흐름 지향 분석 DFD, DD로 소프트웨어 구조를 유도
    객체 지향 분석 시스템 기능과 데이터를 함께 분석, UML로 표준화

명세

  • 체계적으로 검토, 평가, 승인될 문서를 작성
  • 기법
    비정형 명세 • 자연어로 요구를 표현
    • 이해가 쉬움
    • 명확성 및 검증 문제 발생 가능
    FSM, Decision Table, ER모델링, State Chart(SADT)
    정형 명세 • 수학적 원리 표기법으로 요구 표현
    • 간결, 명확하며, 검증이 쉬움
    • 이해가 어려움
    VDM, Z-스키마, Petri-Nets, CSP등
  • 산출물: 요구사항 명세서

확인 및 검증

  • 사용자의 요구가 올바르게 기술되었는지 검토, 베이스라인 설정
    • 오류가 개발, 운영중 발생하면 비용이 많이 들기 때문에 반드시 필요
  • 요구 반영 여부, 상충 여부를 점검
  • 정형 기술 검토 수행
    • 개발 산출물 대상 요구사항 일치 여부, 결함 발생 여부를 검토하는 정적 분석기법
    • 기법
      동료 검토(Peer Review) • 리뷰형태, 2~3명이 진행
      • 작성자: 명세서에 대한 설명, 이해관계자: 결함 발견
      워크 스루(Walk Through)
      (비공식적)
      • 오류를 조기에 검출하는데 목적이 있는 검토법
      • 회의 전에 자료 배포→짧은시간동안 회의해 리뷰
      인스펙션(inspection) • 소프트웨어 요구, 설계, 원시코드 등의 저작자외 다른 전문가, 팀이 검토
      • 계획→사전 교육→준비→인스펙션 회의→수정→후속조치 순서로 진행
    • 지침 사항
      • 제품의 검토에만 집중하라.
      • 의제를 제한하여 진행한다.
      • 논쟁과 반박을 제한한다.
      • 문제 영역을 명확히 표현하라.
      • 해결책이나 개선책에 대해서는 논하지 말라.
      • 참가자의 수를 제한하고 사전준비를 강요하라.
      • 자원과 시간 일정을 할당하라.
      • 모든 검토자들을 위해 의미있는 훈련을 행하라
      • 검토자들은 사전에 작성한 메모들을 공유하라
      • 검토의 과정과 결과를 재검토하라

인터페이스 대상 식별

시스템 아키텍처

시스템: 하나의 공통적인 목적을 수행하기 위해 조직화된 요소들의 집합체.

구성요소

  • 입력: 처리방법, 처리할 데이터, 조건을 시스템에 투입하는 행위
  • 출력: 처리된 결과를 시스템에서 선출하는 행위
  • 처리: 입력된 데이터를 처리방법과 조건에 따라 처리하는 행위
  • 제어: 자료를 입력하고 출력될 때 까지의 처리 과정이 올바르게 진행되는지 감독하는 행위
  • 피드백: 출력 결과가 목표를 만족할때까지 반복 개선

인터페이스 시스템(Interface System)

  • 서로 다른 두 시스템, 장치, 소프트웨어를 이어주는 접속, 중계 시스템
  • 구성: 송신시스템, 수신 시스템, [중계서버]로 구성된다.
    송신 시스템 연계할 데이터를 데이터베이스, 어플리케이션으로부터 연계 테이블, 파일 형태로 생성해 송신함.
    수신 시스템 테이블, 데이터를 수신시스템의 형식에 맞게 저장, 제공하는 시스템
    중계서버 데이터를 송수신하고, 연계 데이터의 송수신 현황을 모니터링
    (연계 데이터의 보안 강화, 다중 플랫폼 지원 가능)

인터페이스 상세 설계

내, 외부 송수신 연계방식

  • 직접 연계: 중계서버, 솔루션 없이 송수신 시스템이 직접 인터페이스
    • 장점: 중간 매개가 없어 빠르고 단순하며 비용이 적음
    • 단점: 결합도가 높아져 시스템 변경시 민감, 보안을 위한 암/복호화 처리와 비즈니스 로직구현을 인터페이스별로 작성, 전사(기업) 시스템 인터페이스에 대한 통합 환경 구축 어려움
  • 간접 연계: 연계 솔루션에서 제공하는 송수신 엔진과 어댑터로 인터페이스
    • 송수신 처리 및 현황을 모니터링하고, 통제하는 연계서버 활용하는 방식
    • 장점: 서로 다른 네트워크 프로토콜을 갖는 시스템을 연계하고, 통합 관리 가능, 인터페이스 변경시에도 유연함
    • 단점: 연계 절차가 복잡하고, 연계 서버로 인한 성능 저하, 개발, 테스트 비용이 높음

기술

DB링크(DB Link) • 데이터베이스에서 제공하는 DB링크 객체를 활용
• 송수신 시스템에서 DB링크 생성, 해당 DB링크로 수신시스템의 데이터를 직접 참조
• SELECT * FROM 테이블명@DBLink명
DB연결(DB Connection) • 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB Connection Pool)을 생성하고, 연계 프로그램에서 해당 DB커넥션풀명을 사용해 연결
• 송신시스템의 Data Source = DB Connection Pool 명
API(Application Programming Interface)/Open API • 송신시스템의 DB에서 데이터를 읽어 제공하는 어플리케이션 프로그래밍 인터페이스 프로그램
• API명, 입출력 정보 필요
JDBC(Java Database Connectivity) • 수신 시스템의 프로그램에서 JDBC드라이버로 송신 시스템의 DB와 연결
• DBMS유형, DBMS서버 IP와 PORT, DB인스턴스(DB instance)정보필요
하이퍼 링크(HyperLInk) • 웹 어플리케이션에서 하이퍼링크를 이용
• <a herf = “url”>링크명</a>
소켓(Socket) • 서버는 통신을 위한 소켓을 생성하여 포트를 할당하고 클라이언트의 통신 요청 시 클라이언트와 요청하고 통신하는 기술

 

미들웨어 솔루션

컴퓨터간의 연결을 쉽고 안전하게 하도록 관리하는 소프트웨어(통신을 지원)

분산시스템 관점에서의 미들웨어는 위치투명성, 재사용가능성을 제공

유형

DB 미들웨어 DB솔루션업체에서 제공하는 어플리케이션과 DB간 통신 원활을 목적
원격 프로시저 호출(RPC; Remote Procedure Call) 응용 프로그램의 프로시저를 활용해 로컬 프로시저처럼 호출
메시지 지향 미들웨어(MOM; Message-Oriented Middleware) 메시지 기반 비동기형 메시지 전달 방식
• 서로 다른 이기종 분산 DB시스템 데이터 동기를 위해 사용
트랜젝션 처리(TP; Tranjsaction Processing)모니터 온라인 업무에서 트랜젝션을 처리, 감시
• 분산 트랜잭션 처리
• 사용자가 많고 안정적이면서 즉각적 처리가 필요한 프로그램에 사용
레거시웨어(Legacyware) 기존의 어플리케이션이나 DB기반에 새로 업데이트된 기능을 덧붙일때
객체 기반(ORB;Object Rquest Brokers)미들웨어 코버(CORBA)표준 스팩을 구현한 객체지향 미들웨어
• 다양한 기반으로 구축된 컴퓨터간의 프로그램, 데이터의 교환, 변환이 편리하게 이뤄지도록 지원
WAS(Web Application Server) 서버계층에서 애플리케이션이 동작할 환경을 제공, 안정적 트랜잭션 처리, 관리, 다른 이기종 시스템과의 연동을 지원
• HTTP 세션처리를 위한 웹서버 기능 + 민감한 업무까지 자바, 컴포넌트 기반으로 구현 가능