생각의 기록

꿈꾸는 개발자 하늘고래의 프로그래밍 이야기

분류 전체보기 12

[spdlog] 로그 남기기 (사용법)

파일 로그를 남겨보자 이제 spdlog 라이브러리를 사용하여 로그를 남겨 보겠습니다. 🚩 관련 글 : [spdlog] 소스 빌드하기 🚩 관련 글 : [spdlog] 헤더 및 라이브러리 참조 로그 기록 로그 남기기 #include "spdlog/spdlog.h" #pragma comment(lib, "libspdlog_MD_2019_x86D_v1.10.0.lib") int main() { spdlog::info("Hello World!"); spdlog::info("Age : {}", 42); spdlog::info("Between {1} and {0}", "Z", 0); spdlog::info("Notation Formatting int: {0:d}, hex: {0:x}, oct: {0:o}, bin: ..

Open Source Library 2022.07.16

[spdlog] 헤더 및 라이브러리 참조

파일 로그를 남겨보자 이제 console 프로젝트를 생성 후 spd 헤더 파일과 생성한 라이브러리를 사용하여 파일 로그를 남겨보겠습니다. 🚩 관련 글 : [spdlog] 소스 빌드하기 🚩 관련 글 : [spdlog] 파일 로그 남기기 spdlog 헤더 및 라이브러리 참조 console 프로젝트 생성 간단하게 콘솔 애플리케이션에서 테스트를 해보겠습니다. 다음과 같이 프로젝트를 생성합니다. spdlog 헤더 파일 및 라이브러리 복사 spdlog 소스 폴더에 있는 include 폴더와 정적 라이브러리를 프로젝트에 맞게 솔루션 내 적절한 위치에 복사합니다. 저는 다음과 같이 솔루션 파일이 있는 위치에 include 폴더와 lib 폴더를 생성하였습니다. console 프로젝트에 참조 폴더 추가 프로젝트 속성 페이..

Open Source Library 2022.07.16

[spdlog] 소스 빌드하기

파일 로그를 남겨보자 개인적으로 아주 심플한 로그 라이브러리를 만들어 사용하고 있는데, 점차 이런 저런 기능을 추가해야 하는 상황이 생기다보니 그냥 오픈 소스 기반의 라이브러리를 사용하자 생각했고, 그렇게 찾은 라이브러리 입니다. 토이 프로젝트에서 주로 사용하기 위한 용도로 아주 고성능의 성능이 필요하진 않기에 다음과 같은 항목을 우선시했습니다. ( 비동기 및 멀티 스레드에 대한 처리는 기본적인 부분이라 고려 항목에서 제외하였습니다. ) ◾ 쉽게 적용 가능할 것 ◾ 다른 의존성이 없어야 함 ◾ 헤더만으로 사용 가능해야 함 ◾ 포맷 지정 가능 ◾ 특정 크기 까지만 사용 가능 그리고 위 항목과 가장 적합한 라이브러리가 spdlog 였습니다. 이제 spdlog를 빌드하고 사용해보도록 하겠습니다. 🚩 관련 글 ..

Open Source Library 2022.07.15

CMake 설치하기

오픈 소스 라이브러리에 대해서 정리하려고 합니다. 그 전에 거의 필수적으로 사용하고 있는 Git과 CMake 설치 방법에 대해서 간단하게 정리하고자 합니다. CMake 설치하기 ( Windows ) CMake 다운로드 📌 CMake 다운로드 바로가기 : https://cmake.org/download/ Download | CMake Current development distribution Each night binaries are created as part of the testing process. Other than passing all of the tests in CMake, this version of CMake should not be expected to work in a production..

Open Source Library 2022.07.01

Git 설치하기 ( 2.37.0 )

오픈 소스 라이브러리에 대해서 정리하려고 합니다. 그 전에 거의 필수적으로 사용하고 있는 Git과 CMake 설치 방법에 대해서 간단하게 정리하고자 합니다. 요즘은 Git을 통해서 관리하는 경우가 많기 때문에 직접 소스를 다운받아 사용해도 상관없지만 소스 관리 측면에서 Git을 통해서 다운로드 받는게 더 좋습니다. 그리고 오픈 소스 라이브러리를 다운받는 용도로만 사용한다면 Git이 크게 어렵지 않습니다. Git 설치하기 ( Windows ) Git 다운로드 하기 📌 Git 다운로드 바로가기 : https://git-scm.com/download/ Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the G..

