jacobhan.me

강의 정리 · Computer Science

CS50x 2026 인공지능 강의 정리
의사결정 트리에서 거대 언어 모델까지

하버드 대학교의 컴퓨터 과학 입문 강좌 CS50의 한 차시는 인공지능(AI, Artificial Intelligence)을 다룬다. 강의는 책상 위 작은 고무 오리 인형에서 출발해, 의사결정 트리와 미니맥스를 거쳐, 오늘날의 챗봇을 떠받치는 거대 언어 모델과 그 한계인 '환각'에 도달한다. 이 글은 그 흐름을 비전공자의 눈높이에서 따라가며 핵심 개념을 도식과 비유로 정리한 것이다.

강좌 하버드 CS50x 2026 강연 데이비드 말란(David Malan) 주제 Artificial Intelligence 정리 2026년 5월 23일

차례

  1. 고무 오리와 CS50.ai
  2. 생성형 AI와 구별 게임
  3. 프롬프트 엔지니어링
  4. CS50.ai의 코드
  5. 코파일럿으로 코드 짓기
  6. AI의 토대: 일상 속 AI
  7. 의사결정 트리
  8. 미니맥스와 조합 폭발
  9. 기계 학습과 강화 학습
  10. 심층 학습과 신경망
  11. 거대 언어 모델
  12. 환각, 그리고 숙제 기계

01고무 오리와 CS50.ai

프로그래밍 문화에는 책상 위에 고무 오리를 두는 오랜 관습이 있다. '러버덕 디버깅(rubber duck debugging)'이라 불리는 이 방법은, 막힌 문제나 코드의 버그를 사람이 아니라 오리 인형에게 소리 내어 설명하는 것이다. 친구나 조교(TA, Teaching Assistant)가 곁에 없을 때, 자신의 혼란을 말로 풀어내는 과정 그 자체에서 스스로 답을 깨닫는 경우가 많다는 데 핵심이 있다.

CS50은 이 오리를 가상화하였다. 학생들이 쓰는 코드 편집기인 비주얼 스튜디오 코드(Visual Studio Code) 환경(CS50.dev) 안에 항상 떠 있는 가상 오리가 그것이다. 초기 버전은 학생이 무엇을 묻든 '꽥(quack)' 소리만 한두 번 돌려주었는데, 일화에 따르면 그것만으로도 질문의 상당수가 해결되었다고 한다. 혼란을 직접 글로 적어 내려가는 동안 스스로 허점을 발견했기 때문이다.

2023년부터 이 오리는 영어로 답하기 시작하였다. 다만 정답을 곧장 알려주지는 않는다. 좋은 교사가 그러하듯, 학생이 스스로 해법에 다가가도록 유도한다. 일부러 덜 친절하게 만든 챗봇인 셈이다.

비유

러버덕 디버깅 = 거울 앞에서 발표 연습하기막힌 생각도 입 밖으로 꺼내 설명하다 보면, 듣는 상대가 거울이든 인형이든 상관없이 스스로 논리의 빈틈을 찾게 된다. 오리는 답을 주는 존재가 아니라, 내 머릿속을 정리하게 해 주는 도구다.

학생이 마주하는 화면은 단순하지만, 그 뒤에는 여러 계층이 숨어 있다. 학생의 질문은 CS50이 직접 작성한 코드와 강좌 고유의 규칙을 거친 뒤, API(Application Programming Interface, 응용 프로그램 인터페이스)를 통해 마이크로소프트(Microsoft)나 오픈에이아이(OpenAI) 같은 외부 회사가 만든 거대한 모델로 전달된다. 모델이 내놓은 답은 다시 같은 경로를 거슬러 학생에게 돌아온다.

학생 질문 입력 CS50.ai CS50의 코드 + 강좌 고유 규칙 API 연결 통로 외부 AI 모델 OpenAI 등 실제 추론 담당 질문은 오른쪽으로, 답은 같은 길을 거슬러 학생에게 돌아온다
그림 1. CS50.ai의 계층 구조. 학생이 보는 화면은 단순하지만, 그 뒤에서는 강좌 고유 규칙과 외부 모델이 단계적으로 연결된다.

