AI를 하려면 먼저 깍는다는 것을 이해해야한다.
모든걸 AI 에게 맡기면 발전하기 어렵다.
AI 시대에서 AI 에게 의존하는 경향이 점점 심해진다.
AI 에게 일을 시키고 나서 안되면 AI 탓을 한다.
자기가 어떻게 시켰는지는 중요하지 않다. 시킨거에 대한 결과물을 보고 만족하지 않으면 다시 동일하게 요청한다.
한번의 요청으로 완벽한 결과가 한번에 나오기를 바라는데, 이는 잘못된 방법이다.
일단은 기본적으로 AI 없이 개발을 한다고 가정했을 때, 어떤식으로 진행했는지를 알아야한다.
먼저 어떤식으로 만들지 검토를 하고, 계획을 하고 스팩을 정한다.
흔히 말하는 MVP 라는 것을 정하는걸 말한다.
그리고 정해진 MVP 대로 AI 는 개발을 진행하고, 물론 결과는 아주 만족스럽지 않을 것이다.
여기서 시작되는게 바로 깍는거다.
많은 AI 를 사용하는 사람들은 깍는다는 개념을 쓴다.
그게 뭐냐면 전체적인 그림을 그리고 난 뒤에 하나씩 만족스럽지 않은 것을 자기가 이해하고, 그거를 시켜야한다.
하나하나 시키고, 또 보다보니 시킨 뒤에도 만족스럽지 않은 부분이 계속 보이게 된다.
그런게 보이면 또 시키면 된다. 물론 이렇게 시키다보면 문제가 발생한다.
같은 코드를 고치다보면, "충돌" 이라는 것이 발생하게 되는데, 충돌이 발생하게 되면 서로 구현하는게 꼬이게 되고 서로 꼬인거를 고치다가 내가 고친게 아닌거라고 해서 오류로 인식하고 없애버릴 수도 있고, 어떻게 판단할지는 알 수 없다.
그래서 초기에 대부분의 AI 를 사용하는 사람들은 미리 시켜둔게 있어서 새로 일을 못 시키는 문제가 있었다.
그런 사람들에게는 그래서 worktree 라는 도구가 필요한 것이다.
또한 worktree 라는 도구를 쓸 때 발생하는 부작용들도 있다. 이러한 것들을 쓸 떄 그냥 worktree 쓰면 좋다던데 쓰게 해줘.
라고 하는 순간 당신이 나중에 발생하는 부작용 때문에 컴퓨터가 힘들어하고, 제대로 성능이 나오지 않을 것이다.
아무튼 동시 작업을 위해서는 worktree 라는 것이 뭐고 어떤거고 어떻게 해야 잘 쓰고 뭐를 해야하는지 AI 와 의논을 하면서 내 시스템에 넣어야한다.
무작정 넣으면 계속 발생하는 비효율에 오히려 더 구려질 수도 있다.
그렇기 때문에 본인이 무언가 새로운 기술이나 스택을 넣을 때 이게 뭐하는 건지 정확히 이해하고, 어떻게 적용했는지 이해하는 건 상당히 중요하다.
이상한 방향으로 빠졌는데 계속 보다보면 자기가 원하는 바를 위해 계속 요청을 해야한다.
그냥 한번 요청에 끝내면 참 좋겠지만 그게 쉽지가 않다.
이런식으로 AI 랑 계속 일을 시킨 뒤에도 AI 가 낸 결과물이나 AI 가 작업하는 과정들을 보면서, 아 이새끼 이상하게 일하고 있네? 라고 인식도 할 줄 알아야하고, 하는걸 보고 도중에 바꾸게 시킬줄도 알아야한다.
그래야 아 얘가 지금 이런식으로 일 하고 있는데, 이렇게 하면 안되겠구나, 이렇게 바꾸라고 해야겠다라는 자기의 판단이 생기게 된다.
그리고 그거에 맞춰서 나만의 workflow 가 생기고, 그거를 AI 에게 요청해서 내 기본 시스템에 넣을수가 있다.
그냥 주어진대로 계속 업데이트 되는대로 하면 안되냐고 할 수도 있는데, 그러다가 나중에 내가 원하지 않는 방향, 기존 방식과 전혀 다르게 구현하거나 그럴 경우에는 어떻게 대응할 것인가? 그냥 주어진대로 살 것인가?
프론티어랩 AI 가 구려지거나 다른 경쟁사 프론티어가 더 성능이 좋아서 옮겼는데 방식이 맘에 안들면? 컨트롤 할 수 있는가?
그렇기 때문에 AI 가 만든 결과물을 보면서 하나하나 "깍는" 행위가 필수인 것이다.
주변에 클로드 코드와 코덱스만으로 깍는 행위를 통해 엄청난 사이트나 앱을 만들고, 홍보 수단이 좋아서 잘되는 지인이 있다.
이 분은 그냥 계속 자리에 앉아서 AI 한테 일을 시킨다. 하나하나 맘에 안드는거, 나 일일히 고치게 한다.
이렇게 하면 무조건 잘된다. 근데 이 방식은 위에 말한대로 기본적으로 코딩하는 과정이랑 동일하다.
그냥 시키는 방식이 달라진거지, 계속 보면서 수정하던 프로그래머의 모습과 동일하다.
애초에 이 과정 자체가 없으면 어떤식으로 개발이 되는지 이해하기 어렵다.
이렇게 오래 앉아서, 토큰을 맘껏 쓰다보면 당연히 원하는 결과물이 나온다.
그게 깍는 과정이다.
이렇게 깍는 과정으로 만들어진 제품은 물론 퀄리티가 매우 좋다. 오래 걸린 내 시간과 토큰을 쏟아부은 결과물이기 때문이다.
하지만 계속 새로운거를 할 때마다 이렇게 하는거는 비효율적이다.
그래서 계속 자기만의 시스템 구축에 신경을 쓰라고 하는 것이다.
나도 클로드코드가 처음 나왔을 때, 기존처럼 개발하는 시간을 오래 가지면서 기존 개발하는 방식을 클로드와 함께 시키면서 바꾸었었다.
근데 이렇게 한달 정도 해보니까 그냥 내가 일하는거랑 크게 다를게 없었다.
그냥 얘가 좀더 세련되게 코드를 잘짜거나, 내가 노가다로 해야하는 부분을 대체하는거지, 지시는 결국 내가 대부분해야했다.
그냥 딸깍 시킨 결과물은 내 만족이 안되는 결과물을 냈으니까.
그래서 클로드가 조금 다시 똑똑해서 돌아왔던 4개월전에 개발을 해서 새로운걸 만들기보다는, 내 시스템 구축에 힘써왔다.
원래 내 시스템 구축하는걸 좋아하는편이고, AI 가 있기 전부터 나는 kafka + redis + postgresql + proxy 서버를 vps 10개 이상을 활용해서 구축하였다.
이 부분을 다 내가 직접 ssh 로 접속해서 관리하고 시스템화했고, status 서버 및 error 서버도 다 혼자 구축했었다.
지금은 AI 한테 다 최신으로 업데이트 및 알림 서비스까지 다 구축시켰고, 내 대시보드에서 컨트롤이 가능하다.
그리고 이제는 내가 개발하던 방식을 대시보드에서 workflow 나 규칙관리, 내가 아는 정보를 다 몇개월간 얘한테 학습 시켰고, 내 시스템을 이해하고 있기 때문에 대충 시켜도 내가 원하는 수준으로 개발을 해준다.
이제는 진짜 딸깍 한번이면 상용 수준은 나오고, 미세한 조정이나 신기능 추가정도로만 수정 요청을 해도 충분하다.
그래서 AI 로 개발을 많이 안해봤다면 처음부터 전체적으로 다 해주는걸 절대로 기대하면 안된다.
하나하나 깍다보면 어떤식으로 개발하는지 이해가 되고, 어디를 자동화하면 편하겠구나 감이 온다.
원래 AI 는 내가 기존에 하던 걸 자동화하는데에 아주 최적화 되어 있다.
기존에 손수 해오던걸 자동화 하는것만으로도 상당히 메리트가 있는데, 아무것도 모르는걸 그냥 알아서 해줘 하면 원하는게 안나온다.
그렇기 때문에 무조건 깍는 연습을 해보길 바란다.