본문 바로가기
공부/정보처리기사

[9] 인터페이스 구현

by Lagooni 2021. 10. 4.

인터페이스 산출물: 인터페이스는 크게 사용자 인터페이스(User Interface)와 시스템 인터페이스(System Interface)로 구분된다.

소프트웨어 개발 단계별 인터페이스 산출물

구분 설명
분석 단계 인터페이스 요구사항을 통한 인터페이스 정의서 작성
명세 단계 인터페이스 정의서에 따라 인터페이스 명세서 작성
설계 단계 인터페이스 명세에 따라 설계 단계를 통해 구체적인 인터페이스 설계서 작성

상세 기능별 인터페이스 명세서 주요 항목 (아/명/오/개/ 전/후/파/반)

주요 항목 설명
인터페이스 ID 인터페이스를 구분하기 위한 식별자
인터페이스 명 해당 인터페이스를 나타내는 고유 명칭
오퍼레이션 명 해당 인터페이스의 세부 동작 명칭
오퍼레이션 개요 해당 인터페이스의 세부 동작 프로세스에 대한 세부 설명
사전 조건 해당 인터페이스의 세부 동작 프로세스에 대한 세부 설명
사후 조건 해당 인터페이스의 세부 동작이 정상적으로 작동된 이후에 발생되는 조건 기술
파라미터 인터페이스 구성 항목 값
반환 값 인터페이스 전송 후 반환되는 값

JSON(Javascript Object Notation): 속성-값(Attribute-Value Pair)쌍 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.

JSON특징: AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다; 언어 독립형 데이터 포맷으로 다양한 데이터 프로그래밍 언어에서 사용된다; 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성하기에 용이하다.

JSON 장단점

  • 장점
    • XML보다 가볍고 빠름
    • 자료 종류에 큰 제한이 없음
    • XML은 모두 String이고 JSON은 String, Number, Array, Boolean 등 다양
    • javascript 코드 안에서 JSON객체에 접근이 쉬움
  • 단점
    • 태그가 없어서 가독성이 떨어짐
    • DTD같은 것이 없기 때문에 데이터의 형식이 틀렸을 경우 체크가 쉽지 않음.

XML(Extensible Markup Language): HTML의 단점을 보완한 것으로 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어이다.

XML의 특징

  • 송수신 시스템 간 데이터 연계의 편의성을 위해서 전송되는 데이터 구조를 동일한 형태로 정의한다.
  • 인간과 기계가 모두 이해할 수 있는 텍스트 형태로 마크업 포맷을 정의하기 위한 메타언어이다.
  • 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있다.

XML문서 작성 규칙

  • 트리 구조로 구성되어 있어 상위태그는 여러개의 하위태그를 가질 수 있음
  • 모든 태그는 종료 태그를 가져야 하고, 시작 태그와 종료 태그의 명칭은 동일해야함
  • XML태그의 여닫는 순서는 반드시 지켜져야 하고 띄어쓰기는 인식
  • 속성값은 반드시 큰따옴표("")로 묶어줘야 하고 대 소문자는 구분

AJAX(Asynchronous Javascript And XML): AJAX는 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML데이터를 교환하고 조작하기 위한 웹 기술이다; 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 로드하지 않고 필요한 일부 페이지의 데이터만을 로드하는 기법이다; HTML만으로는 어려운 다양한 작업을 웹 페이지에서 구현해서 이용자가 웹 페이지와 자유롭게 상호작용할 수 있도록 구현하는 기법이다.

