메타에서 해고된 뒤 코드 100%를 AI로 짜는 개발자, AI 코드베이스가 취약해지는 4가지 이유 정리
- 메타에서 코드의 90% 이상을 AI로 생성했던 저자는 코드 품질에 집중했고, AI에 크게 의존한 동료들이 :hover 대신 자바스크립트 이벤트로 mouseover를 처리하는 식의 확장 불가능한 코드를 머지하는 걸 목격함. 지금은 다른 대형 테크 기업에서 코드 100%를 AI로 생성 중임
- AI는 get/set 같은 사소한 메서드 테스트를 양산하고 e2e 테스트도 이미 코드베이스에 있는 케이스만 다뤄, 라인 커버리지 지표에 잡히지 않는 테스트 공백을 만듦
- AI는 헬퍼 메서드를 하나로 충분한 곳에 2~3개씩 만들고 DRY 원칙을 과도하게 적용해, 사람이 디버깅하고 이해하기 어려운 복잡한 코드를 생산함
- AI 의존 기간이 길어질수록 코드베이스를 이해하는 개발자가 줄어, 기존 데이터 구조와 맞지 않는 추상화가 PR에 들어와도 알아채지 못함
- PR이 리뷰 속도보다 빨리 쏟아져 개발자가 코드를 훑기만 하게 되고, 월말 p0 장애 하나로 시작한 문제가 1~2년 뒤 주말마다 장애가 나는 상태로 번지며 복구까지 느려짐
Hacker News 의견들
AI한테 생각을 맡기니까 코드베이스가 무너지는 거지. 나도 slop이랑 싸우는 입장이라 이 말엔 동의한다.
결국 추상화 수준을 어디까지 둘지 부딪히면서 다시 조정될 거야. 코드베이스가 감당이 안 되면 트렌드가 스스로 꺾인다.
AI 쓰면 정신적 노력이 덜 드는 건 맞고, 덜 쓴 뇌는 약해지니까 취약한 코드가 계속 나올 수밖에 없다는 생각임.
무조건 그런 건 아니다. AI는 패턴 따라가는 걸 잘하고 테스트 쓰는 것도 좋아해서, 팀이 손으로 짜기엔 엄두도 못 낼 좋은 패턴에서 출발하면 꽤 튼튼한 코드도 나온다.
주니어가 얕은 테스트에 복잡한 코드 짜면 어떻게 하냐. 가이드 주고 툴 주고 리뷰하면서 기준에 맞춰주잖아. AI 에이전트도 똑같이 다루면 되고 책임은 나한테 있는 거다.
그렇게 주니어를 가르치면 그 사람이 성장해서 팀에 새로운 관점을 가져오는데, LLM한테 같은 설명을 반복하는 건 짜증만 쌓인다. LLM을 주니어에 비유하는 건 좀 심하다.
가이드 주려면 코드를 읽어야 되는데 그게 바이브코딩이랑 정면으로 충돌한다. 경영진이 기대하는 10배 속도는 코드를 안 봐야 나온다.
그럼 그 툴은 대체 뭐 하러 쓰는 거임. 주니어 멘토링하듯 쓸 거면 차라리 사람을 가르친다.
저자는 '방향 없는' 사용을 문제 삼는 거고, 관찰하면서 구멍을 메우면 된다. 내가 보기엔 속도가 제일 큰 문제라 로컬 모델 돌리면서 계획 단계랑 구현 단계 속도를 따로 조절하고 싶다.
되돌리기 어려운 조직이 문제였고, 읽기 힘든 코드나 얕은 테스트는 모델 따라 편차가 크다. 속도보다 학습 데이터가 원인일 수도 있다.
결국 비즈니스 인센티브가 취약한 코드를 만든다. 사장들은 바이너리에 뭐가 들었는지 신경 안 쓰고, AI는 어디에 쓰든 증폭기일 뿐이다.