1. 운영체제 기초 활용하기
운영체제
- 개요 : 컴퓨터와 사용자 간의 인터페이스로서 동작하는 시스템 소프트웨어
- 기능
- 프로세서, 기억 장치, 입·출력 장치, 파일 및 정보 등의 자원 관리
- 효율적인 자원 관리를 위한 스케줄링 제공
- 사용자 편의성 증대를 위한 인터페이스 제공
- 하드웨어와 네트워크를 관리·제어
- 데이터 관리 및 자원 공유 기능 제공
- 시스템 오류 검출 및 복구
- 자원 보호 기능 제공
- 주요 자원 관리
자원 | 기능 |
프로세스 관리 | 프로세스 스케줄링 및 동기화 관리 담당 |
프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 담당 | |
기억장치 관리 | 프로세스에게 메모리 할당 및 회수 관리 담당 |
주변장치 관리 | 입·출력 장치 스케줄링 및 전반적인 관리 담당 |
파일 관리 | 파일의 생성과 삭제, 뱐걍, 유지 등의 관리 담당 |
- 성능 평가 기준
기준 | 설명 |
처리 능력(Throughput) | 일정 시간 내에 시스템이 처리하는 일의 양 |
반환 시간(Turn Around Time) | 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간 |
사용 가능도(Availability) | 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 |
신뢰도(Reliability) | 시스템이 주어진 문제를 정확하게 해결하는 정도 |
Windows
-
개요 : 1990년대 마이크로소프트(Microsoft) 사가 개발한 운영체제
-
특징
-
그래픽 사용자 인터페이스(GUI : Graphic User Interface)
-
선점형 멀티태스킹(Preemptive Multi-Tasking)
-
PnP(Plug and Play, 자동 감지 기능)
-
OLE(Object Linking and Embedding)
-
255자의 긴 파이명
-
Single-User 시스템
-
UNIX
-
개요 : 1960년대 AT&T Bell 연구소, MIT, General Electric이 공동 개발한 운영체제
-
특징
-
시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제
-
소스가 공개된 개방형 시스템(Open System)
-
대부분 C 언어로 작성되어 이식성과 호환성이 높음
-
다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원
-
네트워킹 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합
-
트리 구조의 파일 시스템
-
- 시스템 구성
구성 | 설명 |
커널(Kernel) |
UNIX의 핵심, 부틸될 때 주기억장치에 적재된 후 상주하며 실행됨 |
하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당 | |
프로세스 관리, 기억장치 관리, 파일 관리, 입·출력 관리, 프로세스간 통신 등 여러 기능을 수행 | |
쉘(Shell) | 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기 |
시스템과 사용자 간의 인터페이스를 담당 | |
주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재 | |
파이프라인 기능을 지원하고, 입·출력 재지정을 통해 출력과 입력의 방향을 변경 가능 | |
유틸리티 프로그램 (Utility Program) |
사용자가 작성한 응용 프로그램을 처리하는 데 사용 |
에디터, 컴파일러, 인터프리터, 디버거 등 |
LINUX
-
개요 : 1991년 리누스 토발즈(Linus Torvalds)가 UNIX를 기반으로 개발한 운영체제
-
특징
-
프로그램 소스 코드가 무료로 공개됨
-
프로그래머가 원하는 기능을 추가 가능
-
다양한 플랫폼에 설치하여 사용 가능하며, 재배포가 가능
-
UNIX와 완벽하게 호환되며 대부분의 특징이 UNIX와 동일
-
MacOS
-
개요 : 1980년대 애플(Apple) 사가 UNIX를 기반으로 개발한 운영체제
-
특징
-
애플 사에서 생산하는 제품에서만 사용
-
드라이버 설치 및 install과 uninstall의 과정이 단순함
-
기억장치 관리
-
개요 : 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 위치 등을 지정하여 효율적으로 사용
-
기억장치 계층 구조
-
기억장치 관리 전략
전략 | 설명 |
반입(Fetch) |
보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정하는 전략 |
요구 반입(Demand Fetch) : 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재 | |
예상 반입(Anticipatory Fetch) : 참조될 프로그램이나 데이터를 미리 예상하여 적재 | |
배치(Placement) |
새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지 결정하는 전략 |
최초 적합(First Fit) : 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치 |
|
최적 적합(Best Fit) : 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치 | |
최악 적합(Worst Fit) : 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치 | |
교체 (Replacement) |
주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 어느 영역을 교체하여 사용할 것인지 결정하는 전략 |
종류 : FIFO, OPT, LRU, LFU, NUR, SCR 등 |
가상기억장치
-
개요 : 보조기억장치의 일부를 주기억장치처럼 사용
-
특징
-
주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용
-
주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있음
-
가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업이 필요
-
블록 단위로 나누어 사용하므로 단편화를 해결 가능
-
-
구현 방법
기법 | 설명 |
페이징 (Paging) |
가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 적재시켜 실행 |
- 페이지(Page) : 프로그램을 일정한 크기로 나눈 단위 - 페이지 프레임(Page Frame) : 페이지 크기로 일정하게 나누어진 주기억장지의 단위 - 페이지 맵 테이블(Page Map Table) : 주소 변환을 위한 페이지의 위치 정보 |
|
외부 단편화는 발생하지 않으나 내부 단편화는 발생 가능 | |
페이지 맵 테이블 사용으로 비용이 증가되고, 처리 속도가 감소 | |
세그먼테이션 (Segmentation) |
가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 적재시켜 실행 |
- 세그먼트(Segmentation) : 프로그램을 논리적인 크기로 나눈 단위, 각 세그먼트는 고유한 이름과 크기를 갖음 - 세그먼트 맵 테이블(Segment Map Table) : 주소 변환을 위한 세그먼트의 위치 정보 |
|
내부 단편화는 발생하지 않으나 외부 단편화는 발생 가능 | |
기억공간을 절약하기 위해 사용 |
-
관리 사항
사항 | 설명 |
페이지 크기 | 페이지 크기가 작을 경우 - 페이지 단편화가 감소, 페이지가 주기억장치로 이동하는 시간이 단축 - 효율적인 워킹 셋을 유지 - Locality에 더 일치할 수 있기 때문에 기억장치 효율이 높음 - 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐 - 디스크 접근 횟수가 많아져 전체적인 입·출력 시간이 증가 |
페이지 크기가 클 경우 - 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐 - 디스크 접근 횟수가 줄어들어 전체적인 입·출력 효율성이 증가 - 페이지 단편화가 증가, 페이지가 주기억장치로 이동하는 시간이 증가 - 프로세스 수행에 불필요한 내용 까지도 주기억장치에 적재될 수 있음 |
|
구역성 (Locality) |
프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질 |
시간 구역성(Temporal Locality) : 프로세스 실행중 하나의 페이지를 집중적으로 액세스 하는 현상 | |
공간 구역성(Spatial Locality) : 프로세스 실행중 일정 위치의 페이지를 집중적으로 액세스 하는 현상 | |
워킹 셋 (Working Set) |
프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합 |
자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상 | |
페이지 부재 빈도 (Page Fault Frequency) |
페이지 부재가 일어나는 횟수를 의미 |
페이지 부재율에 따라 주기억장치에 있는 페이지 프레임의 수를 조절하여 적정 수중으로 유지 | |
![]() http://blog.skby.net/pff-page-fault-frequency/ |
|
프리페이징 (Prepaging) |
처음의 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 페이지를 한번에 페이지 프레임에 적재하는 기법 |
기억장치에 들어온 페이지들 중에서 사용되지 않는 페이지가 많을 수도 있음 | |
스래싱 (Thrashing) |
프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상 |
프로세스 수행 과정중 자주 페이지 부재가 발생함으로써 나타나는 현상으로, 전체 시스템의 성능이 저하됨 | |
![]() https://faithpac27.tistory.com/entry/%EC%93%B0%EB%A0%88%EC%8B%B1-Thrashing-%EC%9D%B4%EB%9E%80 |
페이지 교체 알고리즘
-
개요 : 페이지 부재(Page Fault)가 발생했을 때 주기억장치의 모든 페이지 프레임이 사용 중이면 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 기법
-
종류
알고리즘 | 설명 |
OPT (OPTimal replacement) |
앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법 |
벨레이디(Belady)가 제안, 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘 | |
FIFO (First In First Out) |
각 페이지가 주기억장치에 적재될 때, 시간을 기억하여 가장 먼저 들어온 페이지를 교체하는 기법 |
![]() |
|
LRU (Least Recently Used) |
각 페이지마다 계수기(Counter)나 스택(Stack)을 두어 현 시점에서 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법 |
![]() |
|
LFU (Least Frequently Uesd) |
사용 빈도가 가장 적은 페이지를 교체하는 기법 |
NUR (Not Used Recently) |
LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법 |
최근의 사용 여부를 확인하기 위해서 각 페이지마다 참조 비트와 변형 비트를 사용 | |
![]() |
|
SCR (Second Chance Replacement) |
가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법 |
FIFO 기법의 단점을 보완하는 기법 |
프로세스
-
개요 : 프로세서(CPU)에 의해 처리되는 사용자 프로그램, 즉 실행 중인 프로그램을 의미
-
PCB(Process Control Block) : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳
-
스레드(Thread) : 프로세스 내에서의 작업 단위, 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
-
사용자 수준의 스레드 : 사용자가 만든 라이브러리를 사용하여 운용, 속도는 빠르지만 구현이 어려움
-
커널 수준의 스레드 : 운영체제의 커널에 의해 운용, 구현이 쉽지만 속도가 느림
-
-
프로세스 상태
상태 | 설명 |
제출(Submit) | 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태 |
접수(Hold) | 제출된 작업이 스풀 공간인 디스크에 할당 위치에 저장된 상태 |
준비(Ready) | 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태 |
프로세스는 준비상태 큐에서 실행을 준비중 | |
실행(Run) | 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태 |
입·출력(I/O) 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이 | |
수행이 완료되기 전에 프로세서 할당 시간이 종료(Timer Run Out)되면 준비 상태로 전이 | |
대기(Wait) | 프로세스에 입·출력 처리가 완료될 때까지 대기하고 있는 상태 |
종료(Terminated) | 프로세스의 실행이 끝나고 할당이 해제된 상태 |
-
프로세스 전이
전이 | 설명 |
Dispatch | 준비 상태에서 대기하고 있는 프로세스 중 프로세서를 할당받아 실행 상태로 전이되는 과정 |
Wake Up | 입·출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정 |
Spooling | 시스템의 성능 향상을 위해 입·출력 데이터를 나중에 한 번에 입·출력하기 위해 디스크에 저장하는 과정 |
스케줄링
-
개요 : 프로세스가 생성되어 실행될 때 필요한 시스템의 자원을 해당 프로세스에게 할당하는 작업
-
스케줄링 종류
종류 | 설명 |
장기 스케줄링 | 프로세스가 시스템의 자원을 차지할 수 있을지 결정하여 준비상태 큐로 보내는 작업 |
작업 스케줄링(Job Scheduling)이라고도 하며, 작업 스케줄러에 의해 수행 | |
중기 스케줄링 | 어떤 프로세스들이 CPU를 할당받을지 결정하는 작업 |
단기 스케줄링 | 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업 |
프로세서 스케줄링(Processor Scheduling)이라고도 하며, 프로세서 스케줄러에 의해 수행 |
-
스케줄링 기법
기법 | 설명 |
비선점 스케줄링 (Non-Preemptive) |
이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법 |
프로세스가 CPU를 할당받으면 완료될 때까지 CPU를 사용 | |
응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합 | |
알고리즘 종류 : FCFS, SJF, 우선순위, HRN, 기한부 등 | |
선점 스케줄링 (Preemptive) |
프로세스가 CPU를 할당받아 실행하고 있을 때, 우선순위가 높은 프로세스가 CPU를 강제로 빼앗아 사용 가능한 스케줄링 기법 |
우선순위가 높은 프로세스를 빠르게 처리 가능 | |
빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용 | |
알고리즘 종류 : Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등 |
2. 데이터베이스 기초 활용하기
데이터베이스 관리 시스템
-
개요 : 데이터를 저장하고 저장된 데이터를 관리하여 필요한 정보를 제공해 주는 전체 시스템
-
데이터베이스 관리 시스템 특징
특징 | 설명 |
데이터 무결성 | 부적절한 자료가 입력되어도 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질 |
데이터 일관성 | 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없는 성질 |
데이터 회복성 | 장애가 발생했을 시 특정 상태로 복구되어야 하는 성질 |
데이터 보안성 | 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질 |
데이터 효율성 | 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 요구 조건을 만족시켜야 하는 성질 |
-
데이터베이스 관리 시스템 종류
-
계층형(Hierarchical) DBMS : 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스
-
망형(Network) DBMS : 데이터의 구조를 네트워크 상의 망상 형태로 논리적으로 표현한 데이터 모델
-
관계형(Relational) DBMS : 데이터를 저장하는 테이블의 일부를 다른 테이블과 상관관계를 정리한 데이터베이스 관리 시스템
-
E-R 모델
-
개요 : 개념적 데이터 모델의 가장 대표적인 것, 1976년 피터 첸에 의해 제안
-
특징
-
개체 타입(Entity Type)과 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적으로 표현
-
데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사
-
특정 DBMS를 고려한 것이 아님
-
1:1, 1:N, N:M 등의 관계 유형을 제한 없이 표현 가능
-
-
ERD(E-R Diagram) : E-R 모델의 기본 아이디어를 이해하기 쉽게 기호를 사용하여 시각적으로 표현한 그림
기호 | 의미 |
![]() |
개체(Entity) 타입 |
![]() |
관계(Relationship) 타입 |
![]() |
속성(Atribute) 타입 |
![]() |
다중 속성 |
![]() |
기본키 속성 |
![]() |
복합 속성 |
![]() |
1:1, 1:N, N:M 등의 개체 간 관계에 대한 대응수 |
![]() |
개체 타입과 속성을 연결 |
3. 네트워크 기초 활용하기
네트워크
-
개요 : 통신설비를 갖춘 컴퓨터로 서로 연결하는 조직이나 체계, 통신망을 의미
-
형태
-
LAN(Local Area Network) : 한 건물 또는 작은 지역을 커버하는 네트워크
-
CAN(Campus Area Network): LAN보다 더 큰 규모에서 사용, 서로 다른 캠퍼스 기관과 사무실을 연결하는 네트워크
-
WAN(Wide Area Network) : 두 개 이상의 LAN을 넓은 지역에 걸쳐 연결하는 네트워크
-
Intranet : 인터넷에서 사용하는 회선과 여러 기반 기술을 활용한 사설 네트워크
-
OSI(Open System Interconnection) 7 계층
-
개요 : 다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약(Protocol)
-
OSI 7 계층 구조
계층 | 계층 구성 | PDU | 계층별 역할 | 계층별 프로토콜 | |
상 위 계 층 |
7계층 | Application | Data | 서비스 제공 | FTP, POP, SMTP, Telent, HTTP, TFTP, SNMP, DNS, DHCP |
6계층 | Presentation | 포맷 변환 | JPEG, MPEG, SMB | ||
5계층 | Session | 응용 제어 | SSH, TLS | ||
하 위 계 층 |
4계층 | Transport | Segments | 데이터 전송 | TCP, UDP |
3계층 | Network | Packets | 경로 선택 | IP, ICMP, IGMP, ARP, RARP | |
2계층 | Data Link | Frames | 에러 관리 | MAC, LLC, PPP | |
1계층 | Physical | Bits | 물리적 접속제어 | RS232C |
네트워크 장비
-
네트워크 인터페이스 카드(NIC : Network Interface Card) : 컴퓨터와 컴퓨터 또는 네트워크를 연결하는 장치, 정보 전송 시 정보가 케이블을 통해 전솔 될 수 있도록 정보 형태를 변경
-
허브(Hub) : 한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치, 각 회선을 통합적으로 관리하며 신호 증폭 기능을 하는 리피터의 역할도 포함
-
더미 허브(Dummy Hub) : 네트워크에 흐르는 모든 데이터를 단순히 연결하는 기능만을 제공
-
스위칭 허브(Swiching Hub) : 네트워크상에 흐르는 데이터의 유무 및 흐름을 제어하여 각 노드가 허브의 최대 대역폭을 사용 가능한 지능형 허브
-
-
리피터(Repeater) : 전송되는 신호가 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전손 하는 역할을 수행
-
브리지(Bridge) : LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹(세그먼트)을 연결하는 기능을 수행
-
스위치(Switch) : 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 구성하는 장치
-
라우터(Router) : 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가됨
-
게이트웨이(Gateway) : 전 계층(1~7 계층)의 프로토콜 구조가 다른 네트워크의 연결을 수행
네트워크 프로토콜
-
개요 : 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약
-
기본 요소
-
구문(Syntax) : 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정
-
의미(Semantics) : 두 기기 간의 정보 전송을 위한 협조사항과 오류 관리를 위한 제어 정보를 규정
-
시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정
-
-
기능
기능 | 설명 |
단편화 | 송식 측에서 전송할 데이터를 정송에 알맞은 일정 크기의 작은 블록으로 자르는 작업 |
재결합 | 수신 측에서 단편화된 블록을 원래의 데이터로 모으는 것 |
캡슐화 | 단편화된 데이터에 프로토콜 제어 정보 등의 정보를 부가하는 것 |
흐름 제어 | 수신 측의 처리 능력에 따라 송식 측에서 송신하는 데이터의 전송량이나 전송 속도를 조절하는 기능 |
오류 제어 | 전송중에 발생하는 오류를 검출하고 정정하여 데이터나 제어 정보의 파손에 대비하는 기능 |
동기화 | 송·수신 측이 같은 상태를 유지하도록 타이밍을 맞추는 기능 |
순서 제어 | 전송되는 데이터 블록(PDU)에 전송 순서를 부여하는 기능 |
주소 지정 | 데이터가 목적지까지 정확하게 전송될 수 있도록 목적지 이름, 주소, 경로를 부여하는 기능 |
다중화 | 한 개의 통신 회선을 여러 가입자들이 동시에 사용하도록 하는 기능 |
경로 제어 | 송·수신 측 간의 송신 경로 중에서 최적의 패킷 교환 경로를 설정하는 기능 |
TCP/IP
-
개요 : 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
-
TCP(Transmission Control Protocol) : OSI 7 계층의 전송 계층에 해당, 신뢰성 있는 연결형 서비스를 제공
-
IP(Internet Protocol) : OSI 7계층의 네트워크 계층에 해당, 데이터그램을 기반으로 하는 비연결형 서비스를 제공
-
TCP/IP 구조
OSI | TCP/IP | 기능 |
응용 계층 | 응용 계층 | 응용 프로그램 간의 데이터 송·수신 제공 |
표현 계층 | ||
세션 계층 | ||
전송 계층 | 전송 계층 | 호스트들 간의 신뢰성 있는 통신 제공 |
네트워크 계층 | 인터넷 계층 | 데이터 전송을 위한 주소 지정 |
데이터 링크 계층 | 네트워크 인터페이스 계층 | 실제 데이터(프레임)를 송·수신 하는 역할 |
물리 계층 |
'2020 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 프로그래밍 언어 활용(2/2) (0) | 2020.07.17 |
---|---|
[정보처리기사 실기] 프로그래밍 언어 활용(1/2) (0) | 2020.07.16 |
[정보처리기사 실기] 소프트웨어 개발보안 구축 (0) | 2020.07.13 |
[정보처리기사 실기] SQL 응용 (0) | 2020.07.11 |
[정보처리기사 실기] 애플리케이션 테스트 관리 (0) | 2020.07.09 |