074 자료 구조
자료 구조의 분류
- 선형 구조
- 배열(Array), 선형 리스트(Linear List), 스택(Stack), 큐(Queue), 데크(Deque)
- 비선형 구조
- 트리(Tree), 그래프(Graph)
연결 리스트(Linked List)
- 노드의 삽입, 삭제 작업 용이
- 연결을 위한 링크(포인터)부분 필요
- 연결을 위한 포인터를 찾는 시간 필요 → 접근 속도 느림
- 중간 노드 연결이 끊어지면 그 다음 노드를 찾기 어려움
스택(Stack)
- 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조
- 후입선출(LIFO) : 가장 나중에 삽입된 자료가 가장 먼저 삭제
- '재귀 호출, 후위(Postfix) 표기법, 깊이 우선 탐색' 등 왔던 길을 되돌아가는 경우에 사용
스택의 응용 분야
- 함수 호출의 순서 제어
- 인터럽트의 처리
- 수식 계산 및 수식 표기법
- 컴파일러를 이용한 언어 번역
- 부 프로그램 호출 시 복귀 주소 저정
- 서브루틴 호출 및 복귀 주소 저장
스택의 삽입(Push)와 삭제(Pop)
- PUSH
- 스택에 자료를 입력하는 명력
- POP
- 스택에서 자료를 출력하는 명령
큐(Queue)
- 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료 구조
- 선입선출(FIFO) : 가장 먼저 삽입된 자료가 가장 먼저 삭제
데크(Deque)
- 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료 구조
- 입력이 한쪽에서만 발생하고 출력은 양쪽에서 일어날 수 있는 입력 제한
- 입력은 양쪽에서 일어나고 출력은 한 곳에서만 이루어지는 출력 제한
방향/무방향 그래프의 최대 간선 수
n(n-1)
n개의 정점으로 구성된 무방향 그래프에서 최대 간선 수 = ----------
2
방향 그래프에서 최대 간선 수 = n(n-1)
075 트리(Tree)
트리의 개요
- 정점(Node)과 선분(Branch)을 이용하여 사이클을 이루지 않도록 구성한 그래프의 특수한 형태
- 노드(Node)
- 자료 항목과 다른 항목에 대한 가지(Branch)를 합친 것
- A, B, C, D, E, F, G, H, I, J, K, L, M
- 디그리(Degree, 차수)
- 각 노드에서 뻗어나온 가지의 수
- A = 3, B = 2, C = 1, D = 3
- 단말 노드(Terminal Node)
- 자식이 하나도 없는 노드(디그리가 0인 노드)
- K, L, F, G, M, I ,J
트리의 운행법
- Preorder 운행법 방문 순서
- Root → Left → Right
- A13 → AB2E3 → ABDHIE3 → ABDHIECFG
- Inorder 운행법 방문 순서
- Left → Root → Right
- 1A3 → 2BEA3 → HDIBEA3 → HDIBEAFCG
- Postorder 운행법 방문 순서
- Left → Right → Root
- 13A → 2EB3A → HIDEB3A → HIDEBFGCA
수식의 표기법(Infix → Postfix)
- Infix로 표기된 수식에서 연산자를 해당 피연산자 두 개의 뒤(오른쪽)에 오도록 이동하면 Postfix
X = A / B * (C + D) + E → X A B / C D + * E + =
- 연산 우선순위에 따라 괄호로 묶음
- (X = ( ( (A / B) * (C + D) ) + E) )
- 연산자를 해당 괄호의 뒤로 옮김
- (X ( ( (A B) / (C D) + ) * E) + ) =
- 괄호 제거
- X A B / C D + * E + =
수식의 표기법(Infix → Prefix)
- Infix로 표기된 수식에서 연산자를 해당 피연산자 두 개의 앞(왼쪽)에 오도록 이동하면 Prefix
X = A / B * (C + D) + E → X + * / A B + C D E
- 연산 우선순위에 따라 괄호로 묶음
- (X = ( ( (A / B) * (C + D) + E) )
- 연산자를 해당 괄호의 앞으로 옮김
- = (X + (* ( / (A B) + (C D) ) E) )
- 괄호 제거
- = X + * / A B + C D E
수식의 표기법(Postfix → Infix)
- Postfix는 Infix 표기법에서 연산자를 해당 피연산자 2개의 뒤(오른쪽)으로 이동한 것
- 연산자를 다시 해당 피연산자의 2개의 가운데로 옮기면 Infix
A B C - / D E F + * + → A / (B - D) + D * (E + F)
- 인접한 피연산자 2개와 오른쪽 연산자를 괄호로 묶음
- ( (A (B C -) / ) (D (E F +) * ) + )
- 연산자를 해당 피연산자의 가운데로 이동
- ( (A / (B - C) ) + (D * (E + F) )
- 괄호 제거
- A / (B - D) + D * (E + F)
076 정렬(Sort)
삽입 정렬(Insertion Sort)
- 초기 상태 : 8, 5, 6, 2, 4
- 1회전 : 5, 8, 6, 2, 4
- 두번째 값 5를 첫번째 값과 비교하여 첫번째 자리에 삽입
- 8은 한 칸 뒤로 이동
- 2회전 : 5, 6, 8, 2, 4
- 세번째 값 6을 첫번째, 두번째 값과 비교하여 8자리에 삽입
- 8은 한 칸 뒤로 이동
- 3회전 : 2, 5, 6, 8, 4
- 네번째 값 2를 처음부터 비교하여 맨 처믕메 삽입
- 나머지를 한 칸씩 뒤로 이동
- 4회전 : 2, 4, 5, 6, 8
- 다섯번째 값 4를 처음부터 비교하여 5자리에 삽입
- 나머지를 한 칸씩 뒤로 이동
선택 정렬(Selection Sort)
n개의 레코드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고,
나머지 (n-1)개 중에서 다시 최소값을 찾아 두번째 레코드 위치에 놓는 방식을 반복하여 정렬
- 초기 상태 : 8, 5, 6, 2, 4
- 1회전 : 2, 8, 6, 5, 4
- 2회전 : 2, 4, 8, 6, 5
- 3회전 : 2, 4, 5, 8, 6
- 4회전 : 2, 4, 5, 6, 8
버블 정렬(Bubble Sort)
주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여
그 크기에 따라 레코드 위치를 서로 교환
- 초기 상태 : 8, 5, 6, 2, 4
- 1회전 : 5, 6, 2, 4, 8
- 2회전 : 5, 2, 4, 6, 8
- 3회전 : 2, 4, 5, 6, 8
077 검색-이분 검색 / 해싱
이분 검색(이진 검색)
- 반드시 순서화(정렬)된 파일이어야 검색 가능
- 비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어듦
- 탐색 효율이 좋고 탐색 시간이 적게 소요
F + L
중간 레코드 번호(M) = ------------
2
(단, F: 첫 번째 레코드 번호, L : 마지막 레코드 번호)
해시 테이블(Hash Table)
- Colision(충돌 현상)
- 서로 다른 두 개 이상의 레코드가 같은 주소를 갖는 현상
- Synonym
- 충돌로 인해 같은 Home Address를 갖는 레코드들의 집합
주요 해싱 함수
- 제산법(Division)
- 레코드 키(K)를 해시표(Hash Table)의 크기보다 큰 수 중에서 가장 작은 소수(Prime, Q)로 나눈 나머지를 홈 주소로 삼는 방식
- 제곱법(Mid-Square)
- 레코드 키 값(K)을 제곱한 후 그 중간 부분의 값을 홈 주소로 삼는 방식
- 폴딩법(Folding)
- 레코드 키 값(K)을 여러 부분으로 나눈 후 각 부분의 값을 더하거나 XOR(배타적 논리합)한 값을 홈 주소로 삼는 방식
- 숫자 분석법(Digit Analysis)
- 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 택해서 홈 주소로 삼는 방식
078 데이터베이스 개요
DBMS의 필수 기능
- 정의 기능(Definition)
- 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능
- 조작 기능(Manipulation)
- 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능
- 제어 기능(Control)
- 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어하는 기능
스키마(Schema)
- 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 기술(Description)한 메타 데이터(Meta-Data)의 집합
- 외부 스키마
- 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
- 개념 스키마
- 데이터베이스의 전체적인 논리적 구조
- 개체 간의 관계와 제약 조건을 나타내고, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세 정의
- 내부 스키마
- 물리적 저장장치의 입장에서 본 데이터베이스 구조
- 실제로 데이터베이스에 저장될 레코드의 형식을 정의
- 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄
079 데이터베이스 설계
데이터베이스 설계 순서
- 요구 조건 분석 : 요구 조건 명세서 작성
- 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델
- 논리적 설계 : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계
- 물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
- 구현 : 목표 DBMS의 DDL(데이터 정의어)로 데이터베이스 생성, 트랜잭션 작성
개념적 설계(정보 모델링, 개념화)
- 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 개념 스키마 모델링과 트랜잭션 모델링을 병행 수행
- 요구 분석 단계에서 나온 결과인 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성
- DBMS에 독립적인 개념 스키마 설계
논리적 설계
- 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환(Mapping)시키는 과정
- 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계
- 트랜잭션의 인터페이스 설계
물리적 설계
- 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
- 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정
- 물리적 설계 단계에 꼭 포함되어야 할 것
- 저장 레코드의 양식 설계
- 레코드 집중의 분석 및 설계
- 접근 경로 설계
- 물리적 설계 옵션 선택시 고려 사항
- 응답 시간
- 저장 공간의 효율화
- 트랜잭션 처리도
080 데이터 모델의 개념
데이터 모델에 표시할 요소
- 구조(Structure)
- 논리적으로 표현된 개체 타입들 간의 관계
- 데이터 구조 및 정적 성질 표현
- 연산(Operation)
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
- 데이터베이스를 조작하는 기본 도구
- 제약 조건(Constraint)
- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
데이터 모델의 구성 요소 - 개체(Entity)
- 데이터베이스에 표현하려는 것
- 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
- 실세계에 독립적으로 존재하는 유형, 무형의 정보
- 서로 연관된 몇 개의 속성으로 구성
데이터 모델의 구성 요소 - 관계(Relationship)
- 개체 간의 관계 또는 속성 간의 관계
- 관계의 형태
- 일 대 일(1:1)
- 개체 집합 A의 각 원소가 개체 집합 B의 원소 한 개와 대응
- 일 대 다(1:n)
- 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응
- 개체 집합 B의 각 원소는 개체 집합 A의 원소 한 개와 대응
- 다 대 다(n:m)
- 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응
- 개체 집합 B의 각 원소도 개체 집합 A의 원소 여러 개와 대응
- 일 대 일(1:1)
081 E-R(개체-관계) 모델
E-R 다이어그램
082 관계형 데이터 모델
관계형 데이터 모델(Realational Data Model)
- 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 DB 구조
- 가장 널리 사용되는 데이터 모델
- 관계형 모델의 대표적인 언어는 SQL
083 관계형 데이터베이스의 구조
릴레이션(Relation)
- 데이터들을 표(Table)의 형태로 표현한 것
- 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성
튜플(Tuple)
- 릴레이션을 구성하는 각각의 행
- 속성의 모임으로 구성
- 튜플의 수 = 카디널리티(Cardinality) = 기수 = 대응수
속성(Attribute)
- 데이터베이스를 구성하는 가장 작은 논리적 단위
- 개체의 특성 기술
- 속성의 수 = 디그리(Degree) = 차수
도메인(Domain)
- 하나의 애트리뷰트(Attribute)가 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합
- ex) 성별 도메인은 '남' / '여'
릴레이션의 특징
- 한 릴레이션에 포함된 튜플들은 모두 상이함
- 한 릴레이션에 포함된 튜플 사이에는 순서 X
- 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변함
- 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요 X
- 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 함
- 속성을 구성하는 값은 동일한 값이 있을 수도 있음
- 속성은 더 이상 쪼갤 수 없는 원자값만을 저장
084 관계형 데이터베이스의 제약 조건 - 키(Key)
후보키(Candidate Key)
- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
- 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 함
기본키(Primary Key)
- 후보키 중에서 특별히 선정된 주키(Main Key)
- 중복된 값 가질 수 없음
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
대체키(Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
- 보조키라고도 함
슈퍼키(Super Key)
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 릴레이션을 구성하는 모든 튜플에 대해 유일성 O, 최소성 X
외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
- 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키라고 함
널값(NULL Value)
- 데이터베이스에서 아직 알려지지 않거나 모르는 값
- '해당 없음' 등의 이유로 정보 부재를 나타내기 위해 사용
- 이론적으로 아무것도 없는 특수한 데이터
085 관계형 데이터베이스의 제약 조건 - 무결성
- 개체 무결성(Entity Integrity, 실체 무결성)
- 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정
- 도메인 무결성(Domain Integrity, 영역 무결성)
- 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
- 참조 무결성(Referential Integrity)
- 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 함
- 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정
- 사용자 정의 무결성(User-Defined Integrity)
- 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다는 규정
086 관계대수 및 관계해석
관계대수의 개요
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 언어
- 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어
- 피연산자 = 릴레이션
- 결과 = 릴레이션
- 징의에 대한 해를 구하기 위해 수행해야 할 연산의 순서 명시
순수 관계 연산자
일반 집합 연산자
관계해석(Relational Calculus)
- 코드(E. F. Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안
- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성
- 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등
087 정규화(Normalization)
정규화의 개요
- 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
- 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정
정규화의 목적
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능
- 데이터 중복 배제 → 이상(Anomaly) 발생 방지 및 자료 저장 공간의 최소화 가능
- 데이터 삽입 시 릴레이션을 재구성 할 필요성 줄임
정규화 과정(도부이결다조)
이상(Anomaly)의 개념 및 종류
- 정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 발생하는 예기치 못한 곤란한 현상
- 삽입 이상(Insertion Anomaly)
- 릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상
- 삭제 이상(Deletion Anomaly)
- 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄가 일어나는 현상
- 갱신 이상(Updata Anomaly)
- 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
함수적 종속(Functional Dependency)
- 데이터들이 어떤 기준값에 의해 종속되는 것을 의미
<수강> 릴레이션이 (학번, 이름, 과목명)으로 되어있을 때,
'학번'이 결정되면 '과목명'에 상관 없이 '학번'에는 항상 같은 '이름'이 대응
⇒ '학번'에 따라 '이름'이 결정 될 때, '이름'을 '학번'에 함수 종속적이라고 함
⇒ '학번 → 이름' 으로 표기
이행적 종속(Transitice Dependency) 관계
- A → B 이고, B → C 일 때, A → C 를 만족하는 관계
088 반정규화(Denormalization)
반정규화의 개념
- 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정
- 의도적으로 정규화 원칙을 위배하는 행위
중복 테이블 추가 방법
- 집계 테이블의 추가
- 진행 테이블의 추가
- 특정 부분만을 포함하는 테이블의 추가
089 인덱스(Index)
인덱스의 개요
- 데이터 레코드를 빠르게 접근하게 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
- 데이터가 저장된 물리적 구조와 밀접한 관계가 있음
- 인덱스를 통해서 파일의 레코드에 대한 액세스를 빠르게 수행 가능
- 레코드의 삽입과 삭제가 수시로 일어나느 경우
- 인덱스의 개수를 최소로 하는 것이 효율적
인덱스 종류
- 트리 기반 인덱스
- 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것
- 상용 DBMS에서는 트리 구조 기반의 B+ 트리 인덱스를 주로 활용
- 비트맵 인덱스
- 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용
- 함수 기반 인덱스
- 컬럼의 값 대신 컬럼에 특정 함수(Function)나 수식(Expression)을 적용하여 산출된 값을 사용
- B+ 트리 인덱스 또는 비트맵 인덱스를 생성하여 사용
- 비트맵 조인 인덱스
- 다수의 조인된 객체로 구성된 인덱스
- 단일 객체로 구성된 일반적인 인덱스와 엑세스 방법이 다름
- 도메인 인덱스
- 개발자가 필욯안 인덱스를 직접 만들어 사용
- 확장형 인덱스(Extensible Index)라고도 함
090 뷰(View)
뷰의 개요
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
- 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산 가능
- 뷰가 정의된 기본 테이블이나 뷰 삭제시, 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동 삭제
- 뷰를 정의할 때는 CREATE, 제거할때는 DROP
뷰의 장단점
- 장점
- 논리적 데이터 독립성 제공
- 사용자의 데이터 관리를 간단하게 함
- 접근 제어를 통한 자동 보안 제공
- 단점
- 독립적인 인덱스 가질 수 없음
- 뷰의 정의를 변경할 수 없음
- 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약有
091 시스템 카탈로그 / 트랜잭션
시스템 카탈로그
- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
- 카탈로그 자체도 시스템 테이블로 구성되어있어 일반 이용자도 SQL을 이용해 내용 검색 가능
- INSERT, DELETE, UPDATE문으로 갱신 불가
트랜잭션(Transaction)의 특성
- Atomicity(원자성)
- 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit) or 전혀 반영되지 않도록 복구(Rollback)
- Consistency(일관성)
- 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환
- 데이터베이스를 구성할 때에 정해놓은 규칙들은 트랜잭션을 성공하고 나서도 계속해서 유지되어야 함
- isolation(독립성)
- 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음
- Durability(영속성)
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
'CERTIFICATION > IEIP' 카테고리의 다른 글
[3-3] 데이터베이스 프로그래밍 (0) | 2024.05.18 |
---|---|
[3-2] SQL 활용 (0) | 2024.05.18 |
[2-2] 프로그램 구현 (0) | 2024.05.18 |
[2-1] 프로그래밍 언어 활용 (0) | 2024.05.18 |
[1-4] 정보시스템 기반 기술 용어 (0) | 2024.05.17 |