본문 바로가기
License/정보처리기사

[정보처리기사] 1과목 소프트웨어 설계 - 인터페이스 설계

by ngool 2024. 11. 30.

📌 인터페이스 요구사항 확인

인터페이스

인터페이스란, 서로 다른 시스템, 장치를 연결하거나 통신하게 해주는 매개체를 뜻합니다.

우리가 흔히 알고 있는 인터페이스를 살펴봅시다!

  1. 사용자 인터페이스(User Interface)
    : 사람과 사물 간에 의사소통을 할 수 있도록 하는 매개체
    ex) 스마트폰을 사용할 때, 화면을 터치하고 결과를 받는 것
  2. 응용 프로그래밍 인터페이스(API)
    : 시스템 간에 데이터 교환을 가능하게 하는 것

응용 프로그래밍 인터페이스(API) 예시


요구사항 개발 프로세스

도출(Elicitation) -> 분석(Analysis) -> 명세(Specification) -> 확인 및 검증(Validation)

 

1) 요구사항 도출

  • 고객의 추상적인 요구사항을 식별하고 수집 방법을 결정하는 단계

2) 요구사항 분석

  • 추출된 요구사항을 분석하여 완전성과 일관성을 확보하는 단계
  • 비용일정에 대한 제약설정
  • 타당성 조사
  • 요구사항 정의 문서화

3) 요구사항 명세

  • 요구사항이 체계적으로 검토, 평가될 수 있는 문서(요구사항 명세서)를 만드는 단계
  • 정형 명세기법(수학적 원리와 표기법 사용) 또는 비정형 명세기법(자연어 기반 서술) 사용

4) 요구사항 확인 및 검증

  • 요구사항이 고객이 정말 원하는 시스템을 제대로 정의하고 있는지 점검
  • 요구사항이 실제 요구를 반영하는지, 문서상에 서로 상충되는 요구사항은 없는지 점검
  • 요구사항 검증 과정을 통해 모든 요구사항 문제를 발견하긴 어려움
  • 정형 기술 검토(FTR, Formal Technical Review)를 수행

정형 기술 검토 기법

워크 스루(Walk Through)

  • 요구 사항 명세서를 미리 배포하여 사전 검토한 후 짧은 검토 회의를 통해 오류를 조기에 검출하는 데 목적을 두는 방법
  • 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것
  • 사용 사례를 확장하여 명세하거나 설계 다이어그램, 원시 코드, 테스트 케이스 등에 적용할 수 있음
  • 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작을 이해하려고 할 때 유용함

동료 검토(Peer Review)

  • 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견

인스펙션(Inspection)

  • 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가나 팀이 검사하여 오류를 찾아내는 검토 방법
  • 인스펙션 과정 → 계획 → 사전 교육 → 준비 → 인스펙션 회의 → 수정(다시 계획 리턴) → 후속 조치

정형 기술 검토의 지침 사항

  • 제품의 검토에만 집중
  • 문제 영역을 명확히 표현
  • 논쟁과 반박을 제한
  • 참가자의 수를 제한하고 사전 준비를 강요

📌 인터페이스 대상 식별

인터페이스 시스템

인터페이스 시스템이란, 서로 다른 시스템이나 구성 요소들이 상호작용하고 정보를 교환할 수 있도록 연결해주는 시스템을 말합니다.

 

인터페이스 시스템의 구성은 다음과 같습니다.

 

1) 송신 시스템

  • 연계할 데이터를 데이터베이스와 애플리케이션으로부터 연계 테이블 또는 파일 형태로 생성해 송신

2) 수신 시스템

  • 송신 시스템 또는 중계 서버로부터 수신해 처리, 저장 또는 사용자에게 제공

3) 중계 서버

  • 송신 시스템과 수신 시스템 사이에서 데이터를 중계하고 경로를 관리

인터페이스 설계 시 내외부 송수신 연계 기술

1) 소켓

  • 통신을 위한 프로그램을 생성해 포트를 할당하고, 클라이언트가 통신 요청 시 클라이언트와 연결

2) DB 링크

  • 데이터베이스 간에 테이블을 공유할 수 있도록 하는 DB 링크 객체를 이용하는 기술

3) API

  • 서비스가 다른 애플리케이션과 상호작용 할 수 있도록 인터페이스를 제공하는 것

📌 인터페이스 상세 설계

미들웨어

  • 서로 다른 애플리케이션이나 시스템 간의 통신과 상호작용을 중개해주는 서비스를 제공하는 소프트웨어
  • 소프트웨어 컴포넌트를 연결하기 위한 준비된 인프라 구조를 제공함
  • 여러 컴포넌트를 1대1, 1대 다, 다대 다 등 여러가지 형태로 연결이 가능함
  • 분산 시스템 관점에서 미들웨어는 위치 투명성을 제공하고, 재사용 가능한 서비스의 구현을 제공
    위치 투명성 : 사용자가 애플리케이션에서 리소스나 서비스의 실제 물리적 위치를 알 필요 없이 접근할 수 있는 능력

미들웨어 솔루션의 유형

메세지 지향 미들웨어(MOM; Message Oriented Middleware)

  • 애플리케이션 간 통신을 메세지를 통해 비동기 방식으로 지원하는 미들웨어
  • 느리고 안정적인 응답을 필요로 할 때 적합
  • 송신 측과 수신 측의 연결 시 메세지 큐를 활용하는 방법

RPC(Remote Procedure Call)

  • 응용 프로그램의 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어

TP Monitor

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

WAS(Web App Server)

  • 웹 애플리케이션을 실행하기 위한 소프트웨어 환경을 제공

객체 기반 미들웨어(ORB; Object Request Brokers)

  • COBRA 표준 스펙을 구현한 객체 지향 미들웨어