바이브 코딩, 바이브 코딩 유튜브에 수없이 많이 나오는 이 단어가 뭔지 일단 고민해봤다.
위의 이미지는 카카오 기술블로그의 글에서 캡처한 바이브 코딩에 대한 정의이다.
https://tech.kakao.com/posts/698
Vibe Coding, 새로운 개발 패러다임의 시작일까요? - tech.kakao.com
부제: 프로토타입부터 프로덕션 팀의 실무까지, 단계별 실험 사례를 통해 확인한 ...
tech.kakao.com
일단, 나는 GPT 유료버전을 거의 초창기부터 쓰다가, 지금은 Gemini로 갈아탔다.
처음 쓸 때는 그냥 재미있어서 썼던 것 같다. 2023년 중순부터 결제해서 사용했었는데...
전 회사가 방산쪽이었다보니, 코드나 문서를 직접 인용할 수는 없고, 요구사항을 최대한 내 언어로 풀어서 AI에게 설명했었다.
GPT는 개인 용도로 계속 사용하고, 회사 소스로 테스트 코드나 데이터를 만들어야 할 경우, 내부에 구축한 LLM을 이용해서 썼다.
Ollama와 같은 잘 만들어진 프레임워크?? 를 사용하면 하루이틀이면 충분히 LLM을 사내 서버에서 사용할 수 있다.
그것마저 불안하면 그냥 모델을 다운받고, Python으로 사용하면 된다.
보안 문제에서 어느정도 자유롭고, 테스트 데이터를 손수 만들기 위해 하루 이상 걸릴 일을 한시간 내에 끝낼 수 있었다.
지금 Gemini 같은 경우, Deep Research나 Canvas 기능을 이용하면 내가 직접 짜는 것보다 훨씬 나은 코드를 즉석에서 뽑아낸다.
내가 해야 하는 일은 AI가 작성한 코드를 보고 문제가 있을 내용이나, 필요해보이는 내용을 자세히 언급하는 것 외에는 없다.
예를 들어, 작성된 코드를 유지보수하기 쉽게 바꾸기 위해서는 적당한 예시와 함께 소스를 언급하는 방식이다.
올해 초 RAG를 학습하며 배운 방법대로 Prompt에서 다음과 같이 블럭을 통해 지시하는 편이다.
이 코드는 유지보수하기 어려울 것 같습니다. 각 책임을 분리해서 작성해주세요.
<코드>
...
</코드>
<구성예시>
@RestController ...RestController, @Service ...Service, @Repository ...Repository
</구성예시>
아니면 내가 짠 코드를 테스트하는 코드를 작성해달라고 부탁한다.
다음의 코드에 적합한 테스트 코드를 작성해주세요.
<필수 테스트>
NULL 테스트, 자료 변환 테스트, 에러 테스트 ...
</필수 테스트>
<코드>
...
</코드>
테스트 도구는 assertJ를 사용하고 싶습니다.
제공하는 자료로 테스트 데이터를 100개 만들어서 테스트해주세요.
<테스트 데이터 구조>
{}
</테스트 데이터 구조>
<원본>
...
</원본>
이 코드에서 더 고려해야 할 부분이 있는지 검토하고 테스트해주세요.
지금까지 쓰던 GPT나 Gemini 수준도 이러한데, MCP를 연동한 진짜 바이브 코딩을 하는 사람들의 생산성은 솔직히 감도 안온다.
2023년에 사용하던 GPT는 정말 간단한 로직을 제공해줬었고, 그마저도 틀리는 경우가 많았었다.
조금만 복잡한 내용으로 넘어가면 버벅거리고...
그런데 2025년, 지금은 AI가 작성해준 코드는 빛이나서 친절하게 주석을 달아주지 않으면 해석하기가 쉽지 않을 정도이다.
이 발전 속도에서, 그 누가 2년 후에 AI가 개발자를 대체하지 못한다고 이야기할 수 있을까?
위와 같은 이유로 AI를 업무에 적용하는 것을 늦게 하는 사람은 조만간 원시인이 될 것이라고 생각한다.
그런데 지금 나처럼, 신입 혹은 주니어 개발자한테는 이런 식으로 개발하는 것은 정말 도움이 되지 않는다.
내가 처음 공부할 때, 개발자는 90%를 구글링하는데 시간을 쓴다는 말을 학원에서 서로 나눴었다.
구현하려는 기능에 대해 선행 조사하고, 잘 만들어진 라이브러리나 예제 코드가 있는지 확인하고, 내가 적용하고 나서 발생한 장애에 대응하기 위해 또 구글링하고...
- 물론 이건 과학적 방법론이다. 선행 연구 - 문제 도출 - 연구 방법 설계 - 연구 - 결과 및 한계 ....
위의 방법이 잘못되었다는 것은 아니다. 다만 조사와 적용, 장애처리 단계에서 얼마만큼 해당 라이브러리와 프로젝트에 대한 이해가 있는지를 고민하냐 안하냐가 단순 코딩 노동자와 개발자를 가르는 분기점이었을 뿐이다.
그런데 AI가 발전한 지금은 그 모든 것을 AI가 대행해준다. 다만 프로젝트에 적용하는 일만 개발자가 수행하게 된다.
문제는 이 지점이다.
왜 이 기술이 필요한지, 이 기술의 특징이 무엇인지, 어떻게 적용해야하는지에 대한 고민을 위해 기술문서를 보고 생각하는 시간마저 AI에 의해 단축되면서 그러한 고민을 하지 않고도 잘 동작하는 코드들이 넘쳐나기 시작했다. 문제는 그것이 내 실력이라고 착각하게 된다는 사실이다.
이런 부분은 결국 장애 처리나 성능 최적화를 고민할 때 드러나게 되는데, 물론 이것도 AI에게 잘 설명하면 다 대응이 된다.
다만, AI가 학습하지 않은 내용들이나 회사의 특별한 환경에 의해 문제가 발생하는 경우 해결 방법을 찾는 것이 불가능하다.
애초에 기술에 대한 어느 수준 이상의 이해가 없는 경우, 제대로된 프롬프트를 작성하지도 못하는 경우가 많다.
그냥 로그를 통째로 복사해서, 어느 부분에서 문제가 있을지 검토해줘!
이런 식으로 작성하게 된다.
나는 그런 개발자가 되고싶지는 않다.
내가 개발자로 일하고 싶은 이유는 컴퓨터를 써서 문제를 해결하는 것 그 자체가 재미있기 때문이다.
일에 치여 내가 이해하지도 못하는 코드, 설명하지도 못하는 코드를 복사해오는 것은 싫다.
- 그럼에도 불구하고 사실 아무 것도 모른다....
하지만 일을 하기 위해서는 앞으로 반드시 AI를 사용해야 한다고 생각한다.
이 지점이 참 딜레마인 부분이다.
그래서 요즘은 그냥 대놓고 쓴다.
마치 페어 프로그래밍 하는 느낌이랄까?
대신 AI가 생성한 코드를 리뷰하는 식으로 바라본다.
내가 AI에게 리뷰하고 코멘트하는 것처럼 하면 나는 도망갈 것 같다.
이건 왜 이렇게 작성했는지, 이렇게 하면 성능에 문제가 있지 않은지, 이 방식 대신 이런 패턴을 적용하면 어떤지...
근데 이게 생각보다 도움이 된다. 내가 그냥 시험 대비로 공부하고 넘어갔던 CS 지식들이 조금씩 코드와 맞춰져간다.
물론 누가 나한테 물어보면 버벅거리겠지...? 그래도 내가 손으로 치고 궁금해했던 내용들이 많은데 어느정도 나오겠지...
도구를 어떻게 쓰는지는 정답이 없다.
다만, 지금 내 상황에서 가장 적합한 사용 방법이 뭘까는 끊임없이 고민해보고 있다.
차마 바이브 코딩까지는 못해보겠다..
'이것저것' 카테고리의 다른 글
[Adfit] 심사 보류 - 광고를 설치한 이후 심사 진행이 가능합니다. (0) | 2025.06.13 |
---|---|
재미있게 운동하기 좋은 스피닝 (0) | 2025.06.12 |
기아자동차 PV5 (2) | 2025.06.10 |
[해루질] 하나개 해수욕장 (0) | 2025.05.29 |
구글맵과 지도 데이터, 그리고 보안 (0) | 2025.03.16 |