인터페이스 산출물
1. 분석 단계 -> 인터페이스 정의서
2. 명세 단계 -> 인터페이스 명세서
3. 설계 단계 -> 인터페이스 설계서
시스템 인터페이스 설계서
이 기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 각 시스템의 교환되는 데이터, 업무, 송수신 주체 등이 정의된 문서. 시스템의 인터페이스 현황 파악을 위해 인터페이스 목록 및 각 인터페이스의 상세 데이터 명세, 각 기능의 세부 인터페이스 정보를 정의한 문서.
시스템 인터페이스 정의서
각 인터페이스 번호 당 인터페이스가 되는 데이터, 데이터 형식, 송수신 시스템의 정보 등을 구체화하는 문서.
인터페이스 명세서
데이터 송수신 시스템 간의 데이터 저장과 속성 등의 상세 내역 포함
인터페이스 명세서 주요 항목
- 인터페이스 ID / 인터페이스 명 / 오퍼레이션 명 / 오퍼레이션 개요 / 사전 조건 / 사후 조건 / 파라미터 / 반환 값
송수신 시스템 간 인터페이스 데이터 표준 확인 절차
데이터 인터페이스 입출력 의미 파악 -> 데이터 인터페이스 입출력 의미 파악을 통한 데이터 표준 확인 -> 인터페이스 데이터 항목 식별 -> 데이터 표준 최종 확인
인터페이스 절차
1. 인터페이스 데이터 전송 : 수신지 주소에 REST 방식으로 전달될 수 있으며 DB 커넥션을 이용하여 DB프로시저, 트리거 등을 활용하여 전송.
2. 인터페이스 데이터 수신 : 인터페이스 데이터 수신 후 데이터의 형식이 맞는지 점검하고 각 규칙을 사전에 정의하고 이를 활용함.
3. 인터페이스 데이터 파싱 : 인터페이스 객체는 파서를 이용해 변환하거나 인터페이스 테이블에서 선택
4.인 터페이스 데이터 검증 : 각 세부 데이터의 포맷과 논리적인 제약조건의 오류 검사
5. 후속 기능 수행 : 각 세부 데이터를 활용해 수신 시스템에서 정의된 동작 진행.
데이터 통신을 사용하는 인터페이스 구현 방법
인터페이스 객체 생성 구현 : 인터페이스 객체를 생성하기 위해 DB에 있는 정보를 SQL을 통해 선택한 후 JSON으로 생성.
인터페이스 객체 전송 후 전송 결과를 수신 측에서 반환받도록 구현 : 송신 측에서 JSON으로 작성된 인터페이스 객체를 AJAX 기술을 이용해 수신 측에 송신
인터페이스 개체를 사용하는 인터페이스 구현
송신 시스템의 인터페이스 테이블 : 송신 관련 정보를 관리하기 위한 항목과 송신 시스템에서 필요한 항목 구현
인터페이스 이벤트 발생 시 인터페이스 테이블에 인터페이스 내용이 기록되도록 구현
데이터 전송을 위해 DB 커넥션이 수신 측 인터페이스 테이블과 연계되도록 구현
프로시저, 트리거, 배치 작업 등의 방법을 통해 수신 테이블로 데이터를 전송하도록 구현.
수신 시스템의 인터페이스 테이블
수신 관련 정보를 관리하기 위한 항목과 수신 시스템에서 필요한 항목 구현
수신 측 시스템에서는 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 진행할 수 있도록 구현
데이터를 읽을 때나 해당 트랜잭션이 진행될 때 오류가 발생하면 오류 코드 칼럼에 정의된 오류 코드와 오류 내용을 입력하도록 구현
인터페이스 기능 구현 기술
JSON (Javascript Object Notation)
속성-값 쌍 또는 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷.
AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷.
기계가 분석하고 생성하기에 용이.
XML (Extensible Markup Language)
HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어.
송수신 시스템 간 데이터 연계의 편의성을 위해 전송되는 데이터 구조를 동일한 형태로 정의.
인간과 기계 모두 이해할 수 있는 텍스트 형태로 마크업 포맷을 정의하기 위한 메타언어.
사용자가 직접 문서의 태그를 정의하며, 다른 사용자가 정의한 태그를 사용할 수 있다.
XML 프롤로그 + XML 요소
AJAX (Asynchronous Javascript And XML)
자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술.
전체 페이지를 새로 로드하지 않고 필요한 부분의 데이터만 로드하는 기법.
(AJAX 기술)
- XMLHttpRequest : 웹 브라우저와 웹 서버 간에 메서드가 데이터를 전송하는 객체 폼의 API. 비동기 통신을 담당하는 자바스크립트 객체
- JavaScript : 객체 기반의 스크립트 프로그래밍 언어. 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능 소유
- XML : HTML의 단점을 보완한 인터넷 언어. SGML의 복잡한 단점을 개선한 특수목적을 갖는 마크업 언어
- DOM : XML 문서를 트리 구조의 형태로 접근할 수 있게 해주는 API. 플랫폼/언어 중립적으로 구조화된 문서를 표현하는 객체 지향 모델
- XSLT : XML문서를 다른 XML 문서로 변환하는 데 사용하는 XML 기반 언어. W3C에서 제정한 표준으로 XML 변환 언어를 사용하여 XML 문서로 바꿔주며, 탐색하기 위해 XPath 사용
- HTML : 인터넷 웹 문서를 표현하는 표준화된 마크업 언어
- CSS : 마크업 언어가 실제 표시되는 방법을 기술하는 언어. 운영체제나 사용 프로그램과 관계없이 글자 크기, 글자체, 줄 간격, 색상 등을 자유롭게 선택할 수 있는 스타일 시트
REST (Representational State Transfer)
웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처.
Resource(자원), Method(처리), Message
(특징)
- 클라이언트/서버 구조 : 클라이언트와 서버는 독립적으로 구현되어야 하며 서로 간 의존성은 축소되어야 함.
- 무 상태성 : 상태 정보를 따로 저장하고 관리하지 않기 때문에 들어오는 요청만 단순 처리함.
- 일관된 인터페이스 : 특정 언어 및 기술에 종속되지 않고 모든 플랫폼에 사용 가능.
- 캐시 처리 가능 : HTTP가 가진 캐싱 기능 적용 가능.
- 자체 표현 구조 : API 메시지 자체만으로 API를 이해할 수 있는 구조.
시큐어 코딩 가이드 적용대상
- 입력데이터 검증 및 표현 / 보안 기능 / 시간 및 상태 / 에러 처리 / 코드 오류 / 캡슐화 / API 오용
DB 암호화 알고리즘
- 대칭 키 암호화 알고리즘 : 같은 암호 키
- 비대칭 키 암호화 알고리즘 : 공개키, 비밀키.
- 해시 암호화 알고리즘 : 해시값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특성
DB 암호화 기법
- API 방식 : 애플리케이션 레벨에서 암호모듈을 적용하는 애플리케이션 수정 방식. 애플리케이션 서버에 암복호화, 정책 관리, 키 관리 등의 부하 발생.
- Plug-in 방식 : 암복호화 모듈이 DB서버에 설치되어 있음. DB서버에 암복호화, 정책 및 키 관리 등의 부하 발생.
- TDE 방식 : DB서버의 DBMS 커널이 자체적으로 암 복호화 기능을 수행하는 방식. 내장되어있는 암호화 기능 이용.
- Hybrid 방식 : API + Plug-In. DB서버와 애플리케이션 서버로 부하 분산
암호화 전송 보안 기술
- IPSec : IP 계층(3)에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용하여 양 종단 간 구간에 보안 서비스를 제공하는 터널링 프로토콜. 전송모드와 터널모드 존재. AH, ESP, IKE 주요 프로토콜. 정책 SPD, SAD.
- SSL/TLS : 전송계층(4)과 응용계층(7) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜. 익명모드, 서버인증모드, 클라이언트-서버인증 모드 존재. 클라이언트와 서버 간에 상호 인증, 암호 방식에 대해 협상을 거치는 특징. 특정 암호 기술에 의존하지 않고 다양한 암호 기술 적용. 443포트
- S-HTTP : 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로서 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송. 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능. 서버 접속시 shttp://URL 사용
애플리케이션 보안 기능 적용
- 비인가자 접근 권한 관리
- 악의적 코드 삽입 금지
- 악의적 시도 시 에러 처리
DB 보안 기능 적용
- DB 접근 권한
- 악의적 코드 삽입 금지
- 민감 데이터 관리
- 악의적 시도 시 에러 처리
인터페이스 구현 검증 도구
- xUnit : 자바, C++, Net 등 다양한 언어를 지원하는 단위테스트 프레임워크. 소프트웨어의 함수나 클래스같은 서로 다른 구성 원소를 테스트할 수 있게 해주는 도구
- STAF : 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크. 각 테스트 대상 분상 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하며 자동화하는 검증 도구
- FitNesse : 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크. 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트할 수 있는 장점.
- NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN의 테스트 자동화 프레임워크
- Selenium : 다양한 브라우저 지원 및 개발언어를 지원하는 웹 어플리케이션 테스트 프레임워크.테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 도구 제공.
- watir : 루비 기반 웹 애플리케이션 테스트 프레임워크. 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능
인터페이스 감시 도구
- 스카우터(SCOUTER) : 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 기능, 인터페이스 감시 기능 제공.
- 제니퍼(Jennifer) : 애플리케이션의 개발부터 테스트, 오픈, 운영, 안정화까지 전 생애주기 단계 동안 성능을 모니터링하고 분석해주는 APM 소프트웨어
인터페이스 오류 처리 방법
- 사용자 화면에서 오류를 인지하도록 구현하는 방법
- 인터페이스 오류 시스템 로그를 별도로 작성하여 파일로 보관하는 방법
- 별도 데이터베이스에 인터페이스 관련 오류 사항을 기록하는 방법.
'정보처리기사' 카테고리의 다른 글
7.1 SQL 응용 (0) | 2022.09.28 |
---|---|
6. 프로그래밍 언어 활용 (1) | 2022.09.26 |
4.3. 내외부 연계 모듈 구현 (1) | 2022.09.14 |
4.2 연계 메커니즘 구성 (0) | 2022.09.14 |
4.1 연계 데이터 구성 (0) | 2022.09.14 |