바이브 코딩
요즘 AI만을 이용해서 코딩하는 것을 바이브 코딩이라고 하더라. 아마 “이런 느낌처럼 해줘~“라는 데서 유래한 것 같다.
사이드 프로젝트로는 행복주택을 더 편리하게 알아볼 수 있게 도와주는 서비스에 Next.js를 이용해서 적용해보고 있고, 회사에서도 2주만에 상당수 개발을 끝내야 하는 프로젝트 일부 페이지에 사용해보고 있다.
확실히 바이브 코딩을 해보면서 프롬프트 엔지니어라는 말이 왜 생긴지 알 것 같을 정도로, 어떻게 프롬프트를 전달하느냐에 따라 처리 능력이 달랐다. 최근에 회사에서 프롬프트 엔지니어링과 RAG를 구현하는 교육 프로그램이 있어서 신청해서 듣고 있어서 일부 도움이 되었다.
장점
- 간단한 알고리즘이 곁들여졌거나 단위 기능구현에서는 설명만 잘하면 우수한 성능을 발휘했다.
- 단어를 조리있고, 정확하게 조합해야 하는 습관이 생긴다. 요즘, 글을 쓸 일이 많이 없고 말도 예전처럼 많이 하는게 아니다보니 언어 능력이 떨어진다는 느낌을 받았는데, 바이브코딩을 하면서 언어능력이 늘어나는 것 같다. 이게 맞나라는 생각은 들지만 나중에 지금보다 더 많은 부분을 AI가 대체해주는 시대가 온다면, 더욱 필요하게 될 요건일지도 모르겠다. (지금은 아무리 AI가 많은 부분을 대체해주더라도, 완벽하게 대체해주지 못하면 의미없다고 생각하기 때문에 문제해결력을 키우는 것이 중요하다고 생각한다.)
단점
- 기존 컨벤션을 가끔 무시하는 경향이 있다. AI는 프롬프트를 길게 주더라도 중간 내용일수록 이해도가 낮은 현상이 있는데, 그런 부분이 코드 베이스를 이해하는 능력을 떨어트려 핵심적인 기능 구현에 집중하는 것이 아닐까하는 생각도 든다.
- 계속 이렇게 하면 멍청해지고, 더욱 더 AI에게 의존할 것만 같다는 생각이 들었다. 어떻게 해야 시대의 흐름에 맞게 AI를 잘 사용하면서도, 문제해결력을 유지할 수 있을까?
- 사람이 짜는 것처럼 코드를 깔끔하게 짜는 능력은 부족한 것 같다. 이 부분은 추가적으로 요청하니까 어느정도 해결됐다.
- 개발을 끝내고 났을 때 이건 내가 개발한 것이 맞을까?라는 생각이 크게 들었다. 결국, 코드를 처음부터 다시 보고 AI가 짠 코드를 검증하는 단계를 거쳐야 한다.
후기
문제해결력만 강조하면서, AI를 쓰면안돼!는 시대의 흐름에 뒤쳐질 수 밖에 없다고 생각한다. 어느정도 조화를 이루는 것이 핵심인데, 개발자들은 알고리즘 문제나 구현할 수 있는 부분들은 직접 구현해보고, AI의 도움을 받아서 더 좋은 코드를 찾기 위한 과정을 거치면 될 것 같다. 마치 굉장히 똑똑한 개발자 동료가 도메인은 몰라서, 기존 컨벤션에 맞게 구조나 코드를 짜기는 조금 어려워도 기능 구현하나는 기가막히게 잘 구현하는 동료가 함께 한다고 생각하면 좋은 것 같다.
결과적으로, 개발자는 제품을 만들어서 사용자에게 가치를 전하기 위한 것이 핵심 목표가 맞지만, 문제해결을 통한 희열이나 성취감 또한 동기부여가 되어 개발을 지속적으로 할 수 있게 해주기 때문에 적절히 잘 사용하는 것이 중요하다고 생각한다.