수개월간 LLM으로 코딩한 뒤, 다시 내 두뇌로 돌아가다 • albertofortin.com

ko생성일: 2025. 5. 16.갱신일: 2025. 6. 22.

사스(SaaS) 인프라를 LLM과 함께 빠르게 재구축하며 느낀 시행착오와, 결국 인간 개발자의 사고와 구조화된 접근이 왜 중요한지에 대한 15년차 개발자의 고찰.

몇 달 전, 내 SaaS를 위한 새로운 인프라를 구축해야 했다. 기존의 PHP+MySQL 조합은 더 이상 목적에 맞지 않았다. 그간 재미삼아 만지던 신형 LLM들을 한껏 활용할 기회라 설렜다. SWE(Software Engineer) 모자를 벗고 프로덕트 매니저처럼 굴었다. Claude와 베스트 프랙티스를 논의하고, 내가 직접 리서치를 하며 여러 번 왔다갔다 한 끝에 계획을 세웠다. 최종적으로 Go+Clickhouse로 결정했다.

개발을 시작할 때, Claude에게 내 기존 인프라와 바라는 새 인프라, 목표, 그 이유 등을 담은 방대한 마크다운 파일을 달라고 했다.

이걸 Cursor Notepads에 넣고 프롬프트를 시작했다. Cursor가 코드를 짜면, 나는 빌드하고 테스트했다. 별다른 문제 없이 잘 진행되는 듯했다. 코드베이스가 깔끔하진 않지만, 동작한다. 지금은 코드 정갈함보다는 속도가 더 중요했다. SaaS 비즈니스 고객들은 특정 데이터를 원했고, 이 새 인프라로만 제공할 수 있었다. 준비되었다고 말해주기만을 기다리는 예비고객들도 있었다. 하루라도 완성하지 못하면, 말 그대로 돈을 잃는 셈이었다.

그런데 몇 주가 지나자 틈이 드러났다. 점점 짜증이 났다. 매일 정말 끝에 다다른 것 같다가, 또 다른 문제가 나와 며칠씩 발목을 잡았다.

Go나 Clickhouse가 처음이니 익숙해지는 데 시간 걸리는 건 당연하다고 스스로 합리화했다. 하지만 문제는 계속됐고, 나는 점점 더 지쳤다. Cursor는 더 이상 큰 도움이 되지 않았다. 에러 메시지를 붙여넣으면 고쳐주긴 하지만, 그럼 또 다른 데가 망가졌다. 문제가 복잡해질수록 LLM이 실제 해결책을 제시하기 어려웠다. 그래서 직접 코드를 더 자세히 보기 시작했다.

나는 15년차 소프트웨어 엔지니어고, 학교에서 C++와 Java를 배운 터라 Go 파일에서 뭘 하는지는 대충 알았다. 하지만 Go나 Clickhouse의 베스트 프랙티스 개념은 없었다.

스스로 공부를 더 했고, 문서도 읽고, Clickhouse 관련 유튜브 영상도 봤다. Claude에게는 점점 더 구체적으로, 답변을 따져가며 물었다.

어느 날 아침, Cursor가 써준 코드 전체를 제대로 살펴보기로 했다. 무작정 프롬프트만 던진 건 아니지만, 빠른 진행에 집중한다 보니 코드를 제대로 리뷰하진 않았다. 그냥 빌드, 빌드, 빌드.

그래서 "코드 리뷰" 세션을 했다. 그리고 공포가 시작됐다.

같은 디렉터리에, 이름만 비슷한 두 서비스 파일이 있다. 하는 일도 비슷하다. 그런데 메소드 이름이 다르다. 파라미터도 불일치. 하나는 "WebAPIprovider", 다른 하나는 "webApi"다. 같은 파라미터를 가리킨다. 동일 메소드가 여러 파일에 여러 번 중복 선언되어 있다. 같은 설정 파일을 불러오는 방법도 제각각이다.

일관성도, 큰 그림도 없다. 10명의 주니어~미들 개발자가 Git 없이 한 방에 갇혀, 서로 코드를 못 본 채 일한 듯한 코드다.

혹시 궁금할까봐 말하자면, LLM에게 컨텍스트는 충분히 넣었다. 콘텍스트 윈도우가 큰 Gemini를 주로 썼다. 비슷한 파일을 또 만들 때는 참고하라고 구체적으로 지시했다. 그런데도 부족했다.

한 발 물러서서

이제는 분명하다, 접근 방식을 바꿔야 한다. 나는 본래 소프트웨어 엔지니어다. 내 역량을 충분히 안 쓰는 건 어리석었다. Go와 Clickhouse도 더 공부하고, 무작정 빌드하던 걸 멈췄다. 파일을 훑으며 코드를 고친다. 다 고치는 건 아니고, 정말 마음에 안 드는 부분만. 언어만 다를 뿐, 내 머릿속엔 원하는 코드의 모양과 구성 방식이 있다.

한 발 물러서니까 디버깅도 쉬워졌다. 속도는 느리지만 "이 코드를 내가 쓴 것 같으면서 사실 뭐가 들었는지 모르는 이상한 기분"에서 벗어났다. LLM도 계속 쓰지만, 더 바보같은 일에 쓴다. "이 파라미터 전부 이름 바꿔줘", 혹은 "이건 의사코드인데 Go로 바꿔줘" 같은 식.