02생성형 AI와 구별 게임

강의는 청중에게 휴대폰으로 참여하는 즉석 퀴즈를 던졌다. 두 장의 사진 또는 두 개의 짧은 글 가운데 어느 쪽이 AI가 만든 것인지 맞히는 게임이다. 뉴욕 타임스(The New York Times)가 몇 해 전 공개했던 예시 자료를 사용하였다.

결과는 인상적이었다. 한 문제에서는 사람 얼굴 사진 두 장이 모두 AI가 합성한 것이었다. 둘 다 실존하지 않는 얼굴이지만, 청중 다수는 한쪽을 진짜로 골랐다. 또 다른 문제에서는 초등학생이 쓴 글과 챗봇이 쓴 글을 구별하게 했는데, 역시 다수가 빗나갔다. 정작 더 '사람처럼' 보인 쪽이 AI였던 것이다.

요지는 분명하다. 이 기술은 이미 사람이 눈으로 분간하기 어려운 수준에 이르렀으며, 앞으로 이 구별 게임은 더 어려워질 것이다. 여기서 말하는 생성형 인공지능(generative AI)이란 학습된 AI를 이용해 이미지, 소리, 영상, 텍스트 같은 새로운 결과물을 만들어 내는 것을 가리킨다.

핵심 메시지 — AI는 이제 '진짜처럼 보이는 것'을 만든다. 그래서 무엇이 진짜인지 판별하는 일은 점점 더 사람의 직관만으로는 어려워진다.

03프롬프트 엔지니어링

프롬프트 엔지니어링(prompt engineering)은 이름과 달리 정교한 공학이라기보다 '좋은 질문을 던지는 기술'에 가깝다. AI에게 충분한 맥락과 구체적인 조건을 주어, 원하는 답이 높은 확률로 나오도록 만드는 일이다.

여기에는 두 가지 용어가 있다. 첫째는 시스템 프롬프트(system prompt)로, 개발자가 미리 적어 두는 지시문이다. AI에 특정한 성격이나 전문 영역을 부여한다. CS50의 오리는 대략 이런 취지의 시스템 프롬프트로 만들어졌다. "너는 CS50의 친절하고 든든한 조교이며, 동시에 고무 오리다. CS50과 컴퓨터 과학에 관한 질문에만 답하고, 무관한 주제에는 답하지 마라. 학업 정직성을 해치므로 과제의 전체 정답은 주지 마라." 둘째는 사용자 프롬프트(user prompt)로, 사용자가 실제로 입력하는 질문이다. 시스템이 이 사용자 프롬프트를 시스템 프롬프트 뒤에 이어 붙여 모델에 전달한다.

비유

시스템 프롬프트 = 배우에게 건네는 배역 설정같은 배우라도 "당신은 무뚝뚝한 형사다"라는 설정을 받으면 그 인물로 연기한다. 시스템 프롬프트는 범용 AI에게 "너는 고무 오리 조교다"라는 배역을 부여하는 대본이고, 사용자 프롬프트는 그 배우에게 던지는 그날의 대사다.

04CS50.ai의 코드

이 오리가 작동하는 코드는 파이썬(Python)으로 짜면 의외로 짧다. 외부 회사가 제공한 라이브러리를 불러오고, 그 회사의 서버와 통신하는 통로(client) 객체를 만든 다음, 사용자 입력을 받아 사용자 프롬프트로 삼고, 개발자가 정한 지시를 시스템 프롬프트로 함께 넘긴다. 그리고 응답을 받아 화면에 출력한다.

# 강의 첫 시간에 시연한 예시의 골자 client = OpenAI() # 외부 서버와의 통로 user_prompt = input("질문: ") # 사용자 프롬프트 system_prompt = "한 문장으로 답하고, 고양이인 척하라" # 시스템 프롬프트 response = client.responses.create( input = user_prompt, # 사용자 입력 instructions = system_prompt, # 개발자 지시 model = "...", # 사용할 모델 버전 ) print(response.output_text)

