본문 바로가기

카테고리 없음

바이브 코딩(Vibe coding)에 현타 온 사람?

저요 ㅋㅋ

제가 대학교 1학년 때 OpenAi의 ChatGPT가 급부상하면서부터 바이브 코딩의 시대가 도래했는데요
그로부터 2년이 지난 지금은 이제 ‘Ai를 얼마나 잘 사용하느냐’가 중요해진 것 같더라구요

그래서 바이브 코딩에 대한 회의감을 타파하기 위해 작성하는 글입니다 *_*


바이브 코딩이란?

개발자가 Ai에게 자연어로 지시하며 코드를 작성하는 행위를 뜻하는 신조어입니다.
엄밀한 논리에 기반하여 개발하는 것이 아닌 느낌에 의존하여 개발한다는 의미에서 만들어졌습니다.

바이브 코딩을 하며 느끼는 회의감

코드를 직접 짜고 구글링 하던 때와 달리, 베이스 로직을 Ai에게 맡기고 에러를 유발한 코드와 에러 문구를 붙여넣으면 해결법을 손쉽게 알 수 있게 되었습니다.
이로 인해 효율적이고 편리하게 개발을 할 수 있게 되었지만, 동시에 ‘스스로를 개발자라 할 수 있는가?’라는 의문을 가지게 되었습니다.

짜여진 코드를 보고 배우는 것과 처음부터 전부 직접 코드를 짜는 것에는 경험과 이해도 등 많은 부분에서 격차가 납니다.
눈으로 보고 이해한 코드를 직접 짤 수 없다면, 그래서 바이브 코딩으로 만들어낸 결과물을 혼자 직접 개발할 때 동일하게 코드를 짤 수 없다면, 과연 이를 안다고 말할 수 있을까요?

이를 가능케 하기 위해서 체화하는 과정이 꼭 필요합니다.
즉, 눈으로만 읽고 이해하는 것이 아닌 코드를 뜯어 보며 각각의 파일, 함수, 변수 등 정의되어 있는 모든 것이 어떤 의미를 가지는지 공부하는 과정을 거쳐야 합니다.
특히 눈으로도 이해가 되지 않거나 애매한 부분은 더욱 시간을 쏟아야 합니다. 이를 그냥 넘어가게 되면 결국 시스템의 유지보수가 어려워지고, 결국에는 쓰레기 코드를 사용하는 꼴이 될 수도 있습니다.

저는 다음과 같은 방식으로 공부를 하고 있습니다.
1. 모르는 코드 발견
2. Ai에게 질문 - 해당 코드가 어떤 원리로 돌아가며 무슨 역할을 하는지
3. 교차 검증 (구글링)
4. 이해한 내용 정리
5. 업로드한 내용을 Ai에게 재질문 - 작성한 개념이 해당 코드와 일치하는지, 애매하거나 틀린 설명이 있는지, 보완해야 할 사항이 있는지
6. 새로운 정보를 다시 교차 검증
7. 정립한 개념 및 코드를 티스토리에 업로드

더 좋은 방법이 있거나 다른 방식으로 공부하시는 분이 있다면 의견 공유해 주세요!


이러한 과정을 거쳐 체화하는 데 성공한다면, 바이브 코딩을 하더라도 시스템의 안전성을 보장하는 개발자가 될 수 있으리라 생각합니다.
결국 신뢰성 있는 시스템을 안전하게 운영하며 유지보수하는 것이 시스템 개발의 목표니까요!


개발자는 모두 사라진다?

Ai가 나오면서부터 한번쯤은 들어보셨으리라 생각이 듭니다.
개인적으로 아직까지는 저 말에 동의하지 않는 편입니다.

저는 저 말의 의미를 Ai를 통해 개발의 문턱이 낮아졌고, 이로 인해 개발자가 대체 가능한 직군이 되었다고 판단하여 나온 말이라 생각했습니다.
물론 프로토타입을 구현하거나 데모 수준의 가벼운 서비스를 만드는 것은 가능하나, Ai만을 사용하여 상용 가능한 서비스를 만들기에는 아직 부족한 부분이 많이 있습니다.

상용할 수 있는 서비스를 운영하기 위해서는
- 사용자의 요구사항을 정확히 파악하여 반영 (감성적인 부분 포함)
- 예기치 못한 오류에 대한 즉각적 대응
- 보안 (신뢰성 보장)
- 공격에 대한 방어
- 다수의 사용자를 받아들여야 함 (다수 트래픽 처리)
- 지속적인 모니터링
등의 여러가지 사항이 고려됩니다.

특히 기업 등에 소속되어 개발을 진행하는 경우에는 각 기업에서 요구하는 프레임워크와 개발 방식에 따라야 하지만, Ai는 LLM을 기반으로 학습되기 때문에 기업 내 데이터가 부족하여 이를 활용하기 어렵습니다. (기업에서는 보안을 위해 데이터를 공개하지 않는 경우가 대다수이기 때문)

또 괜찮은 코드를 생성하기 위해서는 정확한 요구사항이 필요로 하는데, 이때 요구사항을 정의하기 위해서는 결국 개발에 대한 지식이 필요로 합니다.
‘이거 만들어 줘’, ‘여기에서 에러 났어’와 같이 단순하게 요구하고, Ai를 통해 코드를 생성해도 해석할 수 없다면 이는 유지보수 과정에서 큰 타격을 입게 됩니다.
코드를 그저 복사하여 붙여넣기만 한다면 함수 하나에 1,000줄이 넘어가거나, 에러의 원인을 찾기 위해 log를 수백 개씩 출력하는 ‘Garbage In, Garbage Out'을 맞이하게 될 수 있습니다.
특히 데이터가 적은 언어일수록 확률은 더욱 커집니다.


결론

Ai의 성장세는 가파르지만, 그럼에도 아직까지 우리는 대체되지 않을 가능성이 더 크다!
그리고 회의감이 느껴질 때에는 공부를 하자.... 🤓

참고

https://www.instagram.com/p/DQ4QHepCaqN/?igsh=MTFwMmdoaWQwc2trNA==

로그인 • Instagram

www.instagram.com