전체 글 213

g

[CMake] Ch2. 빌드 시스템에 대한 이해

빌드와 빌드 시스템이란? Build라는 단어의 사전적 뜻이 무엇일까요? 별로 어렵지 않은 단어이죠. 만들다, 건물을 짓다, 창조하다 라는 뜻으로 자주 사용되는 단어입니다. 우리가 코딩을 하는 이유는 코딩을 통해 작성한 소스 코드를 가지고 원하는 동작을 하는 프로그램을 만드는 것입니다. 빌드를 한다는 것은 바로 이 과정을 수행하는 것입니다. 즉 소스코드를 프로그램으로 바꾸어 주는 행위가 바로 빌드를 하는 것이고 이렇게 할 수 있도록 도와주는 도구들을 빌드 시스템이라고 말합니다. 빌드 시스템은 각종 프로그램, 컴파일러, 링커, 스크립트 등을 포함하는 말입니다. C/C++ 코드를 빌드하기 위해서는 특정 프로그램만을 써야 하는 것은 아니고 선택적으로 사용할 수 있습니다. 이러한 빌드는 파일을 기계어로 변환하는 ..

개발/CMake 2023.09.15

g

[CMake] Ch1. CMake 의 소개와 장점

CMake 가 도대체 뭔가요? https://cmake.org/ CMake(Cross Platform Make)는 Make와 빌드 관리 시스템을 만들기 위해 윈도나 리눅스 계열과 상관없이 사용할 수 있는 Kitware 라는 회사의 오픈소스 프로젝트이자 빌드 파일(Unix MakeFile..)을 생성해 주는 프로그램입니다. 그럼 CMake만 있으면 소스 코드를 빌드하여 프로그램을 만들 수 있을까요? 아닙니다. 정확히 말하자면 CMake를 사용해서 C/C++ 프로젝트를 직접 빌드를 하는 것이 아니라, CMakeLists.txt 파일과 CMake 프로그램을 통해서 빌드를 할 수 있는 파일을 생성하게 되면 지정된 컴파일러를 통해서 make, ninja와 같은 명령어로 프로젝트를 빌드하는 것입니다. 예를 들어 M..

개발/CMake 2023.09.13

g

[술 리뷰] 아사히 수퍼드라이 맥주 리뷰

일본 맥주 중에 가장 유명하다고 볼 수 있는 아사히 수퍼드라이 맥주를 마셔본 후기를 남겨보도록 하겠습니다. 아사히 수퍼드라이 맥주 리뷰 맥주 정보 제품명 : 아사히 수퍼드라이 식품유형 : 맥주 원산지 : 일본 원재료명 : 정제수, 맥아, 옥수수전분, 호프, 옥수수, 쌀 도수 : 5% 리뷰 캔이 최근에 조금 바뀐 듯합니다. 좀 더 깔끔해지고 겉 부분의 재질이 바뀐 것 같네요. 일본에서는 아사히 맥주 공장에 방문한 적이 있었는데 그때 투어 끝나고 마신 2잔의 아사히 생맥주 맛을 잊지 못하는 것 같습니다. 아사히는 아마 일본 맥주 중에서는 가장 유명하지 않을까 싶은데요, 특히 라거, 깔끔하고 드라이한 스타일의 맥주 하면 빠지지 않는 것 같습니다. 옥수수를 많이 활용한 맥주라서 그런지 고소한 냄새가 나고 거품은..

취미, 육아 2023.09.10

g

[C++] class 생성자에서 explicit 키워드의 의미

오늘은 class 생성자에 대해서 공부하다가 알게 된 explicit 키워드의 의미에 대해서 알아보겠습니다. class 생성자에서 explicit 키워드의 의미 explicit 키워드 C++에서 `explicit` 키워드는 주로 클래스의 생성자에 사용되며, 해당 생성자가 암시적 형 변환을 허용하지 않도록 지정하는 데 사용됩니다. `explicit` 키워드를 사용하면 해당 생성자가 명시적으로 호출되어야 하며, 암시적 형 변환이 자동으로 수행되지 않습니다. 1. 형 변환 오류를 방지: 암시적 형 변환이 허용되면 예상치 못한 형 변환이 발생할 수 있으며, 이는 버그의 원인이 될 수 있습니다. `explicit` 키워드를 사용하면 이러한 형 변환이 방지됩니다. 2. 의도적인 호출 강조: `explicit` 키워..

개발/C, C++ 2023.09.05

g

[아이와 가볼만한 곳] 수원 북수원 온천, 찜질방 가격, 운영시간, 주차 및 리뷰

오늘은 아이와 함께 갈만한 온천과 찜질방을 가려고 찾아보다가 수원에 아주 좋은 곳이 있어서 소개해볼까 합니다. 수원 북수원 온천, 찜질방 가격, 운영시간, 주차 및 리뷰 위치 및 주차 북수원 온천은 지하철역 1호선 수원 성균관대역 바로 앞에 위치해 있습니다. 8층, 9층에 위치해 있고 주변에 큰 건물이 없어서 한눈에 위치를 확인하실 수 있습니다. 클릭하세요! 건물 자체에 주차장이 있습니다. 하지만 주변 성균관대 환승주차장을 이용하고 영수증을 카톡에 보내면 입금을 해줘서 지원해 주는 시스템이 있습니다. 뒤에서 좀 더 자세히 설명드리도록 하겠습니다. 운영시간 및 가격 기본적으로 대인 10,000원에 소인 8,000원 입니다. 야간에는 추가요금, 아주 이른 조조할인까지 있습니다. 동네 작은 온천이 아니라 꽤나..

