핵심 결론
- 단순 성능의 함정: 코딩 테스트(성능 벤치마크) 점수가 높고 정답률이 좋은 모델일수록, 실제로는 훨씬 더 복잡하고 장황한 코드를 생성하여 더 심각한 기술 부채와 관리 비용을 초래합니다.
- 보안 의식 부족: 분석된 모든 모델이 공통적으로 보안 취약점을 자주 노출하며, 전반적으로 엔지니어링 규율이 부족한 모습을 보입니다.
주요 LLM별 코딩 페르소나
- Claude Sonnet 4 (수석 아키텍트형)
- 특징: 전체 모델 중 가장 높은 정답률(77.04%)을 기록하며, 엔지니어처럼 복잡한 예외 처리와 고성능 기능을 구현하려고 시도합니다.
- 단점: 코드가 너무 장황하고 복잡하여 자칫 안전해 보이지만, 실제로는 자원 누수(Resource Leak)나 동시성/쓰레드 오류 같은 심각한 버그를 자주 만듭니다.
- GPT-5-minimal (기본형 추론 모델)
- 특징: 새로 도입된 추론형 모델의 최소 모드로, 전반적으로 뛰어난 기능적 성능을 보여줍니다.
- 단점: 가장 많은 코드 라인수(49만 라인)와 복잡성을 기록했으며, 주석을 거의 달지 않는 최악의 문서화 성향(2.1%)을 보입니다. 심각한 코드 스멜(유지보수성 결함) 비율이 94.87%로 가장 높습니다.
- Claude 3.7 Sonnet (균형 잡힌 선배형)
- 특징: 주석 밀도가 16.4%로 전체 모델 중 압도적으로 높아, 사람이 읽고 이해하기에 가장 가독성이 좋은 코드를 작성합니다.
- 단점: 가독성은 좋으나 보안상 안전한 것은 아니며, 높은 비율(56.03%)로 치명적인 '블로커(Blocker)' 급 취약점을 노출합니다.
- GPT-4o (효율적인 제너럴리스트형)
- 특징: 너무 장황하지도, 너무 짧지도 않은 중간 수준의 코드를 짜는 무난한 범용 조수입니다.
- 단점: 큰 틀은 잘 잡지만 세부 로직 디테일에 약합니다. 전체 버그의 48.15%가 제어 흐름 실수(Control-flow mistakes)에서 발생할 만큼 덜렁대는 성향을 보입니다.
- Llama 3.2 90B (미완의 대기형)
- 특징: 규모에 비해 성능(정답률 61.47%)이 다소 아쉽고 평이한 수준입니다.
- 단점: 보안 취약점이 가장 심각합니다. 발견된 취약점의 70.73%가 시스템을 마비시킬 수 있는 '블로커(Blocker)' 등급으로, 검증 없이 프로덕션에 쓰기엔 위험 부담이 큽니다.
- OpenCoder-8B (신속한 프로토타이퍼형)
- 특징: 가장 적은 코드량(12만 라인)으로 빠르게 코드를 짜내므로 해커톤이나 프로토타입 개발에 적합합니다.
- 단점: 쓰지 않는 코드나 중복 코드를 방치하는 성향(코드 스멜의 42.74%)이 강해, 코드 품질 밀도가 가장 낮고 장기적인 유지보수에는 최악입니다.
분석 요약표
| 모델명 | 기능 정답률 | 코드 라인 수 (LOC) | 주석 밀도 | 주요 단점 및 취약 유형 |
|---|---|---|---|---|
| Claude Sonnet 4 | 77.04% | 370,816 | 5.10% | 자원 누수, 동시성/쓰레드 버그 |
| GPT-5-minimal | 75.37% | 490,010 | 21.10% | 주석 부실, 극도로 복잡한 코드 스멜 |
| Claude 3.7 Sonnet | 72.46% | 288,126 | 16.40% | 블로커 등급 보안 취약점 다수 |
| GPT-4o | 69.67% | 209,994 | 4.40% | 제어 흐름(로직 디테일) 실수 잦음 |
| Llama 3.2 90B | 61.47% | 196,927 | 7.30% | 보안성 최악 (취약점 70%가 Blocker) |
| OpenCoder-8B | 6.43% | 120,288 | 9.90% | 중복 및 미사용 코드 방치 |
LLM Leaderboard for Code Quality & Security
Independent analysis of code reliability, security, and maintainability for leading LLMs 링크
보고서의 최종 제언
AI가 작성한 코드는 겉보기에 멀쩡하고 테스트를 통과하더라도 내부적으로 심각한 기술 부채나 취약점을 숨기고 있을 가능성이 큽니다. 따라서 AI 성능 발전과 상관없이 "신뢰하되 검증하라(Trust but verify)"는 철저한 정적 분석과 코드 리뷰 시스템이 필수적입니다.