(2025-2) 컴퓨터사고와 인공지능 중간고사 정리
1. 인공지능개요
인공지능의 구분
좁은 인공지능 : 특정 분야에 특화된 인공지능
범용 인공지능 : 인간과 유사한 수준의 지능을 갖춘 인공지능
머신러닝과 딥러닝
머신러닝 : 데이터를 기반으로 스스로 학습하게 하는 방법론
딥러닝 : 뇌 구조를 모방한 인공신경망을 활용하여 컴퓨터가 데이터를 학습하는 방법
인공지능의 필수 구성 요소
알고리즘 : 문제를 해결할 때 따르는 단계적 절차, 규칙
지도학습 : 레이블이 포함된 데이터를 사용하여 학습 (분류, 회귀)
회귀 : 연속적인 값 예측
분류 : 입력데이터 분류
의사결정트리 : 데이터를 여러 기준으로 단계적 분류
랜덤 포레스트 : 의사결정 트리의 결합
서포트 백터 머신 : 두 그룹을 구분할 수 있는 결정경계를 설정
k 최근접 이웃 : 가까운 이웃데이터를 참고하여 분류
비지도학습 : 레이블이 없는 데이터로 학습 (차원 축소, 클러스터링)
클러스터링 : 데이터의 유사한 특성을 기반으로 그룹 형성
k 평균 클러스터링 : 데이터의 유사한 특징을 기준으로 k개의 그룹으로 나눔
밀도 기반 클러스터링 : 가까이 모여있는 데이터를 그룹으로 묶음
차원 축소 : 복잡한 데이터를 간결하게 변환
주성분 분석 : 복잡한 데이터에서 핵심 추출
강화학습 : 스스로 행동하며 보상 최대화 > 최적의 행동 전략 학습
인공지능의 필수 구성요소
모델 , 컴퓨팅 자원, 알고리즘, 데이터
02. 계산과정
컴파일러 : 소스 코드를 통 번역한 실행파일을 만들고 바로 실행
인터프리터 : 소스 코드를 한줄 한줄 번역하여 실행
컴퓨터의 단위
시험 출제 100%
바이트 : 2진크기 1 , 10진 크기 1
킬로바이트 2진크기 2의 10승, 10진 크기 10의 3승,
그 후로 2진크기는 2의 10승씩, 10진 크기는 10의 3승씩 증가한다.
속도단위 : bps : bit per second
10mb의 파일을 10mbps로 보내면 8초가 걸림 (mb : 바이트 , bps : 비트)
컴퓨터의 데이터 표현
1의 보수 : 양수 2진수에서 맨 앞부호로 부호를 결정, 음수의 경우 양수 2진수에서 0과 1을 모두 바꾸어 표현
2 = 0010 > -2 = 1101
7 = 0111 > -7 = 1000
2의 보수 : 음수만 1의 보수에 1씩 더함
-2 = 1101 > -2 = 1110
-7 = 1000 > -7 = 1001
정규화: 실수를 가수(한자리수.xxxx….)와 진수로 나눔
ex) 0.0000085 = 8.5 * 10의 -5승
오버플로 : 저장할 수 있는 수보다 큰 수 저장 (양수 > 음수)
언더플로 : 저장할 수 있는 수보다 작은 수 저장 ( 음수 > 양수)
아스키코드 : 65 = A
컴퓨터 내부구조
🧩 1. 기억장치의 분류
- 내부 기억장치: CPU 안에 있음 → 레지스터, 주기억장치(RAM)
- 외부 기억장치: CPU 밖에 있음 → 보조기억장치(하드디스크, SSD 등)
🧠 2. 메모리 기본 개념
- 주소버스(Address Bus): 접근 가능한 메모리의 최대 용량 결정
- 데이터버스(Data Bus): 한 번에 전송 가능한 데이터 크기(워드 크기)
- 휘발성/비휘발성
- RAM: 전원 꺼지면 데이터 사라짐 (휘발성)
- ROM, HDD: 전원 꺼져도 유지 (비휘발성)
🏗️ 3. 계층적 기억장치 구조 (빠른 순서)
1️⃣ 레지스터 – CPU 내부, 속도 가장 빠름, 용량 매우 작음
2️⃣ 캐시(Cache) – CPU와 RAM 사이, 자주 쓰는 데이터 임시 저장
3️⃣ 주기억장치(Main Memory) – 실행 중 프로그램 저장
4️⃣ 보조기억장치(Secondary Storage) – 대용량, 영구 저장
📌 캐시는 SRAM, 주기억장치는 DRAM 기반
📌 L1, L2, L3 캐시로 구분 (CPU 안에 존재)
💾 4. 주기억장치의 주소 체계
- 주소(address): 각 저장 위치를 구별하는 번호
- 데이터(data): 해당 주소에 저장된 값
- 주소 단위
- 바이트 주소: 1바이트씩 구분
- 워드 주소: CPU가 한 번에 처리할 수 있는 단위(예: 4바이트)
03. 컴퓨터 처리과정의 이해
컴퓨터 시스템의 구성요소
제어장치 : 프로그램 명령어를 해독, 동작 지시
연산장치 : 연산수행
레지스터 : 명령어 실행시 정보 저장
주소 레지스터 : 데이터를 읽거나 쓰려는 메모리 주소 저장
명령어 레지스터 : 수행할 명령 저장
명령어 형식
연산코드 : 수행할 동작
피연산자 : 동작에 필요한 값, 저장공간
형식 : 연산코드 + 피연산자1 + 피연산자2
해석 : 피연산자 1과 2를 연산한 후 1에 결과 저장
ex) ADD 레지스터A 1 >> 레지스터 A = A + 1
데이터 전송 명령어
MOV 레지스터B [150] : 주소 [150] 에 저장된 값을 레지스터 B에 저장
PUSH 레지스터A : 레지스터 A의 값을 스택에 삽입
POP 레지스터B : 스택 맨 윗값을 삭제 후 레지스터 B 에 저장
연산 명령어
ADD A B : A + B 를 A 에 저장
SUB A B : A - B 를 A 에 저장
MUL A B : A * B 를 A 에 저장
DIV A B : A / B 를 A 에 저장
논리 명령어
AND 명령어 : 대응하는 비트가 둘다 1인 경우만 1
OR 명령어 : 대응하는 비트가 둘 중 하나만 1이면 1
NOT 명령어 : 1 > 0, 0 > 1로 바뀜
XOR 명령어 : 대응하는 비트가 같으면 0 틀리면 1
- 0 0 > 0 , 1 1 > 0
시프트 명령어
SHR 레지스터 A B : 오른쪽으로 b비트 이동, 비는 곳은 0
SHL 레지스터 A B : 왼쪽으로 b비트 이동, 비는 곳은 0
CIR 레지스터 A B : 오른쪽으로 b비트 이동, 벗어난 비트를 비는 곳에 저장
CIL 레지스터 A B : 왼쪽으로 b비트 이동, 벗어난 비트를 비는 곳에 저장
분기 명령어
JUMP [100] = 주소 레지스터값을 100으로 변경
04. 성능평가
정밀도 : 검색된 문헌중 적합한 비율
시스템이 제시하는 답의 신뢰도

