출처 수제비카페
( 1 ) 은/는 프로세스들의 자료 흐름을 중심으로 처리 과정 표현하는 모델링으로 자료 흐름도(DFD)를 활용하여 표현한다.
( 2 ) 은/는 시스템에서 요구하는 객체를 찾고 객체들 간의 관계를 정의하여 ER 다이어그램을 만드는 과정까지의 모델링이다.
(1) - 기능 모델링(Functional Modeling)
(2) - 객체 모델링(Object Modeling) / Information Modeling
럼바우의 객체 지향 분석 절차
객체 모델링 => 동적 모델링 => 기능 모델링
객체 모델링 : 정보 모델링이라고도 하며, 시스템에서 요구하는 객체를 찾고 객체들 간의 관계를 정의하여 ER 다이어그램을 만드는 과정까지의 모델링
동적 모델링 : 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링 / 상태 다이어그램을 활용하여 표현
기능 모델링 : 프로세스들의 자료 흐름을 중심으로 처리 과정 표현하는 모델링 / 자료 흐름도 (DFD)를 활용하여 표현
객체 지향 설계 원칙
개방 폐쇄 원칙(OCP; Open Close Principle) : 소프트웨어의 구성요서는 확장에는 열러있고, 변경에는 닫혀있어야 한다는 원칙
리스코프 치환의 원칙(LSP; Liskov Substitution Principle) : 서브 타입(상속받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스)으로 교체할 수 있어야 한다는 원칙
디자인 패턴
복잡한 시스템에 대하여 단순한 인터페이스를 제공함으로써 사용자와 시스템 간 또는 여타 시스템과의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴
오류에 대해서 단위별로 확인할 수 있게 하며, 사용자의 측면에서 단순한 인터페이스 제공을 통해 접근성을 높일 수 있는 패턴
Facade
( ) 패턴은 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해서 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 디자인 패턴이다.
Template Method
( ) 패턴은 객체 상태를 캡슐화하여 클래스화함으로써 그것을 참조하게 하는 방식으로 상타에 따라 다르게 처리할 수 있도록 행위 내용을 변경하여, 변경 시원시 코드의 수정을 최소화할 수 있고, 유지보수의 편의성도 갖는 디자인 패턴이다.
State
객체 지향 구성 요소
클래스로부터 생성된 객체를 사용하는 방버으로 객체가 수행할 수 있는 동작이나 기능을 정의한 함수
메서드(method)
객체 간 상호작용을 하기 위한 수단으로 객체에게 특정 ( )를 호출하도록 요청하는 방식
메시지(message)
클래스라는 설계도를 기반으로 생성된 실형 객체로 각각은 같은 클래스에 속하지만, 고유한 속성과 상태를 가질수 있음
인스턴스(Instance)
( 1 ) 다이어그램은 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현하는 다이어그램
(2) 다이어그램은 동작에 참여하는 객체들이 주고 받는 메시지를 표현하고, 메시지뿐만 아니라 객체 간의 연관까지 표현하는 다이어그램
( 1 ) : 활동(Activity)
( 2 ) : 커뮤니케이션(Communication)
( ) 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고, 그렇지 않을 수도 있는 관계이다.
extend
( ) 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 관계이다.
include
계층 데이터 모델은 논리적 구조가 트리 형태로 구성된 모델로 1:N 관계만 허용한다.
네트워크 모델은 논리적 구조가 그래프 형태로 구성된 모델로 CODASYL DBTG 모델이라고 불린다.
유일성(Unique)은 식별자에 의해 엔터티 타입 내에 모든 엔터티들이 유일하게 구분하는 키의 특성이다.
키의 종류 중 슈퍼 키(Super Key)는 릴레이션을 구성하는 모든 튜플에 대해 유일성(Unique)은 만족하지만, 최소성(Minimality)은 만족하지 못하는 키이다.
개체(Entity)는 데이터베이스에 표현하려는 사물 또는 사건으로 피터 챈 모델에서는 사각형으로 표시한다.
속성(Attribute)은 개체가 가지고 있는 요소 또는 성질으로 피터 챈 모델에서는 속성을 타원형으로 표시한다.
SOAP(Simple Object Access Protocol)
: HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜이다.
UDDI(Universal Description Discovery and Integration)
: 웹 서비스에 대한 정보를 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준이다.
ESM (Enterpris Security Management): 방확벽(Firewall), 침입 탐지 시스템(IDS), UTM 가상 사설망 등의 여러 보안 시스템으로부터 발생한 각종 이벤트 및 로그를 통합해서 관리, 분석, 대응하는 전사적 통합 보안 관리 시스템
UTM (Unified Threat Management): 방화벽, 침입 탐지 시스템(IDS), 침입 방지 시스템(IPS), VPN, 안티 바이러스, 이메일 필터링 등 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
L2f(Layer 2 Forwarding)은 시스코사(Cisco)에서 개발한 프로토콜로 ISP(인터넷 서비스 제공자)가 여러 사용자들을 인증하고 터널링을 통해 연결을 제공할 수 있는 다자간 통신이 가능한 프로토콜이다.
L2TP(Layer 2 Tunneling Protocol)은 PPTP(Point-to-Point Tunneling Protocol)와 L2f(Layer 2 Forwarding)의 장접을 결합하여 개발된 프로토콜로, 마이크로소프트사와 시스코에서 지원하고 있으며 호환성이 뛰어나고 원격 접속 서비스에 사용되는 프로토콜이다.
SIEM(Security Information and Event Management) 은 기업에서 생성되는 테라바이트급의 정형 비정형 데이터와 방화벽, 안티바이러스 시스템, 서버, 네트워크 장비 등으로부터 수집한 다양한 데이터 등을 빅데이터 기반의 로그 분석을 통하여 보안의 위협 징후를 빠르게 판단 대응할 수 있도록 해주는 보안 관제 솔루션이다.
ESM(Enterprise Security Management) 은 서로 다른 기종의 보안 장비들을 통합 관리하는 기능과 네트워크 자원 현황의 보안 모니터링 기능이 있고, 주로 이벤트 위주의 단시간 위협 분석 및 DMBS 기반의 보안 관리 솔루션이다.
키로거 공격(Key Logger Attack) : 컴퓨터 사용자의 키보드 움직임을 탐색해서 저장하고, ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격이다.
공급망 공격(Supply Chain Attack) : 소프트웨어 개발사의 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입하거나 배포 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해 사용자 PC에 소프트웨어를 설치 또는 업데이트 시에 자동적으로 감영되도록 하는 공격기법이다.
악성 루틴이 숨어 있는 프로그램으로 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악성 코드를 실행하는 프로그램이다.
트로이목마 (Trojan Horse)
다른 실행 프로그램에 기생하지 않고, 스스로를 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램이다.
웜(Worm)
( ) 컴퓨터 운영체제의 커널에 보안 기능을 추가한 솔루션으로 운영체제에 내재된 결함으로 인해 발생할 수 있는 각종 해킹 공격으로부터 시스템을 보호할 수 있다.
보안 운영체제(Secure OS)
( ) 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션으로 정보 유출 방지를 위해 정보의 흐름에 대한 모니터링과 실시간 차단 기능을 제공하고 있다.
데이터 유출 방지(DLP; Date Loss Prevention)
( ) 멀티미디어 콘텐츠에 저작권 정보와 구매한 사용자 정보를 삽입하여 콘텐츠 불법 배포자에 대한 위치 추적이 가능한 기술(저작권 정보구매자 정보)이다.
핑거프린팅(Finger Printing)
( ) 디지털 콘텐츠에 저작권자 정보를 삽입하여, 불법 복제 시 워터마크를 추출, 원소유자를 증명할 수 있는 콘텐츠 보호 기술이다.
워터마킹(Water Marking)
TCP 연결 설정을 위한 3-way handshaking 과정에서 half-open 연결 시도가 가능하다는 취약성을 이용하는 공격 방식이다.
STN 플러딩
서버와 클라이언트가 TCP 통신을 하고 있을 때, RST 패킷을 보내고 시퀀스 넘버 등을 조작하여 연결을 가로채는 공격 방식이다.
세션 하이재킹
IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 DoS 공격이다.
티어 드롭
웹 페이지에 악의적인 스크립트를 삽입하여 방문자들이 해당 웹 페이지를 열람함으로써 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발 하는 공격기법
XSS(Cross Site Scripting)
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격기법
CSRF(Cross-Site Request Forgery)
응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격기법
SQL Injection
( ) 블루투스 장비 간 취약한 연결 관리를 악용한 공격이다.
블루버그(BlueBug)
( ) 블루투스 연결을 통해 무선 기기에서 무단으로 정보에 엑세스하는 공격이다.
블루스나프(BlueSnarf)
인증 기술은 지식 기반, (소지) 기반, 생체 기반, ( 특징 Or 행위 ) 기반 인증이 있다. 비밀번호와 같이 사용자가 기억하고 있는 지식은 지식기반 인증이라고 한다.
공인인증서, ( OTP, one time passward) 는 각 사용 시마다 일회용 비밀번호를 생성하여 사용하는 방식으로 보안성이 높아, 해킹이나 비밀번호 도용을 방지하는 데 효과적이다.
홍채, 정맥, 지문과 같이 고유한 사용자의 생체 정보는 생체 기반 인증이라고 한다.
서명, 발걸음, 몸짓과 같이 사용자의 행동을 이용하는 방식은 ( 특징 Or 행위 ) 기반 인증이라고 한다.
모듈의 ( 독립성(Independence) )은 결합도와 응집도에 의해 측정되며, ( 독립성 )을 높이려면 모듈의 결합도는 약하게(낮게) 응집도는 강하게(높게), 모듈의 크기는 작게 만들어야 한다.
여기에서 응집도는 모듈의 독립성을 나타내는 정도로, 모듈 내부 구성요소 간 연관 정도이다. 응집도 유형 중 ( 통신적 응집도 (Communication Cohesion) )은 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도이다.
정적 분석(Static Analysis) 도구는 만들어진 애플리케이션을 실행하지 않고 분석하는 도구로 대부분의 경우 소스코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용한다.
반면에 성능 테스트(Performance Test) 도구는 애플리케이션의 처리량, 응답시간, 경과시간, 자원사용률에 대해 가상의 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성하였는지를 확인하는 테스트 자동화 도구이다.
( )은 데이터값들 간에 최소한 한 번씩을 조합하는 방식이며, 이는 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 기법이다.
페어와이즈 테스트(Pairwise Testing)
( ) 결정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 테스트 기법이다.
조건 커버리지(Condition Coverage)
SNMP(Simple Network Management Protocol) : 네트워크 장비를 모니터링하고 관리하는 표준 프로토콜로 포트번호 161, 162를 사용해서 네트워크 장비의 성능, 오류, 상태 정보를 수집하는 프로토콜이다.
NAT(Network Address Translation) : 기업 내부에서 사설 IP를 부여해서 사용하다가 기업 외부로 통신할 때는 공인 IP로 변환해서 통신함으로써 부족한 IPv4의 주소 문제를 해결하고 기업 내부의 보안을 강화할 수 있는 프로토콜이다.
전송 매체 접속 제어
( ) IEEE802.3 기반의 매체 접속 제어 방식으로 통신 회선이 사용중이면 일정 시간 동안 대기하고, 통신 회선상에 데이터가 없을 때에만 데이터를 송신하며, 송신중에도 전송로의 상태를 계속 감시하는 방식
CSMA/CD
( ) IEEE802.11 기반의 매체 접속 제어 방식으로 데이터 전송 시, 매체가 비어있음을 확인한 뒤 충돌을 회피하기 위해서 임의 시간을 기다린 후 데이터를 전송하는 방식
CSMA/CA
(외부 스키마 (External Schema) ) 은 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조로 사용자 뷰를 나타낸다.
(개념 스키마 (Conceptual Schema) ) 은 데이터베이스의 전체적인 논리적 구조로 전체적인 뷰를 나타낸다.
하나의 호스트 컴퓨터상에서 동시에 다수의 운영체제를 구동시킬 수 있는 HW와 OS 사이의 SW 가상화 플랫폼
하이퍼바이저(Hypervisor)
리눅스 재단에 의해 관리되는 컨테이너화된 애플리케이션의 자동 배포, 스케일링 등을 제공하는 오픈 소스 기반의 관리 시스템
쿠버네티스(Kubernetes)
구글의 구글 브레인 팀이 제작하여 공개한 기계 학습을 위한 오픈 소스 소프트웨어 라이브러리
텐서플로(TensorFlow)
블록체인의 기본 인프라를 추상화하여 블록체인 응용 프로그램을 만들수 있는 클라우드 컴퓨팅 플랫폼
BaaS(Blockchain-as-a-Service)
주체는 자신과 같거나 자신보다 낮은 보안 수준의 객체만 읽을 수 있음
주체는 자신과 같거나 자신보다 높은 보안 수준의 객체에만 쓸 수 있음
=> 벨 - 라파듈라
OOSE - 유스케이스에 의한 접근 방법으로 유스케이스를 모든 모델의 근간으로 활용하는 야콥슨이 만든 방법론
Coad - Yourdon - E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성되는 방법론
wirfs-brock(워프 - 브록) - 분석과 설계 간의 구분이 없고 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 분석 방법론
Repeater(리피터)
디지털 신호를 증폭시켜 주는 역할을 하여 신호가 약해지지 않고 컴퓨터로 수신되도록 하는 장비
Router(라우터)
LAN과 LAN을 연결하거나 LAN과 WAN을 연결하기 위한 인터넷 네트워킹 장비
사용된 횟수를 확인하여 참조 횟수가 가장 적은 페이지를 선택하여 교체하는 기법
LFU(Least Frequently Used)
가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법으로 페이지마다 참조 비트를 두고, FIFO 기법을 이용하여 페이지 교체 수행 중 참조 비트가 0일 경우에 교체를 수행하는 기법
SCR(Second Chance Replacement)