목차
📌 인터페이스 구현은 송/수신 시스템 간의 데이터 교환 및 처리를 실현해 주는 작업을 의미한다.
💡 인터페이스 엔티티 ? 인터페이스 개체라고 하며, 여기서는 인터페이스 구현 클래스라고 생각하자.
📌 데이터 통신을 이용한 인터페이스 구현은 애플리케이션 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고 이를 수신 측에서 파싱(Parsing)하여 해석하는 방식이다.
🔔 예) JSON을 이용한 인터페이스 구현 순서
💡 파싱(Parsing) ? 주어진 문장이 정의된 문법 구조에 따라 완전한 문장으로 사용될 수 있는가를 확인하고 분석하는 작업을 말한다. 인터페이스 객체를 생성할 데이터는 일반적으로 데이터베이스에 있는 정보를 SQL을 통해 선택한 후 JSON으로 생성한다.
💡 마크업 언어(markup, markup language)는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다. 태그는 원래 텍스트와는 별도로 원고의 교정부호와 주석을 표현하기 위한 것이었으나 용도가 점차 확장되어 문서의 구조를 표현하는 역할을 하게 되었다.
💡 SGML(Stand Generalized Markup Language) : 텍스트 이미지, 오디오 및 비디오 등을 포함하는 멀티미디어 전자문서들을 다른 기종의 시스템들과 정보의 손실 없이 효율적으로 전송, 저장 및 자동 처리하기 위한 언어이다.
📌 인터페이스 엔티티를 이용한 인터페이스 구현은 인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어 상호 연계하는 방식이다.
🔔 예) 인터페이스 테이블을 이용한 인터페이스 구현 순서
💡 인터페이스 데이터 기록(Write)은 데이터 무결성 유지 및 인터페이스 이력 관리 등을 위해 삽입(Insert)만 가능하고 수정(Update) 및 삭제(Delete)는 불가능하다.
💡 정해진 주기 : 일반적으로 정해진 주기는 즉시, 주기적, 특정기간 이후 등이 있다.
💡 인터페이스 데이터 전송을 위해서는 일반적으로 DB Connection이 수신 측 인터페이스 테이블과 연결되어 있어야 하고 프로시저(Procedure)나 트리거(Trigger)등을 통해 수신 인터페이스 테이블로 전송한다.
📌 인터페이스 예외 처리는 구현된 인터페이스가 동작하는 과정에서 기능상 예외 상황이 발생 했을 때 이를 처리하는 절차를 말한다.
📌 데이터 통신을 이용한 인터페이스 예외 처리 방법은 JSON, XML 등 인터페이스 객체를 이용해 구현한 인터페이스 동작이 실패할 경우를 대비한 것으로, 인터페이스 객체의 송/수신 시 발생할 수 있는 예외 케이스를 정의하고 각 예외 케이스 마다 예외 처리 방법을 기술한다.
🔔 예1) 인터페이스 객체 송신 실패 시 예외 처리 방안
구분 | 예외 상황 | 예외 처리 방안 |
시스템 환경 | 네트워크 불안정 | - POST 이후 오류 메시지를 확인한다. - 서버를 찾지 못하는 404 오류일 경우 네트워크 또는 서버 상태를 확인한다. |
송신 데이터 | 송신 데이터 크기, 데이터 정합성 체크 오류 발생 | - 송신 데이터의 원활한 전송을 위해 사전에 데이터를 정제한다. - 데이터 송신 시 데이터 크기 및 정합성을 체크하는 기능을 추가하여 미리 예방한다. |
프로그램 자체 원인 | 송신 데이터 생성 시 프로세스의 논리적 결함 | - 논리적 결함을 수정한다. - 충분한 테스트를 통해 사전 예방한다. - 프로세스에 따라 예상되는 예외를 사용자에게 알람을 통해 알려 준다. |
💡 정합성은 모순 없는 정확한 특성을 의미하는 용어로 데이터베이스에 저장된 데이터는 항상 정확해야 한다는 특성을 표현할 때 사용한다.
🔔 예2) 인터페이스 객체 수신 실패 시 예외 처리 방안
구분 | 예외 상황 | 예외 처리 방안 |
시스템 환경 | 네트워크 및 서버 불안정 | 입력 대기 큐에 요청을 적재한 후 순차적으로 처리하여 서버가 정상적으로 가동될 때 동작할 수 있도록 한다. |
수신 데이터 | 특수문자 등으로 파싱 시 오류 발생 | 특수문자 입력 케이스를 미리 파악한 다음 파싱 시 오류가 발생하지 않는 문자로 우선 대치하고 이후에 다시 처리한다. |
프로그램 자체 원인 | 수신 데이터 처리 시 프로그램의 논리적 결함 | - 논리적 결함을 수정한다. - 충분한 테스트를 통해 사전 예방한다. - 프로세스에 따라 예상되는 예외를 사용자에게 알람을 통해 알려 준다. - 예외상항이 수신되지 않도록 송신측 프로그램을 수정한다. |
📌 인터페이스 엔티티를 이용한 예외 처리 방법은 인터페이스 동작이 실패할 경우를 대비하여 해당 엔티티에 인터페이스의 실패 상황과 원인 등을 기록하고, 이에 대한 조치를 취할 수 있도록 사용자 및 관리자에서 알려주는 방식으로 예외 처리 방법을 정의한다.
🔔 예1) 송신 인터페이스 테이블을 이용한 인터페이스 기능 실패 시 예외 처리 방안
프로세스 | 예외 상황 | 예외 처리 방안 |
인터페이스 데이터 생성 |
- 선택 SQL, 프로그램 오류 - 데이터 객체 생성 오류 |
- 오류 발생 시 사용자에게 알람을 통해 알려준다. - 예외 케이스의 재발 방지를 위한 프로그램을 개선한다. |
인터페이스 테이블에 입력 |
- 입력 SQL 오류 - 데이터 정합성 오류 |
- 입력 실패 결과와 원인을 인터페이스 테이블에 기록한다. - 입력 실패 결과를 사용자에게 알람을 통해 알려준다. - 예외 케이스의 재발 방지를 위해 프로그램을 개선한다. |
인터페이스 데이터 전송 |
DB Connection 오류 | - 통신 결과를 통해 인터페이스 실패 결과와 원인을 인터페이스 테이블에 기록한다. - 인터페이스 실패 결과와 원인을 사용자와 관리자에게 이메일 등으로 전송한다. |
데이터 전송 주체의 논리적 오류 | - 인터페이스 실패 결과와 원인을 인터페이스 테이블에 기록한다. - 인터페이스 실패 결과를 사용자와 관리자에게 이메일 등으로 전송한다. - 예외 케이스의 재발 방지를 위해 프로그램을 개선한다. |
💡 DB Connection은 수신 시스템의 웹 애플리케이션 서버(WAS)에서 송신 시스템 데이터베이스(DB)로 연결해주는 시스템 연계 기술을 의미한다.
🔔 예2) 수신 인터페이스 테이블을 이용한 인터페이스 기능 실패 시 예외 처리 방안
프로세스 | 예외 상황 | 예외 처리 방안 |
인터페이스 데이터 읽기 |
데이터 선택 시 오류 | - 수신 측 사용자에게 알람을 통해 예외사항을 알려준다. - 인터페이스 테이블에 예외사항을 기록한다. - 재발되지 않도록 프로그램을 개선한다. |
데이터 트랜잭션 |
데이터 트랜잭션 시 프로그램의 논리상 오류 | - 사용자에게 알람을 통해 예외사항을 알려준다. - 인터페이스 테이블에 예외사항을 기록한다. - 재발되지 않도록 프로그램을 개선한다. |
처리 결과 응답 | DB Connection 오류 | - 인터페이스 테이블에 예외사항을 기록한다. - 송/수신자에게 이메일 등으로 예외사항을 알려준다. |
네트워크 영역 | - 인터페이스 송/수신 간 스니핑(Sniffing) 등을 이용한 데이터 탈취 및 변조 위협을 방지하기 위해 네트워크 트래픽에 대한 암호화를 설정한다. - 암호화는 인테페이스 아키텍처에 따라 IPSec, SSL, S-HTTP 등의 다양한 방식으로 적용한다. |
애플리케이션 영역 | 소프트웨어 개발 보안 가이드를 참조하여 애플리케이션 코드 상의 보안 취약점을 보완하는 방향으로 애플리케이션 보안 기능을 적용한다. |
데이터베이스 영역 | - 데이터베이스, 스키마, 엔티티의 접근 권한과 프로시저(Procedure), 트리거(Tigger) 등 데이터베이스 동작 객체의 보안 취약점에 보안 기능을 적용한다. - 개인 정보나 업무상 민감한 데이터의 경우 암호화 익명화 등 데이터 자체의 보안 방안도 고려한다. |
💡 스니핑(Sniffing) : 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당한다. 네트워크 내의 패킷들은 대부분 암호화되어 있지 않아 스니핑 같은 해킹 기법에 이용당하기 쉽다.
💡 소프트웨어 개발 보안 : 애플리케이션 소스 코드에 존재할 수 있는 보안 취약점 발견, 제거, 보안을 고려한 기능 설계 및 구현 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동으로 시큐어 코딩(Secure Coding)이라고도 불린다.
💡 IPsec(IP Security) : 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜이다.
💡 SSL(Seceure Sockets Layer) : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜이다.
💡 S-HTTP(Secure Hyper text Transfer Protocol) : 클라이언트와 서버 간에 전송되는 모든 메시지를 암호화 하는 프로토콜이다.
💡 트리거(Trigger) : 트리거는 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생할 때마다 자동적으로 수행되는 절차형 SQL을 의미한다.
💡 데이터 익명화 : 데이터에 포함된 개인 식별 정보를 영구적으로 삭제하거나 알아볼 수 없는 형태로 변환하는 것을 의미한다.
💡 크래커(cracker)는 컴퓨터 네트워크에 무단 침입해서 파괴/변조 등의 악의적 행위를 하는 사람을 의미한다.
💡 백도어(backdoor)는 일반적인 인증과 암호화를 위회(bypassing)해 원격 접속 및 암호화된 텍스트에 대한 권한을 취득하는 등 은밀히 행하는 전형적인 방법을 일컫는다.
💡 해시 함수(hash function) 또는 해시 알고리즘(hash algorithm)은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시 테이블이라는 자료구조에 사용되며, 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에 널리 사용된다.
💡 트립와이어(Tripwire)는 시스템의 특정한 파일의 변화를 모니터링하고 알림을 해주는 유용한 보안 그리고 무결성 도구이다.
💡 AIDE(Advanced Intrusion Detection Environment)는 시스템에 파일 데이터베이스를 생성한 다음 해당 데이터베이스를 사용하여 파일 무결성을 확인하고 시스템 침입을 탐지하는 도구이다.
💡 Samhain, Claymore, Slipwire도 AIDE와 비슷한 무결성 도구이다.
💡 Fcheck는 사용자가 설정한 디렉터리, 파일의 정보를 데이터베이스에 자장하고 있다가 정해진 시간마다 파일 시스템을 체크하여 파일 시스템의 무결성(파일 변조)을 체크하는 프로그램이다.
📌 [정보처리기사] 논리 데이터베이스 설계/데이터 모델의 개념 (2) | 2024.02.13 |
---|---|
📌 인터페이스 구현 - 연계 테스트/구현 검증/오류 확인 및 처리 보고서 작성 (2) | 2024.02.13 |
📌 인터페이스 구현 - 인터페이스 기능 구현 정의 (1) | 2024.02.08 |
📌 인터페이스 구현 - 모듈 연계를 위한 인터페이스 기능 식별/인터페이스 데이터 표준의 개요 (1) | 2024.02.08 |
📌 인터페이스 구현 - 모듈 간 공통 기능 및 데이터 인터페이스 확인 (0) | 2024.02.08 |