이 과정에서 가장 힘든 건 AI 사용 욕구를 억제하는 거였다. 이 판타스틱한 도구만 쓰면 10개의 파일이 1분 만에 나온다. 안 쓰면 시간 낭비 아닌가! 그때 문득 깨달았다. 내 두뇌를 덜 쓰고 있다. 자기도 모르게 코딩과 관련해 모든 것을 AI에 맡기고 있다.

종이와 펜도 덜 쓰게 됐다. 새 기능을 기획할 때면 뇌보다 o4-mini-high에게 먼저 묻는다. 이런 내 모습이 싫었다. 이제 바꾸기로 했다.

그래서, AI의 임팩트가 걱정되긴 한다. 일자리 때문이 아니라, 내 정신적 예리함, 기능 설계력, 깔끔하고 기능적인 코드를 짜는 능력을 잃어버리는 게 더 걱정된다.

그래서 정말 크게 한 발 물러섰다. AI 사용을 최대한 제한했다. 우선종이와 펜을 들고, 함수 초안도 직접 코딩한다. 확신이 없으면 LLM에게 이게 좋은 접근인지, 변수명을 잘 쓴 건지, 마무리 팁이 있는지 확인한다.

하지만, 완전히 새 코드를 처음부터 짜달라거나, 아이디어를 내달라거나, 아예 플랜을 만들어달라는 요청은 안 한다. 내가 플랜을 짠다. 내가 시니어 개발자이고, LLM은 어시스턴트일 뿐이다.

행복한 절충점

이제 방식을 바꾸니 LLM에 대한 불만도 사라졌다. 기대치가 낮으니, 잘 할 땐 깜짝 놀란다. 어떻게 활용해야 더 똑똑한지 고민하게 됐다. 예를 들면, 학습 도구로 딱 좋다. Go를 익히고 스킬업하는 데 LLM을 쓴다. 그리고 그 새 지식을 실제 코딩에 적용한다.

그런데 비개발자라면 걱정된다. AI 시대가 오히려 노코드 시대보다 그들에게 더 어려울 수 있다. 노코드 툴이라도 인간의 상식이 들어가 있고, 기능이 빈약하더라도 구조가 존재한다.

"Vibe coding"이라든지, 코딩을 모르는 채로 AI에 맡기는 건, 프로토타입 이상의 무언가를 만든다면 여전히 재앙이다.

Cursor로 코딩하는 경험이 비전공자에게 어떤 느낌일지 상상이 안 간다. 아니, 어쩌면 감이 온다. 이해 못 할 코드 덩어리, 오류 투성이, 그걸 채팅창에 붙이면 더 많은 코드와 혼란, 결국엔 도저히 답도 없이 망가져버린다.

AI 열광론자분들께

AI 코딩 전문가들이 뭐라 항의할 소리가 들리는 듯하다. <최신모델>을 썼어야지! Cursor 규칙을 지켰어야지! Reddit에서 본 15단계 혁신적 워크플로우를 따라야 했지!

나도 했다. 써봤다. 정말이다. 근데 AI가 아직 못하는 게 너무 많다.

모든 AI, 자동화, 에이전트 워크플로우 조합을 다 써본 건 아니지만, 내 주장엔 과신이 없다. 의문이 든다면 Clickhouse를 몰라도 되는 척, LLM에게 수억 행의 테이블을 메모리 에러 없이 다루는 복잡 쿼리를 작성하라 해보라. 서버 램은 제한되어 있다.

SQL 스키마 전체를 붙여넣고, 최신 Clickhouse 문서 링크까지 달아주고, 비즈니스 니즈와 인프라 제약까지 최대한 설명해도—최신 Gemini도, o4-mini-high도, o3도, Sonnet 3.7도 못 한다.

그리고, AI한테 집이 아니라 카드 집을 짓지 않으려면 그냥 세팅에 몇 시간을 쏟아야 한다면, 과연 그만한 가치가 있을까? 게다가 모델 성능에 일관성이 없어서, 완벽한 워크플로우를 겨우 찾아도 오래 안 가거나, 용도만 바꿔도 바로 깨진다.

확실히 말한다. 나는 신기술에 환장하는 얼리어답터고, AI에 아직도 큰 기대를 가진 사람이다. 언젠가는 충분히 될 거라 믿고 싶다. 그러나 당장은 참 이상한 시기다. 도구는 근사하게 보여도 실제로는 ‘좋지만 훌륭하진 않은’ 수준이다. 게다가 우리를 더 멍청하게 만들 위험까지 있다.

혼란스럽다. 어딘가로 가야하는데, 걸어서 가거나 시속 900마일짜리 우주선을 탈 수 있는 셈이다. 그런데 조작법은 헝가리어와 고대 그리스어 반반이다. 시행착오 끝에 어렵게 우주선을 조종한다 쳐도, 끝나고 나면 그냥 걸어갈 걸 그랬나 싶다.

더 우울한 건, 벤치마크와 인플루언서, 새로운 매직 삽을 팔려는 온갖 회사들이 끊임없이 "이건 에이전트고, 그냥 또 다른 크론 잡이 아니다!"라며 우릴 속인다는 느낌이다.

어떤 날은 LLM 제공자들도 우리를 기만하는 것 같다. AI 관련 서브레딧만 봐도, 같은 모델, 같은 프롬프트, 같은 날에 누군가는 환호하고 누군가는 질타한다. AI로 코딩을 오래 하다 보면 이게 공감된다. 어떤 날은 놀라울 만큼 똑똑하고, 다음 날은 멍청하기가 이를 데 없다.

GPU를 조절하나? 통제가 불가능한 시스템인가? 도대체 무슨 일이 벌어지고 있는 걸까?