AJAX의 주요 기술

  • XMLHttpRequest: 웹 브라우저와 웹 서버 간에 메서드가 데이터를 전송하는 객체 폼의 API; 비동기 통신을 담당하는 자바스크립트 객체
  • JavaScript: 객체 기반의 스크립트 프로그래밍 언어; 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능 소유
  • XML: HTML의 단점을 보완한 인터넷 언어로서 SGML(Standard Generalized Markup Language 문서용 마크업 언어를 정의하기 위한 메타 언어이다.)의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어
  • DOM(Document Object Model): XML문서를 트리 구조의 형태로 접근할 수 있게 해주는 API; 플랫폼/언어 중립적으로 구조화된 문서를 표현하는 객체지향 모델
  • XSLT(Extesible Stylesheet Language Transformations): XML문서를 다른 XML문서로 변환하는데 사용하는 XML기반 언어; W3C에서 제정한 표준으로 XML변환 언어를 사용하여 XML문서로 바꿔주며, 탐색하기 위해 XPath를 사용
  • HTML(HyperText Markup Language): 인터넷 웹(WWW)문서를 표현하는 표준화된 마크업 언어
  • CSS(Cascading Style Sheets): 마크업 언어가 실제 표시되는 방법을 기술하는 언어; 운영체제나 사용 프로그램과 관계없이 글자 크기, 글자체, 줄 간격, 색상 등을 자유롭게 선택할 수 있는 스타일 시트

REST(Representational State Transfer): REST는 웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP메서드로 주고받는 웹 아키텍처이다.

REST는 크게 리소스(자원; URI링크), 메서드(처리; GET,POST등), 메시지(XML, JSON) 3가지 요소로 구성된다.

REST메서드

메서드 의미
POST Create(생성)
GET Select(조회)
PUT Update(수정)
DELETE Delete(삭제)

인터페이스 구현 2가지 방법

1. 데이터 통신을 사용하여 인터페이스 구현

방법 설명
인터페이스 객체 생성 구현 인터페이스 객체를 생성하기 위해서 데이터베이스에 있는 정보를 SQL을 통하여 선택한 후 이를 제이슨(JSON)으로 생성
인터페이스 객체 전송 후 전송 결과를 수신 측에서 반환 받도록 구현 송신 측에서 JSON으로 작성된 인터페이스 객체를 AJAX기술을 이용하여 수신 측에 송신
수신 측에서는 JSON인터페이스 객체를 수신받고 이를 파싱 후 처리
수신 측의 처리 결과 값은 송신측에 True/False 값을 전달하여 인터페이스 성공 여부를 확인 전달

2. 인터페이스 개체를 사용하여 인터페이스 구현

 

방법 설명
송신 시스템의 인터페이스 테이블 송신 관련 정보를 관리하기 위한 항목과 송신 시스템에서 필요한 항목 구현
인터페이스 이벤트 발생시 인터페이스 테이블에 인터페이스 내용이 기록되도록 구현
데이터 전송을 위해 DB커넥션이 수신 측 인터페이스 테이블과 연계되도록 구현
프로시저, 트리거, 배치작업 등의 방법을 통해 수신 테이블로 데이터를 전송하도록 구현
수신 시스템의 인터페이스 테이블 수신 관련 정보를 관리하기 위한 항목과 수신 시스템에서 필요한 항목 구현
수신 측 시스템에서는 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 진행할 수 있도록 구현
데이터를 읽을 때난 해당 트랜잭션이 진행될 때 오류가 발생하면 오류 코드 칼럼에 정의된 오류 코드와 오류 내용을 입력하도록 구현

프로시저(Procedure): SQL을 이용해 생성된 데이터를 조작하는 프로그램으로 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행된다.

트리거(Trigger): 특정 테이블에 삽입, 수정, 삭제 등의 변경 이벤트 발생 시 DBMS에서 자동 실행 되도록 구현된 프로그램이다.

배치작업(Batch Job): 실시간 작업의 반대 개념으로 일련의 작업을 하나의 작업 단위로 묶어서 일괄로 처리하는 작업이다. 

 


스니핑(Sniffing): 스니핑이란 공격 대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다 보는 수동적 공격기법이다.

시큐어 코딩 가이드 (입보시 에코캡아)

