728x90
728x90

이번 시간은 정보처리기사 실기에서 다루는 11장 응용 SW 기초 기술 활용에 대해서 정리를 해보았습니다.

 

* 이 글은 정보처리기사 공부 목적으로 쓴 글입니다. 그러다 보니 혹시 제가 잘못 작성한 부분이 있거나 수정이 필요하다면 댓글로 알려주시면 감사하겠습니다. 

 

OS (운영체제) 사용자가 하드웨어를 쉽게 사용할 수 있도록 인터페이스 기능을 제공하는 소프트웨어
OS의 특징 편인스자제
1. 사용자 편리성 제공
2. 인터페이스 기능 제공
3. 스케줄링 담당 : 자원 분배
4. 자원 관리 : CPU, 메모리 관리
5. 제어 기능 : 입출력 장치 등
OS의 쉘 사용자 명령에 대한 처리를 담당 (사용자 명령을 입력받아 기계어 형태로 변환해 커널에 전달)
OS의 커널 하드웨어와 관련된 핵심 처리 기능 담당
Windows의 특징 지선자오
1. GUI 제공
2. 선점형 멀티태스킹 방식 제공 : 동시에 여러 프로그램을 실행하면서 자원 사용을 제어
3. 자동 감지 기능 제공 : HW 설치 시 환경 구성
4. OLE 기능 제공 : 문서에 개체 삽입/연결
Unix의 특징 대다사이계
1. 대화식 운영체제 기능 : 명령어 입력 시 해당 명령어 수행
2. 다중 작업 기능
3. 다중 사용자 기능
4. 이식성 제공
5. 계층 트리 구조 파일 시스템 기능 제공
Linux Unix 기반의 오픈 소스 운영 체제
Android Linux 기반의 휴대용 장치를 위한 운영체제
Mac OS Unix 기반의 GUI 운영 체제
Windows 기본 명령어 ATTRIB : 파일 속성 표시
CALL : 일괄 프로그램에서 다른 일괄 프로그램 호출
CD : 디렉토리 표시
CHKDSK : 디스크 검사
CLS : 화면 지움
CMD : 명령 프롬프트 실행
COMP : 두 개 이상 파일 비교
DISKPART : 파티션 구성 표시
ECHO : 메시지 표시
ERASE : 파일 삭제
EXIT : 인터프리터 종료
Unix/Linux 기본 명령어 uname -a: 모든 시스템 정보 표시
uname -r: OS 배포버전 표시
cat : 파일 내용 출력
uptime : 가동시간 확인
id : 사용자 로그인명, id 확인
last : 모든 로그인/로그아웃 정보 확인 (wtmp(x) 파일)
who : 현재 접속한 사용자 정보 확인 (utmp(x) 파일)
ls : 현재 경로의 파일 및 폴더 출력 pwd : 현재 디렉토리의 절대 경로 출력 (print working direcotry)
cd : 디렉토리 이동
rm : 파일 삭제
cp : 파일 복제
mv : 파일 이동
rsync : 복사 후 동기화
chmod : 퍼미션 변경
chown : 소유자, 소유그룹 변경
tar : 압축 해제
gzip : 압축
find : 파일 검색
grep : 문자열 검색
df : 남은 디스크 용량 확인 (disk free)
du : 파일 사이즈 확인 (disk usage)
ps : 프로세스 목록 확인
pmap : 프로세스ID 기준 메모리맵 정보 표시
kill : 프로세스 종료
fork : 프로세스 생성
ifconfig : 네트워크 인터페이스 확인
host : host는 아는데 IP 주소 모를 때 사용
접근제어 user / group / other / all 유그아올
r (4) / w (2) / x (1)

