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

14. 인테페이스 구현 1 - 인터페이스 연계 기술 - 1 과목 소프트웨어 구축

by 공불러 2024. 3. 25.
728x90
반응형

14. 인테페이스 구현 - 1 과목 소프트웨어 구축

 

인터페이스는 두 가지 시스템, 장치 또는 프로그램 사이에서 상호 작용할 수 있도록 만들어진 '연결점'이라고 생각할 수 있습니다. 이는 사용자가 컴퓨터나 기기와 상호 작용하는 방식을 의미합니다. 

이번 포스팅에선 인터페이스의 특징, 구성, 시험을 위해 암기가 필요한 개념들에대 설명하고자 합니다.

목차

    인터페이스

    서로다른 시스템이나 장치간에 정보나 신호를 주고 받을 수 있게 도와주는 시스템


    인터페이스는 사용자가 어떤 것을 어떻게 조작하고 이해할 수 있는지를 결정합니다. 여러분이 사용하는 스마트폰의 화면, 마우스와 키보드, 웹사이트의 버튼과 링크, 모든 이것들이 인터페이스의 한 예입니다.

    예를 들어, 스마트폰의 터치스크린은 사용자와 스마트폰 사이의 인터페이스입니다. 사용자는 손가락을 화면에 터치하고 이동함으로써 앱을 열거나 스와이프하여 페이지를 이동할 수 있습니다. 

    이러한 터치스크린 인터페이스는 사용자가 스마트폰을 사용하는 방법을 결정합니다.

    또 다른 예로는 웹사이트의 사용자 인터페이스가 있습니다.

    사용자가 웹페이지를 탐색하고 정보를 입력하고 찾을 수 있는 방법을 결정합니다.

    웹사이트의 인터페이스는 일반적으로 버튼, 링크, 입력 폼 등과 같은 요소로 구성됩니다.

    요약하자면, 인터페이스는 두 가지 시스템 또는 장치 사이의 상호 작용을 용이하게 만들어주는 '다리'라고 할 수 있습니다. 사용자가 컴퓨터 또는 기기를 조작하고 정보를 교환할 수 있도록 도와주는 역할을 합니다.

    인터페이스 시스템 구성

    1. 송신 (Transmitting):
      • 이 단계에서는 연계할 데이터를 생성하고 이를 인터페이스에 연결하는 역할을 합니다.
      • 일반적으로 송신 시스템은 사용자나 다른 시스템에서 생성한 데이터를 가공하거나 변환하여 특정 형식 또는 프로토콜에 맞춰 데이터를 생성합니다.
      • 데이터 생성 후에는 인터페이스를 통해 중계 시스템에 전송됩니다.
    2. 중계(연계) (Intermediate/Interfacing):
      • 중계 시스템은 송신과 수신 시스템 사이에서 데이터를 중계하고 이들의 현황을 모니터링하는 역할을 합니다.
      • 이 시스템은 다양한 프로토콜과 통신 방식을 지원하여 데이터를 안전하게 전달하고 데이터의 무결성을 유지합니다.
      • 또한, 중계 시스템은 다중화 기능을 제공하여 여러 송신 및 수신 시스템 간에 데이터를 동시에 처리할 수 있도록 합니다.
    3. 수신 (Receiving):
      • 수신 시스템은 중계 시스템으로부터 전송된 데이터를 수신하고 반영하는 역할을 합니다.
      • 일반적으로 데이터는 수신 시스템의 형식에 맞게 처리되고 저장되며, 필요에 따라 추가적인 처리나 분석이 이루어질 수 있습니다.
      • 수신 시스템은 데이터를 수신한 후 적절한 반응을 취하여 송신 시스템이나 사용자에게 필요한 정보를 제공합니다.

     

    시스템 분류와 데이터 식별

    시스템을 분류하고 데이터를 식별하는 것은 기업마다 그 속성이 다를 수 있으므로 우리가 만드려는 인터페이스에 대한 특징들을 서술하는 것이 필요하다 정도로 기억해주시면 좋습니다.

     

    분류 및 식별 예시

    • 연계시스템 식별 정보
    • 대내외 구분 정보 
    • 기관명
    • 시스템 ID
    • 한글명
    • 영문명
    • 설명
    • 위치
    • 네트워크 특성
    • IP/URL
    • Port
    • Login 정보
    • DB정보

    송수신 데이터 식별

    송수신 전문 구성

     

    구분 내용
    전문 공통부 - 인터페이스 ID
    - 서비스 코드
    - 접속 IP
    - Port 등
    전문 개별부 - 업무처리에 필요한 데이터를 포함
    전문 종료부 - 전송 데이터의 끝을 표시하는 문자를 포함

    전문 공통부

    인터페이스 표준 항목을 포함

    인터페이스 ID, 서비스 코드,. 접속 IP, Port

    전문 개별부

    업무처리에 필요한 데이터를 포함

    전문 종료부

    전송 데이터의 끝을 표시하는 문자 포함

     

    인터페이스 설계서 확인

    인터페이스 목록

    연계 업무와 연계 에 참여하는 송수신 시스템에 대한 목록, 기업마다 서로 다른 항목을 구성

    인터페이이스 정의서

    데이터 송신 시스템과 수신 시스템 간의 속성과 제약조건 등을 상세히 포함

     

    인터페이스 기능 구현

    EAI(Enterprise Application Intergration)

    EAI란 기업내의 다른 플랫폼 및 애플리케이션들을 연결, 통합하는 솔루션말합니다.

    주요목적은 비즈니스 통합 및 연계성 증대, 시스템 확장성 향상입니다.

    구현 방식 설명 장점 단점
    Point to
    Point
    Point to Point 방식은 각 시스템 간에 직접적인 연결을 통해 데이터를 전송하는 방식으로, 간단하고 빠르게 구현할 수 있지만, 시스템이 늘어날수록 연결 관리가 복잡해지고 유연성이 부족합니다. - 간단하고 직접적인 연결로 빠른 구현 가능
    - 시스템이 추가될 때마다 연결선이 증가하며 유지 보수가 복잡해짐
    Point to Point는 특정 시스템 간의 통신에 효과적이지만, 직접적인 연결로 인해 유연성이 부족할 수 있습니다. - 특정 시스템 간의 통신에 효과적
    - 시스템 간의 직접적인 연결로 인한 유연성 부족
    소규모 환경에서는 비교적 적은 비용으로 구현할 수 있지만, 시스템의 규모가 커질수록 연결선 관리가 복잡해질 수 있습니다. - 소규모 환경에서 비교적 적은 비용으로 구현 가능
    - 시스템이 많아질수록 연결선 관리가 어려워짐
    Hub &
    Spoke
    Hub & Spoke 방식은 중앙에 허브를 두고 각 시스템이 이 허브와 통신하는 구조로, 관리와 유지보수가 용이하나 허브에 문제가 발생할 경우 전체 시스템에 영향을 줄 수 있습니다. - 중앙 집중식 허브를 통해 전체 시스템 관리 가능
    - 허브에 장애 발생 시 전체 시스템에 영향을 줄 수 있음
    유연성과 확장성을 제공하나, 허브에 문제가 발생하면 전체 시스템에 영향을 줄 수 있으며, 허브가 병목 현상을 일으킬 수 있습니다. - 유연성과 확장성을 제공하여 시스템 추가/변경 용이
    - 허브가 병목 현상을 일으킬 수 있음
    시스템 간의 통신을 중앙에서 관리하고, 유연성과 확장성을 제공하지만, 허브에 많은 부하가 걸리면 성능 저하가 발생할 수 있습니다. - 시스템 간의 통신을 중앙에서 관리하기 용이
    - 허브가 많은 부하를 감당해야 하므로 성능 저하 가능성 존재
    Massage
    Bus
    (ESB 방식)
    중앙 집중식 메시지 버스를 통해 유연하고 확장 가능한 통합 구현이 가능하지만, 복잡한 구현과 관리가 필요할 수 있습니다. - 중앙 집중식 메시지 버스를 통해 유연하고 확장 가능한 통합 구현 가능
    - 복잡한 구현 및 관리가 필요함
    다양한 프로토콜 및 형식을 지원하여 시스템 간의 상호 운용성을 증대시킬 수 있지만, 고가의 인프라 및 라이센스 비용이 발생할 수 있습니다. - 다양한 프로토콜 및 형식을 지원하여 시스템 간의 상호 운용성 증대 가능
    - 고가의 인프라 및 라이센스 비용 발생 가능
    Hybrid 내부 시스템 간의 간단한 통신에는 Hub & Spoke를 사용하여 유연성을 확보하고, 외부 시스템과의 통신에는 Massage Bus 를 통해 복잡한 통합을 구현 가능

    내부적으로 Hub & Spoke, 외부적으로 Massage Bus(ESB 방식)
    - 내부 시스템 간의 간단한 통신에는 Hub & Spoke를 사용하여 유연성을  확보하고, 외부 시스템과의 통신에는 ESB를 통해 복잡한 통합을 구현 가능
    - 내부 및 외부 시스템 간의 차이로 인한 관리 복잡성 증가

    ESB (Enterprise Service Bus)

    웹 서비스 중심의 표준화된 데이터 버스를 이용하여 다양한 애플리케이션을 유연하게(느슨하게) 통합하는 플랫폼

    서비스 중심 통합을 지향

    주요특징

    1. 웹 서비스 중심의 데이터 버스
      • ESB는 웹 서비스를 통해 표준화된 프로토콜과 형식을 사용하여 애플리케이션 간의 통신을 단순화하고 표준화합니다.
      • 다양한 플랫폼과 언어를 사용하는 애플리케이션 간의 통합이 가능해집니다.
    2. 유연하고 느슨한 결합
      • ESB는 느슨한 결합(Loose Coupling)을 지향합니다.
      • 각각의 애플리케이션이 독립적으로 개발되고 유지보수될 수 있도록 하면서도, 필요에 따라 서비스를 연결하고 재사용할 수 있도록 합니다.
    3. 서비스 중심 통합
      1. ESB는 서비스 중심(Service-Oriented) 통합을 지향합니다
      2. 기업 내부의 시스템 및 애플리케이션을 비즈니스 서비스로 추상화하고, 이러한 서비스들을 재사용 가능한 구성 요소로 관리하며, 필요에 따라 조합하여 비즈니스 프로세스를 구현합니다.
    4. 중앙 집중식 플랫폼
      • ESB는 중앙 집중식으로 관리되는 플랫폼입니다.
      • 통합된 애플리케이션 간의 통신을 중앙에서 관리하고 제어함으로써 보안, 모니터링, 라우팅, 변환, 오케스트레이션 등의 기능을 제공합니다.
    5. 스케일러블한 아키텍처
      • ESB는 분산형 아키텍처를 기반으로 하여, 필요에 따라 확장 가능한 구조를 제공합니다.
      • 기업의 규모나 요구 사항에 맞춰 플랫폼을 조정하고 확장할 수 있음을 의미합니다.

    연계 기술

    DB Link

    데이터베이스 간에 연결을 설정하기 위한 오라클의 개체입니다. 하나의 데이터베이스에서 다른 데이터베이스의 테이블에 직접 쿼리를 실행할 수 있게 해줍니다.

    BD Connection

    데이터베이스와 응용 프로그램 간의 연결을 말합니다. 이 연결을 통해 응용 프로그램은 데이터베이스에 쿼리를 실행하거나 데이터를 조작할 수 있습니다.

    많은 정보를 유출하게되어 실제로는 많이 사용하지 않습니다.

    JDBC 

    자바 응용 프로그램에서 데이터베이스에 접속할 수 있는 자바 API입니다. JDBC를 사용하여 데이터베이스에 연결하고 쿼리를 실행

    API / Open API

    응용 프로그램 간에 상호 작용할 수 있는 인터페이스를 제공하는 소프트웨어 구성 요소를 말합니다. Open API는 공개적으로 사용 가능한 API를 의미합니다.

    Web Service

    트워크 상에서 서로 다른 시스템 간에 상호 작용할 수 있는 소프트웨어 시스템입니다. 주로 XML 기반의 통신 프로토콜인 SOAP 또는 REST를 사용합니다.

    SOAP, WSDL, UDDI는 모두 웹 서비스를 구성하고 사용하기 위한 중요한 요소들입니다.

    SOAP는 메시지를 교환하는 데 사용되는 프로토콜이며, WSDL은 웹 서비스의 인터페이스를 설명하는 데 사용됩니다. UDDI는 웹 서비스를 검색하고 찾아내기 위한 디렉터리 서비스로 사용됩니다.

    이들은 함께 사용되어 웹 서비스의 개발, 배포 및 이용을 용이하게 합니다.

    1. SOAP (Simple Object Access Protocol):
      • SOAP는 웹 서비스에서 메시지를 교환하는 데 사용되는 표준 프로토콜 중 하나입니다.
      • HTTP, HTTPS, SMTP를 통한 XML 기반 메시지 프로토콜
      • PRC패턴 사용, 클라이언트와 서버간의 요청 및 응답을 처리
      • XML 기반의 메시지 형식을 사용하여 네트워크 상에서 다른 시스템과의 통신을 가능하게 합니다.
        • 그래서 상대적으로 느림
      • SOAP 메시지는 보안, 트랜잭션 처리 및 오류 처리와 같은 다양한 기능을 지원합니다.
      • 주로 웹 서비스의 요청과 응답을 교환하는 데 사용됩니다.
      • 프록시와 방화벽에 구애받지 않는 통신
      • 구성 : WSDL, UDDI
      • SOAP 보안 프로토콜 
        프로토콜 설명
        SAML Security Assertion Markup Language(SAML)은 서비스 제공자와 사용자 간의 인증 및 권한 부여를 위한 XML 기반의 표준 프로토콜입니다.

        주로 단일 로그인(SSO)에 사용되며, 사용자 인증 정보를 안전하게 전달하고 서비스 제공자에게 신원을 확인합니다.
        XKMS XML Key Management Specification(XKMS)은 XML 기반의 암호화 및 디지털 서명을 위한 키 관리 프로토콜입니다.

        공개 키 인증서의 관리, 검색 및 확인을 담당하여 웹 서비스와 클라이언트 간의 안전한 통신을 지원합니다.
        XACML eXtensible Access Control Markup Language(XACML)은 접근 제어 정책을 정의하고 관리하기 위한 XML 기반의 표준 언어입니다.

        웹 서비스 및 애플리케이션에 대한 권한 부여를 위해 사용되며, 사용자에게 적절한 자원 및 서비스에 액세스 권한을 부여하고 관리합니다.
        SSL/TLS SOAP 메시지를 암호화하여 데이터를 안전하게 전송하는 데 사용됩니다. 서버 및 클라이언트 간의 통신을 암호화하고 인증합니다.
        HTTPS HTTP 프로토콜 위에 SSL/TLS를 사용하여 보안된 통신을 제공합니다. SOAP 메시지는 HTTPS 프로토콜을 통해 전송되므로 데이터의 안전성이 보장됩니다.
        WS-Security SOAP 메시지에 보안 헤더를 추가하여 인증, 기밀성, 무결성 및 권한 부여를 지원합니다. 이러한 보안 헤더는 XML 서명 및 암호화와 같은 보안 기능을 제공합니다.
        WS-Policy 서비스와 클라이언트 간의 보안 정책을 정의하고 교환하기 위한 프로토콜입니다. SOAP 메시지의 권한 부여 및 보안 요구 사항을 지정하는 데 사용됩니다.
        WS-Trust 서비스와 클라이언트 간의 신뢰 관계를 설정하고 관리하기 위한 프로토콜입니다. 서비스 액세스에 대한 신뢰성을 보장하고 보안 토큰 교환을 지원합니다.
        WS-SecureConversation 보안 통신 세션을 설정하고 유지하는 데 사용되며, 메시지 암호화 및 권한 부여에 대한 보안을 제공합니다.
        WS-Federation 서비스 간 신뢰 관계와 식별 정보 공유를 위한 프로토콜입니다. 다양한 보안 도메인 간의 신뢰성 있는 통신 및 사용자 인증을 지원합니다
    2. WSDL (Web Services Description Language):
      • WSDL은 웹 서비스의 인터페이스를 기술하는 XML 기반의 문서 형식입니다.
      • 웹 서비스가 제공하는 기능, 사용할 수 있는 메서드, 매개변수 및 메시지 형식 등에 대한 정보를 포함합니다.
      • 클라이언트는 WSDL 문서를 통해 웹 서비스의 인터페이스를 이해하고 요청할 수 있습니다.
    3. UDDI (Universal Description, Discovery, and Integration):
      • 비지니스 업체 등록 목록
      • UDDI는 웹 서비스를 발견하고 검색하기 위한 디렉터리 서비스 표준입니다.
      • 기업이나 조직은 UDDI 레지스트리에 자신의 웹 서비스를 등록하여 다른 이용자가 검색할 수 있도록 합니다.
      • UDDI를 통해 사용 가능한 웹 서비스를 검색하고, 해당 서비스에 대한 정보를 가져올 수 있습니다.
    4. REST (Representational State Transfer)
      1. REST는 HTTP를 기반으로 한 클라이언트와 서버 간의 통신을 위한 규칙과 제약을 제공합니다.
      2. HTTP URI를 통한 자원명시 - 자원 기반 구조 구현
        1. 유니폼 인터페이스 : HTTP 표준만 따르면 어떤 언어나 플랫폼에서 사용해도 사용이 가능한 인터페이스 스타일
        2. Stateless : REST는 상태정보를 유지 하지 않음
        3. chacheable : HTTP가 가진 캐싱 기능이 적용 가능
        4. Self-descriptiveness : REST API 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 되어 있다.
      3. REST는 웹 서비스의 간단한 디자인과 구현을 촉진하며, 특히 HTTP를 이용하여 CRUD(Create, Read, Update, Delete) 기능을 구현하기 쉽습니다.
        • 자원 (Resources): 모든 것을 자원으로 간주하며, 각 자원은 고유한 식별자(URI)를 가지고 있습니다.
        • 행위 (Actions): HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 자원에 대한 행위를 정의합니다.
        • 표현 (Representation): 자원의 상태는 JSON, XML, HTML 등의 형식으로 표현됩니다.
        • 무상태성 (Statelessness): 각 요청은 서버에 저장된 상태에 의존하지 않고, 모든 정보를 요청 자체에 포함해야 합니다.
        • 캐시 처리 가능 (Cacheability): 클라이언트는 응답을 캐시하여 성능을 향상시킬 수 있습니다.
        • 계층 구조 (Layered System): 클라이언트는 서버와 직접 통신하는 대신 중간 계층(로드 밸런서, 캐시 서버 등)을 통해 통신할 수 있습니다.
        • 인터페이스 일관성 (Uniform Interface): 일관된 인터페이스를 제공하여 클라이언트와 서버 간의 상호 운용성을 향상시킵니다.
      4. 장점 : 별도 인프라 필요 없음
      5. 단점 : 표준 부재
      6. CRUD 별 HTTP Method
        1. 설명표 : CPRGUP
          CRUD 동작 HTTP 메서드 설명
          Create POST 새로운 자원을 생성합니다. (CP)
          Read GET 자원을 검색하거나 조회합니다.(RG)
          Update PUT 또는 PATCH 기존 자원을 수정하거나 업데이트합니다. PUT은 전체 자원을 교체하고, PATCH는 부분적인 수정을 합니다. (UP)
          Delete DELETE 기존 자원을 삭제합니다.

    Hyper lIink

    Hyperlink(하이퍼링크)는 웹 페이지나 다른 문서에서 다른 위치나 다른 문서로 이동할 수 있도록 하는 링크를 말합니다. 일반적으로 클릭하면 웹 브라우저가 연결된 위치로 이동합니다.

    Socket

    소켓(Socket)은 네트워크 상에서 서로 다른 프로세스 간의 통신을 가능하게 하는 엔드포인트를 말합니다. TCP 소켓이나 UDP 소켓과 같이 다양한 유형이 있으며, 클라이언트와 서버 간의 데이터 교환에 사용됩니다.

    인터페이스 전송 데이터

    JSON (JavaScript Object Notation)

    JSON은 경량의 데이터 교환 형식으로, 사람이 읽고 쓰기 쉽고 기계가 분석하고 생성하기 쉽습니다. 특히 웹에서 데이터를 교환하는 데 많이 사용됩니다.

    주로 API 톻신에서 활용됩니다.

     

    GET 방식:

    • GET 방식은 데이터를 URL의 쿼리 문자열에 포함하여 서버에 전송합니다.
    • 주로 데이터를 요청할 때 사용되며, 데이터를 서버로 보낼 때에는 적합하지 않습니다.
    • URL에 파라미터가 노출되기 때문에 보안에 취약할 수 있습니다.
    • 데이터의 길이 제한이 있으며, 대부분의 브라우저에서는 2048자로 제한됩니다.
    $.ajax({
        url: 'example.com/api/data?param1=value1&param2=value2',
        type: 'GET',
        success: function(response) {
            // 처리할 작업
        }
    });

    POST 방식:

    • POST 방식은 HTTP 요청의 본문(body)에 데이터를 담아 서버에 전송합니다.
    • 보안 면에서 GET 방식보다 더 안전합니다. URL에 데이터가 노출되지 않기 때문입니다.
    • 데이터 길이 제한이 없으므로 많은 양의 데이터를 전송할 수 있습니다.
    • 주로 로그인, 회원가입, 데이터 생성 및 업데이트 등의 작업에 사용됩니다.
    $.ajax({
        url: 'example.com/api/data',
        type: 'POST',
        data: {
            param1: 'value1',
            param2: 'value2'
        },
        success: function(response) {
            // 처리할 작업
        }
    });

     

    XML (eXtensible Markup Language)

    XML은 계층 구조로 구성된 데이터를 표현하는 마크업 언어로, 사람이 읽기 쉽고 구조화된 데이터를 저장하고 전송하는 데 사용됩니다.

    YAML(직열화 언어)

    YAML은 사람이 읽고 쓰기 쉽고 기계가 이해하기 쉬운 데이터 직렬화 언어입니다. JSON과 유사하지만 더 간결하고 가독성이 높습니다.

    CSV

    CSV는 데이터를 행과 열로 구성된 텍스트 형식으로 표현하는 파일 형식입니다. 각 열은 쉼표로 구분되고 각 행은 개행 문자로 구분됩니다. 주로 스프레드시트나 데이터베이스에서 사용됩니다.

    728x90
    반응형

    댓글