프로그래밍 기초편 · 탐색과 의사결정

BFS와 DFS: Agent가 코드베이스에서 파일을 찾는 법

엔지니어링 심화편에서 Coding Agent는 “로그인 오류 원인 찾기”를 받으면 수백 개 폴더를 뒤집니다. 어디로? 이 층을 다 보고 내려갈까요, 단서 하나를 잡고 끝까지 파고들까요? 전혀 다른 두 성격—BFS(너비 우선)와 DFS(깊이 우선). 이번 강의는 같은 미로를 각각 한 번씩 걷게 해서 성격을 한눈에 보여 줍니다.

미로로 성격 보기 · 같은 맵, 두 가지 길

🏁는 출발, 🎯는 도착, 짙은 회색은 벽. 버튼마다 성격이 달라요—세 곳을 주목: 물감의 모양(BFS는 고리 물결, DFS는 뱀); 아래 카운터 둘; 마지막 초록 하이라이트 길—누가 더 짧고, 누가 더 많은 칸을 밟았을까요?

먼저 BFS—물결이 퍼지는 걸 보세요
BFS · 물결식 층층 쓸기
방문한 칸 수
최종 경로 길이
DFS · 외머리 뱀처럼 깊이
방문한 칸 수
최종 경로 길이
숫자 두 개가 이론 전부입니다. BFS는 77칸을 방문해야 도착—출발에서 거리 1, 2, 3…인 칸을 전부 적시니 그 넓이를 메모리에 올려야 해요; 하지만 거리 순으로 나아가니 도착에 닿는 길은 반드시 최단(23칸). DFS는 44칸만 보고도 도착, 메모리엔 지금 이 길만; 그런데 길은 37칸이라 최단보다 절반 넘게 돌아요—운이 나쁘면 막다른 골목에 박혔다 빠져나오기도(흐려진 칸이 백트래킹).
이게 AI랑 무슨 상관인가요?

미로 칸을 폴더와 웹페이지로 바꾸면, 두 성격이 바로 옆에 나타나요:

전승은 없고 장면 매칭만 있어요. “최단 / 최근 / 가장 관련”이면 BFS, 메모리 비용을 감수; “쓸 만한 해를 먼저, 메모리는 빠듯”이면 DFS, 돌아갈 수 있음을 감수. 다음 강의의 탐욕·샘플링, 그다음 Beam Search도 이 「탐색 전략 스펙트럼」 위에서 자리를 고르는 일이에요.

이 강의가 전하고 싶은 것