재현율 : 적합 문헌 중 검색된 비율
시스템이 놓치지 않고 얼마나 잘 찾았는가

05. 워드임베딩
데이터 표현
원 - 핫 인코딩 : 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어에 1, 다른 인덱스에 0을 부여하는 단어의 벡터 표현 방식

한계 : 벡터를 저장하기 위해 필요한 공간이 계속 증가 / 단어의 유사도를 표현하지 못함
워드 임베딩 : 단어를 의미론적 유사성이 반영된 벡터로 변환하는 기술
유사도 측정 방법
유클리디안 거리 : 두 점 사이의 거리 계산
코사인 유사도 : 두 벡터 사이의 각도 계산 (각도가 작을수록 유사도 증가)
DTM 코사인 유사도
단어의 순서를 고려하지 않고 출현 빈도만 표현하는 bag of word 방법을 행렬로 구현

TF - IDF
각 단어의 중요도를 판단하여 가중치를 주는 방법
모든 문서에서 자주 등장하는 단어는 중요도가 작음, 특정 문서에서만 자주 등장하는 단어는 중요도가 높음

임베딩
단어와 문장 및 기타 데이터를 의미와 관계를 표현하는 숫자로 변환하는 방법
의미가 유사한 단어는 가까이 분포하도록 벡터화
word2vec : 주변 단어들을 통해 중심 단어를 예측, 중심단어로 주변단어를 예측하는 방식으로 단어 학습
06. 바이브코딩
ai 에이전트 : 사람, 시스템 대신 특정 작업을 수행하는 지능형 소프트웨어
스스로 판단, 자율적으로 행동
구성요소
감지, 추론, 행동, 학습
따라서 환경을 인식, 학습을 통해 자율적으로 목표를 수행하는 시스템
AI Agent의 동작 구조
전체 흐름:
Input → Perception → Reasoning → Action
단계별 설명
- Input – 텍스트·음성·이미지 등 다양한 입력 (ex. “이 코드 오류 고쳐줘”)
- Perception – 전처리 및 맥락 인식 (토큰화, 의도 분류, 키워드 추출 등)
- Reasoning – 목표 설정, 하위 계획 수립, 도구 선택, 검증 전략 세우기
- Action – 코드 실행, 테스트, API 호출 등 실제 행동 수행
- 결과가 잘못되면 Perception~Action 루프를 반복