아직 조향장치가 우리 손에 있다면, 책임도 아직 우리에게 있다.
프롤로그에서 말했던 두 번째 갈래는 사람이 읽기 좋은 코드 에 대한 글입니다.
최근 많은 개발자들이 그렇겠지만 요즘은 “이 기능을 어떻게 구현하지?” 보다는 “이걸 어떻게 효율적으로 만들지?” 를 더 많이 고민하게 되는 것 같아요. 저도 딱 작년까지만 하더라도 기능을 코드로 어떻게 실체화할지가 더 큰 고민이었거든요.
그런데 이제는 기능 구현이야 당연히 가능할테고, 어떻게 해야 더 효율적으로 깔끔하게 설계할 수 있을지를 더 많이 고민하게 됩니다.
다들 AI를 써봐서 알겠지만, 그냥 냅다 구현해달라는 요구사항이 마구마구 쌓이면 결국 그게 AI Context 부채로 돌아와요. 앞으로의 좋은 결과물을 위해선 지금 만드는 AI 산출물이 깔끔해야만 하구요.
AI가 짜준 코드를 그냥 삼켜도 될까?
이 과정에서 제 나름의 기준을 세웠어요.
AI에게 구현을 맡기는 시대흐름은 막을 수 없고, 저도 그것을 백분 활용해야 합니다. 하지만 그렇다고 AI가 짜준 코드를 모두 씹지도 않은 채 삼킬 것이냐고 묻는다면, 그건 너무 위험한 선택일 것 같아요.
여기서 저는 지금의 상황이 SAE International 의 자율주행 5단계 체계와 많이 닮아있다고 생각했어요.
지금 AI를 활용한 개발은 거의 3단계 혹은 4단계까지 온 것 같아요.
아직 5단계가 아니라고 판단한 이유는 SAE 5단계가 자율주행차량으로 쳤을 때 완전히 조향장치가 사라진 자동차를 타는 것에 가깝기 때문입니다.
조향장치가 사라진 차를 타는데 운전자에게 책임을 물을 수는 없잖아요. 그때는 제조사에 책임이 돌아가는 것이 자연스러울 거예요.
하지만 아직 우리는 코드를 수정할 수 있는 조향장치를 가지고 있습니다.
많이 쳐줘도 4단계이고, 따라서 아직까지는 우리에게 책임이 있다고 생각해요. 그래서 아무리 AI가 짜준 코드라도 코드리뷰라는, 우리가 씹는 저작운동이 필요합니다.
그래서 여전히 사람이 읽기 좋은 코드
그래서 저는 여전히 사람이 읽기 좋은 코드 가 최고의 가치라고 생각해요.
물론 기술적으로 더 나은 것은 당연히 챙겨야 합니다. AI를 활용하는 것도, 현재보다 더 나은 기술적 결정을 하는 것도 마찬가지구요.
하지만 기술적 발전을 따라가는 건 그리 어렵지 않아요. 어렵지 않은 것은 누구나 할 수 있구요. 그래서 차이점은 결국 그 다음에 생긴다고 생각합니다.
프론트엔드 개발자가 지녀야 하는 마음가짐은 두 가지인 것 같아요.
하나는 발전하는 기술에 맞춰 최고의 기술적 결정을 하는 것.
다른 하나는 모두가 하고 있을 기술적 결정을 넘어서는 차이점을 만들어내는 것.
그리고 그 차이점의 핵심은 결국 다시 사람을 이해하는 데 있다고 생각해요.
DX도 결국 사람의 경험이다
이건 디자인에만 제한된 얘기가 아니에요.
FE 플랫폼 개발을 해보면 DX를 신경쓰곤 하잖아요. DX도 결국 개발자의 개발 경험이기 때문에 사람과 연관되어 있습니다.
통일된 prop, 예측 가능한 구조, 어디에 무엇이 있을지 짐작할 수 있는 규칙.
이런 것들은 개발자의 인지 부하를 줄이기 위한 요소예요.
코드에서도 마찬가지입니다.
제가 가장 중요하게 생각하는 좋은 코드는 인지 부하를 줄일 수 있는 코드 예요.
컴퓨터가 실행하는 코드이지만, 그 코드를 읽고 수정하고 책임지는 것은 결국 사람입니다. 변수가 점점 많아지거나, 알고 있어야 하는 맥락이 넓어질수록 코드의 품질은 떨어진다고 생각해요.
반대로 좋은 코드는 다음에 읽는 사람이 덜 힘들게 이해할 수 있는 코드입니다.
AI가 작성했든, 사람이 작성했든, 결국 우리가 책임져야 한다면 읽기 쉬워야 하구요.
Outro
AI가 코드를 써주는 시대일수록 코드리뷰와 읽기 쉬운 구조의 가치는 더 커진다고 생각해요.
코드도 결국 사람이 읽고, 사람이 책임지고, 사람이 이어서 수정합니다.
그래서 AI 시대에도 좋은 코드는 여전히 사람이 읽기 좋은 코드여야 합니다.
