← 최신 논문
💻 computer science

Correctness, confidence, and context: Framing software assurance in the AI age

이 논문은 생성형 AI의 통계적 본질이 형식적 엄밀함보다는 확률적 예측에 의존하고 인간의 암묵적 맥락을 포착하는 데 어려움을 겪는다는 점을 들어, 소프트웨어 보증의 틀을 코드 명세 이상으로 확장하여 시스템의 목적 적합성을 보장하는 비용 효율적이고 논리적인 기술 조합을 개발하기 위한 체계적인 엔지니어링 접근 방식이 필요하다고 주장한다.

원저자: Mary Shaw

게시일 2026-07-17
📖 5 분 읽기🧠 심층 분석

원저자: Mary Shaw

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

거대한 소프트웨어 퍼즐: 왜 "완벽"이 목표가 아닌가

당신이 논리와 지시사항으로 만들어진 거대하고 투명한 성을 짓고 있다고 상aya 해보세요. 이것이 소프트웨어 엔지니어들이 매일 하는 일입니다. 그들은 피자를 주문하는 것부터 비행기를 조종하는 것까지, 컴퓨터가 특정 동작을 수행하도록 코드를 작성합니다. 오랫동안 꿈꿔온 목표는 이 성을 너무나 완벽하게 지어서 결코 실수를 할 수 없게 만드는 것이었습니다. 엔지니어들은 모든 벽돌이 제자리에 있는지 수학적으로 증명하고 싶어 했습니다. 하지만 여기 함정이 있습니다. 현실 세계는 무질서합니다. 현실은 명문화할 수 없는 암묵적인 규칙, 문화적 습관, 그리고 "상식"으로 가득 차 있습니다.

이제 새로운 종류의 조력자가 도착했습니다. 바로 인공지능(AI)입니다. 이 AI는 거의 모든 책을 읽은 초고속 추측가처럼, 다음에 올 내용을 맞히는 데 매우 뛰어납니다. 하지만 완벽함을 '증명'하려 했던 기존 방식의 엔지니어들과 달리, 이 AI는 '확률'을 기반으로 작동합니다. AI는 "이것이 정답이라는 사실을 알고 있다"라고 말하는 대신, "이것이 정답일 확률이 90%라고 확신한다"라고 말합니다. 여기서 큰 문제가 발생합니다. 우리가 안전을 필요로 하는 상황에서, 추측을 바탕으로 구축된 시스템을 어떻게 신뢰할 수 있을까요? 이것이 바로 메리 쇼(Mary Shaw)가 해결하고자 하는 퍼즐입니다. 그녀는 소프트웨어의 "정확성"에 대한 우리의 생각을 바꾸고자 합니다. 즉, 불가능한 완벽의 꿈에서 벗어나, 주어진 목적에 "충분히 좋은" 상태를 만드는 더 실용적이고 엔지니어적인 접근 방식으로 나아가고자 합니다.


논문의 핵심 아이디어: "완벽"에서 "충분히 좋은 것"으로

소프트웨어 엔지니어들을 위한 이 기조 연설에서, 메리 쇼는 우리가 소프트웨어가 100% 완벽하다는 것을 증명하려고 노력하는 것을 멈추고, 그것이 **목적에 부합하는지(fit for its purpose)**에 집중해야 한다고 주장합니다. 그녀는 프로그램이 옳다는 것을 증명하기 위해 완벽한 규칙 세트를 작성하려 했던 과거의 사고방식이, 특히 우리가 AI를 사용하는 지금은 깨졌다고 제안합니다.

그녀의 논증을 쉬운 부분들로 나누어 설명하면 다음과 같습니다.

1. 그림자 문제: AI가 볼 수 없는 것

접는 종이컵 같은 복잡한 물체를 본 적이 없는 친구에게 그 물체를 설명한다고 상상해 보세요. 당신은 벽에 비친 그림자만을 보여줄 수 있습니다. 정면에서 보면 그림자는 사각형 모양입니다. 옆에서 보면 삼각형 모양입니다. 위에서 보면 원 모양입니다. 만약 당신이 그림자만 가지고 있다면, 그것이 이상한 블록이라고 추측할 수도 있겠지만, 그것이 물을 담을 수 있는 컵이라는 사실은 놓치게 될 것입니다.

쇼는 AI 모델이 그 그림자를 보고 있는 친구와 같다고 말합니다. AI는 온라인에 존재하는 텍스트, 코드, 데이터와 같은 "디지털 그림자"를 학습합니다. 하지만 현실 세계는 **암묵적 지식(tacit knowledge)**으로 가득 차 있습니다. 이는 우리가 알고 있지만 글로 쓰지는 않는 것들을 의미합니다. 여기에는 직장의 "분위기", 문화의 암묵적인 규칙, 또는 숙련된 정비사가 엔진에서 이상한 소리가 들릴 때 느끼는 직감 등이 포함됩니다. 이러한 지식은 기록되지 않기 때문에 AI는 볼 수 없습니다. AI는 실제 물체가 아닌 그림자만을 봅니다. AI가 소프트웨어를 만들려고 할 때, 인간 전문가라면 즉시 알아차렸을 결정적인 세부 사항들을 놓칠 수 있으며, 이는 실수를 유발합니다.

2. 코딩의 "카고 컬트(Cargo Cult)"

