본문으로 건너뛰기

AI가 환기한 엔지니어링의 본질

· 약 4분
Minsup Lee

AI가 작성한 코드(구현)는 검증이 필요하다.

이 말에는 사람의 코드는 신뢰할 수 있다는 전제가 붙는다. 하지만 정말 그랬을까?

솔직히 말하면

전통적인 코드 리뷰 프로세스를 떠올려보자.

PR이 올라오면 전체 diff를 훑어본다. 하지만 모든 줄을 정독했나? 동료가 작성한 코드의 구현이 정확한지 매번 검증했나?

솔직히, 아니었다.

주로 보는 건 이런 것들이었다.

  • 노출되는 인터페이스가 사용자 입장에서 합리적인가
  • 테스트가 명세를 잘 표현하는가
  • 설계 방향이 맞는가
  • 팀의 코딩컨벤션(스타일)을 잘 따르는가

내부 로직은 "맞겠지" 하고 넘어간 적이 많다. 모든 구현을 검증할 시간도 없었다.

원래 중요했던 것

내가 가장 중요하게 생각하는 설계 원칙 중 하나는 **구현이 아닌 추상화에 의존하라.**는 원칙이다.

인터페이스와 구현을 분리한다. 중요한 것은 "어떻게"가 아니라 "무엇을"이다.

엔지니어링의 핵심은 구현이 아닌 추상화에 있다.

"어떻게 코드를 작성할 것인가"보다 "어떤 구조를 만들 것인가"가 훨씬 중요하다.

하지만 나는 늘 시간에 쫓겨 구조를 고민하기보다 코드를 채워 넣기에 급급했다.

AI 시대가 도래했음에도 여전히 코드 한 줄의 구현 자체에 집착하는 습관은 바로 여기에 있는 듯하다.

AI가 드러낸 것

나는 AI가 내가 잊고 있던 본질을 강력하게 환기시켰다고 생각한다.

미시적인 영역(코드)에 신경쓰기보다는 거시적 관점에서 전체적인 설계를 보라는 것.

이것은 소프트웨어 엔지니어링이 원래 가르쳤던 본질이다.

마치며

솔직히 말하면, 한동안은 마음이 헛헛했다.

내 머릿속 논리를 코드로 표현해가며 느끼던 그 코딩의 즐거움을 AI에게 빼앗긴 기분이 들었기 때문이다.

나는 이제 일의 재미를 어디서 찾아야하나 고민하기도 했다.

하지만 그 생각이 점차 바뀌고 있다. 좀 더 고수준의 일을 할 수 있게 됨으로써 엔지니어링의 재미가 점점 커지고 있다.