디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

ISO 표준 여부는 벤더에서 중요시한다

나르시갤로그로 이동합니다. 2025.07.23 17:32:21
조회 72 추천 0 댓글 0

툴을 개발하는데 막대한 자본과 시간이 들어가는데


명세가 수시로 바뀌면 어떻게 하겠는가?


그래서 러스트를 지원하는 툴이 별로 없는거다.


반면 c/c++ 지원툴은 엄청 많고.


러스트 담론을 해체하다 책 다시 보셈.


https://nimfsoft.art/ko/blog/2025/07/09/deconstructing-the-rust-discourse/

 


3.5 비교 대상의 현실: 진화하는 C++의 다층적 안전망

러스트의 안전성을 강조하는 담론은 종종 C/C++과의 비교를 통해 그 가치를 입증합니다. 이 과정에서 C/C++은 메모리 문제 해결에 실패한 ‘과거의 언어’로 간주되곤 합니다. 하지만 이러한 비교가 타당성을 갖기 위해서는, 비교 대상이 1990년대의 C/C++이 아닌, 수많은 발전을 거듭한 ‘현대의 C/C++ 생태계’가 되어야 합니다.


지난 20여 년간 C++ 언어와 그 생태계는 안전성 확보를 위해 다층적인 접근법을 구축해 왔습니다. 그러나 이러한 안전망은 컴파일러에 내장된 러스트의 보증과 달리, 개발자의 의식적인 선택, 추가적인 비용, 그리고 엄격한 규율을 요구한다는 근본적인 차이점을 가집니다.


1. 언어의 진화: 모던 C++와 스마트 포인터의 ‘선택적’ 안전성

첫째, 언어 자체의 발전입니다. C++11 표준 이후 ‘모던 C++’은, RAII 패턴을 언어 차원에서 적극적으로 지원하는 스마트 포인터(std::unique_ptr, std::shared_ptr)를 표준 라이브러리에 도입했습니다. 이는 자원의 소유권을 명확히 하고 메모리를 자동으로 관리하여, 과거 C++의 고질적인 메모리 관련 문제 상당수를 언어 수준에서 방지하는 효과적인 방법입니다.


그러나 C++에서 스마트 포인터의 사용은 강제되지 않는 ‘모범 사례(best practice)’에 머무릅니다. 개발자는 언제든 원시 포인터(raw pointer)를 사용할 수 있으며, 컴파일러는 이를 막지 않습니다. 즉, 안전성에 대한 최종 책임은 여전히 개발자의 규율에 의존하며, 이로 인해 실수는 계속 발생할 수 있습니다.


2. 도구 생태계의 성숙: ‘비용과 전문성’을 요구하는 다층 방어

둘째, 정적 및 동적 분석을 아우르는 성숙한 도구 생태계의 지원입니다. 오늘날 전문적인 C/C++ 개발 환경은 다음과 같은 자동화된 도구들을 활용하여 안전성을 확보할 수 있습니다.


정적 분석: 컴파일 단계 이전에 코드베이스 전체를 정밀하게 분석하여 잠재적 버그를 찾아내는 Clang Static Analyzer, Coverity, PVS-Studio 등의 도구가 널리 사용됩니다.

동적 분석: 프로그램을 실제 실행하며 메모리 접근을 감시하여, 정적 분석만으로는 포착하기 어려운 미묘한 메모리 오류를 런타임에 탐지하는 Valgrind, 주소 새니타이저(AddressSanitizer)와 같은 도구들이 중요한 안전망 역할을 합니다.

실시간 린팅: Clang-Tidy와 같은 린터(linter)는 개발자가 코드를 작성하는 순간부터 잠재적 오류를 지적하며 실시간 피드백을 제공합니다. 특히 C++ Core Guidelines3의 여러 규칙을 강제하여 더 안전한 코딩 스타일을 유도합니다.

