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

[정보처리기사-실기] 4장 통합 구현

by eyi-jin 2022. 4. 25.

순서
CH01 연계 요구사항 분석
CH02 연계 메커니즘 구성
CH03 내외부 연계 모듈 구현

통합 구현

단위 모듈 간 연계와 통합을 통하여 사용자와의 요구사항을 수용하고, 새로운 서비스를 추가하기 위한 절차

<CH01 연계 요구사항 분석>

통합 구현을 위하여 연계 시스템과 관련된 요구사항을 분석하는 과정

절차

HW/SW/네트워크 확인 → 코드/테이블 정의서 확인 → 점검표 작성 → 인터뷰/설문 조사 진행 → 요구사항 분석서 작성

연계 요구사항 분석 참고 문서

  • 개체(Entity) 정의서 : DB 개념 모델링 단계에서 도출한 개체의 타입과 관련 속성, 식별자 등의 정보를 개괄적으로 명세화한 정의서
  • 테이블(Table) 정의서: 논리 및 물리 모델링 과정 설계 산출물
  • 인터페이스 명세서: 인터페이스 정의서에 작성한 항목을 자세히 작성한 것

<CH02 연계 메커니즘>

응용 소프트웨어연계 대상 모듈 간의 데이터 연계 시 요구사항을 고려연계방법과 주기를 설계하기 위한 메커니즘

구성

  • 송신 시스템: 데이터를 생성하여 전송함
  • 중계 시스템: 보안성 강화, 매핑 수행
  • 수신 시스템: 송신 데이터를 수신하여 DB에 반영함

연계 방식별 장단점

  직접연계 간접연계
장점 - 연계 및 통합 구현이 단순하며 용이함
- 개발 소요 비용 및 기간이 짧음
- 중간 매개체가 없으므로 데이터 연계 처리 성능이 대체로 좋음
- 서로 상이한 네트워크, 프로토콜 연계 및 통합 기능
- 인터페이스 변경 시에도 장애나 오류없이 서비스 가능
- 보안이나 업무 처리 로직을 자유롭게 반영 가능
단점 - 시스템 간의 결합도가 높아 시스템 변경에 민감
- 암.복호화 처리 불가
- 연계 및 통합 가능한 시스템 환경이 제한적
- 연계 아키텍처 및 메커니즘이 복잡해 성능 저하 가능
- 개발 및 적용을 위한 테스트 기간이 상대적으로 장기간 소요

주요 연계 기술

  • 직접 연계
    • DB 링크: 한 DB에서 다른 DB로 접속하기 위해서 사용하는 객체
    • DB Connection Pool: 수신 시스템 WAS에서 송신 시스템 DB로 Connection Pool을 생성하고, 프로그램 소스에서 해당 DB Connection Pool 명을 이용하여 연결
    • API/Open API(Application Programming Interface): 송신 시스템의 DB에서 데이터를 읽어서 제공하는 인터페이스 프로그램
    • JDBC: 수신 시스템의 Batch, Online 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 DB와 연결
    • 하이퍼 링크: 현재 페이지에서 다른 부분으로 가거나 전혀 다른 페이지로 이동하게 해주는 속성
  • 간접 연계
    • 연계 솔루션(EAI): 기업에서 운영되는 서로 다른 플랫폼들 간의 정보 상호 연동이 가능하도록 통합해주는 솔루션.
      다른 시스템 간에 데이터를 주고받을 때 정해진 규약(프로토콜)으로 직접 주고받으면 전송 실패 시 대처라던지 로그 기록 등을 중립적인 위치에서 남길 수도 없고, 규약 자체도 워낙 그때그때 달라지므로, 이를 중간에서 중재하는 프로그램.
      즉, 다른 시스템으로 데이터가 왔다 갔다 할 때 거쳐가는 시스템
    • Web Service/ESB : 웹 서비스가 설명된 WSDL(XML로 기술된 웹 서비스 정의 파일의 총칭)과 SOAP 프로토콜(웹에서 HTTP, HTTPS, SMTP 등을 통해 XML 기반 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜)을 이용한 시스템 간 연계, 미들웨어인 ESB에서 서비스 간 연동을 위한 변환 처리로 다중 플랫폼 지원
    • 소켓(Socket): 소켓을 생성하여 포트를 할당하고, 클라이언트의 요청을 연결하여 통신하는 기술

