인터페이스 기능 확인
인터페이스 설계서(정의서)
- 시스템의 인터페이스 현황을 한눈에 확인
- 이기종의 시스템간 데이터 교환과 처리를 위하여 사용되는 데이터뿐 아니라 업무, 그리고 송수신 시스템 등에 관한 상세 내용을 기술한 문서
- 설계서 구분
- 정적, 동적 모형을 통한 설계서
- 일반적 형태의 설계서
- 클래스 분할 배치 : 시각적인 다이어그램 사용
- 적절한 주석
인터페이스 기능 확인 순서
인터페이스 설계서의 외부 및 모듈의 기능을 확인 → 공통으로 제공되는 기능과 각 데이터의 인터페이스 확인
모듈 연계
데이터 표준 확인
- 내/외부 모듈 간 데이터를 교환 시 데이터 표준을 정의하고 이를 관리해야 함
- 기존 데이터 중 공통 영역을 추출 or 다른 한 쪽의 데이터 형식을 변환
- JSON, DB, XML, YAML, AJAX, CSV, REST 등의 표준을 사용
- 데이터 표준 확인 → 인터페이스 데이터 항목을 식별 → 데이터 표준 최종확인
모듈 연계
- 시스템 인터페이스를 목적으로 내부 모듈-외부 모듈 or 내부 모듈-내부 모듈 간 인터페이스를 위한 관계를 설정하는 것
- EAI, ESB, Web Service, IPC 등
🔎 EAI (Enterprise Application Integration) ⭐
플랫폼 및 애플리케이션 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
- 특징
- 효율성
- 각 시스템간의 확정성
- 비표준 어댑터를 배포하여 통합하는 방식
EAI 유형 | 기능 |
---|---|
Point-to-Point |
중간 미들웨어 없이 연결, 변경 및 재사용이 어려움 |
Hub & Spoke |
단일 접점인 허브 시스템을 통해 데이터 전송, 중앙 집중형 방식, 허브에 장애 발생 시 시스템 전체에 영향 |
Message Bus |
미들웨어 배치, 확장성이 뛰어남, 대용량 데이터 처리에 유리 |
Hybrid |
Hub & Spoke + Message Bus, 그룹 내 : Hub & Spoke, 그룹 간 : Message Bus, 데이터 병목현상 최소화, 한 가지 방식으로 EAI 구현 가능 |
- 구성 요소
- EAI 플랫폼 : 상호 운영 가능하도록 함, 유연성과 확장성 보장
- 어댑터 : EAI의 핵심 장치, 데이터 입출력 도구
- 브로커 : 데이터 포맷과 코드를 변환
- 메시지 큐 : 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터를 송수신
- 비즈니스 워크플로우
🔎 ESB (Enterprise Service Bus)
- ESB=SOA+EAI
- *SOA : 일 처리 단위를 서비스로 판단하고 그 서비스를 네트워크에 연동하여 시스템 전체를 구축해 나가는 방법론
- ESB의 개념
- 애플리케이션 간의 데이터 변환 및 연계 지원 등을 제공하는 인터페이스 제공 솔루션
- 애플리케이션 보다는 서비스 중심으로 통합을 지향함
- 유연(Loosely-Coupled)하게 통합하는 핵심 플랫폼(기술)
- SOAP, REST, JMS 등 다양한 기술을 이용하여 서비스 통합
구분 | EAI | ESB |
---|---|---|
개념 | 기업 애플리케이션 통합을 위한 소프트웨어 아키텍처 | 서비스 지향 아키텍처를 기반으로 하는 통합 플랫폼 |
통합 방식 | Point-to-Point, Publish-Subscribe 등 다양한 방식 | Enterprise Service Bus를 통해 표준화된 방식 제공 |
연결 방식 | 직접 연결(Ad-hoc) 방식 | 중앙집중형(Broker)방식 |
비즈니스 규칙 | EAI 서버에서 처리 | ESB 에서 처리 |
트랜잭션 관리 | 각각의 애플리케이션에서 관리 | ESB 에서 관리 |
확장성 | 비교적 낮음 | 높음 |
성능 | 성능이 떨어짐 | 성능이 우수 |
유연성 | 제한된 유연성 | 높은 유연성 |
🔎 Web Service
- 네트워크의 정보를 표준화된 서비스 형태로 만들어 공유하는 기술
- 서비스 지향 아키텍처(SOA)개념을 실현
- XML, SOAP, WSDL, UDDI 등 다양한 기술을 이용하여 개발
- 웹 서비스의 구성 ⭐
- SOAP(Simple Object Access Protocol)
- HTTP, HTTPS, SMTP 등을 할용하여 XML 기반의 메시지를 네트워크 상에서 교환하는 프로토콜
- UDDI(Universal Description, Discovery and Integration)
- WSDL을 등록하여 서비스와 서비스 제공자를 검색하고 접근하는 방식으로 사용
- XML기반
- WSDL(Web Service Description Language)
- 웹 서비스에 대한 상세 정보를 XML형식으로 구현
- SOAP(Simple Object Access Protocol)
구분 | Web Service | ESB |
---|---|---|
개념 | 네트워크 상에서 서로 다른 플랫폼 간의 통신을 가능하게 하는 소프트웨어 시스템 | 서비스 지향 아키텍처를 기반으로 하는 통합 플랫폼 |
기술 | XML, SOAP, WSDL, UDDI 등 다양한 기술을 이용하여 개발 | SOAP, REST, JMS 등 다양한 기술을 이용하여 서비스 통합 |
역할 | 네트워크상에서 데이터 교환을 위한 인터페이스 역할 | 서로 다른 애플리케이션 간의 통신을 위한 브로커 역할 및 비즈니스 프로세스 관리 |
컴포넌트 | 서비스 인터페이스, 웹 서비스 클라이언트 등 | 라우터, 변환기, 어댑터, 메시지 버퍼 등 |
데이터 포맷 | 주로 XML 기반 데이터 포맷 사용 | 다양한 데이터 포맷 지원 |
보안 | 보안 기능 제공하지 않음 | 보안 기능 제공 |
확장성 | 높음 | 높음 |
비즈니스 규칙 | 비즈니스 규칙 처리 기능 제공하지 않음 | 비즈니스 규칙 처리 기능 제공 |
🔎 IPC 방식 (Inter-Process Communication)
- 운영체제에서 프로세스 간 서로 데이터를 주고 받기 위한 통신 기술
- 프로세스 사이의 동기를 맞추는 기능을 제공
- 주요 기술
- Pipe
- Socket
- Message Queue
- Shared Memory
인터페이스 기능 정의
인터페이스 기능에 대한 구현 방법을 기능별로 기술하는 과정
- 컴포넌트 명세서 확인 → 인터페이스 명세서 확인 → 일관된 인터페이스 기능 구현 정의 → 정의된 인터페이스 기능 구현 정형화
- 인터페이스 명세서 작성 항목
- 인터페이스명, 설명, 메소드, 파라미터, 반환값, 예외 처리, 상태 정보, 예시 코드
모듈 세부 설계서
- 컴포넌트 설계서 + 인터페이스 설계서
- 모듈 세부 설계서 확인
- 컴포넌트의 주기능은 컴포넌트 명세서(컴포넌트 개요, 내부 클래스의 클래스명, 설명 등)으로 확인
- 인터페이스에 필요한 주 기능은 인터페이스 클래스를 통해 확인
- 인터페이스 명세서를 통해서 컴포넌트 명세서의 인터페이스 클래스에 작성된 인터페이스 세부 조건 및 기능을 확인
인터페이스 구현
- 송수신 시스템 간의 데이터 교환 및 처리를 실현해주는 작업
- 인터페이스 구현 방법을 분석 후 인터페이스 구현
- 데이터 통신을 이용한 인터페이스 구현
- 애플리케이션 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고
- 수신측에서 구문 분석하여 해석하는 방식
인터페이스 구현을 위한 연계 기술
🔎 AJAX (Asynchronous JavaScript and XML)
- JavaScript를 사용한 비동기 통신 기술
- XML 데이터 주고 받음
🔎 JSON (JavaScript Object Notation)
- 데이터 통신을 이용한 인터페이스 구현 방법
- 용량이 적은 데이터를 교환하기 위해 객체를 속성-값의 쌍 형태로 표현
- JavaScript토대로 개발됨
- 사람이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
- AJAX에서 XML을 대체하는 주요 데이터 포맷
🔎 인터페이스 엔티티를 이용한 인터페이스 구현
- 인터페이스가 필요한 시스템 사이에 별도의 중계 인터페이스 엔티티를 배치해 상호 연계
🔎 REST (Representational State Trasfer, 대표 상태 이전) ⭐
- 웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재, 상태 정보를 표준화된 HTTP 메소드로 주고받는 웹 아키텍처
- REST 메소드 (CRUD 만 사용)
- Create : POST
- Read : GET
- Update : PUT
- Delete : DELETE
인터페이스 구현 검증
- 인터페이스의 동작 상태를 검증 및 감시(Monitoring)
- 인터페이스 명세서를 참조
구현 검증 도구의 종류 | 설명 |
---|---|
Watir | Ruby 기반 웹 애플리케이션 테스트 프레임워크 |
xUnit | Java(Junit), C++, .Net(Nunit), JMockit, EMMA, PHPUnit, HttpUnit, DBUnit 등 다양한 언어를 지원하는 단위 테스트 프레임워크 |
FitNesse | 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크 |
STAF | 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크, 데몬을 사용해 테스트 대상 분산 환경에서 테스트를 수행하고 통합하는 자동화 검증 도구, 테스트 자동화/에러 검출 및 디버깅/테스트 리포팅 |
NTAF Naver | 테스트 자동화 프레임워크(STAF+FitNesse) |
Selenium | 웹 어플리케이션의 인터페이스 구현 검증을 위한 도구, 다양한 언어 지원, 크로스 브라우징 지원 |
Appinum | 모바일 애플리케이션의 인터페이스 구현 검증을 위한 도구 |
인터페이스 구현 감시 도구
- APM (Application Performance Management)을 사용
- 트랜잭션과 변수값, 호출 함수, 로그 및 시스템 부하 등 종합적인 정보를 조회하고 분석 가능
- 스카우터, 지니퍼 등
- 주요 기능 : 애플리케이션 모니터링, 성능 분석, 성능 향상
인터페이스 보안
- 데이터 통신 시 데이터 탈취 위협
- Sniffing : 네트워크 주변의 패킷을 옆보는 것
- Spoofing : 사용자가 통신하는 정보를 크래커의 사이트를 통하도록 함
- 데이터베이스 암호화
- 시큐어 코딩 (OWASP)
네트워크 보안 적용
- 개념
- 인터페이스 송수신 간 중간자에 의한 데이터 탈취 또는 위변조 방지
- 네트워크 트래픽에 대한 암호화 적용
- 고려 사항
- Trasport Layer Network 보안
- IPSec(Internet Protocol Security) 프로토콜 적용 : 인터넷 프로토콜 네트워크에서 보안 및 프라이버시를 제공
- AH(Authentication Header) 프로토콜 적용 : 메시지 체크섬을 활용한 데이터 인증과 비연결형 결성을 보장해 주는 프로토콜
- Application Layer Network 보안
- SSL(Secure Socket Layer)의 서버 인증 상태를 운영
- S-HTTP를 적용해 메시지 암호화
- Trasport Layer Network 보안
🔎 SSL 과 S-HTTP
- SSL : 웹 브라우저와 서버 간의 통신에서 데이터를 암호화하고 인증하는 데 사용
- S-HTTP : 웹 서버와 웹 클라이언트 간의 통신에서 전송 데이터의 일부 또는 전체를 암호화하는 데 사용
데이터베이스 보안 적용
- 데이터베이스의 기밀성 유지를 위해
- 데이터베이스의 접근 권한 및 SQL, 프로시저, 트리거 등 데이터베이스 동작 객체의 보안 취약점을 보완
- 중요도가 높은 정보 전송시에는 반드시 암화화, 복호화 과정을 거치도록 함
- IPSec, SSL/TLS 등 보안 채널을 활용해 전송
- IPSec :
- 통신 세션의 각 IP 패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜 통신을 위한 프로토콜
- SSL/TLS :
- 국제 인터넷 표준화 기구에서 표준으로 지정한 공개키 기반의 프로토콜
- 인터넷에서 정보를 암호화해 수신하기 위한 용도
- 역할 : 서버의 공개 키를 클라이언트에게 전달하는 것
- IPSec :
- 암호화 기법 : API, Filter(Plug-in), Hybrid
- 암호화 알고리즘 : 대칭키 알고리즘, 해시 알고리즘, 비대칭키 알고리즘
구분 | API 방식 | Filter(Plug-in)방식 | Hybrid방식 |
---|---|---|---|
개념 | 암호모듈(API) 적용 | Plugin 또는 Snap-in모듈 형식으로 작성 | 어플라이언스 제공 *어플라이언스: 각종 기업용 소프트웨어를 서버와 스토리지 하드웨어에 최적화해 통합한 장비 |
암호화/보안 방식 | 별도의 API 개발/통합 | DB 내 설치/연동 | 어플라이언스 / DB내 설치 |
서버 성능 부하 | 애플리케이션 서버에서 부하가 발생 | DB 서버에서 부하 발생 | DB 와 어플라이언스에서 부하가 분산 |
시스템 통합 용이성 | 애플리케이션 개발 및 통합 기간이 필요 | 애플리케이션 변경이 필요하지 않음, 통합 용이성이 높음 |
애플리케이션 변경이 필요하지 않음, 통합 용이성이 높음 |
관리 편의성 | 애플리케이션 변경할 때 유지보수 필요 | 관리자용 GUI를 이용해 DB 통합 관리 가능하여 관리 편의성이 높음 | 관리자용 GUI를 이용해 DB 통합 관리 가능하여 관리 편의성이 높음 |
인터페이스 연계 테스트
- 송수신 시스템이 정상적으로 동작하는지 테스트
- 연계 테스트 케이스 작성 → 연계 테스트 환경 구축 → 연계 테스트 수행 → 연계 테스트 수행 결과 검증
- 소프트웨어 연계 단위 테스트
- 기능 동작 여부 및 결함 여부 확인
- 소프트웨어 연계 테스트 구간
- 데이터의 흐름 및 처리 절차, 기능의 정상적 동작 확인
- 소프트웨어 연계 통합 테스트
- 운용 애플리케이션 기능과의 통합 구조 흐름 확인
'자격증 > 정보처리기사' 카테고리의 다른 글
[소프트웨어개발] 4. 애플리케이션 테스트 (0) | 2024.01.26 |
---|---|
[소프트웨어개발] 3. 제품 소프트웨어 패키징 (0) | 2024.01.26 |
[소프트웨어개발] 1. 통합구현 (0) | 2024.01.22 |
[소프트웨어설계] 6. 시스템 인터페이스 설계 (0) | 2024.01.21 |
[소프트웨어설계] 5. 객체지향 설계와 디자인 패턴 (0) | 2024.01.19 |