ex.
chmod o-w test.txt = other 사용자의 쓰기 권한 제거
chmod 664 test.txt = user, group의 rx 권한 설정, other의 r권한 설정
메모리 관리 필요할 때마다 프로세스에게 기억장치를 할당하고, 사용이 끝나면 회수하는 것
메모리 관리 기법 반배할교
1. 반입 기법 - "언제" 요예
2. 배치 기법 - "어디에" 초적악
3. 할당 기법 - "어떻게" 연단다분페세
4. 교체 기법 - "누구를" 피포/엘루/엘푸/옵트/누르/스크르
반입 기법 주기억장치에 다음 프로세스를 언제 할당할 것인지 결정하는 기법
요예
1) 요구 반입 : 요구가 있을 시 반입
2) 예상 반입 : 예측하여 반입
배치 기법 주기억장치의 어떤 위치에 프로세스를 할당할 것인지 결정하는 기법 1) 최초 배치 : 첫 번째 분할에 배치 2) 최적 배치 : 비슷한 공간에 배치 3) 최악 배치 : 가장 큰 공간에 배치
할당 기법 주기억장치에 어떤 방법으로 프로세스를 할당할 것인지 결정하는 기법
연단다분페세
1) 연속 할당 : 연속해서 배치 ex. 단일 분할, 다중 분할
2) 분산 할당 : 프로세스를 조각내어 배치 ex. 페이징(같은 크기로), 세그멘테이션(가변적 크기로)
교체 기법 주기억장치에 있는 프로세스 중 어떤 것을 제거할지 결정하는 기법

피포/엘루/엘푸/옵트/누르/스크르
1. FIFO : 가장 먼저 들어온 페이지 교체
2. LRU : 가장 오랫동안 사용되지 않은 페이지 교체
3. LFU : 참조 횟수가 적은 페이지 교체
4. OPT : 앞으로 사용될 가능성이 적은 페이지 교체
5. NUR : 최근까지 사용되지 않은 페이지 교체 (LRU 오버헤드 감소)
6. SCR : 세컨드 찬스! 가장 먼저 들어왔지만 자주 사용되는 페이지의 교체를 막음 (FIFO 보완)
메모리 단편화 메모리 할당/반납 과정에서 낭비되는 공간이 생기는 것
내슬외버공통압
1. 내부 단편화 (적재하고 남는 공간 발생; 페이징) ⇒ Slab Allocator, 통합, 압축
2. 외부 단편화 (작아서 못쓰는 공간 발생; 세그멘테이션) ⇒ 버디 메모리 할당, 통합, 압축
프로세스 상태 [이미지]

생준실대완
1. 생성 (fork)
2. 준비 (Ready List에서 할당을 대기)
3. 실행
4. 대기 (입출력 발생)
5. 완료
프로세스 CPU에 의해 관리되는 현재 실행중인 프로그램 (=Job, Task)
프로세스 상태 전이 디타블웨
1. 디스패치 : Ready List에서 프로세스를 선정하고 CPU 할당 (준비 ⇒ 실행)
2. 타이머 런 아웃 : 할당 시간 초과, PCB에 저장 후 준비 상태로 전이 (실행 ⇒ 준비)
3. 블록 : 입출력 발생 (실행 ⇒ 대기)
4. 웨이크업 : 입출력 종료 (대기 ⇒ 준비)
PCB =Process Control Block. OS가 프로세스를 관리를 위해 필요한 내용을 담고 있는 자료 구조
프로세스 스케줄링 CPU를 사용하려는 프로세스 간 우선순위를 관리하는 작업