이러한 강력한 도구들은 안전성을 크게 향상시키지만, 강력한 상용 도구들은 종종 고가이며, 올바르게 설정하고 분석 결과를 해석하는 데 상당한 전문성을 요구합니다. 이는 러스트의 공식 툴체인(cargo)이 추가 비용 없이 기본적으로 제공하는 정적 분석 기능과는 접근성과 보편성 면에서 근본적인 차이가 있습니다.


3. 미션 크리티컬 시스템의 접근법: ‘특수 분야’의 엄격한 규율

셋째, 자동차, 항공, 의료 기기와 같이 극도의 신뢰성이 요구되는 ‘미션 크리티컬(mission-critical)’ 시스템 분야에서는 이보다 훨씬 더 엄격한 방법론을 적용합니다.


코딩 표준 강제: MISRA C/C++와 같은 코딩 표준을 통해 위험한 언어 기능의 사용을 원천적으로 금지합니다.

코드 계약 명시: SAL, ACSL 등 애노테이션 언어를 사용하여 코드에 명시적인 ‘계약’을 추가합니다.

정적 검증 수행: Polyspace, Frama-C와 같은 정적 코드 검증(static code verification) 도구를 통해 런타임 오류 가능성을 수학적으로 검증합니다.

컴파일러 검증(compiler validation) 수행: 항공(DO-178C)이나 자동차(ISO 26262)와 같은 안전 표준에서는, 컴파일러가 소스 코드를 올바르게 기계 코드로 변환했음을 증명하는 과정을 요구합니다. 이는 Ada나 C/C++ 생태계에서 전문 벤더가 제공하는 ‘검증 키트(Qualification Kit)’를 통해 이루어지며, 언어의 표준화와 성숙한 상업적 생태계가 있기에 가능합니다. 이와 대조적으로, 러스트는 아직 이러한 공식적인 안전 표준 인증(예: ISO 26262)을 지원하는 도구 및 벤더 생태계가 C/C++만큼 성숙하지 않다는 현실적 한계를 가집니다 (7.2절 참고).

이러한 접근법은 C/C++ 코드를 매우 높은 수준으로 안전하게 만들 수 있음을 증명합니다. 하지만 이는 지극히 일부인 특수 분야에 한정되며, 일반적인 소프트웨어 개발에 적용하기에는 개발 생산성을 크게 저해하는 막대한 비용과 노력을 수반합니다.


결론: ‘선택적 노력’과 ‘강제적 기본값’의 차이


이처럼 현대 C++ 생태계가 스스로의 문제를 해결하기 위해 정교하고 다층적인 안전성 확보 방법론을 발전시켜 온 것은 명백한 사실입니다. 더 나아가, 이러한 발전은 단순히 기존 문제에 대한 방어적 대응을 넘어, 언어 자체의 근본적인 ‘진화’로 이어지고 있습니다. 예를 들어, C++23 표준에 도입된 std::expected는 러스트의 Result 타입과 같이 오류 값을 타입 시스템의 일부로 명시적으로 다루려는 시도이며, 이는 프로그래밍 패러다임 간의 긍정적인 아이디어 교류를 보여주는 중요한 사례입니다.


그러나 바로 그 지점에서 C++의 근본적인 접근 방식과 러스트의 가치가 명확히 구분됩니다. C++에서 std::expected와 같은 안전한 기능을 사용하는 것은, 여전히 개발자의 ‘선택’에 의존하는 ‘모범 사례(best practice)’에 해당합니다. 이는 값비싼 외부 도구나 엄격한 규율에 더해, 언어 차원의 선택적 노력을 요구함을 의미합니다. 현실적으로 대다수의 프로젝트에서 이러한 최신 표준과 방법론이 일관되게 적용되지 못하며, 바로 그 이유로 메모리 관련 보안 사고는 지금도 끊임없이 발생하고 있습니다.4


