← 메인으로

탐색하고, 확장하고, 활용하기

게시일: 2025년 10월 27일 | 원문 작성일: 2025년 3월 1일 | 원저자: Mary Rose Cook | 원문 보기

핵심 요약

AI 프로그래밍 도구가 너무 빠르게 발전하면서 생긴 불안감과 정보 과부하에 대한 솔직한 이야기입니다. 저자는 몇 달 전부터 잠을 잘 못 자기 시작했고, 그 이유는 매주 쏟아지는 새로운 AI 도구들과 워크플로우의 급격한 변화 때문이었어요.

주요 내용:

  • 전례없는 생산성 향상: 몇 문장 입력하면 수백 줄의 코드가 나오고, 한 시간 배우면 생산성이 확 올라가는 경험
  • 인지적 부담: 20년간 천천히 쌓아온 프로그래밍 지식 그래프를 해체하고 재구성해야 하는 고통
  • 해결책: 문명(Civilization) 게임에서 영감을 받은 “탐색-확장-활용” 프레임워크로 빠르게 변하는 환경 대응하기

잠 못 이루는 밤

몇 달 전부터 잠을 제대로 못 자기 시작했어요.

ChatGPT가 나온 이후로 AI에 대한 흥분은 계속됐어요. 친구 Jay가 전화로 Cursor 얘기를 해줬을 때부터 그걸 써서 코딩하는 게 너무 좋았죠. (당시 샌프란시스코 Eureka Heights에서 Noe Valley로 걸어가는 중이었는데)

그런데 1월에 뭔가 바뀌었어요. 직접적인 원인은 새로운 AI 릴리스들의 홍수였죠. o3-mini, Deep Research, Lightpage… 매주 새로운 지능이 하늘에서 무릎 위로 떨어져 내리는 느낌이었어요.

하지만 더 큰 변화는 제가 점점 더 빠르게 생산적으로 변하고 있다는 거였어요.

몇 문장 타이핑하면 백 줄의 코드가 나와요. 현기증 나는 느낌이었죠.

게다가 새로운 테크닉을 한 시간 배우면 생산성이 확 올라가더라고요.

20년 vs 1시간

이건 제가 지난 20년간 프로그래밍을 배워온 방식과는 완전히 달랐어요. 그건 느리고 점진적인 갈고 닦기였거든요. 캡슐화를 위한 새로운 테크닉 하나, “반복하지 마라(DRY)“의 의미에 대한 좀 더 세련된 이해 하나, 프로덕션 웹앱을 스텝 디버깅할 수 있다는 걸 배우는 것 하나…

전통적 프로그래밍 학습AI를 활용한 개발 학습
속도: 느리고 점진적 (20년)속도: 빠른 생산성 향상 (1시간)
학습: 작은 개념들을 천천히 누적학습: 새로운 분야를 배우는 것에 가까움
지식 그래프: 서서히 구축하고 연결지식 그래프: 기존 것을 해체하고 재구성
워크플로우: 안정적, 예측 가능워크플로우: 매일 변화, 새로운 방법

지식 그래프를 해체하는 고통

제 친구 Sam은 학습을 그래프 구축으로 모델링해요. 각 노드는 정보나 스킬, 행동을 나타내죠. 이들은 서로 연결되어 있고요. 새로운 지식 노드를 얻는 건 그렇게 어렵지 않아요. 그걸 정교화하는 건 좀 더 어렵죠. 다시 말해, 기존 그래프의 노드들과 연결하는 거요.

근데 진짜 골치 아픈 건 그래프의 일부를 해체해야 할 때예요. 어떤 노드들이 서로 모순되거나, 떼어내야 하거나, 교체해야 할 때 인지 부조화가 생기거든요. 그래프를 분해하고 다시 만드는 건 정말 고통스러워요. 프로그래밍을 배우는 건 그런 게 많았죠.

AI로 소프트웨어를 만드는 걸 배우는 건 완전히 다른 느낌이에요. 새로운 분야를 배우는 것에 훨씬 가까워요. 물론 예전 프로그래밍 방식도 관련이 있긴 하죠. 하지만 진짜 파워는 이름조차 제대로 없는 이 새로운 분야의 새로운 테크닉에서 나와요.

매일 바뀌는 워크플로우

게다가 새로운 테크닉들은 대부분 새로운 워크플로우를 요구해요. 에디터에서 코드를 복사해서 GPT에 붙여넣고, 요청하고, 코드 받아서 다시 에디터에 붙여넣기. 아니, 이제 그러지 마세요. 대신 코드 선택하고 ⌘-L 누르는 거로 시작하세요. 아니 잠깐, 멈춰요. 그냥 ⌘-L 누르고, 요청하고, 코드 받고, Apply 버튼 누르세요. 아니에요. 새로운 방법이 있어요. ⌘-I 누르고, 요청하고, 레포에 추가되는 코드 스캔하고, 실행해서 동작 확인하세요. 아니, 잠깐, 이게 킬러예요. PRD를 먼저 반복해서 다듬고, 그다음에 LLM에게 코드를 한 번에 작성하라고 하세요.