반종도 대반서
* 반환시간(응답시간) = 종료 시간 - 도착 시간
* 대기시간 = 반환시간 - 서비스 시간
0부터 시작
비선점형 스케줄링 CPU 할당받으면 반환 시까지 다른 프로세스가 점유 불가
우기흔FJ
우선순위 프로세스별 우선순위에 따라 CPU 할당
기한부 정해진 시간 내 프로세스가 완료되도록 계획
HRN 응답률이 높은 프로세스를 선택해 할당
FIFO 대기 큐에 먼저 도착한 순서에 따라 선택
SJF Shortest Job First. 대기 큐 중 수행시간이 가장 짧은 프로세스에게 할당
응답률 계산식 (대기시간+서비스시간)/서비스시간 = 응답률
응답률이 높을수록 우선순위가 높다
(SJF의 기아현상을 해결하기 위해 HRN 기법에서 사용)
선점형 스케줄링 우선순위가 높은 프로세스가 오면 기존 프로세스를 중단하고 CPU를 점유
알알다다
RR (라운드 로빈) 시간 할당량을 정해놓고, 시간 내 처리되지 못할 경우 대기 큐 가장 뒤로 보냄
SRT =Shortest Remaining Time First. 대기 큐에 수행(남은) 시간이 짧은 프로세스가 생기면 언제라도 선점
다단계 큐 여러 개의 큐를 이용해 각각 독립적인 스케줄링을 가짐
다단계 피드백 큐 여러 개의 큐에 프로세스 특성에 따라 서로 다른 시간 할당량을 부여. (FIFO+RR)
⇒ 우선 도착한 프로세스를 실행하되, 완료가 안 된 프로세스는 하위 큐로 보내고 마지막 큐에서도 안 끝나면 RR 방식
가상화 물리적인 리소스를 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개처럼 보이게 하는 기술
- 가상화의 종류 : 플랫폼 가상화, 리소스 가상화
플랫폼 가상화 ✔️ 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 독립된 환경을 구축한 것처럼 보여주는 기술
리소스 가상화 ✔️ 소프트웨어가 독립된 하드웨어에서 실행된 것처럼 보여주는 기술
컴퓨팅 가상화 컴퓨터 리소스를 가상화하여 논리적 단위로 활용 ex. 하이퍼바이저
스토리지 가상화 스토리지와 서버 사이에 계층을 추가해 논리적 단위로 활용 ex. 분산 파일 시스템
I/O 가상화 I/O와 서버 사이에 계층을 추가해 자원을 효율적으로 활용
ex. VNIC(가상 네트워크 인터페이스 카드)
컨테이너 ✔️ 컨테이너화된 애플리케이션들이 단일 운영체재상에서 실행되도록 하는 기술 ex. 도커
분산 처리 기술 ✔️ 여러 대의 컴퓨터의 계산 능력을 이용해 데이터를 처리하는 기술
네트워크 가상화 기술 물리적으로 떨어진 장비들을 연결하는 기술 ex. SDN, NFV
SDN =Software Defined Network
컨트롤 플레인(트래픽 경로 지정) / 데이터 플레인(트래픽 전송)으로 분리하여 네트워크를 관리하는 기술
NFV =Network Function Virtualization
라우터, 로드밸런서 등 하드웨어에 가상화 기술을 적용하여 네트워크 서비스를 가상화하는 기술
클라우드 컴퓨팅 자신의 컴퓨터가 아닌 클라우드에 연결된 컴퓨터로 처리하는 기술
분류 : 사공하
유형 : 인플소(IPS)
사설 클라우드 조직 내부의 컴퓨팅 자원을 이용해 내부적으로 구축한 클라우드. 보안성 높고, 직접 제어 가능
공용 클라우드 제공 업체의 서비스를 이용한 클라우드. 확장성 높음
하이브리드 클라우드 사설+공용 클라우드 동시 사용
IaaS 인프라형 서비스. 서버, 스토리지 같은 자원을 클라우드로 제공
PaaS 플랫폼형 서비스. 인프라를 관리하는 복잡함 없이, 애플리케이션 개발에 필요한 플랫폼을 클라우드로 제공
SaaS 소프트웨어형 서비스. 사용자에게 제공하는 소프트웨어와 관련 데이터를 클라우드로 제공
네트워크 원하는 정보를 정확하게 전달하기 위한 인프라
1. LAN : 근거리 네트워크
2. WAN : 광대역 네트워크
프로토콜 서로 다른 시스템 간 데이터 교환을 위한 규약
프로토콜의 기본 3요소 구의타
1. 구문 Syntax : 정보 전송을 위한 데이터 형식
2. 의미 Semantic : 정보 전송을 위한 제어 정보
3. 타이밍 Timing : 정보 전송을 위한 순서와 속도 조절
네트워크 프로토콜 컴퓨터(통신 장비) 간 메시지 교환을 위한 규약
- 단편화 : 전송이 가능한 단위로 나누는 기법
- 재조립 : 단편화된 조각을 복원하는 기법
- 캡슐화 : 상위 계층의 데이터에 정보를 추가해 하위 계층으로 보내는 기법 (송신측)
- 동기화 : 송신-수신 시점 맞추는 기법
OSI 7계층 네트워크 충돌 문제를 최소화하고자, ISO(국제표준화기구)에서 제시한 통신 규약 [이미지]
계층 : 아파서티내다피
단위 : 비프페세데
물리 계층 (Physical) 데이터를 전기적인 신호로 변환시켜 통신
① 단위: 비트
② 프로토콜: RS-232C
③ 장비: 허브, 리피터
허브 여러 대의 컴퓨터를 연결해 네트워크로 보내거나, 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 보내는 장비
리피터 디지털 신호를 증폭시키는 장비
데이터링크 계층 (Data Link) 노드 간 오류 제어, 흐름 제어, 회선 제어
① 단위: 프레임
② 장비:
투브앤스 L2 스위치, 브릿지, NIC, 스위칭 허브
③ 프로토콜:
HPFA HDLC, PPP, Frame Relay, ATM
L2 스위치 목적지 MAC 주소를 기반으로 빠르게 데이터를 전송하는 장비
스포 컷스 프프
1. Store and Forwarding : 데이터를 전부 받은 후 처리
2. Cut Through : 목적지 주소만 확인 후 바로 전송
3. Fragment Frame : 앞 64비트만 읽어 에러 처리 후 전송
브릿지 LAN과 LAN을 연결하는 장비
NIC =네트워크 인터페이스 카드. 외부 네트워크와 빠른 통신을 위해 컴퓨터 내에 설치되는 장비
스위칭 허브 스위치 기능을 가진 허브
HDLC 점대점, 다중점 통신에 사용하는 프로토콜
PPP 통신 노드 간 연결을 위한 프로토콜
Frame Relay 프레임 간 중계기능, 다중화 기능을 통해 빠른 데이터 전송이 가능한 고속 전송 기술
ATM 고정 크기 단위로 전송하는 비동기식 전송 기술
네트워크 계층 데이터 전송을 위한 최적의 경로를 설정
① 단위: 패킷
② 장비:
스라게공망 L3 스위치, 라우터, 게이트웨이, 인터넷 공유기, 망(백본) 스위칭 허브
③ 프로토콜:
아라아라씨지 IP, 라우팅 프로토콜, ARP, RARP, ICMP, IGMP
L3 스위치 3계층에서 동작하는 스위치 (L2 스위치 기능 + L3 라우터 기능을 모두 갖춘 장비)
라우터 최적의 경로를 지정하고 경로에 따라 전송시키는 장비
게이트웨이 다른 통신망에 접속할 수 있게 해주는 장비
인터넷 공유기 하나의 인터렛 라인을 여러 컴퓨터가 공유할 수 있게 해주는 장비
망(백본) 스위칭 허브 광역 네트워크를 커버하는 스위칭 허브
IP 패킷 단위의 네트워크 통신 프로토콜
라우팅 프로토콜 최적의 데이터 전송 경로를 설정하는 프로토콜 립 오스프 비집
ARP IP주소(3계층)을 MAC주소(2계층)으로 변환하는 프로토콜
RARP MAC 주소는 알지만 IP 주소는 모를 때 사용하는 프로토콜
ICMP IP 패킷 처리 시의 문제를 알려주는 프로토콜
IGMP 멀티캐스트 실시간 전송을 위해 사용하는 프로토콜 (화상회의 등)
서브넷 마스크 IP 주소에서 Network와 Host를 구분하는 것
IPv4 32Bit (=4Byte) 주소 체계를 갖는 인터넷 프로토콜 (8비트 * 4부분 = 32)
멀티캐스트, 유니캐스트, 브로드캐스트 전송방식 멀유브
IPv4 구성 찌릿삼구오 (127, 191, 223, 239, 255)
-
D클래스 : 멀티캐스트 용도
- E클래스 : 연구용
IPv6 128 Bit (=16Byte) 주소 체계를 갖는 인터넷 프로토콜 (16비트 * 8부분 = 128)
멀티캐스트, 유니캐스트, 애니캐스트 전송방식 멀유애
IPv6의 특징 확인실패 플플이단헤
1. IP주소 확장
2. 인증 및 보안 기능
3. 실시간 패킷 추적 가능
4. Plug & Play 지원 (실시간 멀티미디어 처리)
5. 이식성 (물리적 위치의 제한 X)
6. 단순 헤더
IPv4 → IPv6 전환 방법 듀터주
1. 듀얼 스택
2. 터널링
3. 주소변환 : 게이트웨이(주소변환기)로 패킷 변환
듀얼 스택 IP 계층에 IPv4, IPv6 프로토콜을 모두 탑재하여 전송 상대에 따라 선택
터널링 인접한 IPv4 망에 터널을 만들고 캡슐화하여 전송
멀티캐스트 같은 데이터를 여러 명의 그룹 수신자들에게 동시에 전송하는 프로토콜
유니캐스트 식별된 고유 주소의 목적지에 1:1로 데이터를 전송하는 프로토콜
브로드캐스트 같은 서브 네트워크의 모든 수신자에게 데이터를 전송하는 프로토콜
애니캐스트 잠재적인 수신자 그룹 안에서 가장 가까운 노드에게 연결해 전송하는 프로토콜
라우팅 프로토콜 종류 립 오스프 비집
1. RIP
2. OSPF
3. BGP
RIP - 동적&내부 라우팅 프로토콜
- 벨만-포드 알고리즘 사용 (거리-벡터 알고리즘 기초) 벨포거백
- 홉 카운트 15
- UDP 포트 520 사용
- 30초마다 정보 공유
OSPF - 동적&내부 라우팅 프로토콜
- 다익스트라 알고리즘 사용 (링크-상태 알고리즘 기초) 다익링상
- 홉카운트 무제한 - RIP의 단점 개선
- AS(자치시스템) 분할 (지역별로 라우팅 관리)
BGP - 동적&외부 라우팅 프로토콜
- AS간 경로 정보 교환
- 경로-벡터 알고리즘 사용
- ISP 사업자간 주로 사용
라우팅 알고리즘 유형 거벡링상
1. 거리-벡터 알고리즘
2. 링크-상태 알고리즘
거리-벡터 알고리즘 인접 라우터와 정보를 교환하여 경로 도출
링크-상태 알고리즘 링크 상태 정보를 모든 라우터에게 전달해 경로 도출 (범위 넓고 복잡함)
QoS (Quality of Service) 데이터의 중요도에 따라 우선순위를 부여해, 데이터 전송 성능을 보장하는 것
전송계층 (Transport) 종단 간 신뢰성 있고 효율적으로 데이터 전송
① 단위: 세그먼트
② 장비: L4 스위치
③ 프로토콜 : TCP, UDP
L4 스위치 OSI 4계층에서 네트워크 단위를 연결하는 장비. TCP/UDP 등 스위칭 수행
TCP  
TCP 특징 신연흐혼
1. 신뢰성 보장 : 패킷 손실, 중복이 없도록 보장 (IP 계층 보완)
2. 연결지향적 : 연결 회선을 통해 통신이 이뤄짐
3. 흐름 제어 : 송신-수신 속도 일치시킴 4. 혼잡 제어 : 네트워크 혼잡도에 따라 송신율 제어
TCP 헤더 구조 소데씨 엑해플윈 체어옵패
1. Source Port Number
2. Destination Port Number
3. Sequence Number : 신뢰성과 흐름 담당
4. Acknowledgement Number : 승인 번호 (수신을 기대하는 다음 번호)
5. HLEN : 헤더 길이
6. Flag Bit : 값 유효 여부 등을 표시하는 플래그
7. Window Size
8. Checksum : 에러 확인
9. Urgent Pointer : 시퀀스 번호로부터의 옵셋
10. Options and Padding
UDP 특성 비비실헤
1. 비신뢰성 : 메시지의 도착을 보장하지 않음
2. 비순서화 : 수신된 메시지 순서 맞추지 않음
3. 실시간 응용 및 멀티캐스팅 가능
4. 단순 헤더 (고정 크기 헤더)
UDP 헤더 구조 소데 랭체다
1. Source Port Number
2. Destination Port Number
3. UDP Length
4. UDP Checksum
5. Data
세션 계층 (Session) 송수신간 연결을 제어
① 단위: 데이터
② 프로토콜:
알넷스스 RPC, NetBIOS, SSH, SSL/TLS
RPC 원격 프로시저 호출. 다른 주소 공간에 있는 프로세스 실행 가능
NetBIOS 응용계층의 애플리케이션에 API 제공
SSH 보안 쉘. 원격 호스트에 접근하기 위한 프로토콜
SSL/TLS 안전한 데이터 전송을 위한 보안 프로토콜 (4계층(응용) - 7계층(전송) 사이에서 안전한 데이터 전송 보장)
표현 계층 (Presentation) 응용프로그램의 데이터를 통신에 알맞은 형태로 만들거나, 하위 계층의 데이터를 사용자가 이해할 수 있는 형태로 만드는 계층
① 단위: 데이터
② 프로토콜: JPEG, MPEG
JPEG 이미지를 위한 표준 규격
MPEG 멀티미디어를 위한 표준 규격
응용 계층 (Application) 사용자가 OSI 환경에 접근할 수 있도록 서비스(인터페이스)를 제공하는 계층
① 단위: 데이터
② 프로토콜:
헷프엣프 에셈팝아맵 텔넷 HTTP, FTP, SMTP, POP3, IMAP, Telnet
HTTP 인터넷에서 데이터를 주고받기 위한 텍스트 기반의 프로토콜
FTP 서버-클라이언트 간 파일 전송을 위한 프로토콜
SMTP 이메일을 보내기 위한 프로토콜
IMAP 이메일을 가져오기 위한 프로토콜 (⇒ 메일 서버에서 불러옴)
POP3 이메일을 가져오기 위한 프로토콜 (⇒ 로컬 PC에 저장 후 불러옴)
Telent 네트워크 연결에 사용하는 응용계층의 프로토콜
패킷 스위칭 패킷으로 데이터를 전송하며, 전송하는 동안만 자원을 사용하는 통신 방식
1. X.25 : 고정된 대역폭 사용, 낮은 성능
2. 프레임 릴레이 : 유연한 대역폭 사용, 가격 저렴
3. ATM : 광대역 전송에 쓰이는 스위칭 기법
서킷 스위칭 서킷이라는 특정 연결을 만들어 독점적으로 사용해 통신하는 방식 (전송 보장)
패킷 스위칭 vs. 서킷 스위칭 패킷 스위칭 : 헤더의 주소 정보에 따라 전송 (이메일 등에 적합)
서킷 스위칭 : 데이터 일부를 송수신 해 경로를 파악 후 전송 (영상 등에 적합)
리눅스 계열 OS 데비안 계열 : Debian GNU, Linux(개발자 최적화), Ubuntu(가장 광범위)
레드헷 계열: Fedora(스마트 설정과 업데이트), CentOS(프로그래밍 최적화)
프로그래밍 언어별 특징 객체지향 언어: JAVA, C#, VB.NET, ABAP
순차적 언어: C++, PHP, Python, Perl, COBOL

