정처기 실기 이론

No.8·2024년 4월 20일
0

정처기

목록 보기
3/3

소프트웨어 공학

  • 품질 높은 소프트웨어를 효율적으로 개발하기 위한 학문
  • 소프트웨어 공학의 3R
    - 역공학(Reverse Engineering)
    - 재공학(Re-Engineering) : 분석-> 재구성->역공학->이관
    - 재사용(Reuse)

소프트웨어 개발 단계

  • 계획 : 비용, 일정, 타당성
  • 분석 : 요구사항
  • 설계 : 모델링
  • 구현
  • 테스트
  • 유지보수

소프트웨어 개발 방법론

  • 폭포수 모델
  • 프로토타이핑 모델
  • 나선형 모델
  • RAD(안나옴)
  • V모형 : 테스트 쪾에 강조
  • 4세대 기법 (안나옴)

애자일 방법론

  • XP(익스트림 프로그래밍) : 의사소통, 용기, 피드백, 존중, 단순성
  • 스크럼 : 스프린트(스트린트 단위로 개발), 백로그
  • 크리스털 : 규모에 따른 방법론 제공
  • FDD : 기능주도 개발
    예) 다음이 설명하는 방법론은 무엇인가? A-애자일

프로젝트 관리(별로 안나올듯)

  • 프로젝트 핵심 관리 대상
    • 사람, 문제, 프로세스
  • PMBOK
    • 프로젝트 관리 프로세스 및 지식체계
    • 착수, 계획, 실행, 통제, 종료

비용산정 (계획단계)

  • 하향식
    • 전문가 판단 기법, 델파이 기법(여러 전문가들이 모여서)
  • 상향식
    • 원시코드 라인 수, 단계별 노력
  • 수학적
    • COCOMO : 조직형(5만라인 이하), 반분리형(30만 라인 이하), 내장형(30만 라인 이상)
    • Putnam : Rayleigh-Norden, SLIM
    • FP : 내부 논리 파일(ILF), 외부 연계 파일(EIF), 외부 입력(EI), 외부 출력(EO), 외부 조회(EQ)

일정산정 (계획단계)

  • WBS : workdown break structure
  • CPM 네트워크 작성
  • 임계경로 계산
  • 간트 차트 표현

플랫폼

  • CPND
    • Contents : 텍스트, 이미지, 오디오, 비디오 등
    • Platform : 웹사이트, 애플리케이션 등
    • Network : 통신 시스템
    • Device : 스마트폰, 컴퓨터, 태블릿

미들웨어

  • 원격 프로시저 호출(Remote Procedure Call)
  • 메시지 지향 미들웨어(Message Oriented Middleware)
  • ORB(Object Request Broker)
  • DB 접속 미들웨어
  • TP 모니터(Transaction Processing Monitor)
  • 웹 애플리케이션 서버(Web Application Server)
  • 엔터프라이즈 서비스 버스(Enterprise Service Bus)
    WAS - 동적
    WEB - 정적

요구사항 개발 프로세스

  • 도출 : 인터뷰, 설문조사, 브레인스토밍, 워크샵
  • 분석 : DFD(데이터플로우 다이어그램), Data Dictionary, Mini-Spec(소단위명세서), ERD, STD(상태전이도) - 구조적/ UML - 객체지향
  • 명세 : 정형(수학적)/비정형(자연어), 기능(뭐 눌렀을때 뭐 돼야함)/비기능(품질 등)
  • 확인 및 검증
    도분명확

기능적 요구사항 (Functional Requirements)

시스템에 주어지는 특정 입력에 대한 시스템이 산출하는 출력을 통해 정의된다.

  • 시스템은 어떤 서비스를 제공하는가
  • 어떤 입력이 주어졌을 때 어떻게 반응하는가
  • 어떤 상황에서 어떻게 행동하는가
  • 시스템이 무엇을 해야 하는지 설명 (기능 or 시스템 서비스)

기능적 사용자 요구사항 : 사용자에 의해 이해 될 수 있는 추상적 방법으로 설명
기능석 시스템 요구사항 : 시스템 기능, 입력, 출력, 예외사항 등

비기능적 요구사항 (Non-Functional Requirements)

소프트웨어 기능들에 대한 조건(시스템의 속성)과 제약사항에 관한 요구사항

  • 기능적 요구사항보다 더 결정적인 부분이 될 수 있다 -> why? 이부분이 충족되지 않으면 시스템 이용가치 X
  • 각각의 특징과 서비스보다는 전체적인 시스템에 적용

HIPO

  • 하향식 소프트웨어 개발을 위한 문서화 도구
  • HIPO Chart 종류
    • 가시적 도표 - 전반적으로 보는거
    • 총체적 도표 - 입력, 출력을 보는거
    • 세부적 도표 - 하나의 부분에서 입력, 출력 보는거

객체지향 분석 방법론

  • 럼바우 방법
    • 객체 모델링 : 객체 다이어그램
    • 동적 모델링 : 상태 다이어그램
    • 기능 모델링 : DFD
      객동기 순서대로
  • 부치(Booch) 방법 : 미시적 및 거시적 개발 프로세스
  • Jacobson 방법 : Use care를 중심으로 한 분석 방법
  • Coad Yourdon 방법 : E-R 다이어그램을 사용
  • Wirfs-Brock 방법 : 분석과 설계의 구분 없음

설계의 종류

  • 상위 설계 : 아키텍처, 데이터 등 - 분석, 설계
  • 하위 설계 : 모듈, 자료구조, 알고리즘 - 구현, 테스트
  • 협약에 의한 설계 : 선행조건, 결과조건, 불변조건

소프트웨어 아키텍처 4+1 뷰

  • 논리 뷰 : 시스템의 기능적 요구사항 - 개발 입장
  • 구현 뷰 : 모듈의 구성과 개발자의 관점을 반영 - 개발 입장
  • 프로세스 뷰 : 프로그램 실행 시의 시스템을 표현 - 개발 입장
  • 배치 뷰 : 시스템의 물리적 배치 - 개발 입장
  • 유스케이스 뷰 : 아키텍처 설계 및 검증을 주도 - 사용자 입장

소프트웨어 아키텍처 패턴 종류

  • 계층화 패턴 : OSI 7 계층
  • 클라이언트-서버 패턴 : 네이버 웹호출
  • 마스터-슬레이브 패턴
  • 파이프-필터 패턴
  • 브로커 패턴
  • 피어 투 피어 패턴 : 토렌트
  • 이벤트-버스 패턴
  • 모델-뷰-컨트롤러 패턴
  • 블랙보드 패턴
  • 인터프리터 패턴

