본문으로 건너뛰기

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

· 약 2분

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

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

솔직히 말하면​

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

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

솔직히, 아니었다.

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

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

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

원래 중요했던 것​

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

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

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

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

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

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

AI가 드러낸 것​

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

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

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

마치며​

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

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

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

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