REST

HTTP 프로토콜로 데이터를 전달하는 프레임 워크 데이터를 HTTP에서 부가적인 전송 레이어 없이 전송하기 위한 간단한 인터페이스

6가지 조건

  1. 유니폼 인터페이스
  2. 상태 정보 유지 안 함
  3. 캐시 가능
  4. 자체 표현 구조
  5. 클라이언트 서버 구조
  6. 계층화

<CH03 내외부 연계 모듈 구현>

EAI(Enterprise Application Integration)

기업에서 운영되는 이기종 간의 시스템 통합 연계 솔루션

  • 미들웨어를 이용하여 비즈니스 로직을 중심으로 기업 내 애플리케이션을 통합 연계함

구성요소

  • EAI 플랫폼: 이기종 시스템 간 애플리케이션 상호 운영
  • 어댑터: 다양한 애플리케이션을 연결하는 EAI의 핵심 장치로 데이터 입출력 도구
  • 데이터 브로커: 데이터 포맷과 데이터 코드를 변환하는 솔루션
  • 메시지 큐: 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터를 송수신하는 기술
  • 비즈니스 워크플로우: 미리 정의된 기업의 비즈니스 workflow에 따라 업무를 처리하는 기능

EAI 구축 유형

포인트 투 포인트(Point-to-Point) 1:1 단순 통합 방법

허브 앤 스포크(Hub & Spoke) 허브 시스템을 통하여 데이터를 전송하는 중앙 집중형 방식
메시지 버스(Message Bus) 애플리케이션 사이에 미들웨어를 두어 연계하는 방식
하이브리드(Hybird) 내부 - Hub & Spoke
외부 - Message Bus  

ESB(Enterprise Service Bus)

기업에서 운영되는 이기종 시스템을 하나로 통합하여 관리하는 방식

  • 느슨한 결합 방식(Loosely Coupled) 지원 :서비스 변경이 있어도 다른 서비스에는 영향을 끼치지 않음
  • 미들웨어를 이용하여 서비스 중심으로 서비스를 지원하기 위한 관련 시스템과 유기적 연계

ESB 구축 유형

  • 버스 방식의 분상형 토폴로지 구성

EAI방식과 ESB방식 비교

EAI 방식 ESB 방식

구성도 APP ESB(BUS)
개념 미들웨어(HUB)를 이용하여 비즈니스로직을 중심으로 기업 내 APP 통합 연계 미들웨어(BUS)를 ㄹ이용하여 서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계(SOA의 토대가 됨)
특징 - 허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식  
  • HUB 장애 시 전체 영향 | - 각 시스템을 BUS를 통해 연결하므로 뛰어난 확장성, 유연성, 신속성 제공
  • network에 의존적 |

웹 서비스(Web Service)

네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식을 공유하는 기술
서비스 지향 아키텍처(SOA) 개념을 실현하는 대표적인 기술

구성

 

 

  • SOAP(Simple Object Access Protocol) : HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜
  • WSDL(Web Service Description Language):  웹서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어
  • UDDI(Universla Description, Discovery and Intergration): 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 표준

 

IPC(Inter-Process Communication)

운영체제에서 프로세스 간 서로 데이터를 주고받기 위한 통신 기술

  • 공유 메모리(Shared Memory) : 다수의 프로세스가 공유 가능한 메모리를 구성하여 프로세스 간 통신을 수행
  • 소켓(Socket): 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스들 간 통신을 수행함
  • 세마포어(Semaphores): 공유 자원에 대한 접근 제어를 통해 프로세스 간 통신을 수행함
  • 파이프와 네임드 파이프(Pipe&named Pipes): Pipe라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신을 수행함
  • 메시지 큐(Message Queueing): 메시지가 발생하면 이를 전달하는 형태로 프로세스 간 통신을 수행함

연계 테스트

송신 시스템과 수신 시스템을 연계하였을 경우 데이터의 정합성과 데이터 전송 여부에 대한 테스트

 

💡 참고
https://dustink.tistory.com/155 https://enlqn1010.tistory.com/74
EAI, ESB 참고: https://ee-22-joo.tistory.com/3

댓글