정보처리기사/소프트웨어 개발
인터페이스 구현 3
RangA
2023. 5. 24. 17:45
인터페이스 구현 검증
01. 인터페이스 예외 처리 방안
1) 인터페이스 예외 처리 방안 정의의 개념
- 인터페이스 기능이 실패 시 예외 처리 방안을 사전에 정의하고 상황 발생 시 정의된 에러 처리 방안이 실행
- 데이터를 통신을 사용하는 인터페이스 동작 간 실패 시 예외 처리 방안을 정의함
- JSON, XML 등 인터페이스 객체를 이용하여 인터페이스를 구현하고 동작 간 실패할 때에는 송신, 수신측면에서 각각 예외 처리 방안을 정의함
2) 인터페이스 객체 송신 시 예외 처리 방안 정의
- 인터페이스 객체 송신 시 예외가 발생하는 케이스를 정의하고 각 예외 케이스마다 예외 처리 방안을 정의함
- 예외가 발생하는 경우는 시스템의 환경과 송신하는 데이터, 프로그램 자체의 원인이 있을 수 있음
- 시스템 환경
- 예외 원인
- 네트워크 및 서버 불안정
- 예외 처리 방안
- POST 이후 에러 메시지를 확인
- 404일 경우 네트워크, 서버 상태를 확인함
- 예외 원인
- 송신 데이터
- 예외 원인
- 송신 데이터 크기, 데이터 장합성 체크에서 에러가 발생하는 경우 발생
- 예외 처리 방안
- 적절한 송신 데이터 및 데이터 형태로 전송되도록 사전에 데이터를 정제
- 송신 시 데이터 정합성 및 크기를 체크하는 기능을 추가하여 사전 예방
- 예외 원인
- 프로그램 자체 원인
- 예외 원인
- 송신 데이터 생성 시 프로세스의 논리적 결함
- 예외 처리 방안
- 논리적 결함 수정
- 충분한 테스트로 사전 예방
- 프로세스에 따라 예상되는 예외를 알림을 통해 사용자에게 알려줌
- 예외 원인
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) 인터페이스 오류 사항 확인
- 즉시 확인
- 인터페이스 오류 발생 시 화면에서 즉시 인지할 수 있거나 시스템 관리자에게 오류 발생 SMS나 Email을 자동으로 발송하여 오류 발생을 즉시 인지하여 조치함
- 시스템 에러 메시지 알림 확인
- 사용자 화면에서 에러 메시지를 알람 형태로 보여줌
- 사용자가 발생 즉시 인지 가능함
- 운영자와 관리자가 늦게 인지할 가능성이 있음
- 오류 내역 Email 전송
- 사용자와 관리자에게 오류 발생 시 Email을 통해 알림
- 비교적 빠르게 알 수 있고 비용이 적음
- 사용자는 모를 수 있으며 빠른 시기에 Email 확인이 필요함
- 오류 발생 시 SMS 전송
- 사용자와 관리자에게 오류 발생 시 SMS를 통해 알림
- 오류 발생 시 즉시 인지 가능함
- 통신 비용이 발생
- 주기적 확인
- 시스템 로그나 인터페이스 오류 관련 테이블 등을 시스템 관리자가 주기적으로 확인하여 오류 발생 여부를 확인하고 원인을 추적할 수 있음
- 오류의 이력이 쌓이게 되면 주기적으로 발생하는 오류의 원인을 분석하여 파악하기 용이하므로 이를 통하여 오류의 재발생을 막는 것이 무엇보다 중요함
- 인터페이스 오류 로그 확인
- 인터페이스 오류 로그만 별도로 생성하여 보관함
- 오류 내역 및 원인을 구체적으로 확인 가능함
- 로그 파일 보기가 어렵기 때문에 전문성이 필요함
- 인터페이스 오류 테이블 확인
- 인터페이스 관련 테이블에 오류 내역을 작성함
- 트랜잭션과 오류 내역의 매칭이나 관리가 용이함
- 구체적이지 않아 별도의 분석이 필요할 수 있음
- 인터페이스 감시 도구(Monitoring) 활용
- 인터페이스 감시 도구를 활용하여 주기적으로 오류 발생을 확인
- 전반적인 상황에 대한 관제가 가능함
- 상용 도구 비용 발생, 사용 방법을 숙지할 필요가 있음