“이제 코딩은 끝났습니다.”
최근 유튜브나 미디어에서 심심치 않게 들리는 이야기입니다. 실제로 젠슨 황 엔비디아 CEO도 “더 이상 프로그래밍을 배우지 않아도 되는 시대가 올 것”이라고 말했었죠.
20년 넘게 개발자로 살아오면서 DOS 시절부터 웹, 모바일, 그리고 지금의 AI 시대까지 수많은 기술 변화를 겪었습니다. 하지만 최근 1~2년 사이의 변화는 그동안의 변화를 모두 합친 것보다 충격적입니다.
초기 ChatGPT는 구글링을 조금 더 편하게 해주는 ‘검색 보조 도구’ 수준이었습니다. 하지만 O1 Pro와 Gemini 2.0 같은 ‘추론형 AI(Chain of Thought)’가 등장하면서 판도가 완전히 바뀌었습니다. 이들은 복잡한 요구사항을 스스로 분석하고, 아키텍처를 설계하며, 심지어 개발자가 놓친 예외 상황까지 찾아냅니다.
이제 “처음부터 끝까지 직접 코딩하는 것”은 비효율적인 일이 되었습니다. 그렇다면 개발자는 사라지게 될까요? 아니면 우리는 더 이상 코딩을 배울 필요가 없을까요?
현직 개발자의 관점에서, AI 시대에 우리가 코딩을 ‘다르게’ 배워야 하는 이유와 방법을 이야기해보려 합니다. 그 첫 번째는 ‘이론 학습의 효율화’입니다.
코딩을 배울 필요가 없다?
이제 대부분의 코딩을 AI가 대신할 수 있습니다. 자극적인 일부 영상들은 코딩의 종말을 얘기하기도 합니다. 코딩을 몰라도 앱을 만들 수 있다는 것이죠. AI 중심 코딩을 지향하는 현직 개발자로서 저는 이렇게 생각합니다.
AI만으로 충분한 앱 vs 개발자의 개입이 더 필요한 앱
단순한 앱 개발은 AI만으로 충분할 수 있습니다. 하지만 복잡한 구현을 요구하는 앱은 AI만으로 구현하는 건 쉽지 않습니다.
현재 가장 발전된 AI도 문제 복잡도가 높아지면 오판을 하는 경우가 많기 때문입니다. 적당한 선에서 답을 제시하기도 하고 실수를 방어하기 위한 검증 단계들을 스스로 수정해서 통과하게 만들기도 합니다.
따라서 복잡하고 규모있는 앱을 개발하기 위해서는 여전히 인간의 개입이 필요하다고 봅니다. AI의 설계를 검증해야 하고, 복잡도를 낮추기 위해 작은 단위로 분할하는 리팩토링, 필요시 직접 분석과 검증등 개입이 필요합니다.
코딩 책 학습이 여전히 유용한 이유
최근 코딩 학습 트렌드는 AI를 활용해 “필요한 기능만 빠르게 구현”하는 실용주의와 실행 중심(Action-Oriented)으로 흐르고 있습니다. 책을 처음부터 끝까지 진득하게 보는 방식은 AI 시대에 맞지 않는, 너무 느린 방식처럼 느껴질 수 있습니다.
하지만 무언가 새로운 것을 배울 때, 검증된 전문가가 설계한 체계적인 구조(Top-down) 안에서 학습하는 것은 여전히 유효하며 강력합니다. 파편화된 정보를 그때그때 검색해서 붙여 넣는 방식으로는 전체적인 아키텍처를 이해하거나 깊이 있는 응용력을 기르기 어렵기 때문입니다.
AI는 훌륭한 ‘조수’이자 ‘가속 부스터’입니다. 책이라는 견고한 뼈대 위에서 AI를 활용해 살을 붙이고 속도를 높인다면, 기초와 효율이라는 두 마리 토끼를 모두 잡을 수 있습니다.
AI를 기반으로 코딩 책 학습

