RangA 2023. 5. 24. 17:45

인터페이스 구현 검증

01. 인터페이스 예외 처리 방안

1) 인터페이스 예외 처리 방안 정의의 개념

  • 인터페이스 기능이 실패 시 예외 처리 방안을 사전에 정의하고 상황 발생 시 정의된 에러 처리 방안이 실행
  • 데이터를 통신을 사용하는 인터페이스 동작 간 실패 시 예외 처리 방안을 정의함
  • JSON, XML 등 인터페이스 객체를 이용하여 인터페이스를 구현하고 동작 간 실패할 때에는 송신, 수신측면에서 각각 예외 처리 방안을 정의함

2) 인터페이스 객체 송신 시 예외 처리 방안 정의

  • 인터페이스 객체 송신 시 예외가 발생하는 케이스를 정의하고 각 예외 케이스마다 예외 처리 방안을 정의함
  • 예외가 발생하는 경우는 시스템의 환경과 송신하는 데이터, 프로그램 자체의 원인이 있을 수 있음
  1. 시스템 환경
    • 예외 원인
      • 네트워크 및 서버 불안정
    • 예외 처리 방안
      • POST 이후 에러 메시지를 확인
      • 404일 경우 네트워크, 서버 상태를 확인함
  2. 송신 데이터
    • 예외 원인
      • 송신 데이터 크기, 데이터 장합성 체크에서 에러가 발생하는 경우 발생
    • 예외 처리 방안
      • 적절한 송신 데이터 및 데이터 형태로 전송되도록 사전에 데이터를 정제
      • 송신 시 데이터 정합성 및 크기를 체크하는 기능을 추가하여 사전 예방
  3. 프로그램 자체 원인
    • 예외 원인
      • 송신 데이터 생성 시 프로세스의 논리적 결함
    • 예외 처리 방안
      • 논리적 결함 수정
      • 충분한 테스트로 사전 예방
      • 프로세스에 따라 예상되는 예외를 알림을 통해 사용자에게 알려줌

3) 인터페이스 객체 수신 시 예외 처리 방안

  • 인터페이스 객체 수신 시 예외가 발생하는 케이스를 정의하고 각 예외 케이스마다 예외 처리 방안을 정의함
  • 예외가 발생하는 경우는 시스템의 환경적인 측면과 수신된 입력 데이터, 프로그램 자체의 원인이 있을 수 있음
  1. 시스템 환경
    • 예외 원인
      • 네트워크 및 서버 불안정
    • 예외 처리 방안
      • 입력 대기 큐를 통해서 요청을 쌓아 놓고, 순차적으로 처리하여 서버 정상 가동 시 동작할 수 있도록 함
  2. 수신 데이터
    • 예외 원인
      • 데이터 정합성 체크
    • 예외 처리 방안
      • 특수문자 입력 케이스를 사전 파악하여 파싱 시 특수문자는 오류가 나지 않는 문자로 대치한 후 추후 재처리함
  3. 프로그램 자체 원인
    • 예외 원인
      • 수신 인터페이스 데이터 처리 시 프로그램의 논리적 결함
    • 예외 처리 방안
      • 논리적 결함 수정
      • 프로세스에 따라 예상되는 예외를 알림을 통해 사용자에게 알려줌
      • 예외 사항이 들어오지 않도록 송신측 프로그램을 수정



02. 인터페이스 구현 검증

1) 인터페이스 구현 검증 도구

  • 검증을 위해서는 인터페이스 단위 기능 및 시나리오에 기반을 둔 통합 테스트가 필요함
  • 테스트 자동화 도구를 이용하여 단위 및 통합 테스트의 효율성을 높일 수 있음

2) 인터페이스 구현 검증 도구

  • xUnit
    • Java(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크
  • STAF
    • 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
    • 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하여 자동화하는 검증 도구
  • FitNesse
    • 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
  • NTAF
    • 테스트 자동화 프레임워크이며, STAF와 FitNesse를 통합함
  • Selenium
    • 다양한 브라우저 지원 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크
  • watir
    • Ruby 기반 웹 애플리케이션 테스트 프레임워크



03. 인터페이스 구현 감시

1) 인터페이스 구현 감시(Monitoring)의 개념

  • 인터페이스의 동작이 잘 진행되는지 확인하기 위해서는 APM을 사용하여 동작 상태를 감시할 수 있음
  • 상용 제품 및 오픈소스를 이용한 APM이 있음
  • 데이터베이스, 웹 응용 소프트웨어의 트랜잭션과 변수값, 호출 함수, 로그 및 시스템 부하 등 종합적인 정보를 조회하고 분석함

