미들웨어, 보안, 형상관리, 파티션, 투명성, 정렬, ISO/IEC
미들웨어, 보안, 형상관리, 파티션, 투명성, 정렬, ISO/IEC
미들웨어
- 중간 매개자 역할: 애플리케이션, 데이터베이스, 서비스, 디바이스 간의 통신과 데이터 교환을 중재하는 소프트웨어 계층
- 예시:
- 은행 앱 ↔︎ 백엔드 서버 통신
- IoT 센서 ↔︎ 클라우드 데이터 분석
핵심 기능
- 통신 관리: 프로토콜 변환, 메시지 큐 관리
- 데이터 통합: 이기종 시스템 간 데이터 동기화
- 보안: 인증, 암호화, 접근 제어
- 확장성: 트래픽 분산(로드 밸런싱), 자동 확장
예시
- WAS(웹 애플리케이션 서버)
- 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리함
- 웹 환경을 구현하기 위한 미들웨어
- RPC(Remot Procedure Call)
- 응용 프로그램이 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 미들웨어
- ORB(Object Request Broker)
- 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현함
- 최근에는 TP-Monitor의 장점인 트랜잭션 처리와 모니터링 등을 추가로 구현한 제품도 있음
인터페이스 보안
- IPSec : 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능 제공
- SSL : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜
- S-HTTP : 클라이언트와 서버 간 전송되는 모든 메시지를 암호화하는 프로토콜
- SMTP(Simple Mail Transfer Protocol)은 전자 우편을 교환하는 서비스를 제공하는 프로토콜
형상관리_
소프트웨어 버전 등록 관련 주요 용어
- 저장소(Repository) : 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳
- 가져오기(Import) : 버전 관리가 되고 있지 않은 아무것도 없는 저장소에 처음으로 파일을 복사
- 체크아웃(Check-Out) : 프로그램을 수정하기 위해 저장소에서 파일을 받아 옴. 소스 파일과 함께 버전 관리를 위한 파일들도 받음
- 체크인(Check-In) : 체크아웃 한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신
- 커밋(Commit) : 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우 충돌을 알리고 diff 도구를 이용해 수정 후 갱신 완료
- 동기화(Update) : 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화함
파티션 유형
- 범위 분할(Range Partitioning) : 지정한 열의 값을 기준으로 분할
- 해시 분할(Hash Partitioning) : 해시 함수를 적용한 결과 값에 따라 데이터 분할
- 조합 분할(Composite Partitioning) : 범위 분할 후 해시 함수를 적용하여 다시 분할
투명성
분산데이터베이스 투명성 조건 분산데이터베이스는 6가지 투명성(Transparency)을 만족해야 한다.
- 분할 투명성 : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장
- 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 시스템 카탈로그에 유지되어야 함
- 지역사상 투명성 : 지역DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능
- 중복 투명성 : DB 객체가 여러 site에 중복 되어 있는지 알 필요가 없는 성질
- 장애 투명성 : 구성요소(DBMS 등)의 장애에 무관한 트랜잭션의 원자성 유지
- 병행 투명성 : 다수 트랜잭션 동시 수행시 결과의 일관성 유지, Time Stamp, 2PL 구현
정렬
O(1) : 상수형 복잡도 (해시 함수)
O(logN) : 로그형 복잡도 (이진 탐색)
O(N) : 선형 복잡도 (순차 탐색)
O(Nlog2N) : 선형 로그형 복잡도 (퀵 정렬, 병합정렬)
O(N^2) : 제곱형 (거품 정렬, 삽입 정렬, 선택 정렬)
인터페이스 구현 검증 도구
- xUnit : Java, C++ 등 다양한 언어 지원하는 단위 테스트 프레임워크
- STAF : 서비스 호출 및 컴포넌트 재사용 등 환경 지원하는 테스트 프레임워크
- FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
- NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 네이버의 테스트 자동화 프레임워크이다.
- Selenium : 다양한 브라우저 및 개발 언어 지원하는 웹 애플리케이션 테스트 프레임워크
- Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크
- Ruby : 인터프리터 방식의 객체지향 스크립트 언어
인터페이스 보안
- IPsec(IP security) : 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜
- SSL(Secure Sockets Layer) : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜
- S-HTTP(Secure Hypertext Transfer Protocol) : 클라이언트와 서버 간에 전송되는 모든 메시지를 암호화 하는 프로토콜
소스코드 품질분석 도구
정적 분석 도구
- pmd :소스 코드에 대한 미사용 변수 최적화안된 코드 등 결함을 유발할 수 있는 코드 검사 c- ppcheck : C/C++ 코드에 대한 메모리 누수 오버플로우 등 분석
- SonarQube : 중복 코드 복잡도 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼
- checkstyle : 자바 코드에 대해 소스코드 표준을 따르고 있는지 검사한다.
- ccm : 다양한 언어의 코드 복잡도를 분석한다.
- cobertura : 자바 언어의 소스코드 복잡도 분석 및 테스트 커버리지 측정
동적 분석 도구
- Avalanche : Valgrind 프레임워크 및 STP기반 / 프로그램 결함 및 취약점 분석
- valgrind : 프로그램 내에 존재하는 메모리 및 쓰레드 결함 분석
ISO/IEC
ISO/IEC9126
품질 특성과 측정 기준 제시
(기능성/신뢰성/사용성/효율성/유지보수성/이식성)
평가방법이 없음
ISO/IEC14598
소프트웨어 제품 평가
(표준개요/측정계획관리/개발자/획등자/평가자/평가 모델)
ISO/IEC12119
정보기술, 패키지 소프트웨어 대한 품질 요구사항 및 시험을 위한 국제 표준
(제품 설명서, 사용자 문서, 실행 프로그램)
ISO/IEC2500
소프트웨어 품질평가 모델인 ISO/IEC 9126와 소프트웨어 평가절차 모델 ISO/IEC 14589, ISO/IEC12119을 통합
관계연산자
- 순수관계연산자 : Select, Project, Join, Division
- 일반집합연산자 : Union(합집합), Intersection(교집합), Difference(차집합), Cartesion Product(교차곱)
This post is licensed under CC BY 4.0 by the author.