Joon's Space
10. 응용 SW 기초기술 활용 본문
레지스터(Register)
처리 중인 데이터나 처리 결과를 임시 보관하는 기능을 하며 산술 연산이나 정보 해석, 전송 등을 할 수 있는 일정 길이의 정보를 저장하는 CPU 내부의 초고속 기억장치.
종류
- PC(Program Counter) - 다음에 인출할 명령어의 주소를 가지고 있는 레지스터.
- MAR(Memory Address Register) - 메모리 주소를 일시적으로 저장하여 사용되는 레지스터
- MBR(Memory Buffer Register) - 기억장치에 쓰여질 데이터 혹은 기억장치로부터 읽혀진 데이터를 일시적으로 저장하는 버퍼 레지스터.
- IR(Instruction Register) - 가장 최근에 인출된 명령어 코드가 저장되는 레지스터.
- AC(Accumulator) - 데이터나 연산결과를 일시적으로 저장하는 레지스터.
인터럽트(Interrupt)
프로그램 실행 중 CPU의 현재 처리 순서를 중단시키고 다른 동작을 수행하도록 요구하는 시스템동작.
처리 루틴 순서
인터럽트 요청 → 인터럽트 인식 → 현재상태 보존 → 요청 인터럽트 서비스로 분기 및 서비스 → 사용자 상태 복구 및 재개
명령어 수행과정(Instruction Cycle)
- 명렁어 사이클은 인출-해독-실행-저장의 순서.
- Fetch 한 명령어의 operand가 간접주소일 경우: Indirect Cycle
- Fetch 한 명령어의 operand가 직접주소일 경우: Execute Cycle
구역성(Locality)
프로그램의 어느 한 특정 부분만 한동안 집중적으로 참조되는 현상
종류
- 시간 구역성 - 최근에 액세스된 프로그램이나 데이터가 가까운 미래에 다시 액세스될 가능성이 높다.
- 공간 구역성 - 기억장치 내 인접하여 저장된 데이터들이 연속적으로 액세스 될 가능성이 높다.
- 순차 구역성 - 분기하지 않는 한, 명령어들은 기억장치에 저장된 순서대로 인출되어 실행된다.
폴링(Polling) 방식
인터럽트 체제 구현방식 중 소프트웨어에 의한 우선순위 구현방식.
DMA(Direct Memory Access)
입출력 장치 제어기(I/O Device Controller)가 CPU에 의한 프로그램의 실행 없이 자료의 이동을 하는 방식.
시스템 소프트웨어의 종류
- 운영체제(Operating System) - 하드웨어와 소프트웨어 자원을 관리하고 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 프로그램
- 어셈블러(Assembler) - 어셈블리어를 기계어로 변환해주는 프로그램
- 컴파일러(Compiler) - 고급 언어로 작성한 원시 프로그램을 기계어인 목적 프로그램으로 바꾸어 주는 프로그램
- 인터프리터(Interpreter) - 고급 언어나 코드화된 중간 언어를 입력 받아 목적 프로그램 생성 없이 직접 기계어를 생성하여 실행해주는 프로그램
- 전처리기(Preprocessor) - 원시 프로그램을 번역하기 전에 미리 언어의 기능을 확장한 원시 프로그램을 생성하는 시스템 프로그램 ex) C언어 #include 문
- 링커(Linker) - 서로 독립적으로 작성되고 번역된 목적 프로그램을 호출 및 연계시키는 시스템 프로그램.
- 로더(Loader) - 실행 Code를 주 기억장치에 적재하여 실행 가능하도록 해주는 시스템 프로그램.
- Allocation(할당) → Linking(링킹) → Relocation(재배치) → Loading(적재)
쉘(Shell)
UNIX에서 컴퓨터 내부를 관리하는 Kernel과 사용자 간의 인터페이스를 담당하며, 세션 별 변수 설정 등 사용자 지정 상태로 사용자가 요청한 명령어를 해석하는 기능을 하는 것.
파이프라인(Pipeline)
단위 시간 내에 하나 이상의 명령어를 중첩 수행하여 Performance를 향상시키는 멀티프로세스 환경에서의 명령어 처리 매커니즘.
Flynn의 컴퓨터 시스템 분류 제안
Flynn은 컴퓨터의 명령어와 데이터의 흐름 개수에 따라 단일명령어/단일 데이터 흐름(SISD), 단일명령어/다중 데이터 흐름(SIMD), 다중명령어/단일 데이터 흐름(MISD), 다중명령어/다중 데이터 흐름(MIMD)로 분류한다.
운영체제 유형
- 다중 프로그래밍 시스템(멀티 프로그래밍) - CPU의 효율을 극대화하기 위해 여러 개의 프로그램이 마치 동시에 실행되는 것처럼 처리하는 방식
- 시분할 시스템 - 프로세서 스케줄링과 다중 프로그래밍을 사용해 각 사용자에게 컴퓨터를 시간적으로 분할 사용
- 분산처리 시스템 - 시스템마다 운영 체제와 메모리를 가지고 독립적으로 운영되며 필요할 때 통신하는 시스템
- 다중처리 시스템 - 마이크로 프로세서 여러 개를 연결해 다중 프로세서를 생성
- 일괄처리 시스템 - 일정량의 데이터를 모아서 한꺼번에 일괄 처리하는 방식
- 실시간처리 시스템 - 데이터에 대한 처리요구 발생 시 즉시 처리 응답
위상에 따른 분산 컴퓨팅 구조 분류
- 완전 연결 구조
- 부분 연결 구조
- 계층 구조
- 성형 구조
- 환형 구조
- 다중 접근 버스 구조
페이지 교체 알고리즘
- FIFO 알고리즘 - 메모리에 올라온 지 가장 오래된 페이지를 교체하는 메모리 교체 알고리즘
- 무작위(임의) 페이지 교체 (Random Page Replacement) - 특별한 사용자에게 차이를 두지 않고 교체하는 기법
- OPR(Optimal Page Replacement) 최적 페이지 교체 - 앞으로 가장 오랫동안 사용되지 않을 페이지를 찾아서 교체
- LRU(Least Recently Used) 최저 사용 빈도 - 가장 오랫동안 사용되지 않을 페이지 교체
- LFU(Least Frequently Used) 최소 사용 빈도 - 사용빈도가 가장 적은 페이지를 교체하는 기법
- NUR(Not Used Recently) 최근 사용 전무 - 최근에 사용되지 않은 페이지를 교체하는 기법
페이징(Paging) 기법
가상 기억장치 구현에서 고정되게 분할한 용량(페이지)를 주기억장치에 사상시키는 기법.
가상 메모리(Virtual Memory)
물리적인 메모리 용량보다 더 큰 용량의 프로그램을 실행할 수 있도록 보조 기억 장치 용량에 해당하는 용량만큼 메모리 용량을 확장하여 사용할 수 있도록 하는 기법.
가장 메모리 배치 정책
- 최초 적합(First Fit) - 프로그램, 데이터가 들어갈 수 있는 빈 영역의 첫 번쨰 분할 영역에 배치
- 최적 적합(Best Fit) - 프로그램, 데이터가 들어갈 수 있는 빈 영역 중 단편화를 가장 적게 남기는 분할 영역에 배치
- 최악 적합(Worst Fit) - 프로그램, 데이터가 들어갈 수 있는 빈 영역 중 가장 큰 영역에 배치
스래싱(Thrashing) 방지 기법
- 프리페이징(Prepaging) - 과도한 페이지 부재를 줄이기 위해 모든 페이지를 한 번에 페이지 프레임에 적재한느 방법
- 워킹세트(Working Set) - 하나의 프로세스에 자주 참조되는 페이지를 모아놓은 기법으로 그 집합에 속하지 않은 페이지를 교체
- 페이지 프레임 조정(Page Fault Frequency) - 현재 페이지 부재와 바로 전 페이지 부재 사이의 시간을 관찰하여 그 시간이 지금까지 최소시간보다 크면 그 사이에 호출되지 않았던 페이지들을 모두 제거하는 기법.
교착상태(Dead Lock)
다중 프로세스 환경 하에 서로 다른 프로세스가 각자 자신이 소유한 자원을 포기하지 않고, 상대 프로세스의 자원을 무한대기하고 있는 상태
교착상태 발생조건
- 상호배제(Mutual Exclusive) - 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없다.
- 점유와 대기(Block & Wait) - 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
- 비 선점(Non Preemption) - 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능
- 환형 대기(Circular Wait) - 두 개 이상의 프로세스간 자원의 점유와 대기가 하나의 원형을 구성한 상태
상 점 비 환
교착상태 해결반안
- 예방(Prevention) - 상호배제, 점유와 대기, 비 선점, 환형 대기 조건의 부정
- 회피(Avoidance) - Banker’s Algorithm (은행가 알고리즘), Wait-die, wound-wait 알고리즘
- 발견(Detection) - 시스템의 상태를 감시알고리즘을 통해 교착상태 검사, 자원할당 그래프, Wait for Graph
- 회복(Recovery) - Deadlock이 없어질 때까지 프로세스를 순차적으로 kill하여 제거
예 회 발 회
임계영역(Critical Section)
여러 개의 프로세스가 공유하는 데이터 및 자원에 대해 어느 한 시점에는 하나의 프로세스만 사용하도록 지정된 공유 영역.
→ 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 모든 프로세스가 해당 공유 자원을 사용하지 못하도록 제어하는 방법(상호배제의 개념)
상호배제 해결방안
- 소프트웨어적 해결방안
- 데커(Dekker) 알고리즘 - 두 개의 프로세스를 위한 상호배제에 대한 최초의 소프트웨어 기법
- 피터슨(Peterson) 알고리즘 - 두 개의 Boolean Flag(사용의사)와 int turn(차례)
- 램포트(Lamport), 베이커리 알고리즘 - 분산처리 환경에서 유용한 상호배제 알고리즘, 수행 순서를 위한 번호표 부여
- 세마포어(Semaphore) - 세마포어 변수(S) 및 두 개의 연산(P, V)으로 임계영역에 접근하는 잠금 장치에 대한 이론적 기반
- 초기화 - 세마포어에 하나의 대기큐를 할당하고 초기화 S = 1
- P 연산 - wait() 수행, While s = 0 do wait, S = S -1
- V 연산 - signal() 수행, S = S + 1
i-node(identification node)
- 각 파일에 대한 정보를 기억하는 약 120byte 고정된 크기의 자료구조
- Unix에서 i-node는 파일/디렉토리의 정보를 통해 할당, 적용, 생성, 링크, 삭제의 역할
디스크 스케줄링(disk scheduling)
운영 체제가 디스크를 읽거나 쓰려는 요청을 받았을 때, 우선순위를 정해 관리하는 기법
- 이동디스크 스케줄링
- FCFS(First Come First Service) - 요청 큐에 들어온 순서대로 처리
- SSTF(Shortest Seek Time First) - 현재 헤드 위치에서 가장 가까운 트랙의 요청 처리
- SCAN(엘리베이터 알고리즘) - 진행방향 상의 가장 가까운 트랙의 요청을 먼저 서비스 한다.
- LOOK - SCAN과 같이 처리하되 처리할 블록이 없으면 끝까지 가지 않고 돌아온다.
- 에센바흐 기법(Eschenbach) - 헤드는 C-SCAN처럼 움직이며, 예외적으로 모든 실린더는 그 실린더에 요청이 있든 없든 간에 전체트랙이 한 바퀴 회전할 동안의 서비스를 받는다.
- 고정디스크 스케줄링
- SLTF(Shortest Latency Time First) - 최단 지연시간 우선 전략
- SPTF(Shortest Positioning Time First) - 최단 위치 결정시간 우선 전략
- SATF(Shortest Access Time First) - 최단 접근시간 우선 전략
스레드(Thread)
다중 프로그래밍 시스템에서 프로세스(Process)나 태스크(Task)보다 더 작은 단위이며, 실행 환경을 공유시켜 문맥교환의 부하를 줄이고, 기억장소의 낭비를 줄이는 프로그램 단위
다단계 피드백 큐(Multilevel Feedback Queue)
새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록(aging) 점점 낮은 우선순위 큐로 이동한다. (맨 마지막 단계에서는 Round Robin 처리)
SJF(Shortest Job First)
실행시간이 가장 짧은 작업 순으로 CPU 수행하는 비선점 스케줄링 기법.
HRN(Highest Response-Ratio Next)
SJF의 약점 보완 기법으로 실행시간이 긴 프로세스를 차별하고 짧은 프로세스를 지나치게 선호하는 점을 보강한 알고리즘으로 각 프로세스의 우선순위를 서비스 시간만이 아니고 서비스 대기시간도 계산하는 스케줄링 기법
우선순위 = (대기시간 + 서비스 시간) / 서비스 시간
분산 운영 체제
분산시스템 환경에서 자원 관리와 사용자 인터페이스 기능을 제공하는 시스템 소프트웨어
특징
- Resource Sharing - 한 노드의 사용자와 다른 노드 사용자 간에 유용한 자원들은 공유
- Reliability - 여러 시스템 중 일부 시스템에 고장이 발생하는 경우에도 전체 시스템이 정상적으로 운영
- Transparency - 복수의 컴퓨터를 마치 1대의 기계처럼 다루는 특성으로 특정 자원의 물리적인 위치를 알지 못하여도 사용 가능
- Expandability - 노드들이 통신으로 상호 연결되어 수평적으로 확장
- Autonomy - 시스템을 구성하는 각 노드들은 각기 어느 정도의 자율성을 가진다.
교착상태
다중 프로세스 환경 하에 서로 다른 프로세스가 각자 자신이 소유한 자원을 포기하지 않고, 상대 프로세스의 자원을 무한대기하고 있는 상태
교착 상태의 필요충분조건 4가지
상호배제(Mutual Exclusive), 비선점(Non preemption), 점유와 대기(Block & Wait), 환형 대기(Circular Wait)
NoSQL
데이터 모델링을 위한 고정 데이터 스키마 없이 키(Key) 값을 이용해 다양한 형태의 저장과 접근이 가능한 데이터 베이스
수십 대에서 수천 대 규모로 구성된 시스템에서도 데이터의 특성에 맞게 효율적으로 데이터를 검색/처리할 수 있는 데이터베이스이다.
데이터 저장구조
- Key/Value Store - 가장 기본적인 패턴으로 대부분의 NoSQL은 다른 데이터 모델을 지원하더라도, 기본적으로 Key/Value의 개념을 지원함.
- Ordered Key/Value Store - Key/Value Store의 확장된 형태로 Key/Value Store와 데이터 저장 방식은 동일 하나, 데이터가 내부적으로 Key를 순서로 Sorting 되서 저장됨.
- Document Key/Value Store - Key/Value Store의 확장된 형태로, Key에 해당하는 Value 필드에 데이터를 저장하는 구조는 같으나, 저장되는 Value의 데이터 타입이 Document 타입을 사용함.
3단계 데이터 스키마 구조
데이터베이스를 관점(View)에 따라 3개의 계층으로 분리하여 데이터베이스 사용자에게 내부적으로 복잡한 데이터베이스 구조를 단순화시킨 관점을 제공하는 사상.
- 내부단계 - 물리적인 기억장소와 가장 가까운 단계로서, 데이터가 물리적으로 저장되는 방법과 관련이 있다.
- 외부단계 - 사용자와 가장 가까운 단계로 사용자 개개인이 보는 자료에 대한 관점과 관련이 있다.
- 개념단계 - 내부와 외부단계의 사이에 위치하는 간접(Indirection) 또는 중간연결(Interconnection) 단계이며, 데이터베이스 전체에 대한 추상적 설명으로 불 수 있다.
ER 모델
- 개념적 설계 단계에서 사용하는 모델로서 개념적 데이터 모델의 가장 대표적인 모델.
- 1970년 피터 첸(Peter Chen)에 의해 개발됨.
- 개체, 속성, 관계 등에 대하여 용이하게 표현할 수 있는 ER 도형(ERD: Entity Relationship Diagram)을 정의
카디널리티(Cardinality)
특정 집합에 속한 원소의 수, 릴레이션에 입력된 튜플(행)의 수, 한 개체가 관계를 통해 다른 개체와 관련된 개체들의 수.
무결성
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성.
무결성 제약조건 종류
- 개체 무결성 - 모든 테이블은 기본키를 가져야 하며, 기본키를 구성하는 속성으로 Null과 Unique Key가 있다. 각각 Null값이나 중복된 값을 가질 수 없다는 뜻.
- 참조 무결성 - 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지되어야 한다. 다시 말해, 외래키 값은 Null이거나 참조하는 테이블의 기본키값과 동일해야 한다.
- 도메인 무결성 - 테이블에 존재하는 필드의 무결성을 보장해야 하는 것으로, 데이터의 타입에 맞아야 한다. 예를 들어, ‘성별’이라는 속성에서 ‘남’, ‘여’ 를 제외한 데이터가 제한되어야 한다.
- NULL 무결성 - 테이블의 특정 속성 값이 Null이 될 수 없도록 제한했다면 해당 속성에 Null이 있으면 안된다.
- 고유 무결성 - 테이블의 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 각 레코드가 가지는 값들이 달라야한다. 예를 들어, ‘이름’, ‘나이’는 서로 같은 값이 있을 수 있지만, ‘학번’의 경우, 서로 다른 값을 가져야한다.
관계대수, 관계해석
- 관계대수 - 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어, Select, Project, Join, Division
- 관계해석 - 수학의 술어해석에 기반을 두고 있으며 원하는 정보가 무엇이라는 것만 정의하는 비절차적인 언어
관계대수로 표현한 식은 관계해석으로 표현할 수 있음.
트랜잭션(Transaction)
데이터베이스의 상태를 변화시키기 위해서 수행하는 최소 작업의 단위
- Commit - 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성 있는 상태에 있을 때, 하나의 트랜잭션이 끝났다라는 것을 알려주기위해 사용하는 연산
- Rollback - 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션을 처음부터 다시 시작하거나, 부분적으로만 연산된 결과를 취소하는 연산
데이터베이스 트랜잭션의 상태전이도는 다음과 같습니다.
- 활동 → 부분완료 → Commit → 완료 → 종료
- 활동 → 실패 → Rollback → 철회 → 종료
ACID 특징
- Atomicity(원자성) - 분해할 수 없는 최소 단위 → Commit/Rollback
- Consistency(일관성) - 트랜잭션이 실행 성공 후 항상 모순 없이 일관성 있는 DB 상태 보존 → 참조 무결성 기법
- Isolation(고립성) - 현재 수행 중인 트랜잭션이 완료될 때까지 트랜잭션이 생성한 중간 연산 결과에 다른 트랜잭션들이 접근할 수 없음을 의미 → Serializable, Repeatable Read, Read Commit, Read Uncommit
- Durability(영속성) - 성공이 완료된 트랜잭션의 결과는 영구(속)적으로 데이터베이스에 저장됨 → 회복기법
데이터베이스 장애
데이터베이스의 장애는 DBMS 내의 논리적, 물리적 오류에 의해 트랜잭션의 ACID를 만족시키지 못하는 상태.
- 트랜잭션 장애 - 트랜잭션 내부에서 입력 데이터 오류, 불명확한 데이터, 시스템 자원 요구의 과다 등 비정상적인 상황으로 인하여 트랜잭션 실행이 중지되는 현상
- 시스템 장애 - 하드웨어 오동작, 정전, 소프트웨어 오류, 교착 상태 등에 의해 실행 중인 모든 트랜잭션들이 더 이상 실행을 계속할 수 없는 현상.
- 디스크 장애 - 저장 장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 데이터베이스의 일부 또는 전부가 물리적으로 손상되는 현상
- 사용자 장애 - 사용자의 실수, 무결성 규정 위반 등으로 질의 실행이 실패하는 현상
데이터베이스 회복
데이터베이스의 회복은 데이터베이스 트랜잭션을 실행하는 도중 장애(Failure)가 발생하여 데이터베이스가 손상되었을 경우 이전의 정상 상태로 복구하는 작업.
REDO/UNDO
REDO와 UNDO는 데이터의 무결성을 보장하는 트랜잭션의 특징 중 Durability(영속성)을 위해 필요한 중요한 요소.
- REDO - 데이터베이스 내용 자체가 손상이 된 경우 가장 최근의 복제본을 적재 한 후 일어난 변경만을 로그를 이용하여 재실행함 → 트랜잭션이 완료된 데이터를 회복
- UNDO - 데이터베이스 내용 자체는 손상되지 않았지만 변경 중이거나 변경된 내용의 신뢰성을 잃어버린 경우 모든 변경 내용을 취소함 → 트랜잭션이 수행중인 데이터를 회복
검사점(Checkpoint) 회복 기법
시스템 장애가 발생했을 경우 체크포인트 이후 장애발생 이전에 완료된 경우 Redo를 수행, 완료되지 못했을 경우 Undo를 수행하여 회복하는 기법.
데이터베이스의 병행제어
다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션들이 성공적으로 실행될 수 있도록 지원하는 기능.
병행제어 하지않으면 문제점
- 갱신내용 손실(Lost Update)
- 오류 데이터 읽기(Dirty Read)
- 모순성(Inconsistency)
- 연쇄 복귀(Cascading Rollback)
기법 유형
- 로킹(Locking) - 데이터베이스 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것을 의미하며, 트랜잭션들은 갱신할 때는 반드시 로킹(Lock) → 실행(Execute) → 해제(Unlock)의 규칙을 따라 실행한다.
- 검증 기법(Validation) - 트랜잭션 처리 시 먼저 메모리상에서 복사본에 대한 연산을 수행하고 검증 완료 시 DBMS에 반영하는 기법
- 읽기(Read) 단계는 메모리상에서 데이터 연산 수행
- 검증(Validation) 단계는 트랜잭션의 직렬성 확인 단계
- 쓰기(Write) 단계는 검증 성공시 DBMS에 반영(Commit)하고, 검증 실패시 철회(Rollback)하는 단계
- 타임 스탬프(Timestamp) - 트랜잭션 순서 규칙은 시스템 계수기, 논리적 계수기를 이용하여 해당 트랜잭션의 도착 시간 별로 타임스탬프를 할당하는 기법. → 직렬화 기법으로 트랜잭션 간의 순서를 미리 정하는 방법
- 트랜잭션이 시스템에 들어오는 순서대로 고유값 부여
해싱함수
해싱은 데이터의 신속한 검색을 위해 키(Key)값에 해시 함수를 적용하여 주소값을 빠르게 계산하고 레코드가 저장된 위치를 직접 접근하는 방법.
유형
- 계수 분석 - 키 값을 구성하는 숫자의 분포를 파악하여 분포가 비교적 고른 자리부터 필요한 자리만큼 선택하여 레코드 주소를 결정하는 방법
- 제산법 - 키를 임의의 양의 정수로 나눈 나머지를 그 키의 레코드를 저장하는 주소로 결정하는 방법
- 중간 제곱법 - 키 값을 제곱한 값의 중간 부분 값을 선택하여 레코드 주소로 결정하는 방법
- 폴딩 방법 - 키를 여러 부분으로 나누고, 나누어진 각 부분의 값을 모두 더하거나 보수를 취해 더하여 레코드 주소를 결정하는 방법
- 기수 변환 - 주어진 키 값을 어떤 특정한 진법의 수로 간주하여 다른 진법으로 변환한 후 레코드 주소를 구하는 방법
- 숫자 분석 - 각 숫자의 분포를 이용해서 균등한 분포의 숫자를 선택해서 사용하는 방법
- 무작위 방법 - 난수를 발생, 탐색을 위한 해시의 경우 충돌이 발생하면 다음 난수를 이용하는 방법
'정보처리기사' 카테고리의 다른 글
| 정보처리기사 기출문제 정리 (0) | 2022.10.20 |
|---|---|
| 11. 제품소프트웨어 패키징 (0) | 2022.10.20 |
| 9. 프로그래밍언어 활용 (0) | 2022.10.20 |
| 8. 소프트웨어 개발보안 구축 (0) | 2022.10.14 |
| 7. SQL 응용 (0) | 2022.10.14 |