JUINTINATION
인터페이스 구현 본문
모듈 연계를 위한 인터페이스 기능 식별
모듈 연계는 내부 모듈과 외부 모듈 또는 내부 모듈 간 데이터의 교환을 위해 관계를 설정하는 것으로 대표적인 방법에는 EAI와 ESB 방식이 있다.
EAI(Enterprise Application Integration)
EAI는 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션으로 비즈니스 간 통합 및 연계성을 증대시켜 효율성 및 각 시스템 간의 확정성(Determinacy)을 높여준다. EAI의 구축 유형은 다음과 같다.
유형 | 기능 | 모형(사진 출처) |
Point-to-Point | 가장 기본적인 애플리케이션 통합 방식으로 애플리케이션을 1:1로 연결한다. 변경 및 재사용이 어렵다. |
|
Hub & Spoke | 단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중형 방식으로 허브 장애 발생 시 시스템 전체에 영향을 미친다. 확장 및 유지 보수가 용이하다. |
|
Message Bus(ESB 방식) | 애플리케이션 사이에 미들웨어를 두어 처리하는 방식이다. 확정성이 뛰어나며 대용량 처리가 가능하다. |
|
Hybrid | Hub & Spoke와 Message Bus의 혼합 방식으로 그룹 내에서는 Hub & Spoke 방식을, 그룹 간에는 Message Bus 방식을 사용한다. 필요한 경우 한 가지 방식으로 EAI 구현이 가능하다. 데이터 병목 현상을 최소화할 수 있다. |
ESB(Enterprise Service Bus)
ESB는 애플리케이션 간 연계, 데이터 변환, 웹 서비스 지원 등 표준 기반의 인터페이스를 제공하는 솔루션이다.
- 애플리케이션 통합 측면에서 EAI와 유사하지만 애플리케이션 보다는 서비스 중심의 통합을 지향한다.
- 특성 서비스에 국한되지 않고 범용적으로 사용하기 위하여 애플리케이션과의 결합도를 약하게 유지한다.
- 관리 및 보안 유지가 쉽고 높은 수준의 품질 지원이 가능하다.
인터페이스 구현
인터페이스 구현은 송수신 시스템 간의 데이터 교환 및 처리를 실현해 주는 작업을 의미한다.
- 정의된 인터페이스 기능 구현을 기반으로 구현 방법 및 범위 등을 고려하여 인터페이스 구현 방법을 분석한다.
- 인터페이스를 구현하는 대표적인 방법에는 데이터 통신을 이용한 방법과 인터페이스 엔티티를 이용한 방법이 있다.
데이터 통신을 이용한 인터페이스 구현
애플리케이션 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고 이를 수신 측에서 파싱(Parsing)하여 해석하는 방식
- 주로 JSON이나 XML 형식의 데이터 포맷을 사용하여 인터페이스를 구현한다.
인터페이스 엔티티를 이용한 인터페이스 구현
인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어 상호 연계하는 방식
- 일반적으로 인터페이스 테이블을 엔티티로 활용한다.
- 인터페이스 테이블은 한 개 또는 송신 및 수신 인터페이스 테이블을 각각 두어 활용한다.
- 송신 및 수신 인터페이스 테이블의 구조는 대부분 같지만 상황에 따라 서로 다르게 설계할 수도 있다.
인터페이스 예외 처리
인터페이스 예외 처리는 인터페이스를 구현하는 방법에 따라 데이터 통신을 이용하는 방법과 인터페이스 엔티티를 이용하는 방법이 있다.
데이터 통신을 이용한 인터페이스 예외 처리
데이터 통신을 이용한 인터페이스 예외 처리 방법은 JSON, XML 등 인터페이스 객체를 이용해 구현한 인터페이스 동작이 실패할 경우를 대비한 것으로 인터페이스 객체의 송수신 시 발생할 수 있는 예외 케이스를 정의하고 각 예외 케이스마다 예외 처리 방법을 기술한다.
인터페이스 엔티티를 이용한 인터페이스 예외 처리
인터페이스 엔티티를 이용한 인터페이스 예외 처리 방법은 인터페이스 동작이 실패할 경우를 대비하여 해당 엔티티에 인터페이스의 실패 상황과 원인 등을 기록하고 이에 대한 조치를 취할 수 있도록 사용자 및 관리자에게 알려주는 방식으로 정의한다.
인터페이스 보안
인터페이스는 시스템 모듈 간 통신 및 정보 교환을 위한 통로로 사용되므로 충분한 보안 기능을 갖추지 않으면 시스템 모듈 전체에 악영향을 주는 보안 취약점이 될 수 있다. 인터페이스 보안성 향상을 위해 인터페이스의 보안 취약점을 분석한 후 적절한 보안 기능을 적용해야 한다.
인터페이스 보안 취약점 분석
- 인터페이스 기능이 수행되는 각 구간들의 구현 현황을 확인하고 각 구간에 어떤 보안 취약점이 있는지를 분석한다.
- 인터페이스 기능이 수행되는 각 구간의 구현 현황은 송수신 영역의 구현 기술 및 특징 등을 구체적으로 확인한다.
- 확인된 인터페이스 기능을 기반으로 송신 데이터 선택, 송신 객체 생성, 인터페이스 송수신, 데이터 처리 결과 전송 등 영역별로 발생할 수 있는 보안 취약점을 시나리오 형태로 작성한다.
인터페이스 보안 기능 적용
분석한 인터페이스 기능과 보안 취약점을 기반으로 인터페이스 보안 기능을 적용한다.
네트워크 영역 | 인터페이스 송수신 간 스니핑(Sniffing) 등을 이용한 데이터 탈취 및 변조 위협을 방지하기 위해 네트워크 트래픽에 대한 암호화를 설정한다. |
애플리케이션 영역 | 소프트웨어 개발 보안 가이드를 참조하여 애플리케이션 코드 상의 보안 취약점을 보완하는 방향으로 애플리케이션 보완 기능을 적용한다. |
데이터베이스 영역 | 데이터베이스, 스키마, 엔티티의 접근 권한과 프로시저(Procedure), 트리거(Trigger) 등 데이터 베이스 동작 객체에 보안 취약점에 보안 기능을 적용한다. 개인 정보나 업무상 민감한 데이터의 경우 암호화나 익명화 등 데이터 지체의 보안 방안도 고려한다. |
스니핑(Sniffing)
스니핑은 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당한다.
데이터 무결성 검사 도구
데이터 무결성 검사 도구는 시스템 파일의 변경 유무를 확인하고 파일이 변경됐을 경우 이를 관리자에게 알려주는 도구로 인터페이스 보안 취약점을 분석하는데 사용된다.
- 크래커나 허가받지 않은 내부 사용자들이 시스템에 침입하면 백도어를 만들어 놓거나 시스템 파일을 변경하여 자신의 흔적을 감추는데 무결성 검사 도구를 이용하여 이를 감지할 수 있다.
- 해시 함수를 이용하여 현재 파일 및 디렉터리의 상태를 DB에 저장한 후 감시핟가ㅏ 현재 상태와 DB의 상태가 달라지면 관리자에게 변경 사실을 알려준다.
연계 테스트
연계 테스트는 구축된 연계 시스템과 연계 시스템의 구성 요소가 정상적으로 동작하는지 확인하는 활동이다.
- 연계 테스트 케이스 작성 ➡️ 연계 테스트 환경 구축 ➡️ 연계 테스트 수행 ➡️ 연계 테스트 수행 결과 검증 순으로 진행된다.
인터페이스 구현 검증 도구
인터페이스가 정상적으로 작동하는지 확인하는 인터페이스 구현 검증을 위해 인터페이스 단위 기능과 시나리오 등을 기반으로 하는 통합 테스트가 필요하다. 통합 테스트는 다음과 같은 테스트 자동화 도구를 이용하면 효율적으로 수행할 수 있다.
도구 | 기능 |
xUnit | Java(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임 워크이다. |
STAF | 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크이다. 크로스 플랫폼, 분산 소프트웨어 테스트 환경을 조성할 수 있도록 지원한다. 분산 소프트웨어의 경우 각 분산 환경에 설치된 데몬(Daemon)이 프로그램 테스트에 대한 응답을 대신하며 테스트가 완료되면 이를 통합하고 자동화하여 프로그램을 완성한다. |
FitNesse | 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크이다. |
NTAF | FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크이다. |
Selenium | 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크이다. |
watir | Ruby를 사용하는 애플리케이션 테스트 프레임워크이다. |
인터페이스 구현 감시 도구
- 인터페이스 동작 상태는 APM을 사용하여 감시할 수 있다.
- 애플리케이션 성능 관리 도구를 통해 데이터베이스와 웹 애플리케이션의 트랜잭션, 변수값, 호출 함수, 로그 및 시스템 부하 등 종합적인 정보를 조회하고 분석할 수 있다.
'정보처리기사 정리' 카테고리의 다른 글
데이터 모델 (0) | 2024.02.15 |
---|---|
데이터베이스 설계 (0) | 2024.02.15 |
애플리케이션 성능 분석 (1) | 2024.02.12 |
결함 관리 (0) | 2024.02.12 |
애플리케이션 테스트 (1) | 2024.02.12 |