워크플로우의 진화:
  1. 에디터 → GPT 복붙 → 응답 복붙 → 에디터
  2. 코드 선택 → ⌘-L → 요청 → 붙여넣기
  3. ⌘-L → 요청 → Apply 버튼
  4. ⌘-I → 요청 → 스캔 → 테스트
  5. 현재: PRD 반복 작업 → LLM에게 원샷 코드 작성 요청

새로운 워크플로우를 받아들이는 건 인지적 부담을 줘요. 추가적인 감독이 필요하거든요. 그리고 예전의 안전한 방식으로 돌아가지 않으려면 의지력이 필요해요. 정말 지치는 일이죠.

불안정성의 세 가지 요소

그래서 불안정성은 세 가지예요.

첫째, 뭔가를 새롭고 놀라울 정도로 쉽게 해내는 순수한 감각.

둘째, 10분이나 한 시간, 혹은 두 시간을 투자하면 소프트웨어를 만드는 속도가 확 빨라질 수 있다는 지식.

셋째, 제 방법과 일하는 삶이 매일매일 변하고 있다는 것.

이런 이득을 얻을 수 있는데, 왜 항상 하지 않겠어요? 더 늦게까지 깨어 있고, 더 일찍 일어나고, 점심 먹으면서 AI 프로그래밍 영상을 보고, 일하는 대신 한 시간 배우고 나서 같은 날 그 손실을 만회하죠.

정보의 홍수

문제도 있어요. 정보가 너무 많아요. 매일 새로운 도구, 테크닉, 스트림의 홍수예요. 어떤 게 가치 있을까요? 시도해봐야겠다 싶은, 유망해 보이는, 효과가 있어서 더 해야 할 것 같은 것들의 긴 리스트가 있어요.

가끔은 45분짜리 유튜브 영상을 봐도 쓸모가 없을 때가 있어요. 다른 때는 앞으로 건너뛰다가 너무 좋은 정보를 찾아서, 이런 걸 놓치고 있는 게 아닐까 두려워지기도 하죠. 가끔은 별로 유망해 보이지 않던 테크닉이 몇 시간 후에 딱 맞아떨어질 때도 있고요.

해결책: 탐색-확장-활용

적어도 이것에 대해서는 해결책을 좀 찾았어요. 빠르게 변하고 불확실성이 높은 환경에 있을 때 어떻게 해야 할까요? 문명(Civilization) 게임이 좋은 가이드가 되더라고요. 탐색하고(Explore), 확장하고(Expand), 활용하죠(Exploit).

graph LR A["빠르게 변하는<br/>환경"] --> B["탐색 Explore"] A --> C["확장 Expand"] A --> D["활용 Exploit"] B --> B1["넓게 둘러보기<br/>많은 시도가 헛될 수 있지만 괜찮음"] C --> C1["좋은 걸 찾으면<br/>테크닉에 통합하기"] D --> D1["잘 작동하면<br/>최대한 활용하기"] style A fill:#e8f4f8 style B fill:#fff3cd style C fill:#d4edda style D fill:#f8d7da

탐색 (Explore)

넓게 탐색하는 데 많은 시간을 써요. 상황이 빠르게 변하고 배울 게 많거든요. 많은 탐색이 결실 없이 끝날 거고, 그건 완전히 괜찮아요.

확장 (Expand)

좋은 걸 찾으면, 그걸 통합하도록 테크닉을 확장해요. 명백히 유용한 도구에 대해 들었나요? 설치하세요! 코드를 더 쉽게 변경할 수 있도록 리팩토링하고 있었나요? 하세요!

활용 (Exploit)

뭔가 잘 작동하면, 최대한 활용해요. 멋진 새 테크닉을 배우고 나서 쓰는 걸 까먹기 쉬워요. 그러지 마세요. 대신 다시 꺼내서 쓰세요.

매달릴 무언가

저는 이 세 가지 카테고리로 리스트를 만들어요. 탐색, 확장, 활용. 그리고 각각에 시간을 좀씩 써요.

매달릴 무언가죠.

참고: 이 글은 Mary Rose Cook이 개인 블로그에 게시한 에세이를 번역하고 요약한 것입니다.

원문: https://maryrosecook.com/blog/post/explore-expand-exploit

생성: Claude (Anthropic)

총괄: (디노이저denoiser)