관리 메뉴

나구리의 개발공부기록

2장 - IT프로젝트 정보시스템 구축 관리 | 섹션16. Secure OS, 섹션17. DB 관련 신기술, 섹션18. 회복/병행제어, 섹션19. 교착상태 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 5강 - 정보시스템 구축 관리

2장 - IT프로젝트 정보시스템 구축 관리 | 섹션16. Secure OS, 섹션17. DB 관련 신기술, 섹션18. 회복/병행제어, 섹션19. 교착상태

소소한나구리 2024. 5. 8. 17:02

2024년도 시나공 필기 책 내용 정리 


섹션16. Secure OS

 

1. Secure OS의 개요

 

  • 기존의 운영체제에 내재된 보안 취약점을 해소하기 위해 보안 기능을 갖춘 *커널(컴퓨터가 부팅될 때 주기억장치에 적재된 후 실행된 상태로 상주하면서 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당함)* 을 이식하여 외부의 침입으로부터 시스템 자원을 보호하는 운영체제를 의미
  • 보안 커널은 보안 기능을 갖춘 커널을 의미하며 *TCB(컴퓨터 시스템 내의 모든 장치가 보안 정책을 따르도록 설계한 보호 매커니즘)*를 기반으로 참조 모니터의 개념을 구현하고 집행함
  • 보안 커널의 보호 대상에는 메모리와 보조기억장치, 그리고 그곳에 저장된 데이터, 하드웨어 장치, 자료 구조, 명령어, 각종 보호 메커니즘 등이 있음
  • 구현하기 복잡한 것부터 차례로 분류

    • 암호적 분리(Cryptographic Separation) : 내부 정보를 암호화 하는 방법
    • 논리적 분리(Logical Separation) : 프로레스의 논리적 구역을 지정하여 구역을 벗어나는 행위를 제한하는 방법
    • 시간적 분리(Temporal Separation) : 동일 시간에 하나의 프로세스만 수행되도록하여 동시 실행으로 발생하는 보안 취약점을 제거하는 방법
    • 물리적 분리(Physical Separation) : 사용자 별로 특정 장비만 사용하도록 제한하는 방법

참조 모니터(Reference Monitor)

 

  • 보호대상의 객체에 대한 접근통제를 수행하는 추상머신이며 이것을 실제로 구현한 것이 보안 커널임
  • 보안 커널 데이터베이스(SKDB)를 참조하여 객체에 대한 접근 허가 여부를 결정함
  • 참조 보니터와 보안 커널의 3가지 특징

    • 격리성(Isolation) : 부정 조작이 불가능해야 함
    • 검증가능성(Verifiability) : 적절히 구현되었다는 것을 확인할 수 있어야 함
    • 완전성(Completeness) : 우회가 불가능해야함

2. Secure OS의 보안 기능

식별 및 인증 각 접근 주체에 대한 안전하고 고유한 식별 및 인증 가능
임의적 접근통제 소속 그룹 또는 개인에 따라 부여된 권한에 따라 접근을 통제하는 기능
DAC(Discretionary Access Control) 또는 신분 기반 정책이라고도 함
강제적 접근통제 접속 단말 및 접속 방법, 권한, 요청 객체의 특성 등 여러 보안 속성이 고려된 규칙에 따라 강제적으로 접근을 통제하는 기능
MAC(Mandatory Access Control)또는 규칙 기반 정책이라고도 함
객체 재사용 보호 메모리에 기존 데이터가 남아있지 않도록 초기화 하는 기능
완전한 조정 우회할 수 없도록 모든 접근 경로를 완전하게 통제하는 기능
신뢰 경로 비밀번호 변경 및 권한 설정 등과 같은 보안 작업을 위한 안전한 경로를 제공하는 기능
감사 및 감사기록 축소 모든 보안 관련 사건 및 작업을 기록(Log)한 후 보호하는 기능
막대한 양의 기록들을 분석하고 축소하는 기능

섹션17. DB 관련 신기술

 

1. 빅데이터(Big Data)

 

  • 기존의 관리 방법이나 분석 체계로는 처리하기 어려운 막대한 양의 정형 또는 비정형 데이터 집합으로 스마트 단말의 빠른 확산, 소셜 네트워크 서비스의 활성화, *사물 네트워크(분산 되어 있는 요소들이 인간의 개입 없이 상호 협력적으로 감지, 통신, 정보 처리 등 지능적 관계를 형성하는 네트워크)* 의 확대로 데이터 폭발이 더욱 가속화되고 있음
  • 빅데이터가 주목 받고 있는 이유는 기업이나 정부, 포털 등이 빅데이터를 효과적으로 분석함으로써 미래를 예측해 최적의 대응 방안을 찾고 이를 수익으로 연결하여 새로운 가치를 창출하기 때문