쇼는 섬 주민들이 전쟁 중에 비행기가 음식을 싣고 착륙하는 것을 보았던 이야기를 들려줍니다. 전쟁이 끝나고 비행기가 더 이상 오지 않자, 현지인들은 비행기를 다시 불러오기 위해 대나무로 관제탑을 짓고 대열을 맞춰 행진했습니다. 그들은 활동의 그림자(행진, 탑)를 복제했지만, 실제 원인(군대의 물류 및 일정 관리)은 이해하지 못했습니다.

그녀는 AI를 사용하여 코드를 작성하는 것이 때때로 "카고 컬트"가 될 수 있다고 경고합니다. 우리는 코드가 왜 그래야 하는지에 대한 깊은 이유를 이해하지 못한 채, 단지 코드가 올바르게 보이는 것(그림자)만을 요구할 수 있습니다. 만약 우리가 숨겨진 규칙을 이해하지 못한 채 단순히 "바이브 코딩(vibe coding, 느낌이나 간단한 프롬프트에 기반한 코딩)"을 한다면, 겉보기에는 좋아 보이지만 실제 현실의 문제가 발생했을 때 무너지는 시스템을 만들게 될 수 있습니다

3. "명세서" 대신 "자격 증명"

전통적으로 엔지니어들은 소프트웨어가 정확히 무엇을 해야 하는지 규정하는 거대하고 경직된 규칙서인 "명세서(specification)"를 작성하려고 노력합니다. 하지만 쇼는 세상은 변하고 우리는 모든 것을 예측할 수 없기 때문에 이것이 불가능하다고 제안합니다.

대신, 그녀는 소프트웨어를 직장에 지원하는 사람처럼 취급하자고 제안합니다. 우리는 그 사람의 인생 전체를 알 필요는 없습니다. 단지 그들의 **자격 증명(credentials)**이 필요할 뿐입니다.

  • 스쿠버 다이버는 "나는 30미터까지 잠수할 수 있음"이라고 적힌 카드를 보여줍니다.
  • 조종사는 "나는 이 비행기를 조종할 수 있음"이라는 면허를 보여줍니다.
  • 소프트웨어 시스템은 "나는 1,000명의 사용자를 처리할 수 있다는 것에 90% 확신함" 또는 "나는 이 특정 작업을 수행하는 데 안전하도록 테스트됨"이라는 "자격 증명"을 보여주어야 합니다.

이러한 자격 증명은 완벽한 증명이 아닙니다. 그것은 우리가 얼마나 확신하는지, 그 확신의 근거가 어디인지, 그리고 한계가 무엇인지에 대한 정직한 진술입니다. 이는 "우리가 이것을 확인했으며, 여기 우리의 확신 정도가 있다"라고 말하는 방식입니다.

4. 엔지니어의 선택: 만족화(Satisficing)

이 논문은 우리가 완벽해지려고 노력하는 대신 **만족화(satisficing)**를 시작해야 한다고 제안합니다. 이것은 "충분히 좋은 해결책을 찾는 것"을 뜻하는 멋진 단어입니다.

  • 게임을 만들고 있다면, 100% 완벽할 필요는 없을 수도 있습니다. 게임이 재미있고 저렴하게 제작될 수 있다면 약간의 버그는 괜찮습니다.
  • 의료 기기를 만들고 있다면, 훨씬 더 높은 수준의 확신이 필요합니다.

쇼는 엔지니어가 진짜 엔지니어처럼 행동해야 한다고 주장합니다. 즉, 비용, 위험, 목적을 살펴보고, 일을 완수하기 위해 적절한 도구의 조합을 선택해야 한다는 것입니다. 때로는 문제가 발생한 후에 해결하는 것이 문제를 영원히 예방하려고 노력하는 것보다 저렴할 수 있습니다. 목표는 모든 오류를 제거하는 것(이는 불가능합니다)이 아니라, 시스템이 특정 작업에 안전하고 유용하도록 위험을 관리하는 것입니다.

이것이 미래에 의미하는 바

메리 쇼는 AI가 나쁘다고 말하는 것이 아닙니다. 그녀는 우리가 AI를 모든 것을 해결하는 마법 지팡이처럼 취급해서는 안 된다고 말하는 것입니다. 우리는 AI를 어떻게 사용할지 더 똑똑해져야 합니다. 우리는 AI가 확률(통계)을 기반으로 작동하며, 인간의 문화와 경험이라는 보이지 않는 "그림자"를 볼 수 없다는 점을 받아들여야 합니다.

그녀의 핵심 메시지는 소프트웨어 커뮤니티를 향한 행동 촉구입니다: 우리가 모든 것을 완벽하게 증명할 수 있다고 가장하는 것을 멈춥시다. 대신, 정직한 엔지니어가 됩시다. 우리가 무엇에 대해 확신하고 있는지, 무엇을 확신하지 못하는지, 그리고 그 이유는 무엇인지 정확히 아는 시스템을 만듭시다. 이렇게 함으로써, 우리는 해결할 수 없는 문제를 해결했다고 착각하는 함정에 빠지지 않고, AI를 활용하여 더 나은 소프트웨어를 구축할 수 있습니다.

요약하자면, 이 논문은 소프트웨어의 미래가 수학 교과서적인 의미의 "정확함"에 관한 것이 아니라고 제안합니다. 그것은 목적에 부합하는 것, 우리의 한계를 아는 것, 그리고 우리 디지털 세계를 안전하게 운영하기 위해 스마트하고 비용 효율적인 선택을 하는 것에 관한 것입니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →