Claude 와 함께 코딩, 2주차
https://blog.dgoon.net/post/91/
이 후로 짬짬히 claude 와 함께 코드작업을 계속 해 보고 있다. 역시 세상에 silver bullet 은 없다는 생각도 들면서도, silver 대신 copper bullet 정도는 되는거 아냐? 같은 생각도 든다.
1. Boilerplate 생성은 정말 훌륭하게 잘 해준다. 그런데, 이건 github copilot 도 나름 잘 해줌.
2. 플랫폼 지식 없이 뛰어들 수 있을 정도로 도와는 주는데, 플랫폼 지식 없이 디테일을 챙길 수는 없다. 이를테면, AI가 django 에 대한 이해 없이 간단한 django 프로그램을 만들어 돌릴 수 있게 가이드를 줄 수 있지만, 만드는게 복잡해지고 여러가지 컴포넌트간 의존관계가 생기면 django 에 대한 이해 없이 일을 시킬 수 없게 된다.
3. 기억력은 좋은데... 내 말을 가끔 무시하거나 시킨대로 안하는 경우가 있다. 이를테면, "앞으로 코드를 생략하지 말고 항상 전체 생성을 해" 같이 얘기해놔도 하다보면(한두번만에 금방 다시...) 금방 다시 코드를 생략하고 만들어준다. 혹은 A 라는 문제를 수정하고 나서, 여기에서 계속 B 문제도 수정해가다보면 어느순간 B 코드를 고치다가 A 수정사항을 롤백해버린다!? 만들어주는 코드를 생각없이 복붙해서 쓰다보면 이렇게 뒤통수 맞는다. 경험상 이런 문제는 chatgpt 4o가 좀 더 빠릿하다.
4. 그래서 설계가 더 중요해졌다. 특히 요 며칠동안 claude 에게 코딩을 시켜보니 모듈간, 코드간 디커플링이 작업 효율에 매우 중요했다. 간단한 예로, 어떤 동작을 하는 웹 페이지를 만드는데 웹페이지는 HTML + CSS + JS 의 조합으로 구성되었다. HTML 파일 하나에 모두 다 넣고 AI에게 작업을 시킬때 vs HTML, CSS, JS 파일을 나누어 두고 AI에게 작업을 시킬 때를 비교하면 후자가 압도적으로 효율이 좋았다. AI가 만드는 버그+실수 측면에서도 그렇고, 내가 그 코드를 프로젝트에 반영하는 노가다 작업 측면에서도 역시 그렇다.
5. AI가 어떤 실수를 했는지 놓치면 나중에 찾기가 어렵기 때문에(내가 만든 코드보다 남이 만든 코드가 디버깅이 더 어렵다고!), git 커밋 메시지 잘 쓰는게 중요하다. 생성해주는대로 기존 코드베이스에 그냥 업데이트하다 보면 어느순간 이건 잘 되다가 안되고, 저건 되고, 이건 좀 이상해졌고 ... 하는데 어딜 어떻게 손대야 할지 모르게 된다.
결론: AI 를 개발 도구로 활용해 보니, 좋은 설계, 좋은 Practice 가 전보다 더 중요해졌다. 사실 이거 원래 중요한거긴 한데... 예전에 혼자 뚝딱뚝딱 개발할 때에는 어차피 내가 다 파악하고 있으니까 설계가 좀 구려도 대충 하고, 커밋 메시지도 막 쓰면서 만들기도 했는데, AI 한테 타이핑 작업을 많이 위임하고 나니 그런게 중요해졌다. AI 끼고 작업하는게, 혼자가 아니라 팀 작업이라 그런건가...!?