03. Resources/C, C++(30)
-
[C/C++] vcpkg로 C++ 라이브러리 관리 쉽게 하기
C++ 라이브러리 관리하기 C++ 프로젝트가 커질수록 다양한 외부 라이브러리를 사용하게 된다. 맨 처음 gcc, g++, make만 가지고 프로젝트를 빌드할 때와는 차원이 다르게 복잡도가 늘어난다. 그래서 그걸 도와주기 위해 CMake를 사용하는데 이걸 사용할 때에도 무슨 기능을 어떻게 써야할지 막막할 때가 많다. 특히 외부 라이브러리를 가져오는데 있어서 너무 다양한 방법이 있는데, 그게 모두 동일하게 동작하지도 않거니와 라이브러리의 버전을 관리하는데 있어서도 굉장히 불편하다. 그런 점들을 해결해주고, 마치 javascript의 package.json 파일처럼 외부 라이브러리를 관리해주는게 있는데 그게 마이크로소프트에서 나온 vcpkg다. vcpkg란 공식 페이지의 메인화면을 캡쳐해왔다. 마이크로소프트에..
2022.12.23 -
[TDD/C++] C++로 실습하는 Test-Driven Development - GoogleTest 예시 프로젝트
예시 프로젝트 만들어보기 C++는 CMakeFiles를 작성하는게 꽤나 번거로운 작업이라 예시 링크를 보고 프로젝트를 하나 만들어뒀다. 참고한 링크: https://raymii.org/s/tutorials/Cpp_project_setup_with_cmake_and_unit_tests.html C++ project setup with CMake & unit tests (google test) - Raymii.org This guide will show you how to setup a new C++ project with CMake and unit tests via Google's test framework. With this setup you can get started right away with te..
2022.08.30 -
[TDD/C++] C++로 실습하는 Test-Driven Development - GoogleTest를 이용한 TDD
어떤 라이브러리로 TDD 개념을 적용할 수 있을까? 강의에서는 GoogleTest를 이용해서 TDD개념을 C++ 프로젝트에 적용할 수 있다고 했다. GoogleTest란? google에서 만든 c++ test framework이다. 소스코드 레포지토리는 다음과 같고, https://github.com/google/googletest GitHub - google/googletest: GoogleTest - Google Testing and Mocking Framework GoogleTest - Google Testing and Mocking Framework. Contribute to google/googletest development by creating an account on GitHub. gith..
2022.08.29 -
[TDD/C++] C++로 실습하는 Test-Driven Development - TDD란?
TDD를 찾아본 이유 최근에 회사에서 C++ 프로젝트 하나를 마무리지었다. 개발하면서 많은 테스트가 필요했는데, 매번 기능을 바꾸고난 다음 main 함수나 변경 사항이 연결된 부분에 디버그 메시지를 심어서 확인하면서 테스트를 진행했다. 그런데, 이게 정말 불편하기도 했고, 어떻게 하면 테스트를 조금 더 정량적이고 규격화된 방법으로 할 수 있을까 고민하다가 찾아보게 됐다. 왜 링크드인 온라인 클래스를 들었는가? TDD(Test-Driven Development)에 대해서 공부를 하고 싶고, 내가 최근에 사용하는 언어가 C++이어서 이 두 가지를 동시에 다루는 강의를 열심히 찾아봤는데, 생각보다 잘 보이지 않았다. 그런데 링크드인에 있는 온라인 클래스에서 하나 발견할 수 있어서 바로 수강하게 됐다. 수업 링..
2022.08.28 -
[C++ 스터디] LeetCode 코딩 테스트 문제 풀어보기! - Roman to Integer
새로 배우는 언어에 익숙해지는 방법이 몇 가지 있는데, 첫번째는 바로 실무를 뛰면서 하드 트레이닝을 받는 것이고 두번째는 매일매일 문제를 한 개씩 풀어보는 것이다. 회사 동료분이 LeetCode가 좋다고 하셔서 예전에 파이썬으로 조금 문제를 풀어봤었는데, 이제 내 주력언어는 C++이 되어야하기 때문에 C++로 짜보기 시작했다. 로그인하고 이런저런 정보를 입력하니 몇 개의 문제를 추천해줘서 진짜 하드코딩해서 문제를 풀었다. 문제 문제는 로마식 숫자 표현을 우리가 아는 정수로 바꾸는 것이었다. https://leetcode.com/problems/roman-to-integer/ Roman to Integer - LeetCode Level up your coding skills and quickly land ..
2022.08.15 -
[C++/CMake] CMakeLists로 C++ 편하게(?) 컴파일 하기
이전 게시물에서도 썼던 것처럼 C++은 진짜 컴파일 하려고 오만 고생을 해야한다. 지금 이 포스팅은 맥으로 작성하고 있는데, 내가 회사에서 주로 쓰는 운영체제는 우분투이다. 심지어 플랫폼마다 컴파일 하는 방식이 다 다르다. 지금 맥에서는 clang만 깔려있는데, 회사 컴퓨터에서는 g++을 쓴다. 만약 내가 쓰던 맥에서 쓰던 코드를 우분투에서도 쓰려면 여러 컴파일러를 이용해서 코드를 컴파일 하는 커맨드들이나 makefile을 만드는 방법을 알아야하는데 누가 그걸 다 외우고 있나 이런 생각을 덜어주기 위해서 CMakeLists를 쓴다고 한다. 얘 하나만 있으면 컴파일러에 대한 걱정을 "덜" 하면서 컴파일을 진행할 수 있기 때문이다. CMake Tutorial도 보고 이런저런 문서들도 같이 보면서 공부를 하고..
2022.07.28