일단 제가 원하는 프로젝트 비전만 세워두고
브레인스토밍, 기획, 세부 기능, 명세화, 코딩 전부 LLM에게
거의 95%? 지시하는 바이브 코딩으로 작업하고 있습니다.
기술 스택도 처음 해보는 것들이 거의 다네요..ㅋㅋ
남은 5%는 자료들을 LLM 특유의 말투가 아니라 사람이
이해하기 쉬운 형태로 가공하고, 파일 위치 잡아주고 하는 정도?입니다.
손이 근질근질해서.. 그냥 내가 수정하고 말지.. 하는게 있어도
꾹꾹 눌러담아 참고서 컨셉 지켜가고 있고요...@_@
중간에 AI에게 원하는 기능과 목표만 넣으면 설계부터
기능 구현까지 몇 시간 안에 다 해준다.. 하는 AI도 써봤는데
복잡한 구조로 들어가니까 혼자 상상의 나래를 펼쳐놓길래
포기하고 커서로 하나하나 하고 있습니다.
시행착오가 물론 있었는데...
디버깅 중에 조삼모사식 에러 잡기로 연쇄 에러 속출로
이건 회생 불가다.. 싶어서 엎은 게 한 번.
프로젝트 비전과 전혀 다른 코드 설계로 엎은 게 또 한 번..
이번이 세번째 패키지이긴 합니다..
(태연스럽게 프로젝트 목표에 딱 맞는 구조라고 구라를 쳐서
확인도 안 하고 진행하다가 직접 들여다봤더니.. 답이 없더라고요;;)
그래도 두 번의 시행착오에서 어떻게 하면 조삼모사식
작업과 디버깅으로 프로젝트 전체를 맛탱이 가지 않게 할지.
빈틈과 구멍이 숭숭난 반쪽짜리 코드를 써내지 않게 할지를
열두번x열두번씩 고민하며 프로젝트 룰과 프롬프팅 기법을
수정했더니.. 어느 정도 체계를 잡아내고 잘 진행되는 것 같습니다.
일단 현재까지 오류 없이 잘 진행되고 있고..
코드도 가독성과 일관성 있게 잘 써내고 있어서
만족하고 있는데.. 워낙 제 개발 지식이 초급 수준이라
제 기준이라는 게 문제긴 하네요..ㅋㅋ
여튼 이 방식대로라면 아무래도 후반부까지
큰 무리는 없을 것 같아요.
GraphQL API를 추천해줘서.. REST API밖에 모른지만
일단은 그대로 적용해서 눈으로 배워가고 있습니다.
복잡하긴 한데.. 단 하나의 엔드포인트로 원하는 자료에만
접근할 수 있다는 게 엄청 매력적이네요.
물론 결국 필요한 기능이나 요청마다 클래스는 만들어줘야 하는 것
같던데.. 일단 DB 설계만 잘 해두면 되려 REST 쓸 때 처럼
엔드포인트 마다 하나하나 메서드로 처리해야 될 부분도
확연히 줄어드는 것 같고.. 좀 더 복잡하고 학습 곡선이
가파른 느낌은 확 들지만.. 적응되면 확실히 편할 것 같아요.
프로젝트 중후반부 넘어가면서 기능 복잡해질수록 더
빛을 발할 것 같기도 하고요. 사서 볼 책들이 늘어난드아...
Prisma라는 것도 스택으로 추천하길래 써봤는데 이것도..
신세계네요. DB뭐쓸지 지정해주고 DB주소 잡아주고
테이블 별로 칼럼, 속성 쭈르륵 적어주고 관계랑 특성들 적어주니
DDL직접 작성하는 것 보다 훨씬 더 짧고 편하게 DB설계 할 수 있고..
다 적고나면 마이그레이션 기능으로 DB가 뚝딱 나오더라고요.
오우.. 테크놀로지아.. 수정도 어쩜 이리 편한지..
초반에 DB 잡아놓고 수정할 일 생기면 외래키 풀고 제약 조건
해제하고 어쩌고 저쩌고? 응~ 마이그레이션으로 끝이야~
개발 단계에서 진짜 신세경이 따로 없네요..ㅋㅋ
AI덕에 좋은 거 많이 알아갑니다..ㅎㅎ
사용자 관리랑, 권한 관리, 회원가입 필드 동적 구성, 로그&보관 체계까지
구성 및 구현 완료했고.. 풀 펑셔닝? 한국형 게시판 기능은
필요 클래스들은 다 만들어둔 상태라 금방 뽑아낼 수 있을 것 같으니..
권한 기반 게시판으로 잘 붙이면 기본은 끝날 것 같습니당.
그 외 플러그인 방식으로 '킥' 기능 추가하는 거랑..
몇몇개 더 남아있기는 한데.. 공부한다 생각하고 AI 칼춤 추는 거
구경 좀 열심히 해봐야겠습니다? ㅎㅎ
참 AI없었으면 혼자서 엄두도 못냈을 거고.. 기술 스택들
배워가며, stack overflow, 구글링 해가며, 책 뒤적뒤적 해가며
몇 달은 걸렸을 작업량을 3~4일만에 뽑아버리니
재밌기도 하면서.. 앞으로 3년 뒤면 이것도 며칠이 아니라
몇 시간이면 되지 않을까..라는 생각도 들고 복잡하군요..ㅋㅋㅋ
아.. 주니어로 취업이나 됐으면..ㅋㅋ
처음엔 LAMP로 만들다가 이제 AI의 특성도 좀 알게 되고, 프롬프트 작성법도 좀 알게 되고,
라라벨이라는 것도 알게 되고 커서와 클로드코드도 쓰게 되고 점점 익숙해졌습니다.
이제는 유튜브로 관련 내용만 계속 추적하고 보고 있습니다. 내가 20년간 웹개발 분야를 떠나있는 동안 등장한 것들에 대한 용어만 일단 집어넣고 있어요. ㅎㅎㅎ tailwind, shadcn, clerk, taskmaster 등등 꺼내어 쓸 수 있는게 뭔지만 정해지면, 플랫폼이나 언어의 한계는 없을거 같아서 일단은 유행을 따라가려고 종류가 무엇이 있는지만 계속 들여다보고 정리하고 있습니다. 만들고 싶었던 것들의 아이디어들을 수집해가면서요 ㅎㅎㅎ
과거에는 LAMP라도 쓰려면 알아야 되는 진입장벽이 기껏해야 누군가 만들어놨던 APM만 가져다 쓰면 되거나, APM을 구동하는 저렴한 웹호스팅 하나만 이용하면 되어서 훨씬 기준이 낮았던거 같은데(지금도 워드프레스는 그렇지만요)
지금은 단순히 언어를 쓰기 위해서만 갖추어두어야 할 진입장벽이 너무 높아요. ㅎㅎㅎ 개발환경과 배포환경을 셋팅하는 난이도가 극악인거 같습니다. 잘 알고 ai 도움을 받아도 와 이거 어설프게 알고 있어도 새로 배워야 할거 같은데, 한글 워드프로세서 처음 쓰는 느낌인데 뭐 이런 느낌입니다.
대부분의 pc에 관심이 없는 일반인들은 그 장벽을 못넘어갈거 같아서,
바이브코딩이 조금이라도 아는 덕후들의 성지가 되어가는 느낌입니다.
근데 그 장벽을 조금이라도 넘게 되면, 원하는건 다 될거 같더라고요. 재밌는 세상입니다.
근데 확실히 말씀하신 게 맞는 것 같은게.. 뭐라도 하나 알면은 '그 장벽'이 생각보다 낮고, 일단 넘으면 가능한 범위가 무궁무진해져서 너무 재밌는데.. 코딩에 안 맞거나 관심 없는 사람들은 그 허들이.. 제 예상치 보다 높을 것 같아요.
그 간극 때문에.. 개발자가 멸종되지는 않을 것 같기도 하고요 ㅎㅎ;