요점은 모델에 넘기는 세 가지 재료다. 사용자 입력, 개발자 지시, 그리고 사용할 모델의 종류. 같은 모델이라도 시스템 프롬프트를 무엇으로 두느냐에 따라 고양이가 되기도, 고무 오리가 되기도 한다.

05코파일럿으로 코드 짓기

강의는 평소 학생에게 막아 두던 기능 하나를 잠시 열어 보였다. 깃허브 코파일럿(GitHub Copilot)이다. 마이크로소프트와 깃허브가 만든 코드 자동 작성 도구로, 구글(Google)이나 앤트로픽(Anthropic) 등 다른 회사의 비슷한 제품들과 같은 부류다.

말란 교수는 학생들이 보통 5-15시간씩 씨름하던 과제를 자연어 명령 몇 줄로 풀어 보였다. C 언어로 작성하는 철자 검사기(speller)의 핵심인 해시 테이블(hash table) 구현, 그리고 해시 기호로 피라미드를 출력하는 'Mario' 프로그램이 그 예다. 코파일럿은 열려 있는 파일과 코드 속 영어 주석을 단서(맥락)로 삼아, 빈칸을 채우는 코드를 곧바로 제안하였다.

다만 강의는 중요한 단서를 함께 짚었다. AI가 코드를 대신 써 주더라도, 무엇을 보고 있는지 알아보는 눈이 없으면 오류를 잡거나, 남에게 설명하거나, 조금씩 고치는 일이 불가능하다. 직접 손으로 풀며 쌓은 감각(muscle memory)이 먼저 있어야 한다는 것이다. CS50이 최종 프로젝트 직전까지 이 기능을 막아 두는 이유도 여기에 있다.

비유

AI 코딩 도구 = 전동 공구전동 드릴은 목수의 작업 속도를 몇 배로 끌어올린다. 그러나 어디에 구멍을 뚫어야 하는지, 잘못 뚫었을 때 무엇이 어긋났는지 아는 눈이 없으면 더 빠르게 망가뜨릴 뿐이다. AI는 능력을 증폭하는 도구이지, 기초를 대체하는 존재가 아니다.

핵심 메시지 — AI는 기초 위에서만 위력을 낸다. 손으로 쌓은 감각이 있어야 자동화된 결과를 검증하고 다룰 수 있다.

06AI의 토대: 일상 속 AI

강의는 화려한 챗봇에서 잠시 물러나, 우리가 이미 매일 쓰고 있는 AI를 되짚는다. 이들은 갑자기 등장한 것이 아니라 수십 년에 걸쳐 발전해 온 토대다.

거슬러 올라가면 초창기 아케이드 게임 퐁(Pong)과 그 후속작 브레이크아웃(Breakout)이 있다. 컴퓨터를 상대로 플레이할 때 우리가 마주하던 'CPU(Central Processing Unit, 중앙처리장치)' 또는 'AI'가 그것이다. 여기서 알 수 있는 사실 하나. AI가 반드시 오늘날처럼 정교할 필요는 없다는 점이다.

07의사결정 트리

브레이크아웃에서 컴퓨터는 패들을 어디로 움직여야 할까. 사람은 직관으로 하지만, 이를 단계별 질문으로 풀어 쓸 수 있다. 먼저 "공이 패들의 왼쪽에 있는가?"를 묻는다. 그렇다면 패들을 왼쪽으로 옮긴다. 아니라면, 곧장 오른쪽으로 가지 말고 "공이 패들의 오른쪽에 있는가?"를 다시 묻는다. 그렇다면 오른쪽으로, 아니라면(공이 바로 위에 있다면) 움직이지 않는다.

