본문으로 바로가기

LLM이 소프트웨어 개발을 완전히 대체하지 못하는 이유와 현실적 활용법

달의이성
달의이성
조회수 178
요약

인공지능의 발전에도 불구하고 LLM(대형 언어 모델)이 소프트웨어 개발자를 완전히 대체할 수 없다는 사실을 알고 계신가요? 오늘은 실제 소프트웨어 개발 과정에서 LLM이 어디까지 유용한지, 그리고 어디서 한계에 부딪히는지 쉽고 재미있게 풀어봅니다. 개발자의 사고력과 AI의 작업 방식의 차이, 왜 아직은 사람이 필요한지까지 한눈에 확인할 수 있습니다.

소프트웨어 개발자의 핵심 역량은 명확한 사고와 반복적 문제 해결에 있습니다

실력 있는 소프트웨어 엔지니어를 관찰하면 반복하는 과정이 있습니다. 요구사항을 마음속에 그려보고, 그에 맞는 코드를 작성하며, 작성한 코드가 실제로 어떤 동작을 하는지 파악합니다. 그리고 문제와 차이를 발견하면 다시 코드를 고치거나, 요구사항을 업데이트합니다. 모든 과정의 중심에는 명확한 사고가 있습니다. 즉, 머릿속에서 요구사항과 코드의 동작을 그려보며 끊임없이 비교하고 수정하는 역량이 중요합니다.

LLM이 잘하는 일은 코드 작성과 간단한 업데이트입니다

챗GPT와 같은 LLM은 코드 생성 능력이 뛰어납니다. 오류가 명확할 때 수정도 곧잘 합니다. 테스트 코드를 읽고 문서화 작업도 잘 해내며, 요구사항이 분명한 단순한 작업이라면 LLM만으로도 충분히 좋은 결과물을 한 번에 받아볼 수 있습니다. 빠른 문서 요약, 예시 코드 제작, 반복적인 변경 등에 강점을 보입니다.

AI의 근본적 한계는 맥락 이해와 사고력의 부족에 있습니다

그럼에도 불구하고 LLM은 머릿속에서 전체 그림을 그리지 못하는 결정적인 한계가 있습니다. 스스로 코드를 검증할 때 혼란을 자주 겪으며, 테스트 오류가 발생하면 코드가 잘못인지 테스트가 잘못인지 판단하지 못하다가 모든 것을 삭제하고 처음부터 시작해버리기도 합니다. 반면 능숙한 개발자는 실패에 부딪힐 때마다 요구사항이 잘못됐는지, 코드가 엉킨 건 아닌지, 더 많은 정보를 수집해서 판단해야 하는지 냉철하게 분석합니다.

사람과 AI의 차이점은 유연한 맥락 관리와 집중력입니다

사람은 복잡한 맥락과 세부 정보를 머릿속에 넣었다가, 필요한 순간에는 전체를 내려놓고 작은 부분만 집중할 수 있습니다. 궁금한 점이 생기면 동료에게 물으며 문제를 넓게 보거나, 직접 현상을 좁혀 살펴봅니다. LLM은 아직 이런 능력이 없습니다. 단순히 많은 데이터를 줘도 전체를 파악하지 못하며, 최근에 입력된 정보를 더 중시하는 최신성 편향, 자신의 맥락을 잘 못 찾는 맥락 누락, 근거 없는 내용을 만들어내는 환상 증상 등이 문제로 남아 있습니다.

LLM은 여전히 소프트웨어 개발자의 훌륭한 도구입니다

LLM이 소용없다는 이야기는 아닙니다. 질문에 빠르게 답하고, 문서를 압축해주며, 반복적인 작업을 자동화해줍니다. 간단한 문제와 분명한 요구사항이 있을 때는 아주 강력한 도우미가 될 수 있습니다. 하지만 복잡한 애플리케이션이나 요구사항과 코드가 언제든 변화할 수 있는 프로젝트에서는 궁극적인 책임이 사람에게 있습니다.

앞으로의 방향은 인간과 AI의 협력 구상입니다

앞으로 LLM 기술이 발전하면 사람처럼 여러 맥락을 동시에 다루고, 필요에 따라 세부사항을 파악하는 역량도 생길 수 있습니다. 그러나 지금은 사람이 직접 요구사항을 정의하고, 큰 그림에서 문제를 파악한 뒤 LLM을 강력한 도구로 활용하는 것이 가장 합리적인 전략입니다. 중요한 책임은 여전히 소프트웨어 개발자에게 남아 있습니다.

마무리하며 요즘 소프트웨어 개발을 고민한다면 LLM으로 반복적이고 쉬운 작업은 간편하게 처리할 수 있습니다. 하지만 중요한 결정, 오류 분석, 복잡한 요구사항 관리에서는 직접 머릿속 그림을 그리고 선택하는 습관이 필요합니다. AI와 협력해 효율을 극대화하되, 운전석은 언제나 사람이 잡고 있어야 좋은 결과로 연결된다고 생각합니다.

출처 https://zed.dev/blog/why-llms-cant-build-software