코딩/C와 C++ 16

1편-예제를 통한 C 언어 기초 강의

C는 프로그래머라면 가장 먼저 배우는 언어인데요. 저도 중학교 2학년때 부터 독학으로 Turbo C 책을 독파한 적이 있습니다. 정말 애증의 언어이며, 프로그래밍의 가장 기초적인 언어라고 생각합니다. 그래서 이번에 예제를 통한 C 언어 기초 강의를 시작해 볼까 합니다. 많은 관심 부탁드립니다. 먼저, 우리가 만들려고 하는 프로그램을 정해야 합니다. 목적이 있어야 과정이 생기니까요! 일단 1편이니까 간단하게 파일시스템의 IO와 커맨드라인 아규먼트 파서(parser)를 알아 볼까 싶습니다. 파일시스템과 Argument Parsing을 할 수 있는 프로그램으로 파일의 Hex코드를 볼수 있는 HexView를 만들어 볼까 합니다. 이번 강의는 어느 정도의 C언어에 대한 기본 지식이 있어야 되며, 그렇다고 고난이도..

코딩/C와 C++ 2020.12.29

C++에서 spdlog 를 활용해서 log를 좀 더 쉽게 해보기

안녕하세요? C와 C++ 코딩을 할 때 간단하게 디버그할 때나 또는 나중을 위해서 로그파일을 남길 필요가 있는데요. 이럴때 필요한 유틸중에 C++ 세계에서는 유명한게 spdlog입니다. github 링크: https://github.com/gabime/spdlog gabime/spdlog Fast C++ logging library. Contribute to gabime/spdlog development by creating an account on GitHub. github.com 이 spdlog 사용법을 알아 보겠습니다. 일단 C++ 컴파일을 위한 세팅을 해보겠습니다. mkdir spdlog-test cd spdlog-test mkdir src mkdir external touch CMakeLists..

코딩/C와 C++ 2020.12.11

4편, c++ 프로그래밍 CMake 예제

안녕하세요? C++ 프로그래밍 4번째 편입니다. 3편까지 프로젝트의 기본 구성을 TDD (Test-Driven Development)에 맞게 구성했으며, 첫 번째 유닛 테스트까지 완료했습니다. 자 그럼, 원래의 목적인 renamer-youtube-dl에 맞게 라이브러리를 확장해 나가 볼까요? 그럼, TDD에 맞게 테스트를 해야 되는데 어떤 이유 때문에 우리가 이 프로그램을 만드는지 한번 볼까요? https://cpro95.tistory.com/42 유튜브에서 블랙핑크 뮤직비디오 다운 받기 안녕하세요? 유튜브 보시다 보면 꼭 맘에 드는 콘텐츠를 다운로드하고 싶은 욕망이 생길 때가 있는데요. 그래서 나온 게 youtube-dl 이란 파이썬 프로그램이 있습니다. https://github.com/ytdl-or..

코딩/C와 C++ 2020.12.05

3편, c++ 프로그래밍 CMake 예제

안녕하세요? 2편까지 TDD 의 유닛테스트인 myTest.cpp 까지 만들어 봤는데요. 이제 TDD 유닛테스트를 할려면 컴파일해서 실행해 봐야겠죠. 컴파일은 가장 유명하고 많이 쓰는 cmake를 이용하겠습니다. 일단 프로젝트 상단에 최상위 CMakeLists.txt 파일을 만들고, test 폴더에도 CMakeLists.txt 파일을 만들어 자동으로 컴파일 및 유닛테스트가 실행되게끔 할 예정입니다. 일단 최상위 CMakeLists.txt 파일을 만듭시다. CMakeLists.txt 의 기본 내용은 다음과 같습니다. # Example CMake file for compiling & linking a project # # Copyright (c) 2012-2020 cpro95 (cpro95@gmail.com)..

코딩/C와 C++ 2020.12.03

2편, c++ 프로그래밍 CMake 예제

안녕하세요? 1편에 이어 2편에서는 본격적인 개발에 들어가 보도록 하겠습니다. 들어가기 전에 먼저 TDD에 대해 들어보셨는지요? TDD란 Test Driven Development인데 간단히 소개하면 다음과 같습니다. 기존 개발방식은 개발을 먼저 하고 나중에 테스트하는 방식인데 TDD 방식은 테스트 코드를 작성하고 검토해서 최종적으로 개발코드를 작성하는 방식입니다. 우리는 TDD 방식을 따라 개발할 예정입니다. TDD 방식에서 테스트 코드를 작성한다는 얘기는 내가 개발할 라이브러리를 작성한다는 얘기와 같습니다. 1편에서 우리가 원했던 기능은 youtube-dl로 다운로드한 파일의 이름을 변경하는 기능이 있는 나만의 라이브러리를 만드는 것입니다. 그럼 먼저, 디렉터리 구조를 짜야 합니다. C++ 개발에서 ..

코딩/C와 C++ 2020.12.02

1편, c++ 프로그래밍 CMake 예제

안녕하세요? C++로 프로젝트를 구성할 때 Visual Studio 같은 IDE를 많이 사용하는데, 저는 리눅스나 맥에서 콘솔 방식의 CLI 개발 방식을 선호합니다. 이에 구글링으로 배웠던 C++ Console CLI 프로젝트 개발기를 블로그 할 예정입니다. 먼저, 준비할 것은 C++ 컴파일러, cmake, git 이 필요합니다. 위 세가지는 개발자라면 당연히 가지고 있다고 봅니다. 그럼 먼저, 뭔 만들지 생각해 봅시다. 저는 youtube-dl 을 이용해 BLACKPINK 뮤직 비디오를 다운 받아서 보는데 youtube-dl을 이용하면 다운로드한 파일 이름 끝에 이상한 난수 문자가 있습니다. 간혹 유투브에서 playlist를 youtube-dl로 다운로드하면 그 개수가 너무 많아 일일이 파일 이름을 고..

코딩/C와 C++ 2020.12.02