📌 인터페이스 기능 구현 기술
✅ JSON
✅ XML
✅ AJAX
- 개념
- 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML데이터를 교환하고 조작하기 위한 웹 기술
- 브라우저의 XMLHttpRequest객체를 이용해서 필요한 일부 페이지의 데이터만 로드
- HTML만으로는 어려운 작업을 웹 페이지에서 구현하여 웹 페이지와 자유롭게 상호작용 할 수 있도록 구현
- 주요 기술
- XMLHttpRequest
- 웹 브라우저와 서버 간 메서드가 데이터를 전송하는 객체 폼의 API
- 비동기 통신을 담당하는 자바스크립트 객체
- JavaScript
- 객체 기반 스크립트 프로그래밍 언어
- 웹 브라우저 내에서 주로 사용, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능 소유
- XML
- DOM : XML 문서를 트리구조 형태로 접근할 수 있게 해주는 API
- XSLT : XML문서를 다른 XML 문서로 변환하는데 사용하는 XML 기반 언어
- HTML : WWW 문서 표현하는 표준화된 마크업 언어
- CSS : 마크업 언어가 실제 표시되는 방법 기술,
✅ REST
- 개념
: 웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처
- 기본형태
: 리소스(자원), 메서드(처리), 메시지 요소로 구성
- 행위에 대한 메서드
: POST(Create), GET(Select), PUT(Update), DELETE(Delete)
- REST 리소스
: 모든 것을 리소스, 즉 명사로 표현하며 세부 리소스에는 id를 붙임
- 특징
- 클라이언트/서버 구조 : 독립적으로 구현되어 의존성 축소
- 무 상태성 : 상태정보 따로 저장, 관리 X, 관리 단순
- 일관된 인터페이스 : HTTP 표준에만 따르면 모든 플랫폼에 사용 가능
- 캐시 처리 가능 : 캐싱 기능 적용 가능
- 자체 표현 구조 : 메시지 자체만 보고도 이해할 수 있는 구조
📌 인터페이스 구현
✅ 데이터 통신을 사용하는 인터페이스 구현
- 인터페이스 객체 생성 구현
- DB정보를 SQL로 선택하여 JSON으로 생성
- 객체 전송후 결과를 수신측에서 반환 받도록 구현
- 송신 측에서 JSON으로 작성된 인터페이스 객체를 AJAX 기술을 이용하여 수신 측에 송신
- 수신 측에서는 이를 파싱 후 처리
- 수신 측의 처리 결괏값은 송신 측에 TRUE/FALSE 값 전달
✅ 인터페이스 개체를 사용하는 인터페이스 구현
- 송신 시스템의 인터페이스 테이블
- 송신 관련 정보 관리 / 송신 시스템에서 필요한 항목 구현
- 인터페이스 이벤트 발생 시 인터페이스 테이블에 내용이 기록되도록 구현
- 데이터 전송을 위해 DB커넥션이 수신측 인터페이스 테이블과 연계되도록 구현
- 프로시저, 트리거, 배치 작업 등으로 데이터 전송
- 수신 시스템의 인터페이스 테이블
- 수신 관련 정보 관리 / 수신 시스템에서 필요한 항목 구현
- 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션 진행
- 오류 발생시 오류 코드와 내용 입력하도록 구현
📌 인터페이스 예외 처리 방안
✅ 데이터 통신 인터페이스에서 예외 처리
-
방법
- 송신측 : AJAX 호출 후 반환값을 받아 어떻게 처리할 지 호출하는 부분에서 정의
- 수신측 : try ~ catch 구문을 이용하여 예외처리
-
사례
- 송신측
- (시스템 환경) 네트워크 불안정 → 404 오류시 네트워크, 서버 상태 확인
- (프로그램 자체 원인) 송신 데이터 생성 시 프로세스의 논리적 결함 → 예상되는 예외를 알람을 통해 사용자에게 전달
- 수신측
- (시스템 환경) 네트워크 및 서버 불안정 → 입력 대기 큐에 요청 쌓아놓고 차례로 서버 정상 가동시 처리
- (수신 데이터) 데이터 정합성 체크 → 파싱 시 특수문자는 오류 나지 않은 문자로 대치 후 재처리
- (프로그램 자체 원인) 수신 인터페이스 데이터 처리시 프로그램의 논리적 결함 → 예상되는 예외 알람을 통해 사용자에게 전달
✅ 인터페이스 객체 인터페이스에서 예외 처리
- 방법
- 송신측
- 예외 발생 시 인터페이스 테이블에 예외 코드와 원인 입력
- 수신측
- 데이터가 없거나 잘못된 값을 읽을 경우 예외 발생
- 예외 코드와 발생 사유 함께 기록
- 사례
- 송신측
- (데이터 생성) 선택 SQL, 프로그램 오류, 데이터 객체 생성 오류 → 오류발생시 알람, 프로그램 개선
- (테이블 입력) 입력 SQL 오류, 데이터 정합성 오류 → 실패 결과, 원인 기록
- (데이터 전송) DB 연계 오류 → 통신 결과 읽어서 결과, 원인 인터페이스 테이블에 기록
- 수신측
- (데이터 읽기) 데이터 선택 시 오류 → 사용자에게 예외 발생 알람 전송, 테이블에 기록
- (데이터 트랜잭션) 데이터 트랜잭션 시 프로그램 논리상 오류 → 사용자에게 예외 발생 알람 전송, 테이블에 기록
- (처리 결과 응답) DB 연계 오류 → 테이블에 기록
📌 인터페이스 보안 취약점
: 스니핑을 통한 데이터 탈취 위협 & 삽입, 삭제, 변조 공격을 통한 시스템 위협
📌 인터페이스 보안 구현 방안
✅ 시큐어 코딩 가이드 적용 (입보시 에코캡아)
- 입력데이터 검증 및 표현
- 보안 기능
- 시간 및 상태
- 에러 처리
- 코드 오류
- 캡슐화
- API 오용
✅ DB 보안 적용
- 암호화 알고리즘
- 대칭 키 알고리즘 : 암복호화에 같은 암호키 사용
- 비대칭 키 알고리즘 : 공개키 + 비밀키
- 해시 암호화 알고리즘 : 해시값 사용, 일방향성 특성
- 암호화 기법
- API : 애플리케이션 레벨에서 암호 모듈 적용
- Plug-in : DB 서버에 암복호화 모듈 설치
- TDE : DB서버의 DBMS 커널이 자체적으로 암복호화 기능 수행(내장)
- Hybrid : API + Plug-in, 부하 분산
- 중요 인터페이스 데이터 암호화 전송
- 보안 채널
- IPSec
- SSL/TLS
- S-HTTP