러스트 프로그래머를 위한 C 언어 안내
1. 이게 뭔가요?
최신 프로그래밍 언어인 러스트를 먼저 배운 개발자가 역사가 깊은 전통적인 C 언어를 공부하면서 발견한 독특한 차이점과 주의할 점을 정리한 글입니다.
2. 왜 화제인가요?
현대의 많은 운영체제와 소프트웨어가 C 언어로 만들어져 컴퓨터 작동 원리를 이해하는 데 중요하지만, C 언어는 모든 것을 개발자의 책임에 맡겨 작은 실수도 보안 취약점으로 이어지기 때문에 러스트와는 다른 주의가 필요합니다.
3. 핵심 내용
C 언어는 초기 버전에서 참과 거짓을 뜻하는 불리언 자료형이 없어 숫자를 썼고 최신 버전에서야 추가되었으며, 문자열의 길이를 따로 저장하지 않고 끝에 널 바이트라는 빈 문자를 붙여 처리하므로 공간을 직접 계산해야 합니다. 또한 정수의 크기가 컴퓨터 환경에 따라 달라질 수 있어 고정 크기 정수 사용이 권장되며, 오류가 발생해도 프로그램이 강제로 처리해주지 않아 개발자가 직접 확인해야 합니다. 구조체 내부 항목에 접근할 때 값은 점 기호를, 주소는 화살표 기호를 다르게 쓰며, 배열은 함수에 전달되면 크기 정보를 잃고 첫 번째 원소의 주소만 남습니다. 러스트와 달리 참조자가 없고 모든 것이 원시 주소값으로 이루어져 있어 직접 주소를 계산하며 연산할 수 있지만 메모리 관리에 실수하면 보안 문제로 이어집니다.
4. 나에게 어떤 영향이 있나요?
일반 독자가 직접 프로그램을 만들 일은 없지만, 우리가 사용하는 소프트웨어가 기초 수준에서 어떻게 작동하며 왜 안전 장치가 필요한지 그 배경을 이해할 수 있습니다.