구글의 C++는 왜 효과적일까? (코드 독자를 위한 최적화)
구글의 C++는 왜 효과적일까? (코드 독자를 위한 최적화)
구글의 C++ 스타일 가이드를 살펴봅니다.
이 가이드는 C++ 언어에 내재된 복잡성을 관리하고, 특히 대규모 코드베이스에서 코드의 가독성과 유지보수성을 보장하기 위해 마련된 규칙 집합입니다. 구글의 C++ 스타일 가이드는 코드 작성자보다 독자를 우선시할 것, 구글 내부 코드베이스와 필요 시 C++ 커뮤니티 전반에서의 일관성을 유지할 것을 강조합니다. 또한 코드 동작이 예기치 않거나 위험한 코드 구조를 피할 것을 강조합니다.
구체적인 예로는 탭(tab)이 아닌 스페이스를 이용한 들여쓰기 규칙, 타입 추론(type deduction) 시 ‘auto’ 키워드 사용의 제한이 있습니다. 그리고 스마트 포인터를 활용한 메모리 관리, 예외(exception) 사용을 피합니다. 구현 상속(implementation inheritance)보다 인터페이스 상속(interface inheritance)이나 컴포지션(composition)을 선호하는 방침 등이 있습니다. 이러한 규칙들은 수천 명의 엔지니어가 거대한 프로젝트에서 협업하는 상황에서 코드를 최적화하기 위해 마련되었다는 점을 강조합니다.
이번 영상 주요 논점입니다:
1. 예외(exception) 처리 사용 안함: 구글 C++ 스타일 가이드의 핵심적인 측면들을 설명합니다. 방대한 코드베이스를 읽기 쉽고 유지보수 가능하게 만들기 위한 실천 방안들입니다. 예기치 않은 프로그램 동작을 방지하기 위해 예외 사용을 피합니다.
2. 상속(inheritance): 모호함을 방지하기 위해 구현 상속(implementation inheritance)보다 인터페이스 상속(interface inheritance)을 사용할 것을 권장합니다. 그리고 컴포지션(composition)을 선호합니다.
3. 일관된 들여쓰기 (스페이스 vs 탭): 또한 들여쓰기에 스페이스를 사용하는 등 일관된 코드 형식을 사용합니다.
4. 타입 추론(type deduction): 타입 추론과 같은 최신 기능도 명확성을 높이는 경우에만 사용합니다.
5. 소유권(ownership)과 스마트 포인터: 데이터 소유권을 명확히 하고 흔한 오류를 방지하기 위해 'std::unique_ptr'을 사용한 명시적인 메모리 관리를 적극적으로 권장합니다.
6. 논평: 구글의 C++ 스타일 가이드는 코드를 읽는 독자를 위한 최적화입니다.
https://www.youtube.com/watch?v=nmqJ_4tyw94