소프트웨어 개발 - 인터페이스 구현
#인터페이스 구현
인터페이스 기능
- 이기종 시스템 또는 컴포넌트 간 데이터 교환 및 처리를 위한 기능
- 각 시스템의 교환 데이터 및 업무, 송수신 주체 등이 정의되어 있는 인터페이스 설계서를 보고 인터페이스 기능을 확인할 수 있음
- 인터페이스 정의서를 통하여 외부 및 내부 모듈의 기능을 확인할 수 있음
인터페이스 데이터 표준 확인
상호 연계하고자 하는 시스템 간 인터페이스가 되어야할 범위의 데이터 형식과 표준을 정의하는 것
송 수신 시스템 간의 인터페이스 데이터를 표준화하기 위해서는 송 수신 데이터 중 공통의 영역을 추출하여 정의하는 경우도 있고 한쪽 데이터를 변환하는 경우도 있음
내외부 인터페이스 기술 표준 확인
■ EAI (Enterprise Application Integration)
기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높여줄 수 있고, 각 시스템 간의 확장성을 높여줄 수 있음
◆ 종류
- 포인트 투 포인트 (Point to point)
- 허브 앤 스포크 (Hub & Spoke)
- 메세지 버스 (Message Bus)
- 하이브리드 (Hybrid)
■ ESB (Enterprise Service Bus)
하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처
버스를 중심으로 각각 프로토콜이 호환가능하도록 애플리케이션의 통합을 낮은 결합 방식으로 지원하는 방식
인터페이스 보안
인터페이스 보안의 중요성
시스템 모듈간 통신 및 정보 교환의 중요한 접점이기 때문에 인터페이스 보안 취약성은 시스템에 심각한 피해를 입힐 수 있음 (데이터 변조 및 탈취 등)
인터페이스 보안의 취약점
- 데이터 통신시 데이터 탈취 위협
- 데이터 통신 시 데이터 위.변조 위협
인터페이스 보안 구현 - 1. 시큐어 코딩 가이드 적용
- 입력 데이터 검증 및 표현
- 보안 기능
- 시간 및 상태
- 에러 처리
- 코드 오류
- 캡슐화
- API 오용
인터페이스 보안 구현 - 2. 데이터베이스 보안 적용
- 필요한 요구사항을 적용
- 안전성이 검증된 암호화 알고리즘을 활용하여 민감한 데이터는 반드시 암호화
- 데이터베이스 보안 요구사항은 해당 인터페이스 조건에 부합되도록 적용
인터페이스 보안 구현 - 3. 데이터베이스 암호화 기법
■ API 방식
- 애플리케이션 레벨에서 암호 모듈을 적용하는 애플리케이션 수정방식
- 애플리케이션 서버에 암.복호화, 정책/키 관리 부하 발생
■ Plug-in 방식
- DB 레벨의 확장성 프로시저 기능을 이용
- DB서버에 암.복호화, 정책/키 관리 부하 발생
■ Hybrid 방식
- API 방식과 Plug-in 방식을 결합하는 방식
- DB 서버와 애플리케이션 서버로 부하 분산
인터페이스 보안 구현 - 4. 중요 인터페이스 데이터의 암호화 전송
■ S-HTTP
- 서버간에 전송되는 모든 메세지를 각각 암호화하여 전송하는 프로토콜
■ IPSec
- 양방향 암호화, 보안 서비스를 제공하는 프로토콜
■ SSL/TLS
- 전송계층과 응용계층 사이에서 클라이언트와 서버간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
인터페이스 데이터 포맷
■ JSON
- 비동기 브라우저/서버 통신(AJAX)을 위해 “속성-값” “키-값”으로 이루어진 데이터
■ XML
- 다른 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장하는 다목적 마크업 언어
■ YAML
- 데이터를 사람이 쉽게 읽을 수 있는 형태로 표현하기 위해 사용하는 데이터를 직렬화한 양식
데이터 교환 기술
■ REST
- 자원의 존쟈/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처
■ AJAX
- 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술
This post is licensed under CC BY 4.0 by the author.