정적 언어: JAVA, C#, VB.NET, ABAP, C++, COBOL
동적 언어: PHP, Python, Perl, SQL
개발 지원 도구 1. 요구사항 관리: JFeature
2. 설계: DBdesigner
3. 구현: Eclipse, CodeBlock
4. 테스트: JUnit
5. 빌드: Ant, Jenkins
6. 형상관리: SubVersion
7. 품질관리: jDepend, Mylyn
8. 이슈관리: Mentis, Git
9. 프로젝트 관리: Redmine, OpenProj
개발 인프라 구축 방식 온클하
1. 온프레미스 방식: 외부 인터넷망이 차단된 상태에서, 인트라넷망만을 활용해 개발 환경 구축
2. 클라우드 방식: 서비스를 임대하여 개발환경 구축
3. 하이브리드 방식
클라우드 기반 개발환경 인프라 1) 컴퓨팅 환경 : 프로그램을 설치하고 하드웨어 세팅
2) 스토리지 : 대규모 데이터 저장을 장치 세팅
3) 데이터베이스 : 실데이터를 저장하고 관리하기 위한 세팅, 멀티미디어 데이터 처리를 위한 세팅
4) 네트워킹 전송 : 서비스, 프로그램, 콘텐츠 전달을 위한 환경 세팅
5) 개발자 도구 : 개발을 위한 환경 구축
6) 보안 환경 구축 : 시스템과 데이터 보호를 위한 액세스, 암호화 관리 등
7) 응용 기술 세팅 : AR, VR, 머신러닝, 딥러닝 등
8) 생산성 향상 : 볼륨 자동 확장 환경, 스트리밍 서비스 환경 등 구축
728x90
300x250