적용대상 보안약점 대응방안
입력데이터 검증 및 표현 프로그램 입력값에 대한 검증 누락 부적절한 검증, 잘못된 형식 지정 사용자.프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 기능 설계 및 구현
보안 기능 보안 기능의 부적절한 구현 인증 접근 통제, 권한 관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현
시간 및 상태 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 공유 자원의 접근 직렬화, 병렬 실행 가능 프레이워크 사용, 블록문 내에서만 재귀함수 호출
에러 처리 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함 에러 상황을 처리하지 않거나, 불충분하게 처리되어 중요 정보 유출 등 보안 약점 발생하지 않도록 시스템 설계 및 구현
코드 오류 개발자가 범할 수 있는 코딩 오류로 인해 유발 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거
캡슐화 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출 디버거 코드 제거와 필수정보 외의 클래스 내 프라이빗 접근자 지정
API오용 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API의 사용 개발 언어별 취약 API 확보 및 취약 API검출 프로그램 사용

데이터베이스 암호화 알고리즘 (대/비/해)

구분 설명
대칭 키 암호화 알고리즘 암호화 알고리즘의 한 종류로, 암·복호화에 같은 암호 키를 쓰는 알고리즘(예: ARIA 128/192/256, SEED
비대칭 키 암호화 알고리즘 공개키는 누구나 알 수 있지만 그에 대응하는 비밀키는 소유자만이 알 수 있도록, 공개키와 비밀키를 사용하는 알고리즘 (예: RSA, ECC, ECDSA)
해시 암호화 알고리즘 해시값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특성을 가진 알고리즘(예: SHA-256/384/512, HAS-160)

데이터베이스 암호화 기법 (애/플/티/하)

구분 설명
API 방식 애플리케이션 레벨에서 암호모듈(API)을 적용하는 애플리케이션 수정 방식
애플리케이션 서버에 암·복호화, 정책관리, 키관리 등의 부하 발생
Plug-in 방식 ·복호화 모듈이 DB서버에 설치된 방식
DB서버에 암·복호화, 정책 관리, 키관리 등의 부하 발생
TDE 방식 DB서버의 DBMS커널이 자체적으로 암·복호화 기능을 수행하는 방식
내장되어 있는 암호화 기능(TDE: Transparent Data Encryption)을 이용
Hybrid방식 API방식과 Plug-In방식을 결합하는 방식\
DB서버와 애플리케이션 서버로 부하 분산

인터페이스 구현 검증 도구 (엑/스/피/ 엔/셀/웨)

  • xUnit: 자바, C++, .Net 등 다양한 언어를 지원하는 단위테스트 프레임워크; 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소를 테스트할 수 있게 해주는 도구
  • STAF: 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크; 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하며 자동화하는 검증 도구
  • FitNesse: 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크; 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트를 할 수 있는 장점이 있음
  • NTAF: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크
  • Selenium: 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크; 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 도구를 제공
  • Watir: 루비(Ruby)기반 웹 애플리케이션 테스트 프레임워크; 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능

인터페이스 감시 도구

  • 스카우터(SCOUTER): 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB모니터링 기능, 인터페이스 감시 기능을 제공
  • 제니퍼(Jennifer): 애플리케이션의 개발부터 테스트, 오픈, 운영, 안정화까지 전 생애주기 단계 동안 성능을 모니터링하고 분석해주는 APM(Application Performance Management) 소프트웨어

인터페이스 오류 처리 방법 (화/로/테)

  1. 사용자 화면에서 오류를 인지하도록 구현
  2. 인터페이스 오류 로그 생성
  3. 인터페이스 관련 테이블에 오류 사항 기록

인터페이스 오류 처리 보고 시기에 따른 보고서 특징

구분 특징  보고서 내용
최초 발생 보고서 상황을 인지하고 조직 내부에 신속하게 보고하고 대응 조직 구성 SMS, 메일, 간이 보고서를 활용하여 오류 발생 구간 시점, 영향도 보고
오류 처리 경과보고서 최초 인지 후 진행되고 있는 상황 보고 오류 처리 조치사항 위주 보고 및 대안 서비스, 고객사 공지 사항 완료 여부, 처리 예상 시점 등을 보고
완료 보고서 최종 조치 완료 후 내부 조직 및 고객사 및 연계 기관에 완료 보고 최초 발생 시점, 조치 경과, 오류 원인 재발 방지 대책등 종합적인 내용 보고

댓글