C++ 썸네일형 리스트형 [C++]CppCoreGuideLine(3) - Interfaces - 원문 출처 : https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#S-interfaces-------------------------------------------------------------------------------------------------------------------------------------Interfaces인터페이스는 프로그램의 두 부분이 맺고있는 계약이다. 계약에는 한 서비스의 공급자와 사용자가 기대하는 것을 정확하게 기술하는 것이 필수적이다. 좋은 인터페이스란 서로간의 계약이 잘 맺어진 인터페이스다. 좋은 인터페이스는 이해하기 쉽고, 효율적인 사용을 장려하고, 오류 발생 가능성.. [C++]CppCoreGuideLine(2) - Philosophy - 원문 출처 : https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#S-philosophy-------------------------------------------------------------------------------------------------------------------------------------개요다른 가이드라인을 정하기 전에 일반적인 규칙부터 정의한다. 철학적으로 제시되는 규칙들은 기계적으로 체크할 수는 없다. 하지만 이런 철학적은 주제를 반영하는 규칙들은 기계적으로 체크할 수 있다. 철학적인 근거를 납득할 수 없으면 이 후에 제시되는 구체적인 규칙들의 근거가 부족할 것이다.P.1 :.. [C++]CppCoreGuideLine(1) - Abstract C++는 계속해서 발전하고 있다. 3년을 주기로 표준을 재정의하면서, 다른 언어의 좋은 점들은 흡수해서 발전시키고 불편한 점들은 보완해 나간다. "Modern C++"란 이렇게 계속해서 발전하는 ISO C++ 표준 정책을 효과적으로 사용하기 위한 방식이다. 메모리, 리소스 관리, 병렬처리등을 어떻게 구조적으로, 성능적으로 효과적으로 사용할지에 대해 많은 논의가 오가고 있다.언어는 계속해서 발전하는데 지금 내가 프로그래밍 하는 방식은 발전이 없다. 예전에 사용하던 패턴을 그대로 사용하고, 예전에 사용하던 표준을 사용한다. 사실 부끄럽지만 어떻게 발전되었는지 모르니 어떤게 불편한지도 느끼지 못하고 있다. 지금 익숙한 코드가 레거시해지고 레거시한 구조가 좋은 프로그램이 될리 없다.그래서 많은 사람들이 참여하고.. [C++] std chrono 프로그램을 작성하다보면 어떤 함수가 걸린 시간을 로그로 저장해야 한다던가, 네트워크 장애가 생겼는지 판단하는 등의 여러 상황에서 시간을 측정해야 할 상황이 생긴다. chrono 라이브러리는 시간을 측정하기 위한 C++ 11에 지정된 표준 라이브러리다. C++11에서는 nanoseconds 단위 시간 측정이 가능하다. C++20 달력, 파일 시간 접근 등의 여러 부가적인 기능등이 추가될 예정이다.Chrono 라이브러리는 3가지 주요 기능들로 구성되어 있다.1. Clocks시계의 역할을 하는 클래스이다. 여러 클래스가 있는데, 공통적으로 시작 시간과 단위를 가지고 있다. 각 상황에 적절한 클래스를 이용하면 된다. now() 함수를 이용해서 현재의 시간(TimePoint)을 가지고 올 수 있다. 이 중 hig.. [C++] Smart Pointer 스마트 포인터 (Smart Pointer)C++을 이용해 프로그램을 작성할 때는 항상 메모리 관리에 유념해야 한다. new 키워드를 사용해 동적으로 힙 메모리에 할당된 데이터는 delete 키워드를 사용해 해제해야 메모리 릭을 방지할 수 있다. 하지만 프로그램을 작성하다 보면 깜빡해서 잊어 버리거나 할당된 곳이 아닌 다른 엉뚱한 부분에서 메모리 해제가 되는 문제가 종종 발생기도 한다. C++ 11 부터는 이런 메모리 관리 효율성을 위해 스마트 포인터 개념을 도입한다. 스마트 포인터란 포인터처럼 동작하는 클래스 탬플릿이다. 스마트 포인터는 RAII (Resource Acquisition Is Initialization) 원칙을 지키기 위한 중요한 수단이다. RAII의 주요 원칙은 힙 할당 리소스의 소유권을.. 이전 1 다음