이렇게 예/아니오 질문이 가지처럼 이어지는 구조가 의사결정 트리(decision tree)다. 경제학과 전략, 컴퓨터 과학에서 두루 쓰이는 개념이며, 위 질문들은 그대로 의사 코드(pseudocode)로 옮길 수 있다.

공이 패들의 왼쪽에 있는가? 왼쪽으로 이동 공이 패들의 오른쪽에 있는가? 오른쪽으로 이동 움직이지 않음 아니오 아니오
그림 2. 브레이크아웃 패들을 위한 의사결정 트리. 모든 갈래가 예/아니오 질문이며, 그대로 코드로 옮길 수 있다.

틱택토(tic-tac-toe, 삼목 게임)도 처음엔 비슷하게 시작한다. "이번 차례에 세 칸을 나란히 채울 수 있는가? 그렇다면 그 칸에 둔다. 없다면, 상대가 다음 차례에 세 칸을 채울 수 있는가? 그렇다면 적어도 그 칸을 막는다." 그러나 둘 다 아닌 애매한 상황에서는 이런 단순 규칙만으로는 부족하다. 사람이 틱택토에서 지는 이유도, 명확하지 않은 국면에서 직관에 의존하기 때문이다.

비유

의사결정 트리 = 스무고개"동물인가요? → 네. → 다리가 넷인가요? → 아니오." 이렇게 예/아니오 질문을 차례로 좁혀 가면 결국 답에 도달한다. 컴퓨터의 의사결정 트리도 같은 방식으로, 질문의 가지를 따라 내려가며 행동을 결정한다.

08미니맥스와 조합 폭발

애매한 국면을 다루려면 게임을 수치로 바꿔야 한다. 미니맥스(minimax) 알고리즘은 이름 그대로 한쪽은 점수를 최소화(minimize)하고 다른 쪽은 최대화(maximize)하려 한다는 발상이다. 틱택토에서 O가 이기면 점수를 -1, X가 이기면 +1, 무승부면 0으로 정한다. 그러면 X는 점수를 키우려 하고, O는 줄이려 한다.

핵심은 끝(말단)에서부터 거슬러 올라가며 각 국면의 값을 계산하는 것이다. 예컨대 O의 차례에 둘 자리가 둘 남았다고 하자. 한쪽에 두면 결국 X가 이겨 그 가지의 값은 +1이 되고, 다른 쪽에 두면 무승부가 되어 값이 0이 된다. O는 더 작은 값인 0을 고른다. 이렇게 따지면 적어도 비기는 길이 보장된다.

O의 차례 목표: 점수 최소화 왼쪽 위에 둔다 → 다음에 X가 이김 +1 아래 가운데에 둔다 → 무승부 0 O가 선택
그림 3. 미니맥스 예시. O는 두 갈래의 값(+1, 0) 가운데 더 작은 0을 골라 최소한 무승부를 확보한다.

틱택토는 이 방식으로 완전히 풀린다. 가능한 게임 진행의 수가 약 255,168가지에 불과하므로, 컴퓨터는 모든 경우를 따져 최적으로 둘 수 있다. 문제는 트리가 한 수 늘 때마다 폭발적으로 커진다는 점이다. 강의가 제시한 수치로 그 규모를 가늠해 보면 이렇다. 체스는 양측이 네 수씩 둔 시점에 이미 약 850억 가지, 바둑은 같은 시점에 약 266퀸틸리언(2.66 × 10²⁰)가지에 이른다.

이쯤 되면 어떤 컴퓨터도 모든 경우를 메모리에 담거나 일일이 계산할 수 없다. 전부 따져 보는 방식(brute force, 완전 탐색)은 한계에 부딪힌다. 바로 이 지점에서 기계 학습이 등장한다.

비유

조합 폭발 = 종이 한 장을 42번 접으면 달에 닿는다한 번 접을 때마다 두께가 두 배가 되듯, 게임의 수도 한 수마다 곱절로 불어난다. 처음엔 손바닥 위에서 다룰 만하지만, 몇 단계만 지나면 우주의 규모로 커진다. 모든 경우를 헤아리려는 시도가 무력해지는 까닭이다.

