인터페이스 기능 구현 & 구현 검증
인터페이스 기능 구현
모듈 세부 설계서
1. 컴포넌트 명세서
컴포넌트의 개요 및 내부 클래스의 동작, 인터페이스를 통해 외부와 통신하는 명세를 정의

2. 인터페이스 명세서
컴포넌트 명세서에 명시된 인터페이스 클래스의 세부적인 조건 및 기능을 명시한 명세서

인터페이스 기능 구현 정의하기
1. 모듈간 세부 설계서를 확인
각 모듈의 컴포넌트 명세서와 인터페이스 명세서 등 세부 설계서를 확인하여 인터페이스에 필요한 기능을 확인
1) 컴포넌트 명세서를 확인

2) 인터페이스 명세서를 확인

2. 일관되고 정형화된 인터페이스 기능 구현을 정의
일관된 인터페이스 기능 구현을 정의
인터페이스의 기능의 일관성을 보이려면 다각도로 분석한 인터페이스의 기능
데이터 표준이 모듈 설계서의 정의와 일치하여야 하고, 보는 사람에 따라 다른 해석을 할 수 없도록 구현 가능한 수준까지 구체적으로 정의하여야 함.
기능 구현을 구현 가능한 수준까지 세부적으로 정의

3. 정의된 인터페이스 기능 구현을 정형화
정의된 인터페이스 기능 구현은 표준화되고 사람들이 보기 쉽게 정형화함
특정 HW나 SW에 의존적이지 않게 작성하는 것이 바람직함
가독성을 높여 주기 이해 프로세스 형태나 유스케이스 다이어그램의 형태로 작성하는 사례도 있음
인터페이스 구현 방법
여러 가지 방법으로 인터페이스는 구현될 수 있지만 대표적인 방법으로는 데이터 통신을 이용한 인터페이스 구현 방법과 인터페이스 테이블을 이용한 인터페이스 구현 방법으로 나눌 수 있음
1) 데이터 통신을 통한 인터페이스 구현
① JSON(JavaScript Object Notation)
JSON은 속성-값 쌍(attribute-value pairs)으로 이루어진 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷
AJAX(Asynchronous JavaScript and XML)에서 많이 사용되고 XML으르 대체하는 주요 데이터 포캣
언어 독립혁 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있음
JSON을 활용한 데이터 포맷 예시

② XML(eXtensive Markup Language)
다목적 마크업 언어 -> 문장과 그림, 표의 배치 / 글자와 크기와 모양 / 들여쓰기와 줄간격, 여백에 대한 정보
다른 많은 종류의 데이터를 기술하는 데 사용될 수 있으며, 다른 종류의 시스템끼리 데이터를 쉽게 주고 받을 수 있게 하는 목적이 있음
XML을 활용한 데이터 전송 포맷 예시

2) 인터페이스 엔티티를 통한 인터페이스 구현
인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어서 상호 연계함
엔티티의 역할은 데이터베이스에서 인터페이스 테이블을 두어 각 시스템 간 데이터 교환에 활용하는 방법이 연계에서 많이 사용됨
인터페이스 예외 처리 방안
1. 데이터 통신을 사용한 인터페이스에서 예외 처리 방법
1) 송신 측에서 인터페이스 객체를 송신시 예외 처리하는 방법
AJAX 호출 후 반환값을 받아 어떻게 처리할지를 호출하는 부분에서 정의
반환 케이스는 크게 success와 fail 두 가지 케이스로 나뉨
예외 처리는 fail시 일어나며,
예외 처리 반환 메시지에 따라 세부적으로 예외 처리 기능이 나누어짐
2) 수신 측에서 인터페이스 객체를 수신 및 처리시 예외 처리하는 방법
수신 측에서 받은 JSON 객체를 처리시에
try ~ catch 구문을 이용하여 발생한 예외를 처리하고 이를 송신 측에 전달함
별도 예외 결과를 설정하지 않아도 에러 발생 시 에러 결과가 반환됨
2. 인터페이스 엔티티를 사용한 인터페이스에서 예외 처리 방법
인터페이스 테이블을 통하여 인터페이스 기능상 문제에서 예외사항이 발생하였을 경우 예외 처리 메시지와 함께 예외 처리가 발생한 원인을 인터페이스 이력에 같이 기록함
송신 인터페이스 테이블, 수신 인터페이스 테이블 모두 같은 방법으로 기록.
인터페이스 테이블을 통하여 인터페이스 기능을 구현 시
예외 처리 내역도 지우지 않고 이력으로 쌓아 두는 경우가 많음
인터페이스 보안 기능 적용
1. 구현된 인터페이스의 주요 보안 취약점
1) 데이터 통신 시 데이터 탈취 위협
데이터 통신 내역을 중간에서 경청하여 기밀성을 훼손할 수 있는 기법으로 스니핑(Sniffing) 이라고 불리기도 함

