[정보처리기사 실기] 과목5 - 인터페이스 구현, 오답노트
Chapter ① 인터페이스 설계 확인
- 시스템 인터페이스 설계서 개념
- 시스템 인터페이스 설계서는 이 기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 각 시스템의 교환되는 데이터, 업무, 송수신 주체 등이 정의된 문서이다.
- 시스템의 인터페이스 현황 파악을 위해서 인터페이스 목록 및 각 인터페이스의 상세 데이터 명세, 각 기능의 세부 인터페이스 정보를 정의한 문서이다.
- 상세 기능별 인터페이스 명세서 주요 항목
주요 항목 | 설명 |
인터페이스 ID | - 인터페이스를 구분하기 위한 식별자 - 일반적으로 인터페이스 식별성을 강화하기 위해 업무 분류 코드와 연속번호를 같이 활용 |
인터페이스 명 | - 해당 인터페이스를 나타내는 고유 명칭 |
오퍼레이션 명 | - 해당 인터페이스의 세부 동작 명칭 |
오퍼레이션 개요 | - 해당 인터페이스의 세부 동작 프로세스에 대한 세부 설명 |
사전 조건 | - 해당 인터페이스의 세부 동작이 정상적으로 작동하기 위한 사전에 완료되어야 하는 조건 기술 |
사후 조건 | - 해당 인터페이스의 세부 동작이 정상적으로 작동된 이후에 발생되는 조건 기술 |
파라미터 | - 인터페이스 구성 항목 값 |
반환 값 | - 인터페이스 전송 후 반환되는 값 |
- 송수신 시스템 간 인터페이스 데이터 표준 확인 절차
1) 데이터 인터페이스 입·출력 의미 파악
- 식별된 데이터 인터페이스의 입력값, 출력값이 의미하는 내용을 파악한다.
- 각 출력값이 의미하는 바와 데이터의 특성 등 참고할 만한 사항을 구체적으로 작성한다.
2) 데이터 인터페이스 입·출력 의미 파악을 통한 데이터 표준 확인
- 데이터 인터페이스의 각 항목의 의미 분석 후, 이를 기반으로 데이터 표준을 확인한다.
3) 인터페이스 기능을 통한 인터페이스 데이터 항목 식별
- 식별된 인터페이스 기능을 통해 인터페이스 데이터 항목을 식별한다.
- 필요 데이터 항목과 이전에 식별된 데이터 인터페이스 항목에서 수정, 추가, 삭제되어야 할 항목이 있는지 검토한다.
4) 데이터 표준 최종확인
- 식별된 인터페이스 기능 및 데이터 항목을 통해 필요한 데이터 표준 및 조정해야 할 항목을 검토 및 확인하고, 송·수신 시스템 간 인터페이스 데이터 표준을 최종적으로 확인한다.
- 포인트 투 포인트(Point-to-Point)
가장 기초적인 애플리케이션 통합방법으로 1:1 단순 통합방법
- ESB(Enterprise Service Bus) 방식
- ESB는 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처이다.
- ESB는 버스를 중심으로 각각 프로토콜이 호환할 수 있도록 애플리케이션의 통합을 느슨한 결합 방식으로 지원한다.
- XML(Extensible Markup Language)
XML은 HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어이다.
- XML의 특징
- XML은 송·수신 시스템 간 데이터 연계의 편의성을 위해서 전송되는 데이터 구조를 동일한 형태로 정의한다.
- 인간과 기계가 모두 이해할 수 있는 텍스트 형태로 마크업 포맷을 정의하기 위한 메타언어이다.
- 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있다.
Chapter ② 인터페이스 기능 구현
- 필요 데이터를 전달하는 인터페이스 절차
기능 | 분석 결과 |
인터페이스 데이터 전송 | - 수신지 주소에 레스트 방식으로 전달될 수도 있으며 DB 커넥션을 이용하여 DB 프로시저, 트리거 등을 활용하여 전송 |
인터페이스 데이터 수신 | - 인터페이스 데이터를 수신한 후 데이터의 형식이 맞는지 점검 - 각 규칙을 사전에 정의하고 이를 활용 |
인터페이스 데이터 파싱 | - 인터페이스 객체는 파서를 이용하여 파싱하거나 인터페이스 테이블에서 선택 |
인터페이스 데이터 검증 | - 각 세부 데이터의 포맷과 논리적인 제약조건의 오류 검사 |
후속 기능 수행 | - 각 세부 데이터를 활용해서 수신 시스템에서 정의된 동작을 진행 |
- 인터페이스 구현
인터페이스 구현 방법에는 데이터 통신을 사용하는 방법과 인터페이스 개체(Entity)를 사용하여 인터페이스를 구현하는 방법이 있다.
▼ 데이터 통신을 사용하여 인터페이스를 구현
방법 | 설명 |
인터페이스 객체 생성 구현 | - 인터페이스 객체를 생성하기 위해서 데이터베이스에 있는 정보를 SQL을 통하여 선택한 후 이를 제이슨(JSON)으로 생성 |
인터페이스 객체 전송 후 전송 결과를 수신 측에서 반환 받도록 구현 |
- 송신 측에서 제이슨으로 작성된 인터페이스 객체를 AJAX 기술을 이용하여 수신 측에 송신 - 수신 측에서는 제이슨 인터페이스 객체를 수신받고 이를 파싱 후 처리 - 수신 측의 처리 결괏값은 송신 측에 True / False 값을 전달하여 인터페이스 성공 여부를 확인 전달 |
▼ 인터페이스 개체(Entity)를 사용하는 인터페이스 구현
방법 | 설명 |
송신 시스템의 인터페이스 테이블 |
- 송신 관련 정보를 관리하기 위한 항목과 송신 시스템에서 필요한 항목 구현 - 인터페이스 이벤트 발생 시 인터페이스 테이블에 인터페이스 내용이 기록되도록 구현 - 데이터 전송을 위해서 DB 커넥션(DB Connection)이 수신 측 인터페이스 테이블과 연계되도록 구현 - 프로시저, 트리거, 배치 작업 등의 방법을 통해서 수신 테이블로 데이터를 전송하도록 구현 |
수신 시스템의 인터페이스 테이블 |
- 수신 관련 정보를 관리하기 위한 항목과 수신 시스템에서 필요한 항목 구현 - 수신 측 시스템에서는 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 진행할 수 있도록 구현 - 데이터를 읽을 때나 해당 트랜잭션이 진행될 때 오류가 발생하면 오류 코드 칼럼에 정의된 오류 코드와 오류 내용을 입력하도록 구현 |
- JSON(Javascript Object Notation)의 개념
JSON은 속성-값(Attribute-Value Pair) 쌍 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.
- AJAX의 주요 기술
주요 기술 | 설명 |
XMLHttpRequest | - 웹 브라우저와 웹 서버 간에 메서드가 데이터를 전송하는 객체 폼의 API - 비동기 통신을 담당하는 자바스크립트 객체 |
JavaScript | - 객체 기반의 스크립트 프로그래밍 언어 - 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능 소유 |
XML (Extensible Markup Language) |
- HTML의 단점을 보완한 인터넷 언어로서 SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어 |
DOM (Document Object Model) |
- XML 문서를 트리 구조의 형태로 접근할 수 있게 해주는 API - 플랫폼/언어 중립적으로 구조화된 문서를 표현하는 객체 지향 모델 |
XSLT (Extensible Stylesheet Language Transformations) |
- XML 문서를 다른 XML 문서로 변환하는 데 사용하는 XML 기반 언어 - W3C에서 제정한 표준으로 XML 변환 언어를 사용하여 XML 문서로 바꿔주며, 탐색하기 위해 XPath를 사용 |
HTML (HyperText Markup Language) |
- 인터넷 웹(WWW) 문서를 표현하는 표준화된 마크업 언어 |
CSS (Cascading Style Sheets) |
- 마크업 언어가 실제 표시되는 방법을 기술하는 언어 - 운영체제나 사용 프로그램과 관계없이 글자 크기, 글자체, 줄 간격, 색상 등을 자유롭게 선택할 수 있는 스타일 시트 |
- 레스트(REST)
웹과 같은 분산 하이퍼 미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처이다.
- 시큐어 코딩 가이드
적용대상 | 보안 약점 | 대응 방안 |
입력데이터 검증 및 표현 |
프로그램 입력값에 대한 검증 누락 · 부적절한 검증, 잘못된 형식 지정 | 사용자 · 프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 기능 설계 및 구현 |
보안 기능 | 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의 부적절한 구현 | 인증 · 접근 통제, 권한 관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현 |
시간 및 상태 | 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 | 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용, 블록문 내에서만 재귀 함수 호출 |
에러 처리 | 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함 | 에러 상황을 처리하지 않거나, 불충분하게 처리되어 중요 정보 유출 등 보안 약점 발생하지 않도록 시스템 설계 및 구현 |
코드 오류 | 개발자가 범할 수 있는 코딩 오류로 인해 유발 | 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거 |
캡슐화 | 가능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출 | 디버거 코드 제거와 필수정보 외의 클래스 내 프라이빗(Private) 접근자 지정 |
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 서버와 애플리케이션 서버로 부하 분산 |
Chapter ③ 인터페이스 구현 검증
- 인터페이스 구현 검증 도구
도구 | 설명 |
xUnit | - 자바(jUnit), C++(cppUnit), .Net(nUnit) 등 다양한 언어를 지원하는 단위테스트 프레임워크 - 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트할 수 있게 해주는 도구 |
STAF | - 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크 - 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하며 자동화하는 검증 도구 |
FitNesse | - 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크 - 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트를 할 수 있는 장점이 있음 |
NTAF | - FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크 |
Selenium | - 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크 - 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 도구를 제공 |
watir | - 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크 - 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능 |
- 인터페이스 감시 도구
도구 | 설명 |
스카우터(SCOUTER) | 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 기능, 인터페이스 감시 기능을 제공 |
제니퍼(Jennifer) | 애플리테이션의 개발부터 테스트, 오픈, 운영, 안정화까지 전 생애주기 단계 동안 성능을 모니터링하고 분석해주는 APM 소프트웨어 |
- 인터페이스 오류 처리 방법
1) 사용자 화면에서 오류를 인지하도록 구현
- 사용자 화면에서 인터페이스 오류를 인지하도록 구현하는 방법은 가장 직관적으로 오류를 인지할 수 있는 방법이다.
- 인터페이스 오류가 발생하였을 경우 알람 형태로 화면에 표시되며, 주로 실시간으로 데이터가 인터페이스 되는 경우에 사용된다.
2) 인터페이스 오류 로그 생성
- 시스템 운영 로그에 인터페이스 오류 시 관련 오류 로그가 생성되도록 할 수 있다.
- 인터페이스 오류의 자세한 내역을 알기 위해 사용되며, 시스템 관리자나 운영자가 오류 로그를 확인할 수 있다.
3) 인터페이스 관련 테이블에 오류 사항 기록
- 테이블을 통한 인터페이스 기능을 구현할 경우나 인터페이스 트랜잭션 기록을 별도로 보관하는 경우에는 테이블에 오류 사항을 기록할 수 있다.
Reference
2022 수제비 정보처리기사 실기 (1권+2권 합본세트) - YES24
NCS 기반으로 재구성한 합격비법서로 NCS 기반 반영 문제(예상문제, 단원종합문제, 모의고사, 2021년 기출문제)를 수골하였다. 2022년 합격을 위한 NCS 기반 모의고사, 궁극의 암기비법(두음 쌤)과 학
www.yes24.com