개인적으로 정리하다가 공유해보고자 올립니다. 마크다운이라 보기에 어떨지 모르겠네요
바이브코딩 후기 정리
1. 라이브러리 및 의존성 관리
- 너무 최신 라이브러리는 부담스러워하며, 다운그레이드를 선호함
- 반대로 너무 오래된 라이브러리를 설치하는 경우도 있음 → 버전 확인은 직접 하는 게 좋음
- 최신 라이브러리로 업그레이드하고 공식 마이그레이션 가이드를 제공하면 잘 따라옴
- 단, 챗이 오래되거나 새로 시작하면 이전 방식(구버전 스타일)으로 다시 코딩함
2. 테스트 및 린팅 관련 태도
- Unit test를 한꺼번에 많이 작성하면 부담스러워함 → 한두 개만 만들고 coverage를 보며 점진적으로 추가
- Unit test 없이 진행하면 가끔 로직이 망가짐
- Unit test 중 오류가 계속 나면 테스트 자체를 꺼버림
- Linting도 비슷한 성격으로 인식함 → linting과 testing을 처음부터 명확히 설정하고 시작하는 게 좋음
3. 협업 및 파일 편집 관련 이슈
- 내가 동시에 코드를 수정하면 내 수정사항을 무시하고 덮어쓰기 하는 경우 있음
- 여러 개의 할 일이 있다고 알려줘도 일부만 수행 →
Todo.md파일을 만들어 명확하게 전달하면 효과적
4. 요구사항 및 명세 전달
- 상식에 맡기지 말고, 모든 요구사항을 하나하나 명시해주는 것이 중요
- 자동 생성된 값이나 이미 고정된 값과의 충돌 문제 발생
- 예: 스키마에 없는
created_at필드를 LLM이 예상하고 frontend에서 구현 → 불필요한 필드 발생
- 예: 스키마에 없는
5. 프로젝트 구조 및 타입 관리
- 프로젝트 구조가 복잡해질수록 동일 기능의 타입 정의가 여러 군데에 분산됨
- 특히 성능이 낮은 모델일수록 심함
6. 문제가 명확하지 않은 이슈 대응
- 명시적인 오류에는 대응이 좋지만,
- 무한 새로고침, 성능 저하, 불필요한 파일 전송, UI 비정상 (ex. 모달 위치 오류) 등
- 설명이 어렵거나 간접적인 이슈는 잘 이해하지 못함
총평
- 타입안정성을 중요시 하는 편이라 린터들이 귀찮은 오류를 뿜는 경우가 많은데 이때 쉽게 해결해주는 것을 보며 즐거웠음
- 한번도 써보지 못한 라이브러리를 쉽게 설치하고 세팅해서 사용하는 걸 보면서 해당 라이브러리에 대해 많이 배울 수 있었음
- 가끔은 되돌리기 어려운 상황에서 프로젝트가 난해해져서 커밋을 돌리거나, 해당 라이브러리 조합의 unit test 이슈나 linting 에러를 잡지 못하고 계속 무한도전을 하는걸 보다가 그냥 삭제하고 새로 만들기도 함
- bolt.new에서 아웃라인을 잡은 프로젝트를 이어서 하고 싶었는데 은근 쉽지 않았음. DB연결등에서 생각만큼 순조롭지 못했음
- 개발자로의 커리어가 두렵긴 함. 상기한 이슈들 때문에 아직은 시기상조라고 보는 사람도 많은 거 같지만 노하우가 생겨서 컨트롤이 되거나 모델 자체의 성능이 개선되면 충분히 위협적임. 빠르게 익숙해서 남이 가지지 못한 노하우를 축적하면 생산성 증대를 이끌어 낼 수 있는 포텐셜이 있음.