Post

미들웨어, 보안, 형상관리, 파티션, 투명성, 정렬, ISO/IEC

미들웨어, 보안, 형상관리, 파티션, 투명성, 정렬, ISO/IEC

미들웨어

  • 중간 매개자 역할: 애플리케이션, 데이터베이스, 서비스, 디바이스 간의 통신과 데이터 교환을 중재하는 소프트웨어 계층
  • 예시:
    • 은행 앱 ↔︎ 백엔드 서버 통신
    • IoT 센서 ↔︎ 클라우드 데이터 분석

핵심 기능

  1. 통신 관리: 프로토콜 변환, 메시지 큐 관리
  2. 데이터 통합: 이기종 시스템 간 데이터 동기화
  3. 보안: 인증, 암호화, 접근 제어
  4. 확장성: 트래픽 분산(로드 밸런싱), 자동 확장

예시

  1. WAS(웹 애플리케이션 서버)
    • 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리함
    • 웹 환경을 구현하기 위한 미들웨어
  2. RPC(Remot Procedure Call)
    • 응용 프로그램이 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 미들웨어
  3. ORB(Object Request Broker)
    • 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현함
    • 최근에는 TP-Monitor의 장점인 트랜잭션 처리와 모니터링 등을 추가로 구현한 제품도 있음

인터페이스 보안

  1. IPSec : 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능 제공
  2. SSL : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜
  3. S-HTTP : 클라이언트와 서버 간 전송되는 모든 메시지를 암호화하는 프로토콜
  4. SMTP(Simple Mail Transfer Protocol)은 전자 우편을 교환하는 서비스를 제공하는 프로토콜

형상관리_

소프트웨어 버전 등록 관련 주요 용어

  • 저장소(Repository) : 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳
  • 가져오기(Import) : 버전 관리가 되고 있지 않은 아무것도 없는 저장소에 처음으로 파일을 복사
  • 체크아웃(Check-Out) : 프로그램을 수정하기 위해 저장소에서 파일을 받아 옴. 소스 파일과 함께 버전 관리를 위한 파일들도 받음
  • 체크인(Check-In) : 체크아웃 한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신
  • 커밋(Commit) : 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우 충돌을 알리고 diff 도구를 이용해 수정 후 갱신 완료
  • 동기화(Update) : 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화함

파티션 유형

  • 범위 분할(Range Partitioning) : 지정한 열의 값을 기준으로 분할
  • 해시 분할(Hash Partitioning) : 해시 함수를 적용한 결과 값에 따라 데이터 분할
  • 조합 분할(Composite Partitioning) : 범위 분할 후 해시 함수를 적용하여 다시 분할

투명성

분산데이터베이스 투명성 조건 분산데이터베이스는 6가지 투명성(Transparency)을 만족해야 한다.

  1. 분할 투명성 : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장
  2. 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 시스템 카탈로그에 유지되어야 함
  3. 지역사상 투명성 : 지역DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능
  4. 중복 투명성 : DB 객체가 여러 site에 중복 되어 있는지 알 필요가 없는 성질
  5. 장애 투명성 : 구성요소(DBMS 등)의 장애에 무관한 트랜잭션의 원자성 유지
  6. 병행 투명성 : 다수 트랜잭션 동시 수행시 결과의 일관성 유지, 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.