저는 주로 C++, Java, Python, Javascript를 사용해서 개발을 했습니다. 작년에는 네이티브 모바일 앱 개발을 위해 코틀린을 학습했었습니다. 그 과정에서 요즘 시대에 맞는 코딩 학습법은 무엇일까라는 고민을 많이 했었습니다.
코딩 책은 보통 1000페이지가 넘는 책이 많습니다. 사실 나중에 알아도 될 TMI들이 많이 포함되어 있어서 일일이 정독하고 요약하는 하는 것만해도 시간이 많이 소요됩니다. 그래서 저는 공부할 챕터를 스마트폰으로 촬영하거나 캡처한 뒤, 이를 AI에게 던져주고 요약을 시키는 방식을 사용했습니다. 그리고 이 요약을 바탕으로 논의를 하며 학습을 진행했습니다. 여기서 NotebookLM을 활용할 수도 있죠. 그당시 저는 NotebookLM을 사용하지 않던 시기여서 아래 프롬프트를 책 내용을 요약하는 과정에서 활용했었습니다.
# 코딩 책 요약 프롬프트
당신은 프로그래밍 기술 서적 스터디를 돕는 AI 파트너이다. 지금부터 내가 업로드하는 책의 페이지 이미지를 보고, 아래의 규칙에 따라 노트(노션/에버노트) 정리용으로 내용을 변환하고 요약한다.
[요약 목적]
1. 책의 해당 페이지들을 정독하기 전에 미리 개념을 이해하는 데 도움을 준다.
2. 나중에 책을 다시 읽지 않고 요약만 보고도 핵심 내용을 복습할 수 있다.
[작업 규칙]
1. 텍스트 변환: 먼저 이미지에 있는 모든 텍스트를 빠짐없이 텍스트 형식으로 변환한다.
2. 상세 요약: 변환한 텍스트 전체 내용을 '에버노트용 요약' 형식으로 정리한다.
* 제목: 요약 내용에 어울리는 소제목을 만든다.
* 본문 구성: '개요 → 핵심 개념 → 구체적인 예제' 순서로 구성한다.
* [중요] 개요의 시작: 본격적인 개념 설명에 앞서, 만들고자 하는 최종 결과물, 해결하려는 문제, 또는 기능의 전체적인 흐름을 '목표' 또는 '요구사항'으로서 명확하게 먼저 제시한다.
* 본문 형식: 기본적으로 불릿 리스트(`*`)로 정리한다.
* 작성 스타일: 문장은 ~이다, ~함, ~해야 함처럼 간결한 노트 스타일로 작성한다.
* 성능 관련 세부사항 강조: 텍스트에 성능, 메모리, 속도 등과 관련된 미세한 차이나 장단점에 대한 언급이 있을 경우, 일반적인 상황에서 무시할 수 있는 수준이라도 반드시 요약에 포함시킨다.
* 핵심 기능의 확장 및 응용 방법 포함: 책에서 소개된 핵심 기능을 확장하거나 다른 기능과 조합하여 커스터마이징하는 방법에 대한 설명이 있다면, 이는 고급 활용법에 해당하므로 반드시 요약에 포함시킨다.
3. 코드 예제 포함: 요약 중간에 나오는 모든 코드 예제(인터페이스 정의 등 짧은 코드 포함)는 책의 예제가 그대로 포함되어야 한다.
* 코드 블록: 전체 코드 예제를 코드 블록으로 그대로 포함한다.
* 번호 부여: 코드 예제마다 "코드 예제 1", "코드 예제 2"처럼 번호를 붙여.
* 불릿 리스트 요약: 코드 블록 바로 아래에, 해당 코드의 동작과 핵심을 설명하는 불릿 리스트(*) 요약을 추가해.
실제로 코틀린 학습을 진행하면서 AI가 생성한 요약 결과를 검토하고, 부족한 부분을 채우기 위해 프롬프트를 계속 개선해 나갔습니다. 위의 프롬프트는 그 과정에서 다듬어진 최종 버전으로, AI가 에버노트나 노션에 저장하기 좋은 포맷(마크다운)으로, 핵심 내용을 누락 없이 요약하도록 유도하는 지침들을 담고 있습니다.
최근 많이 사용하는 NotebookLM 역시 디폴트 프롬프트만으로 요약을 시도하면 내가 원하는 디테일이 누락되는 경우가 많습니다. 결국 내가 원하는 결과를 얻기 위해서는 정교한 프롬프트 엔지니어링이 필요합니다. 여러분이 사용하는 AI 모델 또는 NotebookLM에서 필요에 따라 약간씩 커스터마이징 한다면 훨씬 만족스러운 나만의 요약 비서를 만들 수 있을 것입니다.


저렇게 정리된 요약을 먼저 읽고 난 후, 궁금한 점들을 AI와 논의하며 파악했습니다. 그리고 책을 파고들기보다 요약 위주로 학습했습니다. 이렇게 하면 책의 방대한 내용 중 불필요한 TMI는 건너뛰고 핵심만 빠르게 흡수할 수 있어 학습 효율이 비약적으로 높아졌습니다.
2편 예고: 이론을 넘어 ‘머슬 메모리’로
책을 다 읽었다고 그것이 온전히 내 것으로 내재화되진 않죠. 책을 몇 번 더 읽을 수도 있겠지만 코딩은 결국 자전거를 타거나 어떤 운동을 배우는 것처럼, 무의식적으로 그걸 자연스럽게 구사할 수 있을만큼의 머슬 메모리화가 필요합니다.
