본문 바로가기

Effective C++15

[Effective C++ 정리 #19] 클래스 설계는 타입 설계로 접근하라 [Effective C++ 정리 #19] 클래스는 타입이다 C++에서 class를 만든다는 것은 단순히 데이터와 함수들을 묶는 것이 아닙니다. class는 곧 새로운 타입(type)을 정의하는 행위이며, 우리는 타입 설계자(type designer)가 됩니다. 해당 아이템에서는 C++ 클래스 설계를 '타입 시스템 강화'라는 관점에서 바라보며, 좋은 타입을 설계하기 위해 꼭 고민해야 할 10가지 질문을 제시합니다.좋은 타입이란 어떤 것인가?좋은 타입은 다음과 같은 특징을 갖습니다:자연스러운 문법: 직관적인 인터페이스로 사용자가 쉽게 사용할 수 있어야 함예측 가능한 의미: 어떤 연산이 어떤 결과를 만드는지 명확하게 알 수 있어야 함효율적인 구현: 지나치게 무겁지 않고, 가능한 한 가볍고 빠르게 동작해야 함반.. 2025. 7. 9.
[Effective C++ 정리 #18] 좋은 인터페이스 설계의 핵심 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #18] 인터페이스는 잘못 쓰기 어렵게 설계해야 합니다C++는 다양한 인터페이스로 가득합니다. 함수 인터페이스, 클래스 인터페이스, 템플릿 인터페이스까지, 이 모든 인터페이스는 클라이언트가 프로그램과 상호작용하는 접점입니다. 따라서 **인터페이스 설계는 개발자가 .. 2025. 7. 2.
[Effective C++ 정리 #17] 스마트 포인터로 감싸도 new는 독립적으로 먼저 받아라 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #17] 스마트 포인터를 사용할 때 new는 반드시 독립된 문장에서 처리합니다스마트 포인터를 사용하면 자원 해제 문제를 거의 완벽하게 해결할 수 있습니다. 하지만 이번 아이템 #17에서는 한 가지 놓치기 쉬운 중요한 내용을 알려줍니다. 그것은 바로, 스마트 포인터.. 2025. 6. 27.
[Effective C++ 정리 #16] new와 delete 사용 시 유의 점 - 괄호 하나로 무너지는 코드의 안정성 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #16] new와 delete: 반드시 같은 형태를 맞춰 사용해야 합니다C++에서 new와 delete는 자원을 동적으로 관리할 수 있도록 해주는 강력한 도구입니다. 하지만 그만큼 주의해서 사용해야 합니다. 특히 **new와 delete를 사용할 때 항상 동일한 .. 2025. 6. 26.
[Effective C++ 정리 #15] RAII의 Raw resource 접근 방법 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #15] 리소스 관리 클래스에서는 원시 자원 접근을 제공!C++에서 RAII(Resource Acquisition Is Initialization)는 자원 관리를 훌륭하게 해결합니다. RAII 객체를 통해 메모리 해제, 파일 닫기, 락 해제 등 자원 해제를 자동으.. 2025. 6. 25.
[Effective C++ 정리 #14] 리소스 관리 클래스 복사 시 유의사항 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #14] 리소스 관리 클래스에서 복사 동작을 신중히 결정이전 아이템 #13에서는 C++의 자원 관리에서 RAII(Resource Acquisition Is Initialization) 패턴이 얼마나 강력한지를 살펴보았습니다. RAII 덕분에 우리는 자원을 직접 관.. 2025. 6. 24.