결론적으로, 러스트의 컴파일러 내장 안전장치는 C++의 다층적 안전망과 비교했을 때, ‘안전성’이라는 가치를 소수 전문가의 선택적 노력에서 모든 개발자를 위한 ‘강제적인 기본값(enforced default)’으로 전환했다는 점에서 근본적인 차이를 보입니다. 현대 C++의 안전성 확보 방식을 존중하는 것과 별개로, 이러한 방법론이 보편적으로 적용되지 못하는 ‘현실’이야말로 러스트와 같은 대안이 강력한 설득력을 얻는 이유임을 이해해야 합니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 반응이 재밌어서 자꾸만 놀리고 싶은 리액션 좋은 스타는? 운영자 25/07/28 - -
AD 휴대폰 액세서리 세일 중임! 운영자 25/07/28 - -
2876221 나님 번아웃 벗어나니 매일매일이 기대가 됩니당❤+ 앙❤+ ♥불사신냥덩♥갤로그로 이동합니다. 07.29 32 0
2876220 프갤러들아 나에게 힘을 줘 [6] 아스카영원히사랑해갤로그로 이동합니다. 07.29 60 0
2876219 도잡이햄 미국 트럼프 측근 그거 윤 부당 대우 그거 가짜뉴스래요 [1] ㅆㅇㅆ(124.216) 07.29 49 0
2876218 잼나보이넹 ♥불사신냥덩♥갤로그로 이동합니다. 07.29 27 0
2876216 국가에서 영화 할인권 배급했는데 요새는 여자친구와 영화관 가면 발명도둑잡기(118.216) 07.29 24 0
2876214 실시간 베스트 써클차트 글 보니 아까 썼던 글 생각이 난다 발명도둑잡기(118.216) 07.29 31 0
2876213 앙!❤+하구 깨물깨물 ♥불사신냥덩♥갤로그로 이동합니다. 07.29 30 0
2876211 ㅅㅂ나라에서 영화쿠폰 뿌리니 영화관에 별 병신같은것들이 다모이네 [1] ㅇㅇ(223.38) 07.29 30 0
2876210 보통 잠을 못자는 이유가 자기 일에 불만족하면 못잔다하더라 [2] ㅆㅇㅆ(124.216) 07.29 40 0
2876209 나님 하품했어양❤+ ♥불사신냥덩♥갤로그로 이동합니다. 07.29 27 0
2876208 나님 기다릴거에양..❤+ ♥불사신냥덩♥갤로그로 이동합니다. 07.29 32 0
2876207 잠을 잘자고싶다 [11] 개멍청한유라갤로그로 이동합니다. 07.29 59 0
2876206 지역 기반 SNS UI 어떤지 피드백해주실 분 프갤러(210.100) 07.29 34 0
2876205 방금 전 인스타그램 앱 여니 첫 화면 발명도둑잡기(118.216) 07.29 69 0
2876201 이게 중소의 공통된 특징일까나 목줄잡힌 개 같은 느낌이 듦 [1] 프갤러(122.32) 07.29 44 0
2876194 이건 저때 15배였다가 오늘 57배까지 오름 ㅇㅅㅇ [2] 어린이노무현갤로그로 이동합니다. 07.29 62 0
2876192 트럼프 때문에 재점화 된 '캘렉시트' 논란…캐나다에 역합병되나 발명도둑잡기(118.216) 07.29 41 0
2876190 노자궁 챌린지 [4] ♥불사신냥덩♥갤로그로 이동합니다. 07.29 61 0
2876187 체력은 정직하당 ♥불사신냥덩♥갤로그로 이동합니다. 07.29 31 0
2876186 솔라나 밈코인 트레이딩 앱 만들거임 [1] 어린이노무현갤로그로 이동합니다. 07.29 54 0
2876184 늙어서 그런가 더위를 못버티겠어 [1] ㅆㅇㅆ(124.216) 07.29 43 0
2876183 극좌내란배급견의 여론조작 수준 ㅋㅅㅋ ♥불사신냥덩♥갤로그로 이동합니다. 07.29 25 0
2876179 귀염❤+ ♥불사신냥덩♥갤로그로 이동합니다. 07.29 33 0
2876178 오늘의 작사 실마리: 밀보드 역주행 발명도둑잡기(118.216) 07.29 28 0
2876177 땀묻은 팬티 똥꼬가 간지럽다 [2] 아스카영원히사랑해갤로그로 이동합니다. 07.29 53 0
2876176 냥덩이가 알려 주는 행복의 비밀❤+ ♥불사신냥덩♥갤로그로 이동합니다. 07.29 31 0
2876173 ㅅㅅ 마스터 아스카 [4] 어린이노무현갤로그로 이동합니다. 07.29 73 0
2876172 아래 글 발명도둑잡기(118.216) 07.29 33 0
2876171 왜 사랑을 모르는 나이인 유아 때는 [2] 아스카영원히사랑해갤로그로 이동합니다. 07.29 48 0
2876170 문제는 다 도메인 종속적이라 나중에 쓸게 못되는듯 ㅆㅇㅆ(124.216) 07.29 35 0
2876169 근데 LLM<<이거 쓰고 한달 45만줄이면 많이 생성한거 아니냐 ㅆㅇㅆ(124.216) 07.29 46 0
2876166 힘들다 [1] 아스카영원히사랑해갤로그로 이동합니다. 07.29 52 0
2876165 프로그래밍 중소기업 가면 사람 좆같아? [2] ㅇㅇ(118.235) 07.29 65 0
2876164 오늘의 영상 기획 실마리: 집에 관한 가사를 시집으로 바꿔 부름 발명도둑잡기(118.216) 07.29 25 0
2876163 삼성 미국으로 이전하려는듯.. [1] ♥불사신냥덩♥갤로그로 이동합니다. 07.29 101 0
2876161 나는 지피티 그냥 럭키 스택 오버플로인듯 ㅆㅇㅆ찡갤로그로 이동합니다. 07.29 47 1
2876160 <KPOP 데몬 헌터스> 흥행했대서 생각나는 예전 글 [1] 발명도둑잡기(118.216) 07.29 46 0
2876159 [전남정보문화산업진흥원] 유니티 기반 게임개발 무료 교육! [1] 프갤러(211.252) 07.29 157 0
2876157 오늘의 작사 실마리: "더위를 먹어서"란 제목 발명도둑잡기(118.216) 07.29 30 0
2876156 자격증 갱신해야하는데 한국에서 못 봐서 걱정.. [3] ♥불사신냥덩♥갤로그로 이동합니다. 07.29 48 0
2876155 요구사항 바꾸는 PL 어떡함 [8] 개멍청한유라갤로그로 이동합니다. 07.29 72 0
2876154 [대한민국] MBC가 반국가 간첩세력인 이유 - 류희림 사건 재해석 프갤러(121.172) 07.29 27 0
2876153 가난이 밉다... 배고파도 삼각김밥 하나 사먹기 부담스러운 인생이... [1] ㅇㅇ(223.38) 07.29 54 0
2876152 여기 프리뛰는 얘들 있냐? 연금보험좀 물어볼게 [1] 프갤러(106.101) 07.29 50 0
2876151 김숙-사천만 땡겨주세요 발명도둑잡기(118.216) 07.29 33 0
2876150 유럽에선 영국 독일밖에 살만한곳이 없당 ♥불사신냥덩♥갤로그로 이동합니다. 07.29 37 0
2876149 화를 낸다 = 두려움에 떨고 있다 ♥불사신냥덩♥갤로그로 이동합니다. 07.29 36 0
2876148 북미사는 친구들이 빨리 넘어오라는데.. [6] ♥불사신냥덩♥갤로그로 이동합니다. 07.29 61 0
2876147 이제부터라도 나는 나만의 코드 사전 만들까 고민중 [2] ㅆㅇㅆ(124.216) 07.29 71 0
2876146 애새끼들이 진짜 자기를 갈고닦을 생각 안하고 꾸준히 악플 달 생각만함 [2] ㅆㅇㅆ(124.216) 07.29 57 0
뉴스 ‘한끼합쇼’ 김희선, 얼굴 벌게질 때까지 띵동! 첫 실패도 박수 받는 폭염 투혼! 이것이 ‘그녀의 품격’! 디시트렌드 08.01
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2