5단원 인터페이스 구현
- 인터페이스 설계 확인
- 인터페이스 산출물
- 인터페이스는 크게 사용자 인터페이스 와 시스템 인터페이스로 구분된다
- 상세 기능별 인터페이스 명세서 주요 항목
- 인터페이스 ID : 인터페이스를 구분하기 위한 식별자
- 인터페이스 명 : 해당 인터페이스를 나타내는 고유 명칭
- 오퍼레이션 명 : 해당 인터페이스의 세부 동작 명칭
- 오퍼레이션 개요 : 해당 인터페이스의 세부 동작 프로세스에 대한 세부 설명
- 사전 조건 : 해당 인터페이스의 세부 동작이 정상적으로 작동하기 위한 사전에 완료되어야 하는 조건 기술
- 사후 조건 : 해당 인터페이스의 세부 동작이 정상적으로 작동된 이후에 발생되는 조건 기술
- 파라미터 : 인터페이스 구성 항목 값
- 반환 값 : 인터페이스 전송 후 반환되는값
- 외부,내부 연계 방법
- EAI 방식
- 서로 다른 플랫폼 및 애플키레이션 간의 정보를 전달,연게,통합이 가능하도록 해주는 솔루션
- 구축 유형
- 포인트 투 포인트 : 가장 기초적인 애플리케이션 통합방법으로 1:1 단순 통합방법
- 허브 앤 스포크 : 단일한 접점의 허브시스템을 통하여 데이터를 전송하는 중앙 집중직 방식
- 메시지 버스 : 애플리케이션 사이 미들웨어를 두어 연계하는 미들웨어 통합 방식
- 하이브리드 : 그룹 내부는 허브앤 스포크, 그룹간은 메시지버스를 방식을 사용하는 통합방식
- ESB방식
- 버스를 중심으로 각각 프로토콜이 호환할수있도록 애플리케이션의 통합을 느슨한 결합 방식으로 지원
- 외부 및 내부 묘둘간 인터페이스 데이터 표준 확인
- 인터페이스 데이터 표준 확인
- 상호 연계하고자 하는 시스템 간 인터페이스가 되어야 할 범위의 데이터 형식과 표준을 정의하는 활동
- 인터페이스 기능 구현
- 모듈간 세부 셜계서 확인
- 각 모듈의 컴포넌트 명세서와 인터페이스 명세서 등 세부 설계서를 확인하여 인터페이스에 필요한 기능을 확인
- 컴포넌트 명세서
- 컴포넌트의 개요, 내부 클래스의 동작, 인터페이스를 통해 외부와 통신하는 명세를 정의
- 인터페이스 명세서
- 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부적인 조건 및 기능을 명시한 명세서
- 인터페이스 기능 구현
- JSON :
- 속성-값 쌍 도는 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을수 있는 텍스트를 사용하는 개방형 표준 포맷
- AJAX 에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷
- XML
- HTML 단점을보완한 인터넷언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어
- 송 수신 시스템간 데이터 연계의 편의성을 위해서 전송되는 데이터 구조를 동일한 형태로 정의
- 인간과 기계가 모두 이해할 수있는 텍스트 형태로 마크업 포맷을 정의하기 위한 메타 언어
- AJAX
- 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적인 XML데이터를 교환하고 조작하기 위한 웹 기술
- 주요기술
- XMLHtppRequlest : 데이터를 전송하는 개체 폼의 API
- javascript : 객체 기반의 스크립트 프로그래밍 언어
- XML : HTML 단점을 보완한 인터넷언어
- DOM : XML문서를 트리 구조의 형태로 접근할수 있게 해주는 API
- XSLT : XML문서를 다른 XML문서로 변환하는데 사용하는 XML기반 언어
- HTML : 인터넷 웹 문서를 표현하는 표준화된 마크업 언어
- CSS : 마크업 언어가 실제 표시되는 방법을 기술하는 언어
- REST
- 웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP메서드로 주고받는 웹 아키텍쳐
- 처리방법
- 클라이언트/서버 구조 : 클라이언트와 서버는 독립적으로 구현되어야 하고, 서로 간 의존성은 축소
- 무 상태성 : 상태정보를 따로 저장하고 관리하지 않기 때문에 API서버는 들어오는 요청만 단순히 처리함
- 일관된 인터페이스 : 특정 언어나 기술에 종속되지 않고 모든 플랫폼에 사용할수 있으며 URI로 지정한 리소스에 대한 조작이 가능한 아키텍처 스타일
- 캐시 처리 가능 : HTTP가 가진 캐싱 기능 적용 가능
- 자체 표현 구조 : API메시지 자체만 보고도 API를 이해할수있는 구조를 가짐
- 인터페이스 보안 기능 적용
- 인터페이스를 위한 송 수신 시스템 간의 데이터 통신시 스니핑을 통해 데이터 전송 내역을 감청하여 데이터를 탈취하는 위협이 존재한다
- 시큐어 코딩 가이드 적용(입보시 에코캡아)
- 입력데이터 검증 및 표현 : 프로그램 입력값에 대한 검증 누락/ 부적절한 검증, 잘못된 형식 지정
- 보안 기능 : 보안 기능의 부적절한 구현
- 시간 및 상태 : 거의 동시에 수행 지원하는 병렬시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 고나리
- 에러 처리 : 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함
- 코드 오류 : 개발자가 범할 수 있는 코딩 오류로 인해 유발
- 캡슐화 : 기능성이 불충분한 캡슐하로 인해 인가되지 않은 사용자에게 데이터 누출
- API오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API 사용
- 데이터 베이스 보안 적용
- 데이터베이스 암호화 알고리즘(대비해)
- 대칭 키 알고리즘 : 암호화 알고리즘의 한종류, 암/복호화에 같은 암호키를 쓰는 알고리즘을 의미(ARIA 128/192/256, SEED)
- 비대칭키 알고리즘 : 공개키는 누구나 알수 있지만 그에 대응하는 비밀키는 키의 소유자만이 알수 있도록 공개키와 비밀키를 사용하는 알고리즘(RSA,ECC,ECDSA)
- 해시 암호화 알고리즘 : 해시값으로 원해 입력값을 찾아낼 수 없는 일방향성의 특성을 가진 알고리즘(SHA-256/384/512, HAS-160)
- 데이터베이스 암호화 기법(애플티하)
- API방식 : 애플리케이션 레벨에서 암호화 묘듈을 적용하는 애플리케이션 수정 방식
- Plug-in : 암 복호화 모듈이 DB서버에 설치된 방식
- TDE : DB서버의 DBMS커널이 자체적으로 암 복호화 기능을 수행하는 방식
- Hybrid : API방식과 Plug-in 방식을 결합하는 방식
- 중요 인터페이스 데이터의 암호화 전송
- IpSec : IP계층에서 무결성과 인증을 보장하는 인증 헤더 와 기밀성을 보장하는 암호화를 이ㅛㅇ하여 양 종단간 구간에 보안 서비스를 제공하는 터널링 프로토콜
- SSL/TLS : 전송 계층 과 응용계층 사이에서 클라이언트와 서버 간의 웹데이터 암호화, 상호 인증 및 전송시 데이터 무결성을 보장하는 보안 프로그램
- S-HTTP : 웹상에서 네트워크 트래픽을 암호화하는 주요 방법중 하나로서 클라이언트 서버 간에 전송되는 모든 세미지를 각각 암호화하여 전송
- 인터페이스 구현 검증
- 개념 : 구현된 인터페이스의 동작을 검증하기 위해 인터페이스 구현 및 감시 도구를 통해서 인터페이스 동작 상태를 검증하고 모니터링할 수 있다.
- 구현 검증 도구
- xUnit : 다양한 어를 지원하는 단위테스트 프레임워크
- STAF : 서비스호출,컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크
- FitNesse : 웹 기반 테스트 케이스 설계/실행/결과 확인등을 지원하는 테스트 프레임 워크
- NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN의 테스트 자동화 프레임워크
- Selenium : 다양한 브라우저 지원 및 개발 언어를 지원하는 웹애플리케이션 테스트 프레임 워크
- watir : 루비 기반 웹 애플리케이션 테스트 프레임 워크
- 인터페이스 감시 도구
- 스카우터(SCOUTER) : 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB모니터링 기능, 인터페이스 감시 기능을 제공
- 제니퍼(Jennifer) : 애플리케이션의 개발부터 테스트, 오픈,운영,안정화 까지 전 생애 주기단계 동안 성능을 모니터링하고 분석해주는 APM 소프트웨어
- 인터페이스 오류 처리 방법(화로테)
- 사용자 화면에서 오류를 인지하도록 구현
- 인터페이스 오류가 발생하였을 경우 알람 형태로 화면에 표시되며, 주로 실시간으로 데이터가 인터페이스 되는 경우에 사용된다
- 인터페이스 오류 로그 생성
- 시스템 운영 로그에 인터페이스 오류시 관련 오류 로그가 생성되도록 할수있다.
- 인터페이스 관련 테이블에 오류 사항 기록
- 테이블을 통한 인터페이스 기능을 구현할 경우나 인터페이스 트랜잭션 기록을 별도로 보관하는 경우에는 테이블에 오류사항을 기록할수있다.