일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 다이나믹프로그래밍
- 백준
- Direct12
- 병행성
- DirectX 12
- 알고리즘
- 멀티프로세서
- 그리디 알고리즘
- directx
- I/O장치
- 프로그래머스
- 스케줄링
- 다이나믹 프로그래밍
- 운영체제
- codility
- 파일시스템 구현
- 락
- 영속성
- 동적계획법
- OS
- 병행성 관련 오류
- 그리디알고리즘
- 렌더링 파이프라인
- DirectX12
- 자료구조
- 쓰레드
- 디자인패턴
- 멀티쓰레드
- 컨디션 변수
- 타입 객체
- Today
- Total
기록공간
11장. 응용 SW 기초 기술 활용 본문
#1 운영체제의 특징
운영체제 종류
1. 운영체제의 개념
■ 운영체제는 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어이다. 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 편리성을 제공한다. 운영체제는 컴퓨터 시스템과 사용자 간의 인터페이스 기능을 담당한다.
2. 운영체제 종류
■ 윈도즈(Windows) 운영체제 특징 (지선자 오)
- GUI 제공 : 키보드 없이 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행하는 그래픽 기반의 인터페이스 방식
- 선점형 멀티테스킹 방식 제공 : 동시에 여러 개의 프로그램을 실행하면서 운영체제가 각 작업의 CPU 이용 시간을 제어
- 자동감지 기능 제공 : 하드웨어를 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 자동감지 기능 제공
- OLE(Object Linking and Embedding) 사용 : 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집할 수 있게 하는 기능 제공
■ 유닉스 운영체제 특징 (대다 사이계)
- 대화식 운영체제 기능 제공 : 프롬프트가 나타난 상태에서 사용자가 명령을 입력하면 시스템은 그 명령을 수행하는 사용자 명령 기반의 대화식 운영체제 기능을 제공
- 다중 작업 기능 제공 : 다수의 작업(프로세스)이 CPU와 같은 공용 자원을 나누어 사용하여 한 번에 하나 이상의 작업을 수행하는 기능 제공
- 다중 사용자 기능 제공 : 여러 대의 단말이 하나의 컴퓨터에 연결되어서, 여러 사람이 동시에 시스템을 사용하여 각각의 작업을 수행할 수 있는 기능 제공
- 이식성 제공 : 90% 이상 C 언어로 구현되어 있고, 시스템 프로그램이 모듈화되어 있어서 다른 하드웨어 기종으로 쉽게 이식 가능
- 계층적 트리 구조 파일 시스템 제공 : 유닉스는 계층적 트리구조를 가짐으로써 통합적인 파일 관리가 용이
운영체제 기본 명령어 활용
1. 운영체제 제어
■ CLI, GUI 두가지 제어 방법이 존재한다.
■ 윈도즈 운영체제 기본 명령어
- ATTRIB : 파일 속성을 표시하거나 바꿈
- CALL : 한 일괄 프로그램에서 다른 일괄 프로그램을 호출
- CD : 현재 디렉터리 이름을 보여주거나 바꿈
- CHKDSK : 디스크를 검사하고 상태 보고서를 표시
- CLS : 화면을 지움
- CMD : Windows 명령 프롬프트 창을 열어줌
- COMP : 두 개 이상의 파일을 비교
- DISKPART : 디스크 파티션 속성을 표시하거나 구성
- ECHO : 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않음
- ERASE : 하나 이상의 파일을 지움
- EXIT : CMD.EXE 프로그램을 마침
■ 리눅스/유닉스 운영체제의 기본 명령어
-
시스템 관련
-
uname -a : 시스템의 모든 정보를 확인하는 명령어
-
uname -r : 운영체제의 배포버전을 출력하는 명령어
-
cat : 파일의 내용을 화면에 출력하는 명령어
-
uptime : 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인하는 명령어
-
-
사용자
-
id : 사용자의 로그인명, id, 그룹 id 등을 출력하는 명령어
-
last : 시스템의 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보를 표시하는 명령어
-
who : 현재 접속 사용자 정보를 표시하는 명령어
-
-
파일 처리
-
ls : 자신이 속해있는 폴더 내에서의 파일 및 폴더들을 표시하는 명령어
-
pwd : 현재 작업 중인 디렉토리의 절대 경로를 출력하는 명령어
-
rm : 파일 삭제 명령어
-
cp : 파일 복사 명령어
-
mv : 파일 이동 명령어
-
-
프로세스
-
ps : 현재 실행되고 있는 프로세스 목록을 출력하는 명령어
-
pmap : 프로세스 ID를 기준으로 메모리 맵 정보를 출력하는 명령어
-
kill : 특정 PID 프로세스 종료 명령어
-
-
파일 권한
-
chmod : 특정 파일 또는 디렉토리의 퍼미션 수정 명령어
-
chown : 파일이나 디렉토리의 소유자, 소유 그룹 수정 명령어
-
-
네트워크
-
ifconfig : 네트워크 인터페이스를 설정하거나 확인하는 명령어
-
host : 도메인명은 알고 있는데 ip 주소를 모르거나 혹은 그 반대의 경우에 사용하는 명령어
-
-
압축
-
tar : 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어(압축은 불가능)
-
gzip : 파일을 묶거나 풀 수 는 없지만 압축을 담당하는 명령어
-
-
검색
-
grep : 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자 할 때 사용하는 명령어
-
fing : 특정한 파일을 찾는 명령어
-
-
파일 이동
-
cp : 디렉토리를 복사할 때 사용하는 명령어
-
rsync : 로컬 또는 원격에 파일과 디렉토리를 복사하고 동기화하는 명령어
-
-
디스크 사용
-
df : 시스템에 마운트된 하드데스크의 남은 용량을 확인할때 사용하는 명령어
-
du : 파일 사이즈를 KB 단위로 보여주는 명령어
-
-
디렉터리 이동
-
cd : 디렉터리를 이동하는 명령어
-
운영체제 핵심 기능 파악
1. 운영체제 핵심 기능
■ 메모리 관리
- 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 기능
- 메모리가 꽉차게 되는 시스템 속도가 느려지고 때로는 시스템이 멈추는 현상 발생
■ 프로세스 관리
- CPU와 데이터를 송수신하는 상황에서 현재 메모리 사용 부분, 메모리 입출력 순서, 메모리 공간 확보 등 프로세스에 대한 종합적인 관리 기법
■ 메모리 관리 기법 (반배할교)
- 반입 기법 : 메모리에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
- 배치 기법 : 디스크에 있는 프로세스를 메모리 어느 위치에 저장할 것인지 결정하는 기법
- 할당 기법 : 실행해야 할 프로세스를 메모리에 어떤 방법으로 할당할 것인지 결정하는 기법
- 교체 기법 : 재배치 기법으로 메모리에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법
■ 프로세스 상태 전이 (디타 블웨스)
- 디스패치 : 준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당 → 문맥교환
- 타이머 런 아웃 : CPU에 할당된 프로세스는 지정된 시간이 초과하면 스케줄러에 의해 PCB저장, CPU 반납 후 다시 준비 상태로 전이.. 타임 슬라이스 만료, 선점시 타임아웃 발생
- 블록 : 실행 상태에 있는 프로세스가 지정된 할당시간을 초과하기 전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 입출력이 완료될 때까지 대기 상태로 전이
- 웨이크 업 : 입출력이 종료되면 대기 상태의 프로세스에게 종료 사실을 알려주고, 준비상태로 전이
- Swap-in : 프로세스에게 다시 기억장치가 할당될 경우
- Swap-out : 프로세스가 기억장치를 잃은 경우
■ 프로세스 스케줄링 주요 종요
- 서비스 시간 : 프로세스가 결과를 산출하기까지 소요되는 시간
- 응답시간 (= 대기시간+수행시간) : 프로세스들이 입려되어 수행하고 결과를 산출하기까지 소요되는 시간
- 대기시간 : 프로세스가 프로세서에 할당 대기까지 큐에 대기하는 시간, 할당되면 0이 된다.
- 종료시간 : 요구되는 Processing time을 모두 수행하고 종료된 시간
- 시간 할당량 : 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량
- 응답률 (= (대기시간+서비스시간) / 서비스시간)
■ 선점형 스케줄링 알고리즘 유형
- 라운드 로빈(Round Robin) : 프로세스는 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어간다.
- SRT(Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프레스가 준비 큐에 생기면 언제라도 선점됨.
- 다단계 큐(Multi Level Queue) : 작업들을 여러 종류의 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점 당함.
- 다단계 피드백 큐(MLFQ) : 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU 시간 할당량을 부여, 마지막에는 라운드 로빈 방식으로 처리
■ 비선점형 스케줄링 알고리즘 유형
- 우선순위(Priority) : 프로세스별로 우선순위가 주어지고 우선순위에 따라 CPU 할당
- 기한부(Deadline) : 작업들이 명시된 시간이나 기한 내에 완료하도록 계획
- FCFS(First Come First Service) : 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당, FIFO 알고리즘이라고도 함
- SJF(Short Job First) : 프로세스가 도작하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
- HRN(Highest Response Ratio Next) : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택, 기아현상을 최소화
2. 가상화, 클라우드
■ 가상화 개념
가상화는 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술이다.
■ 가상화 기술요소
- 컴퓨팅 가상화 : 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
- 스토리지 가상화 : 스토리지와 서버 사이의 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
- I/O 가상화 : 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 I/O 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술
- 컨테이너 : 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
- 분산처리 기술 : 여러 대의 컴퓨터 계산 및 저장 능력을 이용하여 커다란 문제나 데이터를 처리하고 저장하는 기술
- 네트워크 가상화 기술 : 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치의 가상화를 통한 가상 네트워크를 지원하는 기술
■ 클라우드 컴퓨팅 분류 (사공하)
- 사설 클라우드 : 기업 및 조직 내에 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영되는 클라우드. 직접적인 통제가 가능하며 보안성을 높일 수 있다.
- 공용 클라우드 : 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드. 확장성, 유연성 등이 뛰어나다.
- 하이브리드 클라우드 : 사설 클라우드 + 공용 클라우드. 사실 클라우드 약점인 구축 비용 문제와 공용 클라우드 약점인 보안성 확보 문제를 해결
■ 클라우드 컴퓨팅 유형 (인플소)
- 인프라형 서비스(IaaS) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
- 플랫폼형 서비스(PaaS) : 인프라 생성, 관리 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
- 소프트웨어형 서비스(SaaS) : 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
#2 데이터베이스 기초 활용하기
데이터베이스 종류
1. 데이터베이스
■ 데이터베이스 개념
데이터베이스는 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합이다.
■ 데이터베이스 종류
-
파일 시스템 : 파일에 이름을 부여하고 저장이나 검색을 위해 그것들을 어디에 위치시켜야 하는 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식 (중요성 떨어짐)
-
ISAM, VSAM
-
-
계층형 데이터베이스 관리시스템(HDBMS) : 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스. 데이터에 대한 접근 속도는 빠르나, 종속적인 구조로 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않다.
-
IMS, System2000
-
-
망형 데이터베이스 관리시스템(NDBMS) : 데이터 구조를 네트워크상의 망 형태로 표현한 데이터 모델. HDBMS 보다 유연하지만 설계가 복잡하다.
-
IDS, IDMS
-
-
관계형 데이터베이스 관리시스템(RDBMS) : 관계형 모델을 기반으로 하는 가장 보편적인 데이터베이스 관리시스템이다. 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이하다.
-
Oracle : 오라클사에서 개발한 DBMS로 유료이다. 대부분의 운영체제를 제공하고 대형 시스템에서 많이 쓰임
-
SQL Server : MS에서 개발한 DBMS. MS에서만 사용 가능하며, C#등과 호환됨
-
MySQL : 오라클의 관계형 데이터베이스 시스템. 오픈 소스 기반으로 개발
-
Maria DB : MySQL 출신 개발자가 만든 DB로 MySQL과 완벽히 호환
-
2. DBMS
■ DBMS(Database Management System) 개념
DBMS는 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어이다.
■ DBMS 유형 (키컬도그)
- 키-값 DBMS
- 컬럼 기반 데이터 저장 DBMS
- 문서(Document) 저장 DBMS
- 그래프 DBMS
■ DBMS 특징
- 데이터 무결성
- 데이터 일관성
- 데이터 회복성
- 데이터 보안성
- 데이터 효율성
관계형 데이터베이스 활용
1. ERD(E-R Diagram) 개념
■ ERD는 업무 분석 결과로 도출된 실체(엔티티)와 엔티티 간의 관계를 도식화한 다이어그램이다. 데이터의 흐름과 연관성을 공통적으로 쉽게 확인할 수 있다.
데이터베이스 관리
1. 트랜잭션
■ 트랜잭션의 개념
DBMS가 가져야 하는 특성으로, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이다.
■ 트랜잭션의 특성 (ACID)
- 원자성(Atomicity) : 연산 전체가 성공 또는 실패. 하나라도 실패하면 전체가 취소되어야 함.
- 일관성(Consistency) : 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야 함
- 격리성(Isolation) : 트랜잭션 실행 중 발생하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가
- 영속성(Durability) : 성공이 완료된 트랜잭션 결과는 영속적으로 데이터베이스에 저장
■ 트랜잭션 상태 설명 (활부완실철)
- 활동 상태 : 초기 상태, 트랜잭션 실행 중 가지는 상태
- 부분 완료 상태 : 마지막 명령문이 실행된 후 가지는 상태
- 완료 상태 : 트랜잭션이 성공적으로 완료된 후 가지는 상태
- 실패 상태 : 정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태
- 철회 상태 : 트랜잭션이 철회되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태
2. 데이터베이스 기술 트랜드
■ 빅데이터 개념
빅데이터는 시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 비정형 데이터이다.
■ 빅데이터 특성
데이터의 양, 데이터의 다양성, 데이터의 속도
■ NoSQL 개념
NoSQL은 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS이다.
■ 데이터 마이닝 개념
대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술이다.
#3 네트워크 기초 활용하기
네트워크 계층 구조 파악
1. 네트워크 개념
■ 네트워크란 원하는 정보를 원하는 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라이다.
■ 거리에 따른 네트워크 분류
- WAN (광대역 네트워크)
- LAN (근거리 네트워크)
2. OSI 7계층
■ 국제 표준화 기구인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델이다.
■ 7 Layer
- 응용 계층
- 표현 계층
- 세션 계층
- 전송 계층 (L4 스위치)
- 네트워크 계층 (라우터)
- 데이터 링크 계층 (브리지, 스위치)
- 물리 계층 (허브, 리피터)
3. 네트워크 장비
■ 1계층 장비
- 허브 : 여러 대의 컴퓨터를 연결하여 네트워크를 보내거나, 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비
- 리피터 : 디지털 신호 증폭 장비
■ 2계층 장비
- 브리지 : 두 개의 LAN을 서로 연결해 주는 장비
- L2 스위치 : 느린 전송속도의 브리지, 허브의 단점을 개선하기 위해 나옴. 출발지에서 들어온 프레임을 목적지 MAC 주소 기반으로 빠르게 전송시키는 데이터 링크 계층의 통신장치
- NIC(Network Interface Card) : 외부 네트워크와 접속하여 가장 빠른 속도로 데이터를 주고받을 수 있게 컴퓨터 내에 설치되는 장치
- 스위칭 허브 : 스위치 기능을 지닌 허브. 사용되는 대부분의 허브가 이것이다.
■ 3계층 장비
- 라우터 : LAN과 LAN을 연결하너가 LAN과 WAN을 연결하기 위한 인터넷 네트워킹 장비, 알고리즘을 통한 최적의 경로로 원하는 목적지까지 안전하게 전달.
- 게이트웨이 : 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치
- L3 스위치 : 3계층에서 네트워크 단위들을 연결하는 통신 장비
- 유무선 인터넷 공유기 : 외부로 들어오는 인터넷 라인을 연결하여 유선 혹은 무선으로 여러 대의 기기를 연결하여 인터넷 라인을 공유할 수 있도록 하는 네트워크 장비
- 망(백본) 스위칭 허브 : 광역 네트워크를 커버하는 스위칭 허브, 대단위 지역을 커버함
■ 4계층 장비
- L4 스위치 : 4계층에서 네트워크 단위들을 연결하는 통신장비. TCP/UDP 등 스위칭 수행. 로드밸런싱 가능
네트워크 프로토콜 파악
1. 프로토콜
■ 프로토콜 개념
프로토콜은 서로 다른 시스템이나 기기들 간의 데이터 교환을 원할히 하기 위한 표준화된 통신규약이다.
■ 프로토콜의 기본요소 (구의타)
- 구문(Syntax) : 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등의 규정
- 의미(Semantic) : 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
- 타이밍(Timing) : 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정
2. TCP
■ TCP(Transmission Control Protocol) 개념
전송 제어 프로토콜은 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로 사용된다.
■ TCP의 특징 (신연흐혼)
- 신뢰성 보장
- 연결 지향적 특징
- 흐름제어
- 혼잡제어
3. UDP
■ UDP(User Datagram Protocol) 개념
비연결성이고, 신뢰성이 없으며, 순서화되지 않은 데이터그램 서비스를 제공하는 전송(Transport, 4계층) 계층의 통신 프로토콜이다.
■ UDP의 특징
- 비신뢰성
- 순서화되지 않은 데이터그램 서비스 제공
- 실시간 응용 및 멀티캐스팅 가능
- 단순 헤더
4. IPv4, IPv6
■ IPv4
인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32bit 주소체계를 갖는 네트워크 계층(3계층)의 프로토콜이다.
■ IPv4 전송방식
- 유니캐스트
- 멀티캐스트
- 브로드캐스트
■ IPv6
현재 IPv4가 가지고 있는 주소고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해 개발된 128bit 주소체계를 갖는 차세대 인터넷 프로토콜이다.
■ IPv6 전송방식
- 유니캐스트
- 멀티캐스트
- 애니캐스트
'자격증공부 > 정보처리기사_실기' 카테고리의 다른 글
9장. 소프트웨어 개발 보안 구축 (0) | 2020.11.24 |
---|---|
7장. 애플리케이션 테스트 관리 (0) | 2020.11.23 |
6장. 화면 설계 (0) | 2020.11.22 |
5장. 인터페이스 구현 (0) | 2020.11.22 |
4장. 서버 프로그램 구현 (0) | 2020.11.21 |