반응형

관계 대수

  • 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
  • 관계 대수 연산자의 종류
    • 일반 집합 연산자 : 수학의 집합 개념을 릴레이션에 적용한 연산자
      • 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(×)
    • 순수 관계 연산자 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
      • Select(σ), Project(π), Join(◁), 디비전(÷)

관계 해석

  • 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
  • 프레디킷 해석에 기반한 언어이며 비절차적 언어

관계 대수와 관계 해석 비교

구분 관계 대수 관계 해석
특징 절차적 언어(순서 명시) 비절차적 언어(계산 수식의 유연적 사용)
목적 어떻게 유도하는가?(Who) 무엇을 얻을 것인가?(What)
종류 순수관계 연산자, 일반집합 연산자 튜플 관계 해석, 도메인 관계 해석

대칭 키 암호화 알고리즘

  • DES(Data Encryption Standard)
    • 1975년 IBM에서 개발하고 미국의 연방 표준국에서 발표한 대칭 키 기반의 블록 암호화 알고리즘
    • 블록 크기는 64bit, 키 길이는 56bit인 페이스텔 구조, 16라운드 암호화 알고리즘
    • DES를 3번 적용하여 보안을 더욱 강화한 3 DES도 활용됨
  • SEED
    • 1999년 국내 한국인터넷진흥원이 개발한 블록 암호화 알고리즘
    • 128bit 비밀키로부터 생성된 16개의 64bit 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128bit의 평문 블록을 128bit 암호화 블록으로 암호화하여 출력하는 방식
    • 블록 크기는 128bit이며, 키 길이에 따라 128bit, 256bit로 분류
  • AES(Advanced Encryption Standard)
    • 2001년 미국 표준 기술 연구소에서 발표한 블록 암호화 알고리즘
    • DES의 개인 키에 대한 전사적 공격이 가능해지고, 3 DES의 성능 문제를 극복하기 위해 개발
    • 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit 256bit로 분류
    • AES 라운드 수는 10, 12, 14라운드로 분류되며, 한 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey의 4가지 계층으로 구성
  • ARIA(Academy(학계), Research Institute(연구소), Agency(정부 기관))
    • 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘
    • ARIA는 학계, 연구기관, 정부의 영문 앞글자로 구성
    • 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit 256bit로 분류
    • ARIA는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발되었으며, ARIA가 사용하는 대부분의 연산은 XOR과 같은 단순한 바이트 단위 연산으로 구성
  • IDEA(International Data Encryption Algorithm)
    • DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘
    • 128bit의 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호화를 만듦
  • LFSR(Linear Feedback Shift Register)
    • 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘
    • LFSR에서 사용되는 선형 함수는 주로 배타적 논리합(XOR)이고, LFSR의 초기 비트 값은 시드라고 함
  • Skipjack
    • 미 국가안보국에서 개발한 Clipper 칩에 내장된 블록 알고리즘
    • 소프트웨어로 구현되는 것을 막고자 Fortezza Card에 칩 형태로 구현됨
    • 전화기와 같이 음성을 암호화하는 데 주로 사용되고 64비트 입출력, 80비트의 키, 32라운드를 가짐

 

VPN(Virtual Private Network)

  • 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
  • SSL VPN : 4계층에서 소프트웨어적으로 동작하므로 별도의 장치가 필요 없으며 가격이 저렴하다.
  • IPSec VPN : 3계층에서 동작하므로 IP 헤더를 조작해야 하므로 별도의 하드웨어 장치가 필요하나 보안성이 뛰어나다.

 

 객체지향 설계 원칙(SOLID)

  • 단일 책임의 원칙(SRP;Single Responsibility Principle)
    • 하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는데 집중되어 있어야한다는 원칙
    • 객체지향 프로그래밍의 5원칙 중 나머지 4원칙의 기초 원칙
  • 개방 폐쇄 원칙(OCP;Oen Close Principle)
    • 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려 있고, 변경에는 닫혀 있어야한다는 원칙
  • 리스코프 치환의 원칙(LSP;Liskov Substitution Principle)
    • 서비스 타입(상속받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스)으로 교체할 수 있어야 한다는 원칙
  • 인터페이스 분리의 원칙(ISP;Interface Segregation Principle)
    • 한 클래스는 자신이 사용하지 않은 인터페이스는 구현하지 말아야한다는 원칙
    • 객체 설계 시 특정 기능에 대한 인터페이스는 그 기능과 상관없는 부분이 변해도 영향을 받지 않아야 한다는 원칙
  • 의존성 역전의 원칙(DIP;Dependency Inversion Principle)
    • 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고받음으로써 관계를 최대한 느슨하게 만드는 원칙