2) 시큐어 코딩 가이드
SW 보안 취약점, 약점 및 대응 방안이 구체적으로 서술되어 있음
| 구분 | 내용 |
| 입력 데이터 검증 및 표현 | 소스코드 취약점 점검 |
| API 이용 | 시스템 접근 API 오용 => 개발 언어별 취약 API 검출 프로그램 사용 |
| 보안 특성 | 인증, 접근 제어, 기밀성, 암호화, 권한 관리, 취약한 알고리즘, 부적절 인가로 인한 취약점 |
| 시간 및 상태 | 프로세스 동시 수행 시, 잘못된 권한위임 가능성 => 공유자원 접근 직렬화 |
| 에러 처리 | 에러 처리가 부적절하거나 에러에 정보가 과도하게 많이 포함된 경우 |
| 코드 품질 | 복잡한 소스코드가 가독성과 유지 보수성을 저하함. => 코딩 오류 관리 |
| 캡슐화 | 중요 데이터의 불충분한 캡슈화로 악의적 접근 기능 => Private접근지 지정 |
3) 데이터베이스 암호화
데이터베이스의 기밀성과 유지하기 위해 중요 민감 데이터는 다양한 암호 알고리즘을 활용하여 암호화
① 데이터베이스 암호화 알고리즘
| 구분 | 내용 |
| 대칭 키 암호 알고리즘 | ARIA 128/192/256, SEED |
| 해시 알고리즘 | SHA - 256/384/512, HAS - 160 |
| 배대칭키 알고리즘 (공개키 알고리즘) |
RSA, ECDSA(타원 곡선 전자 서명 알고리즘) |
② 데이터베이스 암호화 기법
| 구분 | 개념 |
| API 방식 | APP 레벨에서 암호 모듈(API)을 적용하는 App 수정 방식 |
| Filter(Plug-in) 방식 |
DB 레벨의 확장성 프로시저 기능을 이용. DBMS에 plug-in 모듈로 동작하는 방식 |
| Hybrid 방식 | API 방식과 Filter 방식을 결합 |
인터페이스 구현 검증
1. 인터페이스 구현 검증 도구
인터페이스 구현을 검증하기 위해서는 인터페이스 단위 기능 및 시나리오에 기반한 통합 테스트가 필요
테스트 자동화 도구를 이용하여 단위 및 통합 테스트의 효율성을 높일 수 있음
인터페이스 구현 검증 도구
| 도구 | 설명 |
| xUnit | java(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크 |
| STAF | 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크 |
| FitNeese | 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크 |
| NTAF | Naver 테스트 자동화 프레임워크이며, STAF와 FitNeese를 통합 |
| Selenium | 다양한 브라우저 지원 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크 |
| watir | Ruby 기반 웹 애플리케이션 테스트 프레임워크 |
2. 인터페이스 감시 도구
인터페이스의 동작이 잘 진행되는지 확인 하기 위해서는 애플리케이션 모니터링 툴(APM: Application Performance Management)을 사용하여 동작 상태를 감시할 수 있음
상용 제품 및 오픈소스 이용한 애플리케이션 모니터링 툴이 있음
데이터베이스, 웹 애플리케이션의 트랜잭션과 변수값, 호출 함수, 로그 및 시스템 부하 등 종합적인 정보를 조회하고 분석할 수 있음
인터페이스 오류 처리 확인 및 보고서 작성
1. 인터페이스 오류 처리 방법
(1) 사용자 화면에서 오류를 인지하게 구현하는 방법
- 가장 직관적으로 오류를 인지할 수 있어 가장 많이 쓰이는 방법
- 인터페이스 오류가 발생하였을 경우 알림 형태로 화면에 표시되며, 주로 즉시적으로 데이터가 인터페이스되는 경우에 사용됨
(2) 인터페이스 오류 로그 생성하는 방법
- 시스템 운영 로그에 인터페이스 오류 시 관련 에러 로그가 생성되도록 할 수 있음
- 인터페이스 오류의 자세한 내역을 알기 위해 사용되며, 시스템 관리자나 운영자가 오류 로그를 확인할 수 있음
(3) 인터페이스 관련 테이블에 오류 사항 기록
- 테이블을 통한 인터페이스 기능을 구현할 경우나 인터페이스 트랜잭션 기록을 별도로 보관하는 경우 테이블에 오류 사항을 기록할 수 있음
- 이력을 직관적으로 보기 쉬워 운영자가 관리하기 용이한 장점이 있음

2. 인터페이스 오류 처리 보고서
인터페이스에서 오류가 발생 시 관련 사항을 직관적으로 보고함
인터페이스 오류 처리 보고서 형식
정형화된 형식은 없으며 조직 및 상황에 맞는 보고서를 작성하여 활용

'정보처리기사 실기 > 인터페이스 구현' 카테고리의 다른 글
| 인터페이스 설계 확인 (0) | 2025.02.14 |
|---|