Open Source Library 2022.06.30

jsoncpp 사용하기 #1 - jsoncpp 라이브러리 빌드 및 프로젝트 구성

개요 안녕하세요. 꿈꾸는 개발자 하늘고래입니다. C++에서 JSON을 사용하기 위해서는 직접 데이터를 파싱하거나, 별도 라이브러리를 사용해야 합니다. C++에서 사용할 수 있는 라이브러리는 많이 있지만, 이번 강의에서는 제가 주로 사용하는 jsoncpp 라이브러리를 사용하여 JSON을 파싱하도록 하겠습니다. 이번 시간에는 joncpp 라이브러리를 정적 라이브러리로 빌드하고 다른 프로젝트에서 jsoncpp 라이브러리를 링크하여 사용하는 방법에 대해서 간단하게 설명하겠습니다. 개발 및 테스트 환경 이번 강의에서는 Visual Studio C++ 환경에서 정적 라이브러리를 만들고, 만든 라이브러리를 사용하여 JSON를 파싱하도록 하겠습니다. 이번 강의의 개발 및 테스트 환경은 다음과 같습니다. Windows ..

Programming/C++ 2021.12.13

변하지 않는 개발의 본질

안녕하세요. 꿈꾸는 개발자 하늘고래입니다. 종종 후배 개발자들이 진로와 관련된 상담 요청을 하여 상담할 때가 있습니다. 팀장으로서 또는 선배 또는 동료 개발자로서 답을 해주곤 합니다. ( 요즘 들어 말이 점점 더 많아지는 것으로 보아 꼰대가 되는 건 아닌지 걱정이 되네요. ) 특히 C++로 개발하고 있는 친구들이 앞으로의 진로나 비전에 대해서 고민이 많은 것 같습니다. 인터넷이 발달하고, 모바일 플랫폼이 발달하면서 예전과 비교해 C++의 입지는 많이 줄어든 것은 사실입니다. 특히, C++ 기반 애플리케이션은 훨씬 더 많이 줄어든 느낌이 듭니다. 실제 네이버 계열사나 카카오 계열사 또는 유니콘 업체와 같이 큰 기업들은 C++보다는 주로 서버 영역으로 사람들 더 많이 구하고 있으니 이러한 고민이 괜한 우려가..

1.2 C 언어 및 C++ 소개

안녕하세요. 꿈꾸는 개발자 하늘고래입니다. 이번 강의에서는 C 언어와 C++를 간단하게 소개하려고 합니다. 우리가 앞으로 계속 같이 공부해야 할 언어이니 간단하게 알아보도록 하겠습니다. C 언어 #include int main() { printf(“Hello World!”); } C 언어는 1972년 Bell Telephone 연구소의 Dennis Ritchie가 운영체제를 만들기 위해 개발한 시스템 프로그래밍 언어입니다. Ritchie의 주요 목표는 컴파일하기 쉽고, 메모리에 효율적으로 액세스를 할 수 있고, 효율적인 코드를 생성할 수 있는 언어를 만드는 것이었으며, C 언어는 이를 기반으로 플랫폼 독립적으로 프로그래머가 많은 제어를 할 수 있도록 설계되었습니다. 1973년 Ritchie와 Ken Th..

Static Library 명명 규칙

개요 업무 특성상 다양한 환경에서 다양한 컴파일러로 개발을 하고 있습니다. 항상 최신 버전의 컴파일러를 사용하여 배포하면 큰 문제는 없을 것 같은데, 유지보수와 관련하여 구버전 컴파일러에서 개발해야 하는 경우가 종종 발생합니다. 일반적으로 솔루션 내에서 정적 라이브러리를 빌드 및 링크하여 사용하면 문제는 없으나, 솔루션 내에 포함하지 않고 만들어진 정적 라이브러리를 링크해서 사용하다보면 솔루션 개발 환경과 정적 라이브러리 개발 환경이 다른 경우 링크 오류가 발생하여 빌드가 안되는 경우가 종종 발생합니다. 이를 방지하기 위해서 정적 라이브러리 생성 시 컴파일러 버전 및 빌드 환경 등에 대한 정보를 파일 이름에 기록하여, 정적 라이브러리를 사용하는 사람이 개발 환경에 맞게 사용할 수 있도록 유도하고 있습니다..

Programming/C++ 2021.12.01