2. 브로드 데이터(Broad Data)

 

  • 다양한 채널에서 소비자와 상호 작용을 통해 생성된, 기업 마케팅에 있어 효율적이고 다양한 데이터이며, 이전에 사용하지 않고나 알지 못했던 새로운 데이터나, 기존 데이터에 새로운 가치가 더해진 데이터를 말함
  • 대량의 자료를 뜻하는 빅데이터와는 달리 다양한 정보를 뜻하는 것으로 소비자의 SNS활동이나 위치 정보 등이 속함
  • IBM은 아시아 유통 데이터 분석 리포트를 통해 브로드 데이터의 중요성을 강조하기도 했음

3. 메타 데이터(Meta Data)

 

  • 일련의 데이터를 정의하고 설명해 주는 데이터
  • 컴퓨터에서는 데이터 사전의 내용, 스키마 등을 의미하고 HTML 문서에서는 메타 태그 내용이 메타 데이터임
  • 방송에서는 방대한 분량의 저작물을 신속하게 검색하기 위한 촬영 일시, 장소, 작가, 출연자 등과 음원의 검색을 위한 작곡자나 가수명 등을 메타 데이터로 처리함
  • 메타 데이터는 여러 용도로 사용되나 주로 빠르게 검색하거나 내용을 간략하고 체계적으로 하기 위해 많이 사용됨

4. 디지털 아카이빙(Digital Archiving)

 

  • 디지털 정보 자원을 장기적으로 보존하기 위한 작업
  • 아날로그 콘텐츠는 디지털로 변환 후 압축해서 저장하고 디지털 콘텐츠도 체계적으로 분류하고 메타 데이터를 만들어 DB화 하는 작업
  • 늘어나는 정보 자원의 효율적인 관리와 이용을 위해 필요한 작업임

5. 하둡(Hadoop)

 

  • 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼
  • 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크로 구글, 야후 등에 적용되고 있음
  • 하둡과 관계형 데이터베이스간 대용량 데이터를 전송할 때 스툽(Sqoop)이라는 도구를 이용함

6. 맵리듀스(MapReduce)

 

  • 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델로, 흩어져 있는 데이터를 연관성 있는 데이터 분류로 묶는 Map 작업을 수행한 후 중복 데이터를 제거하고 원하는 데이터를 추출하는 Reduce작업을 수행함
  • Google에 의해 고안되었으며 대표적인 대용량 데이터 처리를 위한 병렬 처리 기법으로 많이 사용되고 있음

7. 타조(Tajo)

 

  • 오픈 소스 기반 분산 컴퓨팅 플랫폼이 아파치 하둡(Apach Hadoop) 기반의 분산 데이터 웨어하우스 프로젝트로 우리나라가 주도하여 개발하고 있음
  • 하둡의 빅데이터를 분석할 때 맵리듀스를 사용하지 않고 구조화 질의 언어(SQL)를 사용하여 하둡 분산 파일 시스템(HDFS)파일을 바로 읽어낼 수 있음
  • 대귴모 데이터 처리와 실시간 상호 분석에 모두 사용할 수 있음

8. 데이터 다이어트(Data Diet)

 

  • 데이터를 삭제하는 것이 아니라 압축하고 중복된 정보는 중복을 배제하고, 새로운 기준에 따라 나누어 저장하는 작업
  • 인터넷 이동통신 이용이 늘면서 각 기관/기업의 데이터베이스에 쌓인 방대한 정보를 효율적으로 관리하기 위해 대두된 방안으로 같은 단어가 포함된 데이터들을 한 곳에 모아 두되 필요할 때 제대로 찾아내는 체계를 갖추는 것이 중요함

9. 데이터 마이닝(Data Mining)

 

  • 데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법
  • 대량의 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의 상호관계를 규명하여 패턴화함으로써 효율적인 데이터 추출이 가능함

10. OLAP(Online Analytical Processing)

 

  • 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식
  • 데이터 웨어하우스나 데이터 마트와 같은 시스템과 상호 연관되는 정보 시스템
  • OLAP연산 : Roll-up, Drill-down, Drill-through, Drill-across, Pivoting, Slicing, Dicing

섹션18. 회복/병행제어

 

1. 회복(Recovery)

 

  • 트랜잭션들을 수행하는 도중 장애가 발생하여 데이터베이스가 손상 되었을 때 손상되기 이전의 정상 상태로 복구하는 작업
  • 장애의 유형

    • 트랜잭션 장애 : 입력 데이터 오류, 불명확한 데이터, 시스템 자원 요구의 과다 등 트랜잭션 내부의 비정상적인 상황으로 인하여 프로그램 실행이 중지되는 현상
    • 시스템 장애 : 데이터베이스에 손상을 입히지는 않으나 하드웨어 오동작, 소프트웨어의 손상, 교착상태 등에 의해 모든 트랜잭션의 연속적인 수행에 장애를 주는 현상
    • 미디어 장애 : 저장장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 데이터베이스의 일부 또는 전부가 물리적으로 손상된 상태
  • 회복 관리기(Recovery Management)

    • DBMS의 구성 요소
    • 트랜잭션 실행이 성공적으로 완료되지 못하면 트랜잭선이 데이터 베이스에 생성했던 모든 변화를 취소시키고 트랜잭션 수행 이전의 원래 상태로 복구하는 역할을 담당
    • 메모리 덤프(주기적으로 데이터베이스 전체를 복사해 두는 것), 로그(갱신되기 전후의 내용을 기록하는 별도의 파일)를 이용하여 회복을 수행함

