1) 인터페이스 산출물
* 인터페이스 설계서 ( 가장 큰 단위의 설계서 )
- 이기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 각 시스템이 교환되는 데이터, 업무, 송수신 주체 등이 정의된 문서
- 상세기능 인터페이스 정의서 : 상세기능 인터페이스 목록 + 상세기능 인터페이스 정의서
- 시스템 인터페이스 정의서 : 시스템 인터페이스 목록 + 시스템 인터페이스 정의서
* 인터페이스 정의서
- 송수신 정보 구체화, 인터페이스 상세 정보
* 인터페이스 데이터 표준 확인
- 상호 연계하고자 하는 시스템 간 인터페이스 되어야 할 데이터 형식과 표준 정의
* 컴포넌트 명세서 : 컴포넌트 개요, 내부 클래스 동작, 인터페이스를 통해 외부와 통신하는 명세 정의
* 인터페이스 명세서 : 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부정보를 명시한 명세서
2) EAI(Enterprise Application Interface)(포허메하)
- 기업에서 운영되는 이기종 간의 시스템 연계 솔루션
| EAI 방식 종류 | |
| Point to Point 방식 | 1:1 단순 통합 방식 |
| Hub & Spoke 방식 | 허브 시스템을 통하여 데이터를 전송하는 중앙 집중형 방식 |
| Message Bus 방식 | 애플리케이션 사이에 미들웨어를 두고 연계하는 방식 |
| Hybrid 방식 | 내부 - Hub & Spoke 방식, 외부 - Message Bus 방식 |
3) ESB(Enterprise Service Bus)
- 기업에서 운영되는 이기종 시스템을 하나로 통합하여 관리하는 방식
* 느슨한 결합 : 서비스를 변경하여도 다른 서비스에 영향을 주지 않는 유연한 구조
* 어댑터 : 애플리케이션을 연결하는 EAI 핵심 장치
| EAI 방식 | ESB 방식 | |
| 구성도 | APP | ESB(BUS) |
| 개념 | 미들웨어(Hub)를 이용하여 Biz로직을 중심으로기업 내 APP 통합 연계 | 미들웨어(BUS)를 이용하여서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계 (SOA의 토대가 됨) |
| 특징 | - 단일 접점인허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식 - HUB장애 시 전체 영향 | - 각 시스템을BUS를 통해 연결하므로 뛰어난 확장성, 유현성, 신속성 제공 - network에 의존적 |
Chapter02 인터페이스 기능 구현 (중요도: ★★★)
◆ 컴포넌트 명세서: 컴포넌트 개요, 부 클래스의 동작, 인터페이스를 통해 외부와 통신하는 명세
◆ 인터페이스 명세서: 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부적인 조건 및 기능을 명시한 명세서
◆ JSON(Javascript Object Notation): 속성-값 쌍 또는 “키-값 쌍”으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 테스트를 사용하는 개방형 표준 포맷, AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷
◆ XML(Extensible Markup Language): HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 담ㄷ점을 개선한 특수한 목적을 갖는 마크업 언어
◆ AJAX(Asynchronous Javascript And XML): 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML데이터를 교환하고 조작하는 웹 기술, XMLHttpRequest객체(비동기 통신 담당하는 JS 객체)를 이용해서 필요한 일부 페이지의 데이터만 로드
◆ REST(Representational State Transfer): 웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP메서드로 주고받은 웹 아키텍처
- REST 메서드: HTTP메서드 중 CRUD메서드만 사용-POST(생성), GET(조회), PUT(수정), DELETE(삭제)
5) 인터페이스 보안 취약점 및 보안 구현
* 스니핑(단답형) : 직접 공격하지 않고 데이터를 몰래 들여다보는 공격 기법
* 인터페이스 보안 취약점 ( 9장 내용과 동일 ) - 입어 보니 시원한 애 코 캡
- 입력 데이터 검증 및 표현
- 보안 기능
- 시간 및 상태
- 에러 처리
- 코드 오류
- 캡슐화
- API 오용
6) 데이터베이스 보안 적용 ( 9장 내용과 동일 )(대비해)
* DB 암호화 알고리즘
- 대칭키 : 암호화와 복호화의 암호키가 동일 ( DES / AES / SEED )
: SEED : 블록 암호화
- 비대칭키 : 암호화와 복호화의 암호키가 다름 ( RSA / ECC / EIgamal )
: RSA : 공개키 암호화 알고리즘, 소인수분해
- 해시 : MD5 ( 2020 실기 1회 기출 ) / SHA
* DB 암호화 기법
- API 방식 : 애플리케이션 레벨에서 암호화 모듈을 적용
- Plug-In 방식 : DBMS에서 Plug-In 모듈로 동작하는 방식
- Hybrid 방식 : API 방식과 Plug-In 방식의 장점을 합친 방식
* IPSec(2020 실기 2회 기출) : IP 계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
* SSL/TLS : Application과 TCP/IP 계층 사이에서 웹 데이터를 암호화하고 전송 시 기밀정을 보장하는 공개키 기반 보안 프로토콜
* 데이터베이스 보안 기능 적용
- 데이터베이스 접근 권한
- 악의적 코드 삽입 금지
- 민감 데이터 관리
- 악의적 시도 시 에러 처리
7) 인터페이스 구현 검증(단답형)(엑스피엔셀웨)
- xUnit
:JAVA(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크
- STAF
: 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
- FitNesse
: 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
- NTAF
: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크
- Selenium
: 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크
- watir
: Ruby를 사용하는 애플리케이션 테이트 프레임워크
8) 인터페이스 감시 도구
- 스카우터(단답형) : 애플리케이션 모니터링 및 DB 모니터링, 인터페이스 감시 기능 제공
- 인터페이스 구현 검증 프로세스
: 송신 측에서 인터페이스 대상 선택 전송 -> 인터페이스 객체 전송 -> 수신 측에서 수신 트랜잭션 결과 반환
9) 인터페이스 오류 처리 방법(화로테)
- 사용자 화면에 오류 인지하도록 구현
- 인터페이스 오류 로그 생성
- 인터페이스 관련 테이블에 오류사항 기록
- 오류 처리 보고 시기
: 최초 발생 보고 -> 오류 처리 경과보고 -> 완료 보고
