2022. 6. 1. 16:23ㆍ정처기(필기)/소프트웨어개발
(1) 인터페이스 기능 확인
1. 인터페이스 기능이란
- 인터페이스 기능은 이기종 시스템 또는 컴포넌트 간 데이터 교환 및 처리를 위한 기능이다.
2. 인터페이스 설계서를 통한 기능 확인법
- 내부, 외부 모듈의 기능을 인텊이스 설계서를 통하여 확인한 후 인터페이스 개발에 필요한 기능을 도출할 수 있음.
▼ 인터페이스 목록 주요 항목
- 인터페이스 번호
- 일련번호
- 인터페이스 ID
- 인터페이스 명
- 송신 시스템
- 수신 시스템
- 대내외 구분 : 인터페이스가 기업 내부 시스템 간 또는 내, 외부 시스템 간에 발생하는지 여부
- 연계 방식 : 웹 서비스, FTP, DB 링크, 소켓 등 아키텍처에서 정의한 인터페이스 바ㅇ식
- 통신 유형 : 동기 인지 비동기 인지
- 처리 유형 : 실시간, 배치, 지연 처리 등 인터페이스 처리 유형
- 주기
- 데이터 형식 : 고정 길이, XML 등 인터페이스 항목의 데이터 포맷
- 수신 담당자 확인
- 관련 요구사항 ID
!!여기서 잠깐!!
FTP, DB 링크, 소켓이란?
FTP : TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜
DB 링크 : 수신 시스템에서 DB 링크를 생성하고 송신 시스템에서 해당 DB 링크를 직접 참조하는 연결 방식
소켓 : 서버는 소켓을 생성하여 포트를 할당하고 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신하는 방식
▼ 인터페이스 정의서
- 시스템 인터페이스 정의서와 상세 기능 인터페이스 정의서 등으로 나눠진다.
- 데이터 송, 수신 시스템 간의 데이터 저장소와 속성 등의 상세 내역을 포함한다.
◇ 시스템 인터페이스 정의서 주요 항목
- 인터페이스 ID : 인터페이스를 구분하기 위한 식별자
- 최대 처리 횟수
- 데이터 크기(평균/최대)
- 시스템 정보
- 데이터 정보
◇ 상세 기능 인터페이스 정의서 주요 항목(기능들의 세부 동작을 나타내는 오퍼레이션 개요 등이 포함)
- 인터페이스ID : 인터페이스를 구분하기 위한 식별자
- 인터페이스 명 : 해당 인터페이스를 나타내는 고유 명칭
- 오퍼레이션 명 : 해당 인터페이스의 세부 동작 명칭
- 오퍼레이션 개요 : 세부 동작 프로세스에 대한 세부 설명
- 사전 조건 : 세부 동작이 정상적으로 작동하기 위해서 사전에 완료되어야 하는 조건 기술
- 사후 조건 : 세부 동작이 정상적으로 작동된 이후에 발생되는 조건 기술
- 파라미터 : 인터페이스 구성 항목 값
- 반환 값 : 인터페이스 전송 후 반환되는 값
(2) 데이터 표준 확인
1. 인터페이스 데이터 표준 확인이란
- 상호 연계하고자 하는 시스템 간 인터페이스가 되어야 할 범위의 데이터 형식과 표준을 정의하는 것
2. 내, 외부 인터페이스 기술 표준 확인
- 시스템 인터페이스를 위해 외부 및 내부 모듈을 연계하는 대표적인 방법은 EAI 방식과 ESB 방식이 있다.
◇ EAI 방식
- 기업 안에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
- 포인트투포인트 : 중간에 미들웨어를 두지 않고 각각의 애플리케이션 간에 점대 점 형태로 연결
- 허브앤스포크 : 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식
- 메시지 버스 : 애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식(대용량 데이터 처리 가능)
- 하이브리드 : 그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용
◇ ESB 방식
- 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리, 운영할 수 있도록 서비스 주심의 통합을 지향하는 기술
- ESB는 버스를 중심으로 각각 프로토콜이 호환이 가능하도록 애플리케이션의 통합을 낮은 결합 방식으로 지원하는 방식
(3) 인터페이스 보안
- 인터페이스는 시스템 모듈 간의 중요한 접점이기 때문에 보안이 정말 중요하다.
- 데이터 통신 시 데이터를 탈취할 수도 있고 데이터를 위조나 변조할 수 있는 위협이 있다.
1. 인터페이스 보안 구현
◇ 시큐어 코딩 가이드 적용
- 인터페이스를 개발 할 때 시큐어 코딩 가이드에 따라 개발 수행을 하면 보안을 효과적으로 기대할 수 있다.
적용 대상 | 보안 약점 | 대응 방안 |
입력 데이터 검증 및 표현 | 프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정 | 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 설계 및 구현 |
보안 기능 | 보안 기능의 부적절한 구현 | 인증, 접근, 권한 관리, 비밀 번호 등의 정책이 적절하게 반영되도록 설계 |
시간 및 상태 | 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 | 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용 등 |
에러 처리 | 에러 미처리, 불충분한 처리 | 시스템 설계 구현 |
코드 오류 | 개발자의 실수 | 코딩 규칙 도출, 경고 메시지 코드 제거 |
API 오용 | 의도하지 않은 방법으로 API를 사용하거나 보안에 취약 | 취약 API 검출 |
◇ 데이터베이스 보안 적용
- 데이터베이스 암호화 알고리즘
- 대칭 키 암호화 알고리즘 : 암, 복호화에 같은 암호 키를 쓰는 알고리즘
- 비대칭 키 암호화 알고리즘 : 공개키는 누구나 공개하지만 비밀키는 소유자만이 알수 있도록 하는 알고리즘
- 해시 암호화 알고리즘 : 해시 값으로 원래 입력값을 찾아낼 수 없는, 일방향의 특성을 가진 알고리즘
◇ 데이터베이스 암호화 기법
구분 | 설명 |
API 방식 | 애플리케이션 레벨에서 API를 적용하는 애플리케이션 수정 방식 암, 복호화, 정책 관리, 키 관리 등의 부하 발생 |
Plug-in 방식 | DB레벨의 확장성 프로시저 기능을 이용하여 DBMS에 플러그인 모듈로 동작하는 방식 |
하이브리드 방식 | API와 Plug-in 방식을 결합하는 방식 |
◇ 중요 인터페이스 데이터의 암호화 전송을 보안하는 기술
IPSec -> IP계층에서 무결성과 인증을 보장하는 인증헤더와 기밀성을 보장하는 암호화를 이용하여 양 종단 간 구간에 보안 서비스를 제공하는 터널링 프로토콜(AH:인증 프로토콜, ESP:암호화 프로토콜, 키관리 프로토콜:암호화 키의 관리와 생성을 제공하는 프로토콜)
SSL/TLS -> 전송계층과 응용계층 사이에서 클라이언트와 서버 간의 웹데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜, 클라이언트와 서버 간에 상호인증, 암호 방식에 대해 협상을 거치는 특징이 있음
S-HTTP -> 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송
(4) 소프트웨어 연계 테스트
1. 인터페이스 구현
- 인터페이스 구현 방법에는 데이터 통신을 사용하는 방법과 인터페이스 개체를 사용하여 인터페이스를 구현하는 방법이 있다.
◇데이터 통신을 사용하여 인터페이스 구현
- 인터페이스 객체 생성 구현 : DB에 있는 정보를 SQL을 통하여 선택한 후 이를 제이슨으로 생성
- 인터페이스 객체 전송 후 전송 결과를 수신 측에서 반환받도록 구현 : 송신 측에서 제이슨으로 작성된 인터페이스 객체를 AJAX 기술을 이용하여 수신 측에 송신
◇ 인터페이스 개체를 사용하여 인터페이스 구현
- ㅇ송신 시스템의 인터페이스 테이블 : 송신 관련 정보를 관리하기 위한 항목과 송신 시스템에서 필요한 항목 구현
- 수신 시스템의 인터페이스 테이블 : 수신 관련 정보를 관리하기 위한 항목과 수신 시스템에서 필요한 항목 구현
2. 소프트웨어 연계 테스트
- 송신 시스템과 수신 시스템을 연계하였을 경우 데이터의 정합성과 데이터 전송 여부에 대한 테스트
(5) 설계 산출물
1. 인터페이스 구현 검증 도구의 개념
- 인터페이스 동작 상태를 검증하고 모니터링 할 수 있는 도구
▼인터페이스 구현 검증 도구의 종류
도구 | 설명 |
xUnit | java, C++, .Net 등 다양한 언어를 지원하는 단위 테스트 프레임워크 |
STAF | 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크 |
FitNesse | 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크 |
NTAF | FitNesse와 STAF의 장점을 결합하여 개발된 테스트 자동화 프레임워크 |
Selenium | 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크 |
watir | Ruby 기반 웹 애플리케이션 테스트 프레임워크 |
2. 인터페이스 감시 도구
- 데이터베이스, 웹 애플리케이션의 트랜잭션과 변수값, 호출 함수, 로그 및 시스템 부하 등 종합적인 정보를 조회하고, 커넥션 풀 등 지속적인 모니터링이 필요한 자원을 효과적으로 관리할 수 있다.
- 스카우터(SCOUTER) : 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 기능, 인터페이스 감시 기능을 제공
- 제니퍼 : 전 생애 주기 단계 동안 성능을 모니터링하고 분석해주는 APM 소프트웨어
'정처기(필기) > 소프트웨어개발' 카테고리의 다른 글
알고리즘(Algorithm) (0) | 2022.05.31 |
---|---|
애플리케이션 테스트 관리 (0) | 2022.05.31 |
통합 구현 (0) | 2022.05.30 |
물리 데이터 저장소, ORM 프레임워크, 트랜잭션 인터페이스, 프로시저, 쿼리, 소스코드 인스펙션 (0) | 2022.05.29 |
데이터 입출력 구현 (0) | 2022.05.28 |