2. 회복 기법

연기 갱신 기법
(Deferred Update)
트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 방법
트랜잭션이 수행되는 동안 갱신된 내용은 일단 Log에 보관됨
트랜잭션의 부분 완료(성공적인 완료 직전) 시점에 Log에 보관한 갱신 내용을 실제 데이터베이스에 기록
트랜잭션이 부분 완료되기 전에 장애가 발생하여 트랜잭션이 Rollback되면 트랜잭션이 실제 데이터베이스에 영향을 미치지 않았기 때문에 어떠한 갱신 내용도 취소시킬 필요 없이 무시하면 됨
Redo 작업만 가능함
즉각 갱신 기법
(Immediate Ipdate)
트랜잭션이 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법
장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들은 Log에 보관시킴
회복 작업을 할 경우에는 Redo, Undo 모두 사용가능
그림자 페이지 대체 기법
(Shadow Paging)
갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지로 별도 보관해 놓고, 실제 페이지를 대상으로 트랜잭션에 의한 갱신 작업을 하다가 장애가 발생하여 트랜잭션 작업을 Rollback시킬 때, 갱신된 이후의 실제 페이지 부분에 그림자 페이지를 대체하여 회복시키는 기법
로그, Undo, Redo 알고리즘이 필요 없음
검사점 기법
(Check Point)
트랜잭션 실행 중 특정 단계에서 재실행할 수 있도록 갱신 내용이나 시스템에 대한 상황 등에 관한 정보와 함께 검사점을 로그에 보관해 두고, 장애 발생 시 트랜잭션 전체를 철회하지 않고 검사점부터 회복 작업을 하여 회복시간을 절약하도록 하는 기법

3. 병행제어(Concurrency Control)

 

  • 다중 프로그램의 이점(프로세서의 이용률 증가, 전체 트랜잭션의 작업 처리율 향상) 을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간 상호작용을 제어하는 것
  • 병행 제어의 목적
    • 데이터베이스의 공유를 최대화
    • 시스템의 활용도를 최대화 
    • 데이터베이스의 일관성을 유지
    • 사용자에 대한 응답 시간을 최소화

4.병행제어 기법의 종류

로킹(Locking) 주요 데이터의 액세스를 상호 배타적으로 하는 것
트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스 할 수 있도록 하는 기법
타임 스탬프 순서
(Time Stamp Ordering)
직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법
트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
교착 상태가 발생하지 않음
최적 병행수행(검증 기법, 확인 기법, 낙관적 기법) 병행수행하고자 하는 대부분의 트랜잭션이 판독 전용(Read Only) 트랜잭션일 경우, 트랜잭션 간의 충돌률이 매우 낮아서 병행제어 기법을 사용하지 않고 실행되어도 이 중의 많은 트랜잭션은 시스템의 상태를 일관성 있게 유지한다는 점을 이용한 기법
다중 버전 기법 타임 스탬프의 개념을 이용하는 기법으로 다중 버전 타임 스탬프 기법이라고도 함
갱신될 때마다의 버전을 부여하여 관리함

 

로킹 단위(Locking Granularity)

 

  • 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기를 의미하며 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될 수 있음
  • 로킹 단위가 크면 로크 수가 작아 관리하기가 쉽지만 병행성 수준이 낮아지고, 로킹 단위가 작으면 로크 수가 많아 관리하기 복잡해 오버헤드가 증가하지만 병행성 수준이 높아짐
  • 병행성 수준이 낮다 = 데이터베이스 공유도가 감소하다는 의미, 반대로 병행성 수준이 높다는 것은 데이터베이스 공유도가 증가한다는 뜻

 섹션19. 교착상태(Dead Lock)

 

1. 교착상태의 개요

 

  • 상호 배제에 의해 나타나는 문제점으로 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미함

2. 교착상태 발생의 필요 충분 조건

 

  • 아래의 조건 중 하나라도 충족되지 않으면 교착상태가 발생하지 않음
상호 배제
(Mutual Exclusion)
한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
점유와 대기
(Hold and Wait)
최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
비선점
(Non-preemption)
다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
환형 대기
(Circular Wait)
공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함

3. 교착상태의 해결 방법

예방 기법
(Prevention)
교착 상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로 교착상태 발생의 네가지 조건 중에서 어느하나를 제거함으로써 수행 됨
자원의 낭비가 가장 심한 기법
회피 기법
(Avoidance)
교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법으로 주로 은행원 알고리즘(Banker's Algorithm)이 사용됨

은행원 알고리즘(Banker's Algorithm) : E. J. Dijkstra(다익스트라)가 제안한 것으로 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는 데에서 유래한 기법
발견 기법
(Detection)
시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것을 의미함
교착상태 발견 알고리즘과 자원 할당 그래프 등을 사용할 수 있음
회복 기법
(Recovery)
교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것을 의미