본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 05. 16. 13:40

AI에게 구현을 너무 많이 맡겼던 고등학생이, 쓴맛을 보고 배운 것

요약

본 글은 AI의 도움을 받아 OSS(Open Source Software) 개발을 진행하며 겪었던 경험을 바탕으로, AI에 대한 과도한 의존성을 재검토하는 내용을 담고 있습니다. 필자는 초기에는 설계부터 구현까지 AI에게 많은 부분을 맡겼으나, 코드 디버깅 및 성능 문제 발생 시 자신이 이해하지 못한 방대한 코드를 추적해야 하는 비효율적인 상황을 겪었습니다. 결론적으로, 기술 선정이나 설계 단계에서의 AI 활용은 유효하지만, 구현 전체를 AI에 의존하는 것은 위험하며, 모든 공정에서 스스로 검증하고 최종 판단을 내리는 주도권을 가져야 함을 강조합니다. 개발 효율성을 높이는 핵심은 단순히 코드를 빠르게 만드는 것이 아니라, 자신이 이해할 수 있는 코드의 양을 늘려 미래의 유지보수성과 문제 해결 능력을 확보하는 것입니다.

핵심 포인트

  • AI는 강력한 도구이지만, 개발 과정의 주도권과 최종적인 검증 책임은 개발자 본인에게 있다.
  • 개발 효율성을 높이는 핵심은 AI에 의존하는 것이 아니라, 자신이 이해하고 파악할 수 있는 코드의 양을 늘리는 것이다.
  • AI 활용 시에는 태스크를 세밀하게 나누고, 간단한 부분만 맡기며, 모든 출력물과 최종 판단은 반드시 스스로 확인해야 한다.
  • 테스트(Test)는 AI가 만든 코드를 검증하는 '최후의 보루'이므로, 이 과정은 반드시 직접 수행해야 한다.

최근 「AI를 사용하면 코드를 작성할 수 있다」라는 이야기를 자주 듣는다. 실제로 그렇고, 나 자신도 그 은혜를 입어왔다.

다만, AI가 작성한 코드를 자신의 코드로 취급해도 되는가라는 질문이 계속 머릿속을 맴돌았다. 이 기사에서는 자작 OSS (Open Source Software) 개발을 통해 AI와의 관계를 재검토한 이야기를 쓰고자 한다. 비슷한 고민을 하고 있는 사람들에게 참고가 된다면 기쁘겠다.

자작 OSS인 NanaSQLite를 개발하고 있었을 때, AI가 제안한 로직에 명백한 거짓이나 결함이 포함되어 있다는 것을 깨달았다. 이것 자체는 즉시 지적해서 고칠 수 있다. 문제는 그 이후였다.

개발이 진행됨에 따라 다음과 같은 일이 늘어났다.

  • 로직은 맞는데, 구현한 코드에서 버그가 발생한다
  • 정상적으로 작동하고 있는 것 같은데, 퍼포먼스 (Performance)가 떨어진다

이렇게 되면, 자신이 이해하지 못한 방대한 코드의 차분 (Diff)을 추적하면서, 그 안에서 버그를 찾아내야 하는 매우 비효율적인 작업을 강요받게 된다.

문제는 어렴풋이 느끼고 있었다. 하지만 「귀찮다」는 이유로 미뤄두고 있었다. 이번 개발에서 쓴맛을 보고, 드디어 정면으로 마주할 마음이 생겼다.

자신의 개발 플로우 (Flow)를 되돌아보면, AI에 대한 의존은 다음과 같은 상태였다.

공정당시의 실태
설계・기술 선정AI와 상담하며 결정
...

등교에 왕복 3시간이 걸리는 데다, 동아리 활동이 있으면 귀가 시간이 22시를 넘는 일도 있다. 「설계만 생각하고 나머지는 AI에게 맡긴다」는 스타일은 당시의 나에게 합리적인 선택으로 보였다.

하지만 결과적으로, 자신의 리포지토리 (Repository)에 자신이 파악하지 못한 코드가 쌓여가고 있었다. 이는 개발자로서, OSS의 제작자로서 솔직히 위험한 상태라는 것을 깨달았다.

문제가 「모든 공정을 AI에게 맡기는 것」에 있었다면, 해결책은 공정마다 AI의 역할을 명확히 하는 것이다.

기술 선정이나 설계의 초기 단계에서의 AI 활용은 계속해서 유효하다.

단, 출력물은 반드시 스스로 확인한다. AI가 거짓말을 하고 있지는 않은지, 자신의 의도와 맞는지 검증할 책임은 자신에게 있다.

구현을 통째로 AI에게 넘기는 것을 그만두었다. 대신 다음과 같은 플로우 (Flow)로 바꾸었다.

  • 태스크 (Task)를 세밀하게 나눈다
  • 간단한 부분은 AI에게 맡긴다
  • 의도를 알 수 없는 부분은 그때마다 AI와 논의하고, 필요에 따라 스스로 조사한다
    최종적인 확인과 판단은 반드시 스스로 수행한다

테스트 (Test)는 「자신의 의도한 설계대로 되어 있는가」와 「버그가 없는가」를 보증하는 최후의 보루다. 이곳을 AI에게 맡기는 것은 그 보증을 포기하는 것과 같다. 테스트야말로 스스로 작성한다.

방침을 전환한 후, 하나의 태스크 (Task)에 걸리는 시간은 확실히 늘어났다. 하지만 결과적으로 개발 효율은 올라갔다. 이유는 단순하다. 자신이 이해하고 있는 코드가 압도적으로 늘어났기 때문이다.

  • 버그가 발생했을 때의 디버깅 (Debugging)이 빠르다
  • 사양 변경에 대한 대응 시 망설이지 않는다
  • 코드를 다시 읽었을 때, 스스로 판단할 수 있다

한편으로, 과거에 AI에게 작성하게 했던 코드에는 지금도 파악하지 못하는 부분이 많아, 버그가 생길 때마다 해독을 강요당하고 있다. 이는 자업자득이라고 생각한다.

눈앞의 효율을 취할 것인가, 미래의 유지보수성을 내다보고 지금 투자할 것인가.

이것은 꽤 어려운 질문이다. 하물며 공부나 동아리 활동과 개발을 병행하는 학생에게는 더욱 고민스러운 일이다.

다만 이번 반성을 통해 다시금 실감한 것은, 스스로 코드를 이해하고 판단하는 것의 중요성과 그 과정의 즐거움이다. AI는 강력한 도구이지만, 주도권은 자신이 가져야 한다.

「AI가 작성했다」가 아니라 「내가 만들었다」라고 당당하게 말할 수 있는 OSS를 앞으로도 계속 만들어 나가고 싶다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0