2) APM(Application Performance Management) 기능

  • 제품 소프트웨어를 사용자 환경에 설치 후 기능 및 성능 운영 현황을 관리하는 감시 도구
  • 운영 중인 시스템이 응답 시간과 같은 성능이나 처리량, 가용성, 무결성, 신뢰성 등을 확보하여 안정적인 시스템 운영을 위한 도구

3) 인터페이스 구현 감시 도구

  • ChaneMiner
    • 응용 프로그램 간의 종속 관계를 모니터링함
    • 응용 프로그램이 변경되었을 때 변경의 영향도 파악에 활용
  • Jeniffer
    • 응용 프로그램 서버로 유입되는 트랜잭션 수량, 처리 시간, 응답 시간 등을 모니터링함
  • Nmon
    • 리눅스 서버 자원에 대한 모니터링 도구
    • Nmonanalyser를 이용하여 자원 사용량을 그래프로 표현할 수 있음
  • pmd
    • 정적 분석 도구
    • Java로 작성된 소스 코드의 잠재적인 문제를 발견할 수 있음
    • Java 코딩 규칙 오류를 발견할 수 있음
  • cppcheck
    • 정적 분석 도구
    • C/C++로 작성된 소스 코드의 잠재적인 문제를 발견할 수 있음
  • avalanche
    • 동적 분석 도구
    • valgrind 프레임워크와 STP를 기반으로 구현되었음
    • 심각한 소프트웨어 오류 및 취약점을 발견할 수 있음
  • valgrind
    • 동적 분석 도구
    • C/C++ 기반 프로그램에 대한 메모리 및 스레드 문제를 발견할 수 있음

4) 인터페이스 오류 사항 확인

  1. 즉시 확인
    • 인터페이스 오류 발생 시 화면에서 즉시 인지할 수 있거나 시스템 관리자에게 오류 발생 SMS나 Email을 자동으로 발송하여 오류 발생을 즉시 인지하여 조치함
    • 시스템 에러 메시지 알림 확인
      • 사용자 화면에서 에러 메시지를 알람 형태로 보여줌
      • 사용자가 발생 즉시 인지 가능함
      • 운영자와 관리자가 늦게 인지할 가능성이 있음
    • 오류 내역 Email 전송
      • 사용자와 관리자에게 오류 발생 시 Email을 통해 알림
      • 비교적 빠르게 알 수 있고 비용이 적음
      • 사용자는 모를 수 있으며 빠른 시기에 Email 확인이 필요함
    • 오류 발생 시 SMS 전송
      • 사용자와 관리자에게 오류 발생 시 SMS를 통해 알림
      • 오류 발생 시 즉시 인지 가능함
      • 통신 비용이 발생
  2. 주기적 확인
    • 시스템 로그나 인터페이스 오류 관련 테이블 등을 시스템 관리자가 주기적으로 확인하여 오류 발생 여부를 확인하고 원인을 추적할 수 있음
    • 오류의 이력이 쌓이게 되면 주기적으로 발생하는 오류의 원인을 분석하여 파악하기 용이하므로 이를 통하여 오류의 재발생을 막는 것이 무엇보다 중요함
    • 인터페이스 오류 로그 확인
      • 인터페이스 오류 로그만 별도로 생성하여 보관함
      • 오류 내역 및 원인을 구체적으로 확인 가능함
      • 로그 파일 보기가 어렵기 때문에 전문성이 필요함
    • 인터페이스 오류 테이블 확인
      • 인터페이스 관련 테이블에 오류 내역을 작성함
      • 트랜잭션과 오류 내역의 매칭이나 관리가 용이함
      • 구체적이지 않아 별도의 분석이 필요할 수 있음
    • 인터페이스 감시 도구(Monitoring) 활용
      • 인터페이스 감시 도구를 활용하여 주기적으로 오류 발생을 확인
      • 전반적인 상황에 대한 관제가 가능함
      • 상용 도구 비용 발생, 사용 방법을 숙지할 필요가 있음