인터페이스 산출물: 인터페이스는 크게 사용자 인터페이스(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) 소프트웨어
인터페이스 오류 처리 방법 (화/로/테)
- 사용자 화면에서 오류를 인지하도록 구현
- 인터페이스 오류 로그 생성
- 인터페이스 관련 테이블에 오류 사항 기록
인터페이스 오류 처리 보고 시기에 따른 보고서 특징
구분 | 특징 | 보고서 내용 |
최초 발생 보고서 | 상황을 인지하고 조직 내부에 신속하게 보고하고 대응 조직 구성 | SMS, 메일, 간이 보고서를 활용하여 오류 발생 구간 시점, 영향도 보고 |
오류 처리 경과보고서 | 최초 인지 후 진행되고 있는 상황 보고 | 오류 처리 조치사항 위주 보고 및 대안 서비스, 고객사 공지 사항 완료 여부, 처리 예상 시점 등을 보고 |
완료 보고서 | 최종 조치 완료 후 내부 조직 및 고객사 및 연계 기관에 완료 보고 | 최초 발생 시점, 조치 경과, 오류 원인 재발 방지 대책등 종합적인 내용 보고 |
'공부 > 정보처리기사' 카테고리의 다른 글
[11] SQL응용 -데이터베이스의 기본 (DDL, DML, DCL) (0) | 2021.10.08 |
---|---|
[10] 프로그래밍 언어 활용 ,포인터, 오버로딩, 오버라이딩 (0) | 2021.10.06 |
[8] 연계 데이터 구성, 연계 메커니즘, EAI / ESB (0) | 2021.10.03 |
[7] 물리 데이터 저장소 설계, 데이터베이스, 데이터 마이닝 (0) | 2021.10.01 |
[6] 데이터 입출력 구현(논리 데이터 저장소) (0) | 2021.09.29 |
댓글