g

[맛집 리뷰] 수원 디저트, 도넛 맛집 밀키샵 앨리웨이 광교점 가격 및 리뷰

수원 디저트, 도넛 맛집 밀키샵 앨리웨이 광교점 가격 및 리뷰 위치 밀키샵 앨리웨이 광교점은 광교 앨리웨이 내에서 버스정류장 쪽에 위치해 있습니다. 세상의 모든 아침 밑에 있다고 생각하시면 될 것 같아요. 클릭하세요! 메뉴 메뉴는 특별히 메뉴판이 없어서 찍지 못했고 진열되어 있는 도넛들의 사진을 보면 알 수 있습니다. 제일 저렴한 기본 도넛츠가 2천 원대부터 3~4천 원대로 형성되어 있었습니다. 케이크들과 함께 매우 다양한 종류의 메뉴들이 있어서 취향에 따라 선택하기 좋아 보였습니다. 음료 종류들도 팔고 있었는데 사진으로 담진 못했네요. 리뷰 우선 알록달록한 파란색 빨간색의 내부 모습이 인상적이었습니다. 저희는 제일 기본 꽈배기와 함께 글레이즈드 도넛을 시켜보았습니다. 제가 좋아하는 크리스피 도넛과 비교..

취미, 육아 2023.09.02

g

[C++] STL 컨테이너 Set과 Map 활용법과 차이점

컨테이너 중에서 많이 사용되는 Vector에 대해 알아보았고 그 다음으로 C++에서 많이 사용되는 Set와 Map 컨테이너에 대해서 알아보고 활용법과 차이점에 대해서 정리해 보도록 하겠습니다. C++의 Set과 Map 활용법과 차이점 Set: 중복 없이 유일한 값 관리 Set은 중복된 값을 허용하지 않는 데이터 구조입니다. 이를 통해 유일한 값을 저장하고 관리할 수 있습니다. 값을 정렬된 순서로 저장하며, 내부적으로는 레드-블랙 트리(Red-Black Tree) 또는 비슷한 자료 구조를 사용하여 빠른 검색 및 삽입을 제공합니다. 이러한 특징 때문에 집합 연산에 유용하게 사용할 수 있습니다. #include std::set mySet; mySet.insert(10); mySet.insert(20); myS..

개발/C, C++ 2023.09.02

g

[C++] STL 컨테이너 Vector 의 용도와 특징, 사용 예제

C언어에서 C++언어로 오면서 특징 중에 하나가 컨테이너입니다. STL에서 제공하는 여러 가지의 컨테이너에 대해서 알아볼 텐데 오늘은 가장 중요하고 많이 사용되는 Vector에 대해서 알아보도록 하겠습니다. STL 컨테이너 Vector 의 용도와 특징, 사용 예제 Vector란 Vector는 순차적인 데이터를 저장하고 관리하는 데 사용됩니다. 예를 들어, 배열처럼 연속적인 메모리 공간에 데이터를 저장하며, 데이터를 추가, 삭제, 수정하거나 검색하는 작업을 효율적으로 수행할 수 있습니다. 즉 전통적인 C스타일의 배열과 매칭되는 컨테이너입니다. Vector의 특징 동적 크기 조절 Vector는 크기를 동적으로 조절할 수 있기 때문에 초기에 얼마나 많은 요소가 필요한지 미리 알 필요가 없습니다. 이로써 메모리..

개발/C, C++ 2023.09.01

g

[개발 환경] WSL GitHub clone, 네트워크 실패 시 nameserver 변경 방법

WSL을 새로 설치하다가 git clone을 받았는데 실패하는 경우가 종종 있습니다. 이런 경우 원인이 DNS와 연관된 경우가 많은데 이런 경우에 어떻게 해결하는지 알아보도록 하겠습니다. WSL GitHub clone, 네트워크 실패 시 nameserver 변경 방법 어떤 에러가 발생하는지 새롭게 설치하거나 네트워크에 문제가 발생하였을 때 git clone을 하면 문제가 발생할 수 있습니다. Network is unreachable 나 Could not resolve host와 그럴 때 네트워크 문제인지 확인하는 방법이 ping입니다. ping github.com 아래와 같은 정상적인 응답이 오지 않는다면 DNS 문제임을 의심해보아야 합니다. 왜 발생하는지 일반적으로 WSL을 사용하면 IP 주소를 Dyn..

g

[개발 환경] WSL 문제 발생 시 추가로 설치하는 방법

WSL을 사용하다가 문제가 발생하거나 새로운 버전을 사용해보고 싶을 때가 있습니다. 이럴 때 어떻게 설치하는 것인지 설치 방법에 대해서 알아보도록 하겠습니다. WSL 문제 발생 시 추가로 설치하는 방법 추가 설치가 필요한 경우 리눅스 환경에서 개발하다 보면 환경 설정이 여간 어려운 것이 아닙니다. 아래와 같은 경우들이 있을 것 같아요. 기본 제공 패키지가 깨졌다. 설정한 지 너무 오래돼서 어디다가 어떻게 설정했는지 모르겠다. 가이드 대로 신규 설치를 했는데 자꾸 에러가 뜬다. 기본 동작이 어느 순간부터 안되는데 아무리 찾아봐도 해결할 수가 없다. 새롭게 배우는 사람에게 환경 설정을 알려줘야 할 때 어떻게 했는지 기억이 안 난다. 등등.. 윈도와 같이 사용자 친화적이지 않은 리눅스 환경에서 개발하다 보면 ..