2. 소프트웨어 개발 - 인터페이스 구현(인터페이스 예외 처리 ~ 인터페이스 오류 확인 및 처리 보고서 작성)

70. 인터페이스 예외 처리

: 인터페이스가 동작하는 과정에서 기능상 예외 상황이 발생했을 때 이를 처리하는 절차

 

- 인터페이스 예외 처리 방법

 

1. 데이터 통신을 이용한 인터페이스 예외 처리

: JSON, XML 등의 인터페이스 객체를 이용한 인터페이스 동작이 실패할 경우를 대비하여 발생 가능한 예외 케이스를 정의하고 예외 처리 방법을 기술

  • 인터페이스 객체의 송신/수신 시 예외가 발생할 수 있음
  • 시스템 환경, 송신/수신 데이터, 프로그램 자체 원인 등 다양한 원인으로 예외 상황이 발생

인터페이스 객체 송신/수신 실패 시 예외 처리 방안 예시

 

2. 인터페이스 엔티티를 이용한 인터페이스 예외 처리

: 인터페이스 동작 실패를 대비하여 인터페이스의 실패 상황과 원인 등을 기록하고, 사용자 및 관리자에게 이를 알려 조치를 취하도록 예외 처리 방법을 정의함

송신/수신 인터페이스 테이블을 이용 실패 시 예외 처리 방안 예시


71. 인터페이스 보안

1) 인터페이스 보안

  • 인터페이스는 시스템 모듈 간 통신 및 정보 교환의 통로로 사용되므로 데이터 변조 및 탈취의 위협에 노출되어 있음
  • 인터페이스 보안성 향상을 위해 각 인터페이스 구간의 보안 취약점을 분석하여 적절한 보안 기능을 적용해야 함

 

- 인터페이스 보안 취약점 분석

: 인터페이스 기능이 수행되는 각 구간의 구현 현황과 각 구간별 보안 취약점을 분석하는 것

  • 인터페이스 기능 구간의 구현 현황 검토 시에는 송신/수신 영역의 구현 기술 및 특징 등을 구체적으로 확인
  • 송신 데이터 선택, 송신 객체 생성, 송신 및 수신, 데이터 처리 결과 전송 등 영역별 보안 취약점을 시나리오 형태로 작성

 

- 영역별 인터페이스 보안 기능 적용

  • 네트워크 영역 : 인터페이스 송신/수신 시 스니핑을 이용한 데이터 탈취나 변조 위협을 방지하기 위해 암호화 설정
    • IPsec (IP security) : 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능 프로토콜
    • SSL (Secure Sockets Layer) : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성 보장 프로토콜
    • S-HTTP (Secure Hypertext Transfer Protocol) : 클라이언트-서버 간 메시지 암호화 프로토콜
  • 애플리케이션 영역 : 소프트웨어 개발 보안 가이드를 참조하여 애플리케이션 코드 상의 보안 취약점 보완
  • 데이터베이스 영역
    • 데이터베이스 동작 객체의 보안 취약점에 보안 기능 적용 (접근 권한, 프로시저, 트리거, etc)
    • 민감한 데이터에 경우 암호화나 익명화 등으로 데이터 자체 보안 강화

※ 스니핑 : 네트워크의 중간에서 패킷 정보를 도청하는 해킹 유형 중의 하나. 수동적 공격에 해당함

 

※ 소프트웨어 개발 보안 : 애플리케이션 소스 코드에 존재 가능한 보안 취약점의 발견과 제거, 보안을 고려한 기능 설계 및 구현 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동 (Secure Coding)

 

 

2) 데이터 무결성 검사 도구

: 시스템 파일의 변경 유무를 확인하고 파일이 변경되었을 경우 이를 관리자에게 알려주는 도구

  • 인터페이스 보안 취약점을 분석하는데 이용
  • 시스템 침입 시 발생하는 백도어나 파일의 변경을 감지하는 것이 가능
  • 해시 함수를 이용해 현재 파일 및 디렉토리의 상태를 DB에 저장한 후, 현재 상태와 DB의 상태가 달라지면 관리자에게 변경 사실 통지
  • ex) Tripwire, AIDE, Samhain, Claymore, Slipwire, Fcheck, etc.

72. 연계 테스트

: 구축된 연계 시스템과 연계 시스템의 구성 요소가 정상적으로 동작하는지 확인하는 활동

연계 테스트
케이스 작성
연계 테스트
환경 구축
연계 테스트 수행 연계 테스트
수행 결과 검증

1) 연계 테스트 케이스 작성

: 연계 시스템 간 데이터 및 프로세스 흐름을 분석하여 필요한 테스트 항목을 도출하는 과정

  • 송신/수신 연계 응용 프로그램의 단위 테스트 케이스
    • 송신/수신 시스템에서 확인해야 하는 항목 도출
    • 단순 개별 데이터의 유효값을 확인하는 경우와 데이터 간 연관 관계를 확인하는 경우로 구분
  • 연계 테스트 케이스
    • 송신/수신 연계 응용 프로그램의 기능 결함을 확인하는 단위 테스트 케이스 형태로 작성
    • 단위 테스트 케이스는 송신/수신 절차의 앞뒤로 연결하여 흐름을 파악할 수 있도록 작성

 

2) 연계 테스트 환경 구축

: 테스트를 수행할 환경을 송신/수신 기관과 협의하여 결정하는 과정

  • 테스트 일정, 테스트 방법 및 절차, 테스트 소요 시간 등
  • 연계 서버 또는 송신/수신용 어댑터 설치, IP 및 포트 호용 신청, DB 계정 생성, 테이블 및 데이터 생성 등의 테스트 환경 구축

 