UML(Unified Modeling Language) - 그림 그리는 것

  • 시스템의 구조와 동작을 명세하는 표준화된 모델링 언어
  • UML 구성요소
    • 사물
    • 관계
    • 다이어그램
  • UML 특징
    • 가시화 언어
    • 명세화 언어
    • 구축언어
    • 문서화 언어
      명문가구(이름있는 가구)

UI 설계

  • UI : 정보 기기와 사용자 간의 상호작용을 가능하게 하는 매개체
  • UX : UI를 통해 경험하는 모든 것
  • UI 유형
    • CLI
    • GUI
    • NUI : 인간의 움직임 이용
    • OUI : 자연 그대로의 상태 특성들을 반영한 장치 제어
    • VUI : 목소리 이용
      다음 설명의 UI 유형 문제

UI 설계 도구

  • 와이어프레임 : 디자인 그림
  • 스토리보드
  • 프로토타입 : 시제품
  • 목업 : 정적인 모형
  • 유스케이스 : 기능 명세

UI 설계 원칙

  • 직관성 : 딱봤을때 인지 가능
  • 유효성 : 사용자 요구사항을 만족시켜야함
  • 학습성 : 배우기 쉬워야함
  • 유연성: 사용자 요구사항을 받아들여 확장 가능해야

협업도구

  • 여러 사람들이 프로젝트를 동시에 수행할 수 있도록 도와주는 소프트웨어

형상관리 도구

  • 소프트웨어 개발과정에서 발생하는 모든 변경을 통제하고 관리하는 방법
  • 변경관리 / 버전관리 / 형상관리
  • 형상관리 절차
    • 형상 식별 : 관리 항목 구분
    • 형상 통제 : 변경 요청을 검토하고, CCB의 승인을 거쳐. 베이스라인에 반영
    • 형상 감사 : 검토
    • 형상 기록 : 기록
  • 형상관리 도구
    • CVS, SVN, GIT
      절차 순서 나오기 좋아보임 - 식통감기(밥먹으면 통증이 오는 감기)

버전관리 도구 사용 방식

빌드 도구

  • 실행 가능한 소프트웨어로 변환해주는 도구
  • 빌드 도구 종류
    • Make : Unix 계열 운영체제에서 주로 사용
    • Ant : Java 기반의 빌드 도구로 XML 기반의 빌드 스크립트를 사용
    • Maven : 의존성 관리와 프로젝트 라이프 사이클 관리에 강점
    • Jenkins : Java 기반의 오픈소스 지속적 통합 서비스 도구
    • Gradle: Groovy 기반의 오픈 소스 빌드 자동화 도구(안드로이드 개발에 주로)

프레임워크

  • 개발에 필요한 구성요소와 아키텍처를 제공하는 반제품 형태의 소프트웨어
  • 프레임워크 특징
    • 모듈화
    • 재사용성
    • 확장성
    • 제어의 역흐름
  • 전자정부 프레임워크, 스트럿츠, 스프링
  • 아이바티스, 마이바티스, 하이버네이트 (ORM 프레임워크)

라이브러리

  • 프로그램에서 자주 사용되는 루틴이나 리소스를 모아 놓은 것
  • 내부 라이브러리 / 외부 라이브러리
    프레임워크, 라이브러리 두개 설명 주워지고 각각이 뭔지 쓰는 문제
    프레임 워크 특징

API(애플리케이션 프로그래밍 인터페이스)

  • 다른 소프트웨어 또는 서비스와 상호 작용하는 데 사용되는 인터페이스

결합도

  • 자료 결합도(Data Coupling) : 값 전달 - 결합도 제일 낮음(제일 좋은것 결합도는 낮을 수록 좋으니까)
  • 스탬프 결합도(Stamp ") : 배열 등 전달
  • 제어 결합도(Control ") : 제어 요소 전달
  • 외부 결합도(External ") : 다른 모듈 변수 사용
  • 공통 결합도(Common ") : 전역변수 사용
  • 내용 결합도(Content ") : 다른 모듈 기능 이용

예) 소스코드 형태로 주어지고 어떤 결합도인지 묻는 문제

응집도

  • 기능적 응집도 : 단일한 목적 수행 - 응집도 제일 높음 제일 좋음
  • 순차적 " : 출력값을 입력값으로 사용
  • 통신적 " : 동일한 입출력
  • 절차적 " : 순차적 수행
  • 시간적 " : 같은 시간 기능 수행
  • 논리적 " : 유사한 성격
  • 우연적 " : 연관관계 없음

모듈의 독립성을 높이기 위해서 -> 응집도 높이고 결합도 낮추고

팬인(Fan-in), 팬아웃(Fan-out)


c의 팬인 1, 팬아웃 2

MVC 모델 계층

  • 프레젠테이션 계층(Presentaion Layer) : 사용자 인터페이스 - 뷰
  • 제어 계층(Control Layer) : 요청을 분석하고, 적절한 비즈니스 로직 호출 - 컨트롤
  • 비즈니스 로직 계층(Business Logic Layer) : 핵심 업무 로직을 처리 - 컨트롤
  • 퍼시스턴스 계층(Persistence Layer) : 데이터 관리 - 모델
  • 도메인 모델 계층(Domain Model Layer) : 데이터를 전달 - 모델

시큐어 코딩

  • OWASP : 오픈소스 웹 애플리케이션 보안 프로젝트
  • 시큐어 코딩 가이드
    • 입력 데이터 검증 및 표현 : SQLi, XSS, 자원삽입 등
    • 보안기능 : 부적절한 인가, 취약한 암호화 알고리즘, 패스워드 평문저장 등
    • 시간 및 상태 : 경쟁조건, 종료되지 않는 반복문 - 이 아래로는 안나옴 위에 두개만 봐
    • 에러처리 : 오류메시지 정보 노출, 부적절한 예외 등
    • 코드 오류 : 널 포인터 역참조 등
    • 캡슐화
    • API 오용

배치 프로그램

  • 데이터를 모아서 일괄로 처리하는 작업
  • 필수 요소
    • 대용량 데이터
    • 자동화
    • 견고함
    • 안정성
    • 성능

인터페이스

  • 서로 다른 시스템간에 정보를 주고 받는 시스템
  • 구성
    • 송신 시스템
    • 수신 시스템
    • 중계 시스템
  • 데이터 식별
    • 전문 공통부 : ip 등
    • 전문 개별부 : 실제 데이터
    • 전문 종료부 : 끝났음을 표시

EAI

  • 기업 내의 애플리케이션을 통합하는 솔루션
  • 구축유형
    • Point-to-Point
    • Hub&Spoke
    • Message Bus(ESB 방식)
    • Hybrid

전송 데이터

  • JSON : 이름과 값의 쌍 - 중괄호
  • XML : 구조화된 문서 표현 - 마크업 언어
  • YAML :데이터 직렬화 언어
  • CSV : 콤마로 구분

AJAX

  • 비동기 방식으로 데이터를 교환
  • 페이지의 일부만을 변경 가능

SOAP

  • HTTP, HTTPS, SMTP 등을 한 메시지 교환
  • SOAP 고성
    • SOAP : 메시지를 교환하는 프로토콜
    • UDDI : 비지니스 업체 목록 등록 - 도서관
    • WSDL : 서비스의 기술적 세부사항 기술 - 설명서
  • 보안 프로토콜
    • SAML : 인증/권한관리
    • XKMS : 키관리
    • XACML : 접근제어

REST

  • HTTP URI를 통한 자원 명시와 HTTP
    Method를 통한 CRUD Operation 적용
  • REST 구성
    • 자원(Resource) :URI를 통해 식별
    • 행위(Method) : GET, POST, PUT, DELETE
    • 표현(Representation) : 데이터 표현
  • RESTful : REST의 원리를 따르는 시스템

인터페이스 보안

  • 패킷 공격 기법: 스니핑, 스푸핑
  • 보안 기능 적용
    • 네트워크 영역 : IPSec, SSL, S-HTTP, TLS
    • 애플리케이션 영역 : 시큐어 코딩
    • DB영역 : 암호화

인터페이스 구현 검증 도구

  • xUNIT : 다양한 언어 지원
  • STAF
  • FitNesse
  • NTAF
  • Selenium
  • watir

객체지향 구성요소

  • 클래스(Class) : 속성과 연산을 정의해서 만든 틀
  • 객체(Object) : 클래스의 인스턴스
  • 속성(Attribute) : 객체들이 가지고 있는 고유한 데이터
  • 메서드(Method) : 작업을 수행하기 위한 명령문의 집합
  • 메시지(Message) : 객체에게 어떤 행위를 하도록 지시

객체지향 특징

  • 정보은닉(Information Hiding) : 내부 데이터에 직접 접근할 수 없도록 제한
  • 캡슐화(Encapsulation) : 속성과 메서드를 하나로 묶은 것
  • 상속(Inheritance) : 상위 클래스의 속성과 메서드를 하위 클래스가 물려받는 것
  • 다형성(Polymorphism) : 하나의 메시지에 대해 여러 가지 방법으로 응답 - 오버로딩(이름만 같고 파라미터만 다른것), 오버라이딩(상속에서 부모거를 재정의 하는 것)
  • 추상화(Abstraction) : 실체의 핵심적인 개념만을 추출

객체지향 설계 원칙(SOLID)

  • 단일 책임 원칙(SRP) : 한 클래스는 하나의 책임만 가져야 한다
  • 개방 폐괘 원칙(OCP) : 확장에 열려있고, 수정에 닫혀 있어야 힌다
  • 리스코프 치환 원칙(LSP) : 자식 클래스는 언제나 자신의 부모 클래스를 대체
  • 인터페이스 분리 원칙(ISP) : 사용하지 않는 인터페이스는 구현하지 말아야 한다
  • 의존성 역전 원칙(DIP) : 변화가 거의 없는 것에 의존

디자인 패턴

  • 재사용할 수 있도록 만들어놓은 패턴들의 모음
  • 디자인 패턴 구조
    • 패턴의 이름과 유형, 문제 및 배경, 솔루션, 사례, 결과, 샘플코드
  • Gof 디자인 패턴
    • 생성 패턴 : 객체 생성과 관련한 패턴
    • 구조 패턴 : 객체를 조합해서 더 큰 구조를 만드는 패턴
    • 행위 패턴 : 알고리즘이나 책임 분배에 관련된 패턴

요약 정리

🚩 생성
1) Builder : 생성 단계를 캡슐화 해서 구축 공정을 동일하게 이용하도록 하는 패턴
2) Prototype : 기존 객체를 복제해서 새 객체를 생성할 수 있도록 하는 패턴
3) Factory Method : 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고 하위 클래스에서 인스턴스를 생성하는 패턴
4) Abstract Factory : 생성군들을 하나에 모아놓고 팩토리 중에서 선택하게 하는 패턴
5) Singleton : 유일한 하나의 인스턴스를 보장하도록 하는 패턴

🚩 구조
1) Bridge : 추상과 구현을 분리해서 결합도를 낮춘 패턴
2) Decorator : 소스를 변경하지 않고 기능을 확장하는 패턴
3) Facade : 하나의 인터페이스를 통해 느슨한 결합을 제공하는 패턴
4) Flyweight : 대량의 작은 객체들을 공유하는 패턴
5) Proxy : 대리인이 대신 그 일을 처리하는 패턴
6) Composite : 개별 객체와 복합 객체를 클라이언트에서 동일하게 사용하도록 하는 패턴
7) Adapter : 인터페이스로 인해 함께 사용하지 못하는 클래스를 함께 사용하도록 하는 패턴

🚩 행위
1) Interpreter : 언어 규칙 클래스를 이용하는 패턴
2) Templete Method : 알고리즘 골격의 구조를 정의한 패턴
3) Chain of Responsibility : 객체끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
4) Command : 요청 자체를 캡슐화해 파라미터로 넘기는 패턴
5) Iterator : 내부 표현은 보여주지 않고 순회하는 패턴
6) Mediator : 객체 간 상호작용을 캡슐화한 패턴
7) Memento : 상태 값을 미리 저장해두었다가 복구하는 패턴
8) Observer : 상태가 변할 때 의존자들에게 알리고 자동으로 업데이트하는 패턴
9) State : 객체 내부 상태에 따라서 행위를 변경하는 패턴
10) Strategy : 다양한 알고리즘을 캡슐화해 알고리즘 대체가 가능하도록 하는 패턴
11) Visitor : 오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴

테스트의 필요성

  • 오류 발견 관점
  • 오류 예방 관점
  • 품질 향상 관점

테스트 오라클

  • 태스트의 결과가 참인지 거짓인지를 판단하기 위해서 미리 정의된 참값을 입력하여 비교하는 기법 및 활동
  • 테스트 오라클의 유형
    • 참 오라클
    • 샘플링 오라킁
    • 휴리스틱 오라클
    • 일관성 검사 오라클

테스트 레벨


테스트 부분 중요
단통시인

테스트 기법

  • 테스트 기법

    • 화이트박스 테스트 : 문장검증, 분기검증, 경로검증, 조건검증

    • 블랙박스 테스트
      : 동등 분할 기법
      : 경계값 분석
      : 원인-효과 그래프 검사
      : 오류 예측 검사
      : 비교 검사
      : 상태전이 검사



      둘다 동적테스트

  • 테스트 목적

    • 회복 : 고의로 실패를 유도
    • 안전 : 보안적인 결함을 점검
    • 강도 : 과부하 테스트
    • 성능 : 응답하는 시간, 처리량, 반응속도 등
    • 구조 : 소스코드의 복잡도를 평가
    • 회귀 : 변경코드에 대해
    • 병행
    • A/B 테스트 :
    • 스모크 테스트

테스트 커버리지

  • 테스트를 얼마나 수행했는지 측정하는 기준
  • 커버리지 유형
    • 기능 기반 커버리지
    • 라인 커버리지
    • 코드 커버리지

코드 커버리지

  • 구문 커버리지 : 구문에 대해 한 번 이상 수행
  • 조건 커버리지 : 개별 조건식에 대해 수행
  • 결정 커버리지 : 결정포인트 내의 모든 분기문에 대해 수행
  • 조건/결정 커버리지 : 결정포인트 T/F, 개별조건식 T/F
  • 변경 조건/결정 커버리지 : 모든 결정포인트 내의 개별 조건식은 적어도 한번 T/F
  • 다중 조건 커버리지 : 가능한 조합을 100% 보장
    조건, 결정 커버리지 정도 나올 듯

결함관리

  • 발생한 결함을 추적하고 관리할 수 있게 해주는 도구
  • 결함관리 프로세스
    • 에러 발견
    • 에러 등록
    • 에러 분석
    • 결함 확정
    • 결함 할당
    • 결함 조치
    • 결함 조치 검토 및 승인
      프로세스 순서 나올법

테스트 장치

  • 테스트 드라이버(Test Driver) : 상향식 테스트에 필요
  • 테스트 스텁 : 하향식 테스트에 필요
  • 테스트 슈트 : 테스트 케이스의 집합
  • 테스트 케이스 : 입력 값, 실행 조건, 기대 결과 등의 집합
  • 테스트 스크립트 : 자동화된 테스트 실행 절차
  • 목 오브젝트 : 조건부로 상황에 예정된 행위를 수행하는 객체 발생한 결함을 추적하고 관리할 수 있게 해주는 도구

통합 테스트


상향식 도구 - 드라이버 임시모듈
하향식 도구 - 스텁 임시모듈
상향 하향 둘이 같이 하는거 - 백본테스트

리팩토링

  • 소스코드 품질 분석
    • 동료 검토(Peer review)
    • 워크스루(Walkthrough)
    • 인스펙션(Inspection) : 계획 -> 사전교육 -> 준비 -> 인스펙션 회의 -> 수정 -> 후속조치
  • 리팩토링
    • 기능의 변경 없이 내부 구조를 개선하는 방법

클린코드 - 리팩토링의 결과

  • 알고리즘 개선, 병목 현상 제거, 실행 시간 단축, 메모리 사용 최소화
  • 코드 스멜
    • 소스코드에서 발견할 수 있는 잠재적인 문제점
    • 스파게티 코드, 외계인 코드, 레거시 시스템
  • 클린코드 작성원칙
    • 가독성
    • 단순성
    • 의존성 배제
    • 중복성 최소화
    • 추상화

