CPP

    [C++] 객체지향 프로그래밍: 예외 처리(try, catch, throw, exception)

    💡 본 문서는 '객체지향 프로그래밍: 예외 처리'에 대해 정리해놓은 글입니다. 프로그래밍을 하다보면 모든 경우를 고려한 프로그래밍을 하는 것도 중요하지만, 충분히 예측이 가능한 예외의 경우라 할지라도 예외 처리가 필요할 때가 있습니다. 그러한 경우에 사용하는 Exception 처리에 대해 다루며 주의해야할 사항에 대해서도 정리해두었으니 참고 부탁드립니다. 1. Try-Catch-Throw try 문 : 예외가 발생할 가능성이 있는 코드 블록 throw 문 : try 문에서 발생한 오류에 대한 정보를 전달 catch 절 : 발생한 예외에 대해 예외 핸들러가 처리할 내용을 담은 코드 블록 try { // 예외가 발생하는 영역 if (예외 조건) throw 예외 객체; // 예외가 발생하면 예외를 던지는 영역..

    [CMake] FetchContent: 외부 라이브러리를 사용하자~

    💡 본 문서는 CMake로 환경을 build하는 중 외부의 필요한 라이브러리를 가져오는 FetchContent과정에 대해 자세히 설명합니다. 1. FetchContent FetchContent: 'configure time'에 외부 라이브러리를 가져옵니다(populating). configure time: CMake를 실행하는 시점 ExternalProject_Add(): 외부 라이브러리를 'build time'에 가져옵니다. build time: makefile을 활용하여 make 하는 시점. the FetchContent module makes content available immediately, allowing the configure step to use the content in command..

    [C++] C++ Json 라이브러리 성능비교(벤치마크): JsonCpp, Nlohmann/json...

    참고: 이 조사의 목적은 JsonCpp로 적용되어 있는 기존의 Json library를 Nlohman/Json으로 바꾸자를 제안이 있어서 조사하였음을 참고해주시기 바랍니다. 그렇다고 다른 라이브러리에 대한 내용이 빠진 것은 아닙니다. C/C++ Json Library Benchmark C/C++에는 41개의 오픈소스 Json parsing/generation libraries가 있습니다. JSON parsing/generation의 성능에 따라 server-side application에 영향을 줄 수 있습니다. Benchmark는 속도, 메모리, 코드사이즈를 기준으로 성능평가를 진행하였습니다. 자세한 Benchmarks와 Measurement의 기준은 아래의 링크를 참조하세요. https://githu..

    [Design Pattern] GoF 디자인 패턴 (Design Patterns) 개요

    GoF 디자인 패턴(Design Patterns) 디자인 패턴은 많은 개발자들이 직면하는 문제를 해결하기 위한 방법을 모아 체계적으로 일반화한 것입니다. 일부 상속이 아닌 구조도 있지만 핵심은 "문제 해결을 위해 다형성을 이용하고 객체 간에 어떤 관계를 만들 것인가"이며, 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할때 참조할 수 있는 전형적인 해결 방식을 말한다. 따라서 디자인 패턴을 통해 설계 문제, 해결 방법, 해결 방법을 언제 적용해야 할지, 그 결과는 무엇인지 등을 알 수 있다. 디자인 패턴은 자신이 사용하는 프로그램 언어를 충분히 이해하고 직접 처음부터 끝까지 프로그램을 개발한 경험이 있는 경우 매우 도움이 됩니다. 디자인 패턴은 필요한 것이 아니라 자주 발생하는 상황에 대한 좋..