09기계 학습과 강화 학습

모든 경우를 조건문과 반복문으로 풀 수 없을 때, 발상을 바꾼다. 문제를 직접 푸는 코드 대신, 컴퓨터가 스스로 푸는 법을 배우도록 하는 코드를 짠다. 이것이 기계 학습(machine learning)이다. 방대한 데이터로 학습한 뒤, 새로운 문제에서 과거의 패턴을 찾아 적용하는 방식이다.

그 한 갈래가 강화 학습(reinforcement learning)이다. 잘한 행동에는 보상을, 잘못한 행동에는 벌점을 주어 행동을 다듬게 한다. 강의가 보여 준 예는 팬케이크 뒤집기 로봇이다. 연구자가 몇 차례 시범을 보인 뒤 로봇에게 맡기면, 처음에는 엉성하다. 그러나 잘 뒤집을 때마다 보상(디지털 쿠키에 해당하는 점수)을, 떨어뜨릴 때마다 벌점을 주면, 약 50번의 시도 끝에 제법 능숙해진다. 부모가 칭찬과 꾸중으로 아이의 행동을 다듬는 것과 다르지 않다.

에이전트 학습하는 주체 환경 게임 · 세계 행동 상태 + 보상 / 벌점
그림 4. 강화 학습의 순환. 에이전트가 행동하면 환경이 결과(상태)와 함께 보상 또는 벌점을 돌려주고, 이 신호가 다음 행동을 다듬는다.

미로 게임으로도 같은 원리를 볼 수 있다. 출발점에서 출구를 찾아가되, 곳곳에 빠지면 안 되는 위험 지대가 있다고 하자. 처음에는 무작위로 움직이다 위험에 빠지면 벌점을 받고 '그 길은 피하라'고 기억한다. 우연히 출구에 닿으면 보상을 받고 그 경로를 다시 따른다.

그런데 한 객석의 7학년 학생이 정확히 짚은 문제가 있다. 학습한 경로만 고집하면(활용), 더 짧은 길을 영영 못 찾을 수 있다는 것이다. 그래서 일정 확률(예컨대 10%, 이를 엡실론 ε이라 부른다)로 일부러 무작위 행동을 섞는다(탐험). 이 탐험과 활용(explore vs exploit)의 균형 덕분에 더 나은 길을 발견할 수 있다.

비유

탐험 vs 활용 = 단골 식당의 딜레마늘 시키던 메뉴만 고르면 실패는 없지만, 더 맛있는 메뉴를 평생 모른 채 지낸다. 가끔은 새 메뉴를 시도해야(탐험) 진짜 최고를 찾는다. AI도 아는 길만 가지 않고 가끔 모험을 해야 더 나은 해법에 닿는다.

강의가 보여 준 인상적인 장면도 있다. 브레이크아웃을 학습한 AI는 충분히 훈련되자, 위쪽 벽 한 귀퉁이를 뚫어 공을 가두면 패들을 거의 움직이지 않고도 점수가 저절로 쌓인다는 '꼼수'를 누가 가르쳐 주지 않았는데도 스스로 찾아냈다. 좋은 행동에 보상을 주는 규칙을 따른 논리적 귀결이지만, 보는 이에게는 다소 섬뜩하게 느껴지는 대목이다.

10심층 학습과 신경망

앞서 스팸 분류에는 사람이 '이건 스팸'이라고 정답표를 붙이는 과정이 있었다. 이렇게 사람이 라벨을 다는 방식을 지도 학습(supervised learning)이라 한다. 그러나 메일이 수백만, 수십억 건이라면 사람이 일일이 라벨을 붙이는 일은 비현실적이다. 비용도 크고 규모도 감당되지 않는다.