3) 연계 테스트 수행

: 연계 응용 프로그램을 실행하여 연계 테스트 케이스의 시험 항목과 처리 절차 등을 실제로 진행하는 단계

  • 송신/수신 연계 응용 프로그램의 단위 테스트를 먼저 수행
  • 단위 테스트 수행 완료 후 연계 테스트 케이스에 따라 연계 테스트 수행

 

4) 연계 테스트 수행 결과 검증

: 연계 테스트 케이스를 수행한 결과가 예상 결과와 동일한지 확인하는 단계

  • 테스트 케이스 항목별 검증 방법
    • 운영 DB 테이블의 건수 확인
    • 테이블이나 파일을 직접 열어 내부 데이터를 확인
    • 파일 생성 위치에서 파일 생성 여부와 파일 크기 확인
    • 연계 서버에서 제공하는 모니터링 현황 확인
    • 시스템 로그 확인

73. 인터페이스 구현 검증

: 인터페이스 구현 검증 도구와 감시 도구를 이용해 인터페이스가 정상적으로 문제없이 작동하는지 확인하는 것

 

- 인터페이스 구현 검증 도구

: 인터페이스 단위 기능과 시나리오 등을 기반으로 하는 통합테스트에 대한 자동화를 지원하는 도구

  • xUnit : Java, C++, .Net 등 다양한 언어를 지원하는 단위 테스트 프레임워크
  • STAF : 크로스 플랫폼, 분산 소프트웨어 등 다양한 테스트 환경을 지원하는 테스트 프레임 워크
    • 분산 소프트웨어 환경의 경우 데몬(Daemon)을 이용하여 테스트 진행 
  • FitNesse : 웹 기반 테스트 프레임워크
  • NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용성과 확장성을 통합한 Naver의 테스트 프레임워크
  • Selenium : 다양한 브라우저와 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크
  • watir : Ruby를 이용한 애플리케이션 테스트 프레임워크

 

- 인터페이스 구현 감시 도구

: 애플리케이션 성능 관리 도구(APM)을 이용하여 인터페이스의 동작 상태에 대한 종합적인 정보를 조회 및 분석

 

※ 애플리케이션 성능 관리 도구(Application Performance Management/Monitoring)

: 애플리케이션의 성능 관리를 위해 다양한 모니터링을 제공하는 도구

  • 리소스 방식 : Nagios, Zabbix, Cacti
  • 엔드투엔드 방식 : VisualVM, Jennifer, Scounter

 

- 인터페이스 구현 검증 및 감시 절차

 

1. 인터페이스 구현 검증 도구/감시 도구 선택

  • 인터페이스 명세서의 세부 기능을 참고하여 필요한 검증 도구 및 감시 도구의 요건을 분석
  • 분석 후 시장 및 솔루션 조사를 통해 적절한 검증 도구와 감시 도구를 선택

 

2. 인터페이스 구현 검증 확인

  • 인터페이스 구현 검증 도구를 이용해 외부 시스템과 연계 모듈의 동작 상태 확인
  • 전반적인 인터페이스 동작 프로세스에서 예상 결과 값과 실제 검증값이 동일한지 비교
  • 각 단계별 오류 처리가 적절히 구현되어 있는지 확인

 

3. 인터페이스 구현 감시 확인

  • 인터페이스 구현 감시 도구를 이용해 외부 시스템과 연계 모듈이 정상적으로 서비스를 제공하는지 확인
  • 인터페이스 동작 여부, 에러 발생 여부 등 감시 도구에서 제공하는 리포트를 활용

74. 인터페이스 오류 확인 및 처리 보고서 작성

1) 인터페이스 오류

  • 인터페이스 오류가 발생하면 사용자 또는 관리자는 오류사항을 확인하고 오류 처리 보고서를 장석하여 보고 체계에 따라 관리 조직에 보고함

 

- 인터페이스 오류 확인 방법

 

1. 발생 즉시 확인

: 인터페이스 오류 발생 시 화면에 오류 메시지를 표시하고 SMS, 이메일 등으로 알려 즉시 확인이 가능

  • 가장 직관적인 방법으로 많이 사용됨
  • 구체적 확인 방법
    • 오류 메시지 알람 표시 : 사용자는 오류 발생 즉시 알 수 있으나, 관리자는 사용자를 통해서만 알 수 있음
    • 오류 SMS 발송 : 사용자와 관리자 모두 오류 발생 즉시 확인이 가능
    • 오류 내역 이메일 발송 : 이메일을 확인해야 오류 발생 사실 확인이 가능

 

2. 주기적 확인

: 시스템 로그, 인터페이스 오류 관련 테이블 등을 통해 관리자가 주기적으로 오류 발생 여부를 확인

  • 오류에 대한 정보가 축적되면 원인 파악이 용이하기 때문에 재발 방지 계획을 세울 수 있음
  • 구체적 확인 방법

 

 

2) 인터페이스 오류 처리 보고서

: 인터페이스 작동 시 발생하는 오류의 발생 및 종료 시점, 원인과 증상, 처리사항 등을 정리한 문서

  • 발생 즉시 신속하게 보고서를 작성하여 조직의 보고 체계에 따라 보고함
  • 일반적으로 정형화된 형식이 없으므로 상황이나 조직 관례에 맞춰 작성
  • 오류 관련 사항을 시간 경과에 따라 기록
  • 보고 시기에 따른 인터페이스 오류 처리 보고서의 특징