저는 바이브 코딩을 어느 정도 해봤지만, 일반적인 코딩 방법을 모른다면 어떻게 해야 할지 전혀 모르겠습니다.
저는 Claude 코드를 가장 좋아합니다. Codex는 지나치게 엔지니어링적인 경향이 있고, 구체적인 지침을 따르지 않는 것 같습니다.
가장 어려운 점은 이 모델이 엄청나게 많은 코드를 작성한다는 점인데, 그중 상당수가 (옛날 의미에서) 중복되고 엉성합니다. 하지만 좋은 점은 단위 테스트를 백만 개는 쉽게 작성할 수 있다는 것입니다. (저는 gpt-3.5 이후로 항상 LLM을 사용해 왔습니다.)
꽤 흥미로운 패러다임이네요. 예를 들어, 제가 만들고 있는 이 작은 장난감 앱에는 앱이 특정 요소로 스크롤하도록 트리거하는 부분이 15개 정도 있습니다. 각 부분에는 이 작업을 실행하기 위해 정확히 동일한 7줄이 작성되어 있습니다. 제가 이 작업을 하는 방식은 다음과 같습니다.
scrollToElement 함수를 작성하고, 원하는 요소로 스크롤할 때마다 이 함수를 호출합니다. 하지만 스크롤하는 데 필요한 7줄의 코드만 작성합니다. 이 부분을 리팩토링할 생각은 전혀 없는 것 같습니다. 분명 좋지 않은 일입니다. 하지만,
필요에 따라 동일한 코드 15개를 수정하는 데 전혀 문제가 없는 것 같고, 동작이 충분히 테스트 커버되어 있어서 하나를 잊어버리면 테스트를 통과하지 못하고 오류를 찾아 수정합니다. 보기에는 끔찍하지만 충분히 잘 작동합니다.
코드를 꼼꼼히 읽기 시작하기 전까지는 전혀 눈치채지 못했습니다. 보통 이렇게 반복하는 건 피하고 싶어 하는데 (DRY), 취약성과 버그가 생기기 때문입니다. 하지만 이번에는 그렇지 않은 것 같습니다. 여전히 나쁘지만 흥미로운 질문들을 던집니다…
예를 들어, 코드 작성에 무한한 체력을 가진 사람이 있다면, 좀 더 장황하게 쓰는 게 나을까요? 제가 하는 많은 방식은 최대한 적은 코드로 최대한 많은 작업을 하려는 미적 선호에서 비롯되지만, LLM 코드에는 그게 최선이 아닐 수도 있습니다.
물론, 이 모델이 무한한 체력을 가진 건 아니죠. 돈이 들죠. 아마 제가 사는 것보다 더 많은 돈이 들 거예요.