AI가 짠 코드를 이해 못 한 채 배포해도 되는가, HN 개발자들 의견 갈림
- Meta 엔지니어가 LinkedIn에 AI로 짠 코드가 블랙박스처럼 느껴진다고 올린 글이 출발점이 되어 HN 질문글이 221포인트, 댓글 360개를 기록함
- bitwizeshift는 LLM에 구조 설계를 맡기지 않고 UML 수준의 추상화와 계층을 직접 그린 뒤 구현만 시킨다고 밝힘, 이렇게 하면 리팩터링 부담과 토큰 사용량이 줄어듦
- 한 댓글러는 자동 벡터화 컴파일러를 6개월간 만들며 방대한 테스트와 5개 아키텍처에서 몇 시간 걸리는 릴리스 게이트로 검증한다고 함
- AI가 테스트까지 쓰면 같은 맹점을 공유할 수 있다는 우려가 나오고, 변이 테스트나 퍼징, 또는 생성 에이전트와 검증 에이전트를 분리하는 방안이 제시됨
- 댓글 다수는 소셜 앱처럼 버그 영향이 작은 서비스는 허용 가능하다고 보지만, 의료나 항공 소프트웨어는 다르다고 구분함
Hacker News opinions
나는 설계를 먼저 하고 UML 수준에서 추상화랑 상호작용을 다 정해둔 다음에 LLM한테 구현만 시킴. 구현 세부는 몰라도 각 유닛 책임은 확실히 앎.
이거 원래 기본 설계 원칙 아님? 시니어라면 다 이렇게 하는 줄 알았는데 요즘 안 하는 사람이 많은 게 더 놀라움.
FAANG 시니어라고 해도 설계 경험이 별로 없는 사람이 많음. JIRA 티켓 처리하고 최소 변경 패치만 붙여온 사람이 태반이라 그런 거임.
컴파일러처럼 테스트 스위트가 탄탄하면 한 줄 한 줄 리뷰 안 해도 된다고 봄. 나도 6개월째 이 방식으로 굴리는데 지금까지는 괜찮음.
테스트 통과한다고 취약점까지 없다는 보장은 못 함. 보안이 걸린 거면 찔러보고 테스트 추가하는 걸로는 부족함.
AI가 코드랑 테스트를 둘 다 쓰면 같은 맹점을 공유할 수 있음. 나는 코드 짜는 에이전트가 자기 검증 체크를 못 쓰게 나눠놨더니 자체 테스트보다 훨씬 많이 잡더라.
Claude로 짜고 Codex로 적대적 리뷰를 돌리는 식으로 두 LLM을 왔다갔다 시키면 꽤 믿을 만한 코드가 나옴.
이건 ORM 쓰는 거랑 비슷한 '개념적 압축'임. 평소엔 잘 돌아가다가 DB가 커지면 인덱스 같은 하부 원리를 알아야 함. 앱이 뭔지에 따라 다르지만 MRI나 항공 소프트웨어면 얘기가 완전 달라짐.
나는 런타임 관찰성이랑 교차 검증, 알림을 더 달아서 리스크를 메움.
제품 쪽은 코드 이해 같은 거 신경 안 씀. 결국 에이전트한테 밀릴 거라고 봄.
나는 기능을 먼저 브레인스토밍하고 개발 계획을 만든 다음, 끝나면 왜 그 접근을 했는지 QA함.
우리는 그냥 그렇게 안 함. 왜 다들 당연한 것처럼 말하는지 모르겠음. 회사 문화 문제임? 도메인 문제임?