정답을 숨기고, AI와 오픈소스 도구에 나란히 물어봤습니다
구조·물량 계산 아홉 가지를 정답 숨긴 블라인드로 최상위 AI와 오픈소스 도구에 나란히 물었습니다. 통념과 반대 결과가 나왔습니다.
2026-07-05 · 구조해석 / 시뮬레이션 블라인드테스트 AI베이스라인 구조해석 ezdxf
물량이든 연속보 모멘트든, 요즘은 그냥 AI에게 물어보면 된다는 말을 자주 봅니다. 반대로 AI는 숫자를 못 믿는다는 말도 같이 돕니다. 어느 쪽이 맞는지, 정답을 숨겨두고 직접 재봤습니다.
왜 재봤나
재료역학 벤치마크 SoM-1K에서는 문제 1,065개에 여덟 개 모델을 시험했을 때 가장 잘한 모델도 정확도가 56.6%에 그쳤습니다. 얼핏 보면 “AI는 기초도 절반밖에 못 푼다”로 읽힙니다.
그런데 그 숫자에는 도해를 눈으로 읽어야 하는 문제가 섞여 있고, 약한 모델까지 평균에 들어갑니다. 그래서 조건을 좁혀서 다시 봤습니다. 잘 정의된 계산 문제만 남기고, 최상위 모델에게, 정답을 숨긴 블라인드로 물었습니다.
어떻게 돌렸나
방법은 단순합니다. 오픈소스 도구가 문제를 랜덤으로 만들고, 정답은 json에 숨깁니다. 맥락이 전혀 없는 새 세션의 AI에게 그 문제만 던집니다. 코드도 계산기도 금지하고 순수 추론으로만 풀게 합니다. 그 답을 숨겨둔 정답과 맞춰봅니다. 도구 자신은 정답 축이므로 오차 0%를 먼저 고정했습니다.
python pycba_blind.py # 부등경간 연속보 문제 + 정답(json) 생성
python ec2_blind.py # EC2 최소철근 문제 + 정답 생성
# 새 세션 AI 가 문제만 받아 추론 → score_ai.py 로 대조
모델은 약한 쪽(haiku)부터 최상위(Opus 4.8 · Sonnet 5 · Fable 5)까지 걸쳐 물었고, 허용오차는 2%로 잡았습니다.
결과
| 오픈소스 도구 | 태스크 | 약한 AI (haiku) | 최상위 AI | 도구 | 판정 |
|---|---|---|---|---|---|
| ezdxf | 도면 물량 (이미지) | 부정확 | 측정 0/12 | 0% | AI 못함 |
| IfcOpenShell | IFC 물량 추출 | 3/3 | 3/3 | 0% | 훅 없음 (아래 정정 참고) |
| PyCBA | 부등경간 연속보 모멘트 | 2/6 (평균오차 41%) | 6/6 | 0% | 약한 모델만 실패 |
| structuralcodes | EC2 최소철근 | 6/6 | 6/6 | 0% | 훅 없음 |
| concrete-properties | RC 단면 M–N | — | 3모델 정답 (~5%) | 0% | 훅 없음 |
| section-properties | 부등변 ㄱ형강 전단중심 | — | 주축각 정답 | 0% | 도구가 더 정밀 |
| anaStruct | 2경간 연속보 | — | 정답 | 0% | 훅 없음 |
| Pynite | 3경간 연속보 | — | 정답 | 0% | 훅 없음 |
| PyVista | 메시 부피 | — | 정답 (공식) | 0.01% | 훅 없음 |
예상은 AI가 계산에서 우수수 틀리는 그림이었습니다. 결과는 반대였습니다. 최상위 모델은 부등경간 연속보도, 철근콘크리트 단면의 비직관적인 축력–모멘트 상호작용도 방향까지 맞혔습니다. 약한 haiku만 연속보를 여섯 문제 중 두 문제밖에 못 맞혔고, “단순지지니까 내부 모멘트가 0”이라는 개념 오류까지 냈습니다.
정말로 아무 모델도 못 푼 것은 딱 하나, ezdxf 자리의 도면 물량이었습니다. 스케일이 날아간 이미지에서 길이를 재는 일이었습니다. IFC 쪽은 처음엔 실패로 잡혔다가, 재검증 끝에 뒤집혔습니다. 아래에 그 과정을 그대로 적습니다.
세 갈래로 갈렸다
— 진짜 “AI 못함”: ezdxf. 모든 모델이 실패했습니다. 추론이 아니라 지각의 한계이기 때문입니다.
— 약한 모델만 실패: PyCBA에서는 haiku는 틀리고 Opus는 여섯 문제를 전부 맞혔습니다. “값싼 AI는 틀린다”이지 “AI가 못한다”가 아닙니다.
— 훅 없음: anaStruct, Pynite, EC2, RC 단면, 전단중심, 부피, 그리고 IfcOpenShell. 전 모델이 전부 제대로 풀었습니다.
막힌 지점
Sonnet이 전단중심 한 문제에서 관성모멘트를 틀려 45% 오차를 냈습니다. 예고 없이, 딱 한 번이었습니다. 나머지는 다 맞혔는데 한 번이 크게 어긋났고, 이게 저를 가장 불편하게 했습니다. 평균은 낮은데 꼬리에 탐지되지 않는 큰 오류가 숨어 있다는 뜻이기 때문입니다.
한계도 적어둡니다. 표본이 작습니다. 아홉 태스크에 문제당 여섯 개 안팎이었고, 최상위는 세 모델이었습니다. AI는 Claude 계열만 물었습니다. 다만 SoM-1K 같은 문헌이 GPT와 Gemini를 포함해 같은 경향을 보강합니다.
정정 — IFC는 처음에 잘못 실패로 잡았습니다
발행 직후에 IfcOpenShell 결과를 다시 들여다봤습니다. 원래 이 자리엔 “AI는 IFC 파일에서 벽 개수를 1/7밖에 못 세운다”는 결과가 있었습니다. 그 숫자를 만든 실험을 다시 열어보니, 파일을 직접 만든 바로 그 에이전트가 정답을 이미 아는 채로 파일의 앞 43%만 스스로 보기로 정하고 스스로를 채점한 것이었습니다. 새 세션도, 맥락 0도 아니었습니다. 이 시리즈의 다른 모든 블라인드 실험과 기준이 달랐던 겁니다.
그래서 벽 개수와 부피가 다른 IFC 파일 세 개를 새로 만들고, 정답을 숨긴 채 이번엔 파일 전체를 맥락 0인 새 세션 모델(haiku·Opus·Sonnet·Fable)에게 통째로 줬습니다. 결과는 열두 번 모두 정답이었습니다. 값싼 haiku까지 벽 개수와 부피 합계를 하나도 틀리지 않았습니다. 파일을 43%만 잘라서 줬을 때만 실패가 났던 겁니다. AI의 한계가 아니라 실험 설계의 문제였습니다.
그래서 위 표와 세 갈래 분류를 정정했습니다. 이 시리즈에서 정말로 모든 모델이 실패하는 태스크는 이제 ezdxf 하나뿐입니다.
무엇을 배웠나
표보다 중요한 것이 몇 겹 밑에 있었습니다.
도구의 진짜 무기는 계산기가 아니라 파서였습니다. ezdxf가 실패한 것은 넓이를 못 구해서가 아니라, 좌표가 든 파일 대신 이미지를 줬기 때문입니다. 숫자를 손에 쥐여주면 AI는 계산을 합니다. 그러니 올바른 순서는 도구가 결정적으로 뽑아 정리하고, 그 위에서 AI가 판단하는 쪽입니다.
그리고 문제는 평균이 아니라 꼬리입니다. Sonnet의 45% 오차 한 번이 그 증거입니다. 안전이 걸린 계산에서 무서운 것은 대체로 맞는다는 사실이 아니라, 언제 틀렸는지 알 수 없다는 점입니다. 도구는 그 꼬리가 없습니다.
도구는 AI의 경쟁자가 아니라 검증자입니다. AI가 답을 내도 그게 맞는지 싸게 확인하려면, 결국 도구를 한 번 돌려야 합니다.
솔직한 평가
“AI는 공학을 못한다”는 최상위 모델 앞에서 무너집니다. 그래서 저는 도구를 권하는 이유를 바꿨습니다.
오픈소스 계산 도구의 값어치는 AI가 못해서가 아닙니다. 결정적이고, 검증 가능하고, 모델과 무관하고, 무료이고, 환각이 없고, 그대로 재현됩니다. AI가 대체로 맞는 세상에서도 그 기반은 여전히 필요합니다. 틀린 한 번이 사람을 다치게 하는 자리라면 더욱 그렇다고 봅니다.
이 실험에 쓴 도구는 전부 이 사이트 라이브러리에 있습니다. ezdxf, PyCBA, section-properties, concrete-properties, structuralcodes, anaStruct, Pynite, PyVista, IfcOpenShell입니다.