유지보수

  • 수정 보수(corrective Maintenance) : 오류 수정
  • 적응 보수(Adaptive ") : 환경 변화
  • 향상 보수(Perfective ") : 기능추가
  • 예방 보수( ") : 잠재적 오류 대비

애플리케이션 배포

  • 최종 사용자에게 소프트웨어를 전달하는 전체 과정
  • CI : 지속적인 통합
  • CD : 지속적인 배포
  • 릴리즈 노트 :소프트웨어 제품과 함께 배포되는 문서

DRM

  • 디지털 콘텐츠의 불법 사용을 제한하고 승인된 사용자에게만 컨텐츠 사용을 허용하는 기술
  • DRM의 구성 및 흐름
    • 콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
    • 콘텐츠 분배자 : 암호화된 콘텐츠 제공
    • 패키저 : 콘텐츠를 메타 데이터와 묶는 기능
    • 보안 컨테이너 : 안전한 유통을 위한 전자적 보안 장치
    • DRM 컨트롤러 : 콘텐츠의 이용 권한을 통제
    • 클리어링 하우스 : 키 관리 및 라이선스 발급 관리

DRM 사용 규칙 제어 기술

  • 콘텐츠 식별 체계 : 콘텐츠에 고유 식별 번호를 부여
  • 메타데이터 : 콘텐츠에 관한 구조화된 데이터
  • 권리 표현 기술 : 콘텐츠에 대한 규칙을 설정(XrML) : 이용, 교환 등

저작권 보호 기술

  • 암호화 기술
    • 특정 키를 가진 사용자만이 콘텐츠를 이용
  • 위변조 방지
    • 콘텐츠에 무단 조작 시 감지하고 오류 동작을 유발
  • 워터마킹
    • 콘텐츠에 저작권 정보를 은닉
    • 워터마킹(불법 복제 방지), 핑거프린팅(불법 유통 방지)

데이터베이스

데이터베이스 정의

  • 공유 데이터
    • 여러 사용자가 공동으로 사용하는 데이터
  • 저장 데이터
    • 저장 매체에 저장된 데이터
  • 통합 데이터
    • 중복이 최소화된 데이터 모임
  • 운영 데이터
    • 조직의 목적을 위한 필수 데이터

공장통운

데이터 언어

  • DDL : 구조와 제약 조건 정의
  • DML : 데이터 처리 및 조작
  • DCL : 보안, 권한, 무결성 및 병행 제어

데이터베이스 스키마


그냥 스키마 - 개념스키마를 말함
외부 스키마 : 사용자 관점 / 논리적 독립성
개념 스키마 : 데이터베이스의 전체 구조와 제약조건 / 물리적 독립성
내부 스키마 : varchar(20), tinyint 등과 같은 실제 DB 설정

DBMS

  • 데이터베이스를 효과적으로 관리하고 조작하기 위한 전용 소프트웨어
  • 종류
    • 계층형 : 트리 구조
    • 네트워크형 : 다대다 관계 가능, CODAYSL
    • 관계형 : 테이블 구조의 모델
    • 객체 지향형 : 객체지향 프로그래밍 개념에 기반
    • 객체 관계형 : 관계형 + 객체지향 개념
    • NoSQL : 다양한 특성을 지원
    • NewSQL : RDBMS와 NoSQL의 장점을 결합

데이터베이스 설계

  • 요구 조건 분석
  • 개념적 설계
    • 개념적 스키마 구성(ERD)
  • 논리적 설계
    • 목표 데이터 모델 기반 설계
    • 정규화, 트랜잭션 인터페이스 설계
  • 물리적 설계
    • 구조 및 성능에 대한 설계- 파티션, 클러스터, view, index
    • 반정규화
  • 구현

3개 쓰라하면 개논물

데이터 모델

  • 복잡한 데이터 구조를 단순화, 추상화하여 체계적으로 표현한 개념적 모형
  • 데이터모델 요소
    • 구조 : 데이터 구조 및 개체 간 관계
    • 연산 : 데이터 처리 방법
    • 제약조건 : 데이터의 논리적 제약조건

E-R 다이어그램 기호

이상현상

  • 데이터 중복으로 인해 릴레이션 주작 시 발생하는 예기치 않은 문제점
  • 이상의 종류
    • 삽입 이상 : 불필요한 데이터가 함께 삽입되는 현산
    • 삭제 이상 : 연쇄 삭제 현상으로 인해 정보 손실
    • 갱신 이상 : 인부 정보만 갱신되어 정보에 모순이 생기는 현상

예) 이상의 종류에 대해 써라 - 각 이상 별 특징도 써줘야함

함수적 종속

  • 완전 함수적 종속
    • 종속자가 기본키에만 종속
  • 부분 함수적 종속
    • 기본키를 구성하는 속성 중 일부만 종속되는 경우
  • 이행적 함수 종속
    • X -> Y -> Y -> Z 일떼, X-> Z가 성립되는 경우

정규화


두부이거다조

반정규화

  • 성능 향상이나 개발 및 운영의 편의성을 위해 의도적으로 중복을 허용하거나 데이터를 재구성하는 기법

데이터베이스 이중화

  • 장애에 대비하여 동일한 데이터베이스를 중복하여 관리하는 방식
  • 장애나 재해 발생 시 빠른 서비스 재개(고가용성)
  • 이중화 분류
    • Eager 기법 : 트랜잭션 발생 시 즉시 반영
    • Lazy 기법 : 트랜잭션 완료 후 반영

데이터베이스 백업

  • 전체 백업 : 모든 데이터를 백업
  • 증분 백업 : 변경/추가된 데이터만 백업
  • 차등 백업 : 모든 변경 / 추가된 데이터를 백업
  • 합성 백업 : 합성 백업 : 전체 백업본과 여러 개의 증분을 합하여 새로운 전체 백업을 만드는 작업

증분, 차증 백업 차이

RTO/RPO

  • 복구 시간 목표(RTO)
    • 서비스를 사용할 수 없는 상태로 허용되는 시간
  • 복구 시점 목표(RPO)
    • 마지막 백업 이후 허용되는 최대 데이터 손실 시간

데이터베이스 암호화

  • API 방식 : 애플리케이션에서 수행
  • Plug-in 방식 : DB 서버에 제품 설치
  • TDE 방식

물리 속성 설계

  • 파티셔닝
    • 데이터베이스의 특정 부분을 여러 섹션으로 분할하는 방법
    • 범위, 목록, 해시, 라운드 로빈 , 합성
  • 클러스터
    • 자주 사용되는 테이블의 데이터를 디스크 상 동일한 위치에 저장
  • 인덱스
    • 테이블 검색 속도 향상을 위한 저장 공간 활용 자료구조
    • 기본 테이블에서 유도된 이름이 있는 가상 테이블

시스템 카탈로그

  • 데이터베이스의 모든 데이터 개체들에 대한 정보를 저장한 시스템 테이블
  • 데이터 사전이라고도 한다

관계 데이터 릴레이션 구조

  • 릴레이션
    • 릴레이션 스키마 : 릴레이션의 논리적 구조
    • 릴레이션 인스턴스 : 스키마에 실제로 저장된 데이터의 집합
  • 속성: 릴레이션의 열, 계체의 특성
  • 튜플 : 릴레이션의 행, 속성들의 모임
  • 도메인 : 속성이 가질 수 있는 값의 범위
  • 차수 : 속성의 총 개수
  • 카디널리티 : 튜플의 총 개수

관계대수

  • 원하는 데이터를 찾기 위한 절차적 언어

관계해석

  • 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성

속성 - 칼럼

  • 정보의 최소 단위
  • 속성의 분류
    • 기본속성 : 업무로부터 추출한 모든 속성
    • 설계 속성 : 코드성 데이터
    • 파생속성 : 다른 속성에 영향을 받아 발생하는 속성

  • 튜프을 식별하고 구별하는 데 사용되는 칼럼

슈퍼키 - 유일하게 나만 식별할 수 있는거
후보키 - 유일성, 최소성 모두 만족 시켜야 하는거
기본키 - 후보키 중 적절한 거
대체키 - 나머지

무결성 제약조건

  • 개체 무결성
    • NULL 불가, 중복 불가
  • 참조 무결성
    • 외래키는 NULL이거나 참조 릴레이션의 기본키와 일치해야 함
      -Restrict, Cascade
  • 도메인 무결성
    • 속성 값은 정의된 도메인에 속해야 한다(성별 - 남자, 여자/ 숫자 - 1,2,3,4)
  • 고유 무결성 - 이 아래 안나옴
  • 키 무결성
  • 릴레이션 무결성

CRUD

  • 해당 업무에 어떤 데이터가 존재하는지 무엇이 영향을 받는지 분석
  • Create, Read, Update, Delete

SQL 처리흐름

옵티마이저

  • SQL문에 대한 최적의 실행 방법을 결정
  • 옵티마이저 구분
    • 규칙기반 옵티마이저 : 우선순위
    • 비용기반 옵티마이저 : 통계정보

튜닝

  • SQL문을 최적화하여 시스템의 처리량과 응답 속도를 개선하는 작업

분산 데이터베이스

  • 여러 곳에 분산된 데이터베이스를 하나의 논리적인 시스템처럼 사용할수 있는 데이터베이스
  • 분산 데이터베이스 구성요소
    • 분산 처리기
    • 분산 데이터베이스
    • 통신 네트워크

투명성 조건

  • 위치 투명성 : 실제 위치를 모르고 엑세스 가능
  • 분할 투명성 : 여러 단편으로 분할
  • 지역사상 투명성 : 각 지역시스템 이름과 무관하게 사용
  • 중복 투명성 : 데이터의 중복을 사용자에게 숨김
  • 병행 투명성 : 다수의 트랜잭션들이 동시에 실행되어도 영향을 주지 않음
  • 장애 투명성 : 다양한 장애에도 트랜잭션 처리

CAP 이론

  • 일관성, 가용성, 분단 허용성 세가지 속성 중, 두가지만 가질수 있다는 것

트랜잭션

  • 하나의 논리적 기능을 수행하는 작업 단위
  • 트랜잭션의 성질 ACID
    • 원자성 : 모두 반영되거나 아니면 전혀 반영되지 않아야한다
    • 일관성 : 트랜잭션의 완료 후에는 데이터베이스가 일관된 상태를 유지해야한다
    • 독립성, 격리성 : 동시에 실행되는 여러 트랜잭션들은 간섭할 수 없다
    • 영속성 : 결과는 시스템에 영구적으로 반영되어야 한다

트랜잭션 상태

  • 활동 : 트랜잭션이 실행 중인 상태
  • 실패 : 트랜잭션 실행에 오류가 발생하여 중단된 상태
  • 철회 : 비정상적으로 종료되어 롤백 연산을 수행한 상태
  • 부분 완료 : Commit 연산이 실행되기 직전의 상태
  • 완료

절차형 SQL

  • 트리거 : 이벤트에 반응해 자동으로 실행
  • 저장 프로시저 - 이 밑 안나옴
  • 사용자 정의 함수

병행제어

  • 여러 트랜잭션이 동시에 실행되면서도 데이터베이스의 일관성을 유지하는 기법
  • 병행제어를 하지 않았을 때의 문제점
    • 갱신 분실
    • 비완료 의존성
    • 모순성
    • 연쇄 복귀

병행제어 기법

  • 로킹
  • 2단계 로킹 규약
  • 타임스탬프
  • 낙관적 병행제어
  • 다중 버전 병행제어

회복 기법

  • 로그 기반 회복 기법 : 지연 갱신(REDO), 즉시 갱신(REDO + UNDO)
  • 검사점 회복 기법
  • 그림자 페이징 회복 기법
  • 미디어 회복 기법
  • ARIES 회복 기법

시스템 소프트웨어

  • 로더 : 프로그램을 메모리에 적재
  • 링커 : 목적 파일을 실행 파일로 변환
  • 번역기 : 프로그래밍 언어를 다른 언어로 변환
  • 운영체제 : 하드웨어 관리와 통신 등 다양한 기능을 제공

제어 프로그램

  • 감시 프로그램 : 프로그램 실행과 시스템 상태를 감시/감독
  • 작업관리 프로그램 : 스케쥴 관리 및 시스템 자원 할당을 담당
  • 데이터 관리 프로그램 : 데이터 전송 및 파일 조작을 관리

운영체제 운용 기법

  • 일괄 처리 시스템
  • 실시간 처리
  • 다중 프로그래밍
  • 시분할 "
  • 다중 처리 " : 프로세서가 여러개
  • 다중 모드 "
  • 분산 처리 "

유닉스 파일 시스템

  • 파일 시스템 구조
    • 부트 블록 : 부팅 시 필요한 코드가 저장
    • 슈퍼 블록 : 전체 파일 시스템에 대한 정보가
    • I-node 블록 : 파일이나 디렉토리에 대한 모든 정보 - 얘가 데이터블록을 가리키고 있다. 파일을 지우면 이게 지워지는 거임
    • 데이터 블록 : 실제 파일 데이터가 저장
  • 파일 디스크립터
    • 유닉스 시스템에서 프로세스가 파일에 접근할 때 사용

기억장치 관리 전략

  • 반입 전략

    • 요구반입, 예상반입
  • 배치 전략

    • 최초 적합(First Fit) : 들어갈 수 있는 맨 처음거에 들어감
    • 최적 적합(Best Fit) : 가장 딱 맞는 공간에 들어감
    • 최악 적합(Worst Fit) : 제일 많이 남아버리는데 들어감
  • 교체 전략

    • FIFO, OPT-계산식없어, LRU-최근에 사용되지 않은거, LFU, NUR, SCR
      계산문제
  • FIFO

  • LRU

단편화

  • 주기억장치에 프로그램 할당과 반납 과정에서 발생하는 빈공간
  • 단편화 종류
    • 내부 단편화
    • 외부 단편화
  • 단편화 해결 방법
    • 통합 기법 : 인접한 분할 공간
    • 압축 기법 : 분산된 여러 간편화 공간
    • 재배치 기법 : 프로그램의 주소를 새롭게 지정해주는 기법

가상기억장치

  • 보조기억장치의 일부를 주기억장치처럼 사용하는 기법
  • 블록 분할 방법
    • 페이징 기법 : 같은 크기의 블록,내부 단편화 발생
    • 세그먼테이션 기법 : 가변 크기의 블록, 외부 단편화 발생
  • 기타 용어
    • 페이지 부재 : 필요한 페이지가 주기억 장치에 없는 상황
    • 지역성 : 프로세스가 실행되는 동안 일부 페이지만 집중 참조
    • 워킹 셋 : 일정시간 동안 자주 참조되는 페이지들의 집합
    • 스래싱 : 프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 현상 많아지는 현상

프로세스

  • 컴퓨터에서 실행중인 프로그램
  • 프로세스의 영역
    • 코드 영역 : 실행할 프로그램의 코드가 저장
    • 데이터 영역 : 전역 변수와 정적변수
    • 스택 영역 : 지역 변수와 함수의 매개변수
    • 힙역역 : 동적 할당
  • 스레드
    • 프로세스 내에서 실행되는 흐름의 단위
  • IPC - 프로세스 간 통신
    • 프로세스들이 데이터를 주고받거나 상태를 조정하기 위해 사용하는 기술

프로세스 상태전이

PCB 프로세스 제어 블록

  • PCB는 운영체제가 프로세스의 정보를 저장하는 공간
  • 문맥 교환

프로세스 스케줄링

  • 메모리에 올라온 프로세스들 중 어느 프로세스를 먼저 처리할 지 순서를 정하는 것
  • 선점형 스케줄링
    • 운영체제가 실행 중인 프로세스로부터 CPU를 강제로 뺴앗을수 있는 방식
    • Round Robin, SRT, MLQ, MLFQ
  • 비선점형 스케줄링
    • 프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식
  • FCFS, SJF, HRN

기아현상 / 에이징 기법

  • 기아현상 : 우선순위가 낮은 프로세스가 무한정 기다리는 현상
  • 에이지 기법 : 기아현상을 해결하기 위한 기법

병행 프로세스

  • 두개 이상의 프로세스가 동시에 존재하며 실행 상태에 있는 것
  • 한정된 자원에 대한 사용 순서 등의 문제가 발생할 수 있다.
  • 문제 해결책
    • 임계구역
    • 상호배제 기법(다익스트라, 데커, 피터슨)
    • 동기화 기법(세마포어, 모니터)

교착상태

  • 프로세스가 자원을 점유한 상태에서 다른 프로세스의 자원을 요구하며 무한정 기다리는 현상
  • 교착상태 발생 조건
    • 상호배제
    • 점유와 대기
    • 비선점
    • 환형대기
  • 교착상태 해결 방법
    • 예방, 회피(은행가 알고리즘), 발견, 회복

디스크 스케줄링

  • 하드 디스크에 저장된 데이터에 접근하기 위해 디스크 헤드의 움직임을 최적화하는 기법
  • 디스크 스케줄링 종류
    • FCFS - first come first served
    • SSTF - shortest seek time first
    • SCAN, C-SCAN
    • LOOK, C-LOOK
    • N-STEP SCAN
    • 에션바흐 기법

스토리지

  • 데이터를 저장하는 저장소
  • 스토리지 종류
    • DAS 다이렉트 어테치드
    • NAS 네트워크 어테치드
    • SAN

RAID

  • RAID-0 : 스트라이핑 사용
  • RAID-1 : 미러링 사용
  • RAID-2 : 오류 정정을 위한 해밍코드 사용
  • RAID-3 : 한 디스크를 패리티 정보 저장용으로 사용
  • RAID-4 : RAID-3과 유사하나 블록 단위 분산 저장
  • RAID-5 : 각 디스크에 패리티 정보 포함
  • RAID-6 : 두 개의 패리티 정보를 디스크에 분산 저장

네트워크 토폴로지

  • 계층형 : 계층적 구조
  • 버스형 : 모든 노드가 하나의 중앙 버스 라인에 연결
  • 성형 : 모든 노드가 중앙 노드에 연결
  • 링형 : 각 노드가 순환 형태로 두 개의 인접 노드와 연결됨
  • 망형 : 노드들이 서로 광범위하게 연결되어 있음

데이터 전송

  • 아날로그/디지털 전송
  • 단방향, 반이중, 전이중 통신
  • 직렬전송, 병렬전송
  • 동기식 전송(SYN, STX, ETX), 비동기식 전송(Start, Stop)

LAN

  • 학교, 건물, 사무실 등 가까운 거리에 한정된 망
  • 전송방식 : 베이스 밴드, 브로드밴드
  • 프로토콜 : LLC, MAC
  • 802.X

HDLC

  • 데이터 링크 계층에서 사용되는 비트 지향 프로토콜
  • 프레임 구조
    • 플래그, 주소필드, 제어필드, 데이터, FCS
  • 프레임 유형
    • 정보 프레임(데이터), 감독 프레임(오류 및 제어), 비순서 프레임(추가 제어목적)
  • 스테이션
    • 주국(명령), 종국(응답만), 혼성국
  • 전송모드
    • 정규 응답 모드 : 하나의 주국과 하나 이상으 종국
    • 비동기 균형 모드 : 모든 단말이 주국 기능을 수행
    • 비동기 응답 모드 : 종국도 자체적으로 데이터 전송을 시작할 수 있는 모드

데이터 교환 방식

다중화

  • 하나의 통신 회선을 여러 가입자가 동시에 사용할 수 있게 하는 기능
  • 다중화기 종류
    • 주파수 분할 다중화기(FDM)
    • 시분할 다중화기(TDM) : 동기식/비동기식(지능형 다중화, 통계적 시분할)
    • 코드 분할 다중화(CDM)
    • 파장 분할 다중화(WDM)
    • 공간 분할 다중화(SDM)
  • 역 다중화기, 집중화기

IP 주소 분류

  • IPv4
    • 유니캐스트 : 1대1
    • 멀티캐스트 : 1대다
    • 브로드캐스트 : 전체
  • IPv6
    • 유니캐스트
    • 멀티캐스트
    • 애니캐스트 : 다단계 방식

IP 주소 클래스

  • A : 0으로 시작
  • B :10으로 시작
  • C : 110으로 시작

IPv6

  • IPv4 주소 고갈 문제를 해결하기 위해 개발된차세대 인터넷 프로토콜 주소
  • 128비트 크기로 확장된 주소 체계를 가짐
  • 16비트씩 8부분, 128비트로 구성, :으로 구분
  • 4 -> 6전환기술
    • 듀얼 스택
    • 터널링
    • 주소 변환

NAT

  • 사설 IP 주소와 공인 IP 주소 간의 변환
  • NAT 종류
    • Static NAT : 공인 IP 주소와 사설 IP 주소를 1대1로 매칭
    • Dynamic NAT : 여러 공인 IP주소를 사설 IP 주소와 매칭할 때 사용
    • PAT : 포트 번호를 이용해 구분

IP 관련 기술

  • DNS
    • 도메인 이름을 IP 주소로 변환하거나 그 반대의 작업을 수행하는 시스템
  • QoS
    • 트래픽의 성능과 속도를 보장하는 기술
  • VPN
    • 공용 네트워크를 통해 사설 네트워크에 안전하게 접속할 수 있게 하는 기술
  • DHCP
    • 네트워크 장치에 자동으로 IP 주소를 할당하는 프로토콜

프로토콜

  • 컴퓨터나 통신 장비 간 원활한 데이터 교환을 위한 표준화된 통신 규약
  • 통신 프로토콜의 기본 요소
    • 구문(Syntax) : 데이터의 형식, 부호화, 신호 레벨
    • 의미(Semantics) : 정보 전송을 위한 협조 사항 및 오류 관리 제어 정보
    • 타이밍(Timing) : 통신 속도, 메시지 순서 제어

흐름제어

  • 수신측의 처리 능력에 맞춰 송신측에서 데이터의 전송력이나 속도를 조절하는 기능
  • 종류
    • Stop and Wait
    • Sliding Window
  • 피기배킹
    • 양방향 통신에서 정보 프레임과 응답 프레임을 동시에 교차 전송하는 방식

오류 제어

  • 전송 중에 발생하는 오류를 검출하고 정정하는 기능
  • ARQ 종류
    • Stop and wait ARQ
    • go back N ARQ
    • Selective Repeat ARQ
    • Adaptive ARQ
  • 오류 원인
    • 감쇠, 지연 왜곡, 상호 변조 잡음, 충격 잡음

오류 제어 방식

  • 전진 오류 수정
    • 수신측에서 재정송 요구 없이 스스로 오류를 검출하고 수정하는 방식
    • 해밍코드, 상승 코드 등
  • 후진 오류 수정
    • 오류 발견 시 송신측에 재전송을 요구하는 방식
    • 패리티 검사, CRC, 블록 합 방싱을 통해 오류 검출

OSI 7계층

전송계층 - 세그먼트
네트워크 - 패킷
데이터링크 - 프레임

1계층- NIC 허브 리피터
2계층- 스위치, 브리지
3계층- 라우터

백본

  • 백본 네트워크는 기간망으로도 알려진 대규모 패킷 통신망
  • 백본 스위치 : 모든 패킷이 지나가는 역할
  • 스위치 종류
    • L2 : 데이터 링크 계층, MAC 주소 기반 스위칭
    • L3 : 인터넷 계층, IP 주소 기반 스위칭
    • L4 : 전송 계층, 로드밸런싱하는 데 사용
    • L7 : 응용계층, 보안 장비에 사용

TCP/IP 4계층


ICMP, ARP, RARP

라우팅 프로토콜


RIP, OSPF

정보보안 요소

  • 기밀성 : 인가된 사용자만 정보에 접근
  • 무결성 : 인가된 사용자에 의해서만 정보 변경
  • 가용성 : 정보 자산에 언제든지 접근
  • 인증 : 사용자가 허가받은 사용자인지 확인
  • 부인방지 : 정보 전송을 부인할 수 없도록 함

AAA

  • 인증(Authentication) : 사용자의 신원확인
  • 권한부여(Authorization) : 권한과 서비스를 허용
  • 계정관리(Accounting) : 사용자의 자원 사용 정보를 수집

인증제도

  • ISMS(정보보호 관리체계 인증)
  • PIMS(개인정보보호 관리체계)
  • ISMS-P(정보보호 및 개인정보보호 관리체계)
  • ITSEC
  • TCSEC
  • CC

Secure SDLC

  • CLASP : 초기단계
  • MS-SDL
  • Seven Touchpoints

암호 알고리즘 용어

  • 평문
  • 암호문
  • 암호화
  • 복호화
  • 전자서명
  • 양방향 암호화
  • 단방향 암호화

블록암호 알고리즘

  • DES
  • 3-DES
  • AES
  • SKIPJACK
  • IDEA
  • SEED
  • ARIA
  • LEA
    대칭키 : SEED, DES, 3DES, AES, ARIA
    비대칭키 : RSA, DSA, ECC

스트림암호 알고리즘

  • LFSR
  • RC4
  • A5

공개키암호 알고리즘

  • 소인수분해

단방향 알고리즘

  • MD5 : 취약점 발견, 빠름
  • SHA
  • HAS-160

해시 함수의 결점

  • 무차별 대입 공격
    • 정해진 범위 내의 모든 가능한 문자열을 이용해 암호를 해독하는 공격 방식
    • 키 스트레칭으로 보완
  • Rainbow Table 공격
    • 미리 계산된 해시 값들의 테이블을 이용
    • 솔팅

전자우편 보안

  • PGP
  • PEM
  • S/MIME

인증 유형

  • 지식 기반 인증 : 기억하는 정보
  • 소유 " : 소유한 물건
  • 생체 " : 신체적 특징
  • 행위 "
  • 위치 "

인증방식

  • 계정 정보를 요청 헤더에 넣는 방식
  • 쿠키/세션 방식
  • 토큰 기반 인증 방식(JWT, JSON Web Token)
  • OAuth : 이용자의 웹 서비스에 대한 제한된 접근 권한을 안전하게 부여
  • SSO
  • 커버로스
  • 아이핀 : 주민증록번호 대체 수단

접근 통제 정책


MAC - 신원, 보안 등급에 따라
DAC - 소유자가 자기가 원하는 사람에게
RBAC - 부서별로 역할별로

접근 통제 모델

  • 벨-라파둘라 모델
    • 기밀성 강조
  • 비바 모델
    • 무결성 강조
  • 클락-윌슨 모델
    • 업무처리 과정의 무결성
  • 만리장성 모델
    • 이해 충돌을 방지하기 위한 모델

취약점/ 보완관제

  • 보안 취약점 점검 분류
    • 관리적 관점
    • 기술적 관점
    • 물리적 관점
  • 보완관제
    • 24시간 정보자산을 지키기 위해 전달되는 패킷을 관측
    • 실제 침해사고 시 CERT팀이 대응
  • 통합로그 분석 장비
    • ESM
    • SIEM : 빅데이터 형태

보안 솔루션

  • 방화벽
  • 웹방화벽
  • 침입탐지시스템 : 이상 탐지율 더 높음
  • 침입방지시스템
  • 데이터유출방지
  • 가상 사설 통신망
  • NAC : 접근 통제
  • SOAR
  • Sandbox
  • FDS
  • Proxy Server

방화벽

  • DMZ 구간 : 내부 네트워크에 포함되어 있으나 외부에서 접근할 수 있는 구간
  • 구축 유형
    • 스크리닝 라우터 : IP, TCP, UDP 헤더 분석을 통해 동작
    • 베스천 호스트 : 접근 제어, 프록시 기능, 인증 ,로깅 등 수행
    • 듀얼 홈드 호스트 : 2개의 네트워크 인터페이스를 갖춘 호스트
    • 스크린드 호스트
    • 스크린드 서브넷

보안 프로토콜

  • SSH 22번 포트
    • 원격 호스트에 접속하기 위한 보안 프로토콜
  • SSL
    • 웹 브라우저와 웹 서버 간 안전한 데이터 전송을 위한 프로토콜 443 포트
  • S-HTTP
    • 웹상에서 네트워크 트래픽을 암호화하기 위한 방법
  • TLS
    • 전송 계층 보안을 위해 개발된 프로토콜
  • IPSec
    • ip계층을 안전하게 보호하기 위한 기법

DoS 공격

  • Smurf Attack : IP와 ICMP의 특성
  • Ping Of Death : 정상 크기를 초과하는 ICMP 패킷
  • Land Attack : 출발지 IP와 목적지 IP가 동일한 패킷
  • Teardrop Attack : Fragment Number를 위조
  • SYN Flooding : SYN 신호만 전송
  • UDP Flooding : 다량의 UDP 패킷을 전송
  • Ping Flooding : 많은 ICMP Echo 요청

DDoS 공격

  • DDos 공격 구성
    • 공격자, 명령제어, 좀비PC, 공격대상
  • DDoS 공격 툴
    • 트리누
    • TFN

클라우드 서비스

  • 인터넷 기반 컴퓨팅
  • 서비스 유형
    • IaaS : 인프라
    • PaaS : 플랫폼
    • SaaS : 소프트웨어

도커 / 하이퍼바이저

  • 도커
    • 컨테이너 응용 프로그램 배포 자동화
  • 하이퍼바이저(컴퓨팅 가상화 솔루션)
    • 하나의 컴퓨터에서 다수의 운영체제 동시 구동

소프트웨어 정의 기술

  • 컴퓨터/통신망/데이터 센터 등을 소프트웨어로 제어하여 가상화/ 지능화
  • 종류
    • SDN : 소프트웨어 정의 네트워킹
    • SDS : 소프트웨어 정의 스토리지
    • SDC : 소프트웨어 정의 컴퓨팅
    • SDDC : 소프트웨어 정의 데이터센터

인공지능

  • 기계 학습 : 데이터에서 규칙 자동 학습
  • 인공 신경망 : 인간 뉴런 구조 모방
  • 딥 러닝 : 인공 신경망 기반 머신러닝 알고리즘

소프트웨어 공학 관련 용어

  • 브룩스의 법칙
    • 지연된 프로젝트에 인력 추가는 오히려 개발 속도를 느리게 함
  • 파레토 법칙
    • 20% 모듈에서 80% 결함 발생
  • Boehm의 법칙
    • 초기 단계에서 결함 발견 및 수정은 비용 절감
  • 무어의 법칙
    • 반도체의 선은 18~24개월마다 2배 증가
profile
88888888

0개의 댓글