혁신을 이룹니다, 오딘박스(OdinBOX)

언제나 어디서나 오딘박스와 함께!

C와 C++는 사용 중단 권고 알아보기

간지뽕빨리턴님 2024. 3. 19. 18:00
반응형

도대체 이유가 멀까? 간단히 알아볼까요?

C와 C++ 이제 묻히는 건가요?

프로그래밍 언어에서 C언어는 처음 프로그래밍을 배우던 시기에 사용을 했던 언어입니다. 아마 많은 분들이 처음 시작했을 때 제일 먼저 배웠던 언어 중 비율이 높을 것이라고 생각합니다. 실제로 대학 다닐 때 1학년 1학기때 C언어로 공부를 하기도 했습니다. 그런데 최근에 들리는 소식 중 백악관에서 C언어와 C++언어 사용중단을 하라는 권고가 나왔습니다. 자세한 내용을 알아보도록 하겠습니다.

목차

    C/C++ 사용중단 권고

    ⓒ 백악관 ONCD 보고서

    미국 백악관 국가사이버책임자실(ONCD)에선 개발자들에게 메모리 안전 취약점이 없는 프로그래밍 언어를 사용하여 보안(사이버 공격)에 신경을 써서 위험을 줄여야 한다는 보고서가 있습니다. 이런 이유로 메모리 안전 프로그래밍 언어를 채택하여 해당 문제를 해결하자는 의견이 있었습니다. 이런 이유 중 메모리 누수, 오버플로우(프로그램이 특정 데이터를 처리할 때 할당된 메모리 공간을 넘어가게 되면 발생), 범위를 벗어난 읽기, 메모리 액세스와 관련된 프로그램 버그 및 취약성으로부터 안전한 프로그래밍을 의미하는 부분입니다.

    왼 / 백악관, 오 : NSA

    미국 CIS 게시된 글[#]을 보면 아래와 같이 설명을 하고 있습니다.

    첫째, 하드웨어에는 몇 가지 유망한 메모리 안전 완화 방법이 있습니다.

    둘째, 기업은 메모리 안전 프로그래밍 언어를 확인합니다.

    이러한 이유와 함께 미 NSA의 보고서를 보게 되면 (SoftWare Memory Safety)[#]의 내용에서 안전하게 생각하는 예시 프로그래밍 언어는 Python, Java, C#, Go, Delphi/Object Pascal, Swift, Ruby, Rust, and Ada로 이야기를 하고 있습니다.

     

    쉽게 요약을 하자면 C와 C++에 는 구조적으로 해결되지 않는 메모리 버그 등으로 리소스 누수가 발생을 하고 이를 보완하기 위해 많은 코드를 추가해 또 시스템을 무겁게 만들어 느려지고 또 다른 문제가 생기는 문제의 악순환이 발생을 하자 마이크로소프트웨어(Microsoft)의 CTO인 마크 리시노비치는 '보안과 안전성을 위해 업계에서는 C/C++을 더 이상 사용되지 않는 언어로 선언하고 새로운 프로젝트 시작을 중단해야 한다.'라는 말을 남겼습니다. 

     

    그런데 이런 것에 언짢아하는 사람이 있습니다 바로 C++의 창시자인 비아네 스트로브스트롭은 앞서 이야기한 것처럼 미 국가안보국(NSA)의 권고안들에 대해 반대하는 성명을 발표를 했고 해당 언어는 우리가 요즘 흔희 사용을 하고 있는 자바 등과 같이 메모리 안전성을 제공을 할 수 있다는 말과 함께 안전에 대해 진지하게 생각하고 현명한 조치를 취해야 한다는 성명서를 오픈을 했습니다.

    결론적으로 이야기를 하게 된다면 미 정부기관에서 이러한 의견을 권고안이긴 하지만 이렇게 글이 올라왔다는 것은 C와 C++의 점유율은 점차 줄어들 것으로 보입니다. 왜냐면 결코 정부의 움직임으로 기업도 나서고 있고 그에 맞춰 대체할 수 있는 언어는 굉장히 많은 것이 사실이기도 합니다. 물론 지금 만약 새롭게 시작하는 프로젝트가 있는데 C나 C++을 이제 고려하는 부분은 이러한 일로 이제 한 번쯤은 거부감도 들 수 있으리라 생각을 합니다.

    마무리

    마지막 마무리 하기 전 보통 미국은 C와 C++로 월급이나 연봉의 수준이 어떤지에 대해서 알아봤습니다. 생각보다 많이 받고 있는 거 같습니다. 물론 사진 속 사람들과 다르게 있는 사람들도 많으며 평균이 원래는 낮아질 수 도 있기 때문에 그렇다는 생각을 했습니다.

     

    여러분은 간단하게 글을 통해 C와 C++ 이 왜 사용중단을 권고하는지 알아봤습니다. 저의 경우 실제로 개발을 하면서 아직 현업의 단계에서 C와 C++(저의 기준)의 경우 사용을 해본 적이 없기 때문에 저런 것이 있었다는 것도 관심을 갖고 찾아보다가 우연히 보게 되고 더 깊게 찾아봤습니다. 안 써본 언어여서 그럴 수 있지만 저의 경우 공부 할 때 사용을 했을 때 크게 좋다는 생각이 들 정도는 아니었습니다. 차라리 지금 이렇게 진통이 있겠지만 해결하는 것도 나쁘진 않을 것으로 보입니다. 이 글을 보면서 궁금한 사항이 있다면 댓글을 남겨주시면 답볍을 남겨주시면 답변드리도록 하겠습니다.