최근 AI 에이전트와 대규모 언어모델(LLM)이 소프트웨어 개발에 깊숙이 관여하면서, 소프트웨어 엔지니어링의 본질에 대한 논의가 활발합니다. 일각에서는 AI가 코딩의 많은 부분을 대체할 것이라는 예측도 나오지만, 실제 현장에서는 AI 도구를 효과적으로 활용하기 위한 소프트웨어 공학(Software Engineering) 기본기의 중요성이 더욱 부각되고 있습니다.
저자는 AI 에이전트가 '무엇을 할 수 있는가'를 넘어 '어떻게 잘 만들 것인가'에 집중해야 한다고 말합니다. LLM은 인간의 지식을 압축하여 예측하는 능력이 뛰어나지만, 실제 추론(reasoning) 능력은 부족하다는 한계가 있습니다. 이는 LLM이 좋은 코드와 나쁜 코드를 스스로 구별하지 못하며, 복잡한 시스템의 '이음새(seams)'를 설계하고 디버깅하며 장기적으로 유지보수하는 데는 여전히 인간 엔지니어의 깊이 있는 사고와 경험이 필요하다는 의미입니다. 특히 테스트 주도 개발(TDD) 프롬프트처럼 LLM에 명확한 지침과 검증 도구를 제공할 때 그 효과가 극대화됩니다.
이러한 관점에서 볼 때, AI는 소프트웨어 엔지니어의 역할을 대체하기보다는 강력한 '도구'로서 생산성을 높이는 데 기여합니다. 중요한 것은 이 도구를 어떻게 활용하여 견고하고 확장 가능한 소프트웨어를 구축할 것인가입니다. 디버깅 용이성, 유지보수성, 모듈화된 구조 등 소프트웨어의 근본적인 품질은 여전히 인간 엔지니어의 설계 역량에 달려있으며, AI 시대에는 이러한 기본기가 더욱 중요해질 것입니다. 결국 AI를 활용하더라도, 소프트웨어의 '만듦새'를 결정하는 것은 인간의 판단과 경험입니다.
