인터페이스 구현
06 인터페이스 구현
Section 1. 인터페이스 개요
1. 인터페이스 시스템
⑴ 인터페이스 시스템의 개념
- 서로 다른 시스템, 장치 사이에서 정보나 신호를 주고 받을 수 있도록 도움을 주는 시스템
⑵ 인터페이스 시스템 구성
2. 연계 시스템 분류와 데이터 식별
⑴ 시스템 분류 체계
- 기업 내부에서 사용하고 있는 시스템 분류 체계를 기반으로 대내외 인터페이스 시스템의 식별자를 정의
⑵ 연계 시스템 식별 정보
- 대내외 구분 정보
- 기관명
- 시스템 ID
- 한글명
- 영문명
- 시스템 설명
- 시스템 위치
- 네트워크 특성
- 전용 회선 정보
- IP/URL
- Port
- Login 정보
- DB 정보
- 담당자 정보
⑶ 송수신 데이터 식별
- 송수신 시스템 사이에서 교환되는 데이터는 규격화된 표준 형식에 따라 전송
■ 송수신 전문 구성
구성
전문 공통부
설명
- 인터페이스 표준 항목을 포함
- 인터페이스 ID, 서비스 코드, 접속 IP 등
전문 개별부
- 업무처리에 필요한 데이터를 포함
전문 종료부
- 전송 데이터의 끝을 표시하는 문자 포함
Section 2. 인터페이스 설계서 확인
1. 인터페이스 설계서 구성
⑴ 인터페이스 목록
- 연계 업무와 연계에 참여하는 송수신 시스템의 정보, 연계 방식과 통신 유형 등에 대한 정보
⑵ 인터페이스 정의서
- 데이터 송신 시스템과 수신 시스템 간의 데이터 저장소와 속성 등의 상세 내역을 포함
Section 3. 인터페이스 기능 구현
1. 내·외부 모듈 연계 방식
⑴ EAI(Enterprise Application Integration)
① EAI의 개념
- 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
② EAI의 구축유형
- Point-to-Point
- Hub & Spoke
- Message Bus (ESB 방식)
- Hybrid
⑵ ESB(Enterprise Service Bus)
- 웹 서비스 중심으로 표준화된 데이터, 버스를 통해 이 기종 애플리케이션을 유연(loosely-coupled)하게 통합하는
핵심 플랫폼(기술)
2. 인터페이스 연계 기술
■ DB Link
- 데이터베이스에 제공하는 DB Link 객체를 이용
■ DB Connection
- 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB Connection Pool을 생성하고 연계 프로그램에서
해당 DB Connection Pool명을 이용
■ JDBC
- 수신 시스템의 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 DB와 연결
■ API / OpenAPI
- 송신 시스템의 애플리케이션 프로그래밍 인터페이스 프로그램
■ Web Service
- WSDL(Web Services Description Language), UDDI(Universal Description, Discovery and Integration),
SOAP(Simple Object Access Protocol) 프로토콜을 이용하여 연계
■ Hyper Link
- 웹 애플리케이션에서 하이퍼링크(Hyper Link) 이용
■ Socket
- 통신을 위한 소켓(Socket)을 생성하여 포트를 할당하고 클라이언트의 통신 요청 시 클라이언트와 연결하고
통신하는 네트워크 기술
3. 인터페이스 전송 데이터
⑴ JSON (JavaScript Object Notation)
- Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷
■ JSON 문법
{
"firstName": "Kwon",
"lastName": "YoungJae",
"email": "kyoje11@gmail.com",
"hobby": ["puzzles","swimming"]
}
⑵ XML (eXtensible Markup Language)
- 웹에서 구조화한 문서를 표현하고 전송하도록 설계한 마크업 언어
■ XML 예제
<?xml version="1.0" encoding="UTF-8"?>
<information type="필기">
<subject>
<no>1</no>
<name>소프트웨어설계</name>
<point>80</point>
</subject>
<subject>
<no>2</no>
<name>소프트웨어개발</name>
<point>60</point>
</subject>
</shop>
⑶ CSV (Comma Separated Values)
- 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일
- 표 형태의 데이터를 저장하는 파일 형식
■ CSV 예제
1,소프트웨어설계,80
2,소프트웨어개발,60
3,데이터베이스구축,85
4. 인터페이스 구현
⑴ AJAX(Asynchronous JavaScript and XML)
① AJAX의 개념
- 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능
② 비동기 방식
- 웹페이지를 리로드하지 않고 데이터를 불러오는 방식
③ AJAX 예제
$.ajax({
url: ‘https://www.njobler.net/test’,
type: 'GET',
success: function onData (data) {
console.log(data);
},
error: function onError (error) {
console.error(error);
}
});
⑵ SOAP(Simple Object Access Protocol)
① SOAP의 개념
- HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜
- SOAP은 웹 서비스에서 기본적인 메시지를 전달하는 기반이 된다.
② SOAP 구성
③ SOAP 기본 구조
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
⑶ REST
① REST의 개념
- HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한
CRUD Operation을 적용하는 것을 의미한다.
- 자원 기반의 구조(ROA, Resource Oriented Architecture)의 개념으로 구현되었다.
② REST 구성요소
■ 자원(Resource), URI
- 서버에 존재하는 데이터의 총칭
- 모든 자원은 고유의 URI를 가지며 클라이언트는 이 URI를 지정하여 해당 자원에 대해 CRUD 명령을 수행한다.
■ 행위(Verb), Method
- 클라이언트는 URI를 이용해 자원을 지정하고 자원을 조작하기 위해 Method를 사용한다.
- HTTP 프로토콜에서는 GET , POST , PUT , DELETE 같은 Method를 제공한다.
■ 표현(Representation)
- REST에서 하나의 자원은 JSON , XML , TEXT , RSS 등 여러 형태의 Representation으로 나타낼 수 있다.
③ REST API 예제
구분
표현
강의 생성
HTTP POST,http://njobler.net/lecture" target="_blank" rel="noopener" data-mce-href=" http://njobler.net/lecture"> http://njobler.net/lecture
{
"lec":{
"name":"정보처리실기"
"price":"70,000"
}
}
강의 조회
HTTP GET,http://njobler.net/lecture/정보처리실기" target="_blank" rel="noopener" data-mce-href=" http://njobler.net/lecture/정보처리실기"> http://njobler.net/lecture/정보처리실기
강의 수정
HTTP PUT,http://njobler.net/lecture" target="_blank" rel="noopener" data-mce-href=" http://njobler.net/lecture"> http://njobler.net/lecture
{
"lec":{
"name":"정보처리 실기"
"price":"65,000"
}
}
강의 삭제
HTTP DELETE,http://njobler.net/lecture/정보처리실기" target="_blank" rel="noopener" data-mce-href=" http://njobler.net/lecture/정보처리실기"> http://njobler.net/lecture/정보처리실기
④ RESTful
- REST의 원리를 따르는 시스템
5. 인터페이스 보안
⑴ 인터페이스 보안 취약점 분석
- 인터페이스의 보안 취약점을 분석
- 분석된 보안 취약점을 근거로 인터페이스 보안 기능을 적용
⑵ 인터페이스 보안 기능 적용
① 네트워크 영역
- 인터페이스 송/수신 간 스니핑 등 이용한 데이터 탈취 및 변조 위협 방지 위해 네트워크 트래픽에 대한
암호화 설정
- IPSec, SSL, S-HTTP 등 다양한 방식으로 적용
② 애플리케이션 영역
- 시큐어코딩 가이드를 참조하여 애플리케이션 코드 상 보안 취약점을 보완하는 방향으로 보안 기능 적용
③ DB 영역
- DB, 스키마, 엔티티의 접근 권한과 프로시저, 트리거 등 DB 동작 객체의 보안 취약점에 보안 기능을 적용
- 민감 데이터를 암호화, 익명화 등을 통해 데이터 자체 보안 방안도 고려
Section 4. 인터페이스 구현 검증
1. 인터페이스 검증
⑴ 인터페이스 구현 검증 도구
■ xUnit
- 다양한 언어를 지원하는 단위 테스트 프레임 워크
■ STAF
- 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
■ FitNesse
- 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
■ NTAF
- FitNesse의 장점과 STAF의 장점을 통합한 Naver의 테스트 자동화 프레임워크
■ Selenium
- 다양한 브라우저 및 개발 언어를 지원하는 웹 어플리케이션 테스트 프레임워크
■ watir
- Ruby를 사용하는 애플리케이션 테스트 프레임워크
⑵ 인터페이스 구현 감시 도구
- APM(Application Performance Management)을 사용하여 동작상태 감시
- 데이터베이스, 웹 애플리케이션의 다양한 정보를 조회하고 분석하여 시각화 함
- 종류 : 스카우터(Scouter), 제니퍼(Jennifer) 등
2. 인터페이스 오류 처리
⑴ 인터페이스 오류 발생 알림
- 화면을 통한 오류 메시지 표시
- 오류 발생시 SMS 발송
- 오류 발생시 이메일 발송
⑵ 인터페이스 오류 발생 확인
- 인터페이스 오류 로그 확인
- 인터페이스 오류 테이블 확인
- 인터페이스 감시도구로 확인