지난 1년간 바뀐 나의 프로그래밍 방식, 여러분은 어떤가요?
How I started programming differently over the last year. What about you?
핵심 요약
IDE 의존도를 줄이고 CLI 기반 코딩 에이전트와 계획 중심의 개발 방식으로 전환한 경험 공유.
- IDE 의존도 감소 — IDE의 자동 완성 대신 CLI 코딩 에이전트를 활용해 개발 효율을 높임.
- 계획 중심 개발 — plan.md 파일을 활용해 복잡한 작업을 작은 단위로 쪼개어 에이전트에게 수행시킴.
- 테스트 기반 검증 — LLM에게 테스트 코드 작성을 맡기고 실패 시 로그를 분석하게 하여 문제를 해결함.
- 코드 품질 논쟁 — AI가 작성한 코드의 가독성과 복잡성, 그리고 유지보수 책임에 대한 커뮤니티의 우려가 큼.
흥미로운 관찰 하나: 저는 IDE에서 LLM 기반 자동 완성을 사용하는 것을 중단했습니다.
처음에는 저에게 핵심 기능 중 하나였습니다. 매우 편리하게 느껴졌죠. 코드에서 함수를 작성하기 시작하면 LLM이 상식이나 열려 있는 탭의 컨텍스트를 기반으로 완성해 주니까요.
하지만 가장 흥미로운 점은 LLM 자동 완성이 유용하고 수요가 많았을 때, 저는 이미 소스 파일을 훑고 필요한 것을 선택하여 LLM 채팅에 입력할 컨텍스트를 준비해 무엇을 추가하거나 수정해야 할지 알려주는 스크립트를 작성해 두었다는 것입니다. 저는 약 6개월 동안 그렇게 일했습니다.
그리고 이제는 그것조차 사라졌습니다.
요즘은 IDE를 실행하지 않고도 코딩 에이전트가 있는 CLI 인터페이스를 여는 것이 더 쉽습니다. 필요한 것을 설명하고 @를 사용하여 검사하거나 수정해야 할 파일을 지정하면 끝입니다. 모든 것이 미친 속도로 변하고 있습니다.
기본적으로 제가 여전히 IDE를 사용하는 유일한 이유는 멋진 Git diff 시각화, 단계별 디버깅, 그리고 함수를 클릭하여 구현부로 이동하는 기능, 즉 코드 탐색 때문입니다. 그리고 그 기능조차 제 업무의 약 5-10%에서만 필요합니다.
다음에 무엇이 올지 생각하는 것은 흥미롭습니다.
제가 하고 싶은 말은, 저는 Java, Scala, Python, TypeScript, Rust 등 여러 언어를 동시에 프로그래밍하기 때문에 JetBrains의 모든 제품 구독을 가지고 있다는 것입니다. 하지만 문제는 '왜 계속 돈을 내야 하는가?'입니다.
물론 2-3개월에 한 번씩 불분명한 문제가 나타나고 디버깅이 그것을 찾는 데 도움이 되긴 합니다. 반면에 저는 이미 다른 접근 방식을 시도해 보았습니다. LLM 에이전트에게 프로그램에서 일어나는 일에 대한 로그 경로를 제공하는 것입니다. 문제를 해결할 정보가 충분하지 않으면 로그를 더 추가하라고 요청한 다음, 문제를 다시 설명하고 로그에서 무엇을 수정해야 할지 이해하라고 요청합니다.
물론 LLM에게 테스트 작성을 요청하는 것은 매우 편리합니다. 그것은 정말 유용합니다. 테스트가 실패하면 LLM은 자신이 코드에서 무엇을 변경했고 무엇을 망가뜨렸는지 확인합니다. LLM이 제자리걸음을 시작하면 저는 직접 말합니다. '이것을 테스트로 커버하고 로그를 읽어서 모든 것이 어떻게 작동하는지 이해해.' 매우 편리하죠.
최근 제 기법 중 하나는 plan.md 파일을 사용하는 것입니다. 복잡한 작업을 해결하라고 요청할 때, 먼저 작업 계획을 세워 plan.md에 작성하라고 합니다. 그런 다음 단순히 그 파일에서 한 번에 하나의 작업을 완료하라고 요청합니다. 그렇게 작은 작업들을 통해 단계별로 LLM은 결국 결과에 도달합니다.
전반적으로 저는 업계가 많이 변하고 있다고 생각합니다.
여러분의 경험을 공유해 주세요. 여러분의 프로그래밍 접근 방식은 어떻게 변했나요? 다른 사람들에게는 어떤 변화가 있었는지 듣고 싶습니다.
하지만 프로그래밍을 한 번도 해본 적이 없고 이제 막 vibe coding을 발견하신 분들은 답글을 달지 말아 주세요. 저는 1990년부터 직접 프로그래밍을 해왔고, 이는 제가 36년 전에 첫 프로그램을 작성했다는 뜻이니까요...


