본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

[정보처리기사 실기] 5과목 - 인터페이스구현

by 케리's 2023. 2. 20.

00. 인터페이스 개념

애플리케이션 개발단계에 정의된 내/외 모듈 및 컴포넌트 간의 데이터 교환과 데이터 처리를 위한 기능

 

01. 인터페이스 설계서

이기종 시스템 및 컴포넌트간 데이터 교환 및 처리를 위해 각 시스템의 교환되는 데이터 업무, 송수신 주체등이 정의된 문서

구성 : 정적, 동적 모형을 통한 설계서 + 데이터 정의를 통한 설계서

02. 인터페이스 명세

각 인터페이스 번호 당 인터페이스 되는 데이터, 데이터 형식, 송수신 시스템의 정보 등을 구체화 하는 문서

 

03. 인터페이스 데이터 표준확인

상호 연계하고자 하는 시스템 간 인터페이스가 되어야 할 범위의 데이터 형식과 표준 정의

 

04. 인터페이스 기능 구현

1) 데이터 통신을 이용한 인터페이스 구현

애플리케이션 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고 이를 수신측에서 해석하는 방법

2) 인터페이스 엔티티를 이용한 인터페이스 구현

인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어 상호 연계하는 방식

 

1. JSON(Javascript Object Notation)

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

 

  • AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷
  • 언어 독립형 데이터 포맷으로 다양한 데이터 프로그래밍 언어에서 사용
  • 사람이 읽고 쓰기 용이, 기계가 분석 생성하기에 용이
  • 숫자, 문자열, 배열, 객체 가능

 

2.  XML(Extensible Markup Language)

XML은 HTML의 단점을 보완한 인터넷 언어, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업언어

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

 

3.  AJAX(Asynchronous Javascript And Xml)

자바스크립트를 사용하여 웹 서버와 클라이언트간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술

브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 로드하지 않고 필요한 일부 페이지의 데이터 많을 로드하는 기법

HTML 만으로 어려운 다양한 작업을 웹 페이지에서 구현해서 이용자가 웹페이지와 자유롭게 상호 작용할 수 있도록 구현하는 기법

 

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

 

4.  REST(Representational State Transfer)

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

리소스(자원 - URI), 메서드(처리), 메시지(콘텐츠타입 - XML,JSON)

메서드 의미
POST Create
GET Select
PUT Update
DELETE Delete

 

05. 인터페이스 보안 기능 적용

1) 데이터 통신시 데이터 탈취 위협

인터페이스 송수신 시스템간 데이터 통신시 '스니핑'을 통해 데이터 전송내역 감청하여 탈취하는 위협 존재

 

2) 데이터 통신시 데이터 위, 변조 위협

전송 데이터에 대한 삽입, 삭제, 변조 공격을 통한 시스템 위협 존재 

 

1.  시큐어 코딩 가이드 - 입보시 에코캡아

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

 

2.  데이터 베이스 보안 적용

1) 데이터베이스 암호화 알고리즘

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

 

2) 데이터베이스 암호화 기법 - 애플티하

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

 

3. 중요 인터페이스 데이터의 암호화 전송

보안기술 설명
IPSec(IP Security) * IP 계층에서 무결성과 인증을 보장하는 인증헤더(AH)기밀성을 보장하는 암호화(ESP)를 이용하여 양 종간단 구간에 보안 서비스를 제공하는 터널링 프로토콜
* 동작모드는 전송 모드와 터널 모드가 있음
주요 프로토콜은 AH, ESP , IKE(키교환), IPSEC 정책에는 SPD, SAD가 있음
SSL/TSL * 전송계층과 응용계층 사이에서 클라이언트와 서버간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
* 인증모드는 익명모드, 서버인증모드, 클라이언트-서버 인증 모드가 있음
* IPSec과 다르게 클라이언트와 서버간에 상호인증, 암호 방식에 대해 협상을 거치는 특징이 있음
* 대칭키 암호화, 공개키 암호화, 일방향 해시함수, 메시지 인증코드 등 특정 암호 기술에 의존하지 않고 다양한 암호 기술 적용
* Https:// 표시형식과 443포트이용
S-HTTP
(Secure Hypertext Transfer Protocol)
* S-HTTP 는 웹상에서 네트워크 트래픽을 암호화하는 주요 방법중 하나로서 클라이언트와 서버간에 전송되는 모든 메시지를 각각 암호화 하여 전송
* S-HTTP에서 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능
* S-HTTP서버 접속시 shttp:// 사용

  

 

06. 인터페이스 구현 검증

구현된 인터페이스의 동작을 검증하기 위해 인터페이스 구현 및 감시 도구를 통해서 인터페이스 동작 상태를 검증하고 모니터링 할 수 있다. 

단위테스트와, 통합테스트가 필요하다.

 

1. 인터페이스 구현 검증 도구 - 엑스피 엔셀웨

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

 

2. 인터페이스 감시 도구 

인터페이스 동작이 잘 진행되는지 지속적으로 확인하기 위해서 애플리케이션 모니터링 툴 (APM; Application Performance Management)를 사용하여 동작 상태를 감시 할 수 있다.

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

 

댓글