인수 테스트

  • 알파 테스트
    • 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 방법으로 사용자가 프로그램을 수행하는 것을 개발자가 모니터링하여 오류를 수정하는 테스트
  • 베타 테스트
    • 사용자의 환경에서 개발자 없이 수행하는 테스트 방법으로, 사용자가 오류정보를 수집하여 개발자에게 보내면 개발자가 취합하여 오류를 수정하는 테스트

테스트 목적에 따른 분류 (회안성 구회병)

  • 회복 테스트(Recovery Testing)
    • 시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트하는 기법
  • 안전 테스트(Security Testing)
    • 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법
  • 성능 테스트(Performance Testing)
    • 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법
  • 구조 테스트(Structure Testing)
    • 시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법
  • 회귀 테스트(Regression Testing)
    • 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법
  • 병행 테스트(Parallel Testing)
    • 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법

 

 

라우팅 프로토콜

  • 내부 라우팅 프로토콜(IGP;Interior Gateway Protocol)
    • 동일한 AS 내의 라우팅에 사용되는 프로토콜
    • RIP(Routing Information Protocol)
      • 거리 벡터 라우팅 기반 메트릭 정보를 인접 라우터와 주기적으로 교환하여 라우팅 테이블을 갱신하고 라우팅 테이블을 구성/계산하는 데 Bellman-Ford 알고리즘을 사용하는 내부 라우팅 프로토콜
      • 최대 홉 수를 15개로 제한하고 30초마다 전체 라우팅 정보를 브로드캐스팅하는 특징
    • OSPF(Open Shortest Path First)
      • 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준을 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜
      • 링크 상태 라우팅 기반 메트릭 정보를 한 지역 내 모든 라우터에 변경이 발생했을 때만 보내고 라우팅 테이블을 구성/계산하는데 다익스트라 알고리즘을 사용하는 내부 라우팅 프로토콜
      • 홉 카운트에 제한이 없고 AS를 지역으로 나누어 라우팅을 효과적으로 관리
  • EGP(Exterior Gateway Protocol)
    • 서로 다른 AS 간 라우팅 프로토콜로 게이트웨이 간의 라우팅에 사용되는 프로토콜
      • BGP(Border Gateway Protocol)
        • AS 상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜로 초기에 라우터들이 연결될 때 전체 라우팅 테이블을 교환하고, 그 이후에는 변화된 정보만을 교환하는 방식

함수 종속(FD; Functional Dependency)

  • 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건
  • 함수 종속 종류
    • 부분 함수 종속(Partial Functional Dependency)
      • 릴레이션에서 기본 키가 복합 키일 경우 기본 키를 구성하는 속성 중 일부에게 종속된 경우
    • 완전 함수 종속(Full Functional Dependency)
      • 릴레이션에서 X→Y 관계가 있을 때, Y는 X의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않는 경우
    • 이행 함수 종속(Transitive Functional Dependency)
      • 릴레이션에서 X→Y, Y→Z종속 관계가 있을 때, X→Z가 성립되는 경우

 

HTTP(Hyper Text Transfer Protocol)

  • 월드 와이드 웹에서 HTML 문서를 송수신하기 위한 규칙들을 정의해 놓은 표준 프로토콜
  • 인터넷에서 요청과 응답에 의해 처리하는 프로토콜로 GET, POST, PUT 등의 방식을 사용

Hypertext

  • 문장이나 단어 등이 링크를 통해 서로 연결된 네트워크처럼 구성된 문서로 이미지등을 누르면 다른 사이트로 옮겨갈 수 있도록 하이퍼링크가 걸려있음

HTML(HyperText Markup Language)

  • 웹을 이루는 가장 기초적인 구성요소로, 웹 콘텐츠의 의미와 구조를 정의할 때 사용
  • 인터넷 웹 문서를 표현하는 표준화된 마크업 언어

 

반응형

+ Recent posts