그래서 사람이 일일이 개입하지 않는 방향으로 나아간다. 생물의 뉴런(neuron)에서 영감을 받은 신경망(neural network)을 쓰는 심층 학습(deep learning)이다. 뉴런은 신호를 전달하는 세포이고, 여럿이 연결되어 정보를 주고받는다. 컴퓨터 과학자는 이를 단순화해, 뉴런은 작은 원으로, 연결은 선으로 그린다.

아주 단순한 예를 보자. 2차원 평면 위에 점들이 흩어져 있고, 각 점은 빨강 아니면 파랑이다. 무엇이 색을 가르는지는 모른다. 다만 점의 가로(X) 좌표와 세로(Y) 좌표를 입력으로 주고, 색을 출력으로 예측하게 한다. 입력 둘과 출력 하나, 모두 세 개의 뉴런으로 이루어진 작은 신경망이다.

세 개의 뉴런 X Y 예측 a b + 상수 c 학습된 분류 경계 X Y
그림 5. 왼쪽은 입력 둘(X, Y)과 출력 하나로 된 세 뉴런 신경망. 오른쪽은 학습으로 찾은 분류 경계선이 파랑과 빨강 점을 나누는 모습.

데이터가 적을 때는 평면을 대충 둘로 가르는 직선을 긋는다. 점이 늘어나면 선을 기울이고, 더 늘면 곡선처럼 구부려 더 정확히 맞춘다. 이때 신경망이 실제로 찾는 것은 ax + by + c 형태의 식을 이루는 세 값, 곧 매개변수(parameter) a, b, c다. 이 값이 0보다 크면 파랑, 작으면 빨강이라고 정해 두는 식으로 수학을 문제에 대응시킨다.

실제 신경망은 뉴런이 셋이 아니라 수십억 개에 이른다. 입력과 출력이 무엇인지는 사람이 알지만, 중간의 각 연결이 지닌 가중치가 정확히 무엇을 뜻하는지는 사람도 설명하기 어렵다. 방대한 학습 데이터로부터 수학적으로 정해진 값이기 때문이다.

비유

매개변수 = 수십억 개의 다이얼거대한 음향 장비에 다이얼이 수십억 개 달려 있다고 상상해 보자. 학습이란 좋은 소리가 나도록 그 다이얼들을 조금씩 돌려 맞추는 과정이다. 다 맞추고 나면 결과는 훌륭하지만, 특정 다이얼 하나가 왜 그 위치에 있는지는 누구도 또렷이 설명하지 못한다.

11거대 언어 모델

이제 CS50의 오리와 챗봇으로 한 바퀴 돌아온다. 클로드(Claude), 제미나이(Gemini), 챗지피티(ChatGPT) 같은 거대 언어 모델(LLM, Large Language Model)의 뿌리에는 GPT가 있다. GPT는 Generative Pre-trained Transformer(생성형 사전학습 트랜스포머)의 약자로, 방대한 텍스트로 학습된 신경망이다.

다음 문단을 보자. "매사추세츠는 미국 북동부 뉴잉글랜드 지역의 한 주이다. 동쪽으로 대서양에 접한다. 그 주의 수도는 ___." 빈칸의 답은 보스턴(Boston)이다. 매사추세츠에 사는 사람에게는 쉬운 문제지만, 과거의 AI에게는 어려웠다. 핵심 단어 '매사추세츠'와 빈칸 사이가 멀리 떨어져 있고, 중간에 '주(state)' 같은 일반 명사가 그 주를 대신 가리키기 때문이다.

해법은 두 단계다. 먼저 문장을 단어 단위로 쪼개고, 각 단어를 숫자 배열(벡터)로 표현한다. 예컨대 '매사추세츠'는 한 모델에서 1,536개의 부동소수점 숫자로 표현된다. 고차원 공간 어딘가의 한 점인 셈이다. 그다음, 어텐션(attention)으로 단어들 사이 관계의 강도를 계산한다. '매사추세츠'와 '주'는 굵은 연결(높은 어텐션)로, 관사 같은 단어는 가는 연결로 묶인다. 굵을수록 답을 찾는 데 더 중요한 신호라는 뜻이다.

매사추세츠 주(state) 수도는 보스턴 (?) 선이 굵을수록 두 단어 사이의 관계(어텐션)가 강하다
그림 6. 어텐션의 직관. 빈칸의 답을 찾을 때 '매사추세츠'와 '주'에서 오는 신호가 가장 굵고, 관사 같은 단어의 신호는 가늘다.

결국 거대 언어 모델의 정체는 통계 모델이다. 지금까지의 문맥을 보고, 다음에 올 확률이 가장 높은 단어를 내놓는다. 그 확률은 인터넷에 쌓인 글, 백과사전, 검색 결과 등 방대한 학습 데이터에서 비롯된다. 위 예에서 모델은 높은 확률로 '보스턴'을 내놓을 것이다.

비유

거대 언어 모델 = 초거대 자동완성휴대폰 자판이 다음 단어를 추천하는 기능을 떠올려 보자. 거대 언어 모델은 그 기능을 인터넷 전체로 학습시킨, 비할 수 없이 거대한 자동완성이다. 문장을 '이해'한다기보다, 다음에 올 가장 그럴듯한 단어를 통계로 고른다.

12환각, 그리고 숙제 기계

확률 모델인 만큼 대체로 맞지만, 1% 안팎으로는 틀린다. AI가 사실이 아닌 것을 그럴듯하게 지어내는 현상을 환각(hallucination)이라 부른다. 인터넷의 누군가가 만들어 낸 잘못된 정보를 권위 있는 것으로 받아들였거나, 앞서 본 탐험적 무작위성 탓에 엉뚱한 답으로 새어 나간 경우다. CS50의 오리조차 이런 실수에서 자유롭지 않으며, 이를 줄이려 많은 코드가 동원된다.

강의는 셸 실버스타인(Shel Silverstein)의 시 '숙제 기계(The Homework Machine)'로 마무리한다. 동전을 넣고 스위치만 켜면 십 초 만에 숙제를 깔끔하게 대신 해 준다는 완벽한 기계가, 정작 9 더하기 4의 답으로 33을 자신만만하게 내놓는다는 이야기다. 수십 년 전에 쓰인 이 시가 오늘날 AI의 환각을 묘하게 예견한 듯하다. 그럴듯한 외양과 단호한 말투 뒤에 틀린 답이 숨어 있을 수 있다는 점에서 그렇다.

핵심 메시지 — AI는 확률과 패턴 위에 서 있다. 강력하지만 완벽하지 않으며, 자신만만하게 틀릴 수 있다. 그 답을 검증할 사람의 눈이 여전히 필요하다.

정리하며

이 강의의 흐름을 한 줄로 잇자면 이렇다. 규칙으로 푸는 의사결정 트리와 미니맥스에서 출발해, 경우의 수가 폭발하자 스스로 배우는 기계 학습으로, 다시 사람의 라벨에 의존하지 않는 심층 학습과 신경망으로, 그리고 그 위에서 다음 단어를 예측하는 거대 언어 모델로 이어진다.

관통하는 원리는 단순하다. 컴퓨터는 문제를 직접 푸는 대신, 데이터에서 패턴을 찾아 확률로 답을 고른다. 화면에서 만나는 챗봇의 매끄러운 답변도, 그 바닥에는 좌표를 가르는 직선 하나, 보상과 벌점의 신호, 단어 사이의 어텐션이 깔려 있다. 그 토대를 알면 AI를 더 잘 쓰고, 무엇보다 그 한계를 더 잘 가늠할 수 있다.

이 글은 하버드 CS50x 2026 인공지능 차시(강연: 데이비드 말란)의 강의 내용을 비전공자 눈높이에서 정리한 것이다. 본문의 도식과 비유는 이해를 돕기 위해 재구성하였으며, 시 전문 등 원저작물은 인용하지 않고 내용만 풀어 설명하였다.

CS50인공지능기계 학습강화 학습신경망거대 언어 모델프롬프트 엔지니어링