반응형
앞선 글들에서 우리는 파이썬의 range, enumerate, zip, map, filter와 같은 편리한 함수형 API를 C++20/23 문법과 Ranges 라이브러리 등을 통해 “파이썬스럽게” 구현하는 방법을 살펴보았습니다. 이번 글에서는 한 단계 더 나아가, 파이썬의 itertools 라이브러리가 제공하는 몇 가지 대표적인 툴을 C++ 스타일로 흉내 내보려 합니다. itertools는 파이썬에서 반복 가능한(iterable) 시퀀스를 다루는 데 매우 유용한 툴셋을 제공합니다. 그중에서도 chain, takewhile, dropwhile는 다양한 컨테이너나 이터러블을 직관적이고 유연하게 다룰 수 있게 해줍니다. 글의 구성은 다음과 같습니다:일반적인 C++ 구현 (Before): 파이썬 chain, t..
앞선 글들에서 우리는 파이썬의 range, enumerate, zip와 유사한 C++ 구현 방식을 살펴보았습니다. 파이썬의 직관적 문법을 C++20/23의 언어와 라이브러리 기능들을 통해 비교적 쉽게 재현할 수 있음을 확인했죠. 이번 글에서는 파이썬에서 자주 사용하는 함수형 스타일의 API인 map과 filter를 C++에서 어떻게 “파이썬스럽게” 구현할 수 있는지 다뤄보겠습니다. 파이썬의 map(function, iterable), filter(predicate, iterable)를 C++20/23에서 비슷한 느낌으로 쓸 수 있다면, 복잡한 로직을 더 간결하고 깔끔하게 표현할 수 있습니다. 글의 구성은 다음과 같습니다:일반적인 C++ 구현 (Before): 람다, std::transform, std::..
순자산(Net Worth)란?순자산(Net Worth)은 개인 또는 기업이 보유한 모든 자산(Assets)의 총합에서 모든 부채(Liabilities)를 차감한 뒤 남는 금액을 의미합니다. 쉽게 말해 “내가 가진 것(자산)에서 남에게 갚아야 할 것(부채)을 뺀 순수한 재산”이라고 할 수 있습니다. 순자산은 개인의 재무적 건강 상태를 파악하는 핵심 지표로 활용되며, 기업의 경우 주주지분(Shareholders’ Equity)과 유사한 개념으로 쓰입니다.공식:순자산=총자산−총부채순자산 = 총자산 - 총부채총 자산(Assets): 현금, 은행 예금, 주식, 채권, 부동산, 사업체 지분, 예술품, 골동품, 귀금속 등 경제적 가치가 있는 모든 재산.총부채(Liabilities): 주택 담보 대출금, 전세금 반환 ..
파일 검증 작업을 하다보면, 다운로드 받은 파일의 무결성(integrity)을 확인하기 위해 해시(hash) 값을 비교하는 경우가 많습니다. 특히 SHA-256 해시는 많은 소프트웨어 배포 사이트에서 표준적으로 제공하고 있는 대표적인 해시 알고리즘 중 하나입니다. 또한 단순히 파일뿐만 아니라, 특정 문자열에 대한 SHA-256 해시값을 얻고자 할 때도 있습니다. 이 글에서는 리눅스, 맥OS, 윈도우 환경에서 SHA-256 해시를 커맨드라인 도구로 간편하게 계산하는 방법을 설명하겠습니다.1. SHA-256 해시란?SHA-256은 SHA-2 알고리즘 계열의 해시 함수 중 하나로, 256비트 길이의 해시값을 생성합니다. 이 값은 일반적으로 16진수(HEX) 형태로 출력되며, 파일이나 문자열의 "지문"으로 사용..
1. SHA란 무엇인가?현대 디지털 환경에서 우리는 수많은 데이터를 주고받습니다. 이때 중요한 것은 데이터가 원래 의도한 상태 그대로 유지되고 있는지, 즉 무결성(integrity)을 보장하는 것입니다. 만약 전송 과정 중에 데이터가 변조되거나 손상된다면, 그 데이터는 더 이상 신뢰하기 어렵습니다. 이를 방지하고, 데이터의 "지문" 역할을 하는 것이 바로 SHA(Secure Hash Algorithm)입니다.SHA는 어떠한 길이의 입력 데이터라도 항상 일정한 길이의 해시 값(hash value)으로 변환하는 암호학적 해시 함수입니다. 해시 값을 통해 파일이나 메시지의 상태를 직관적으로 확인할 수 있으며, 계절마다 모습이 달라질 수 있는 나무라도 고유한 나이테 패턴(고정 길이의 해시 값)을 통해 동일한 나..
미국의 광활한 도로를 달리다 보면, 생각지도 못한 순간에 사슴(Deer), 엘크(Elk), 무스(Moose)와 같은 야생동물과 맞닥뜨릴 수 있습니다. 특히 가을 번식기나 새벽·해 질 무렵은 사슴 활동이 활발해지며, 이때 충돌 사고 발생률도 높아집니다. 막상 이런 상황에 놓이면 “신고해야 하나?”, “주마다 법이 다르다는데 어떻게 하지?”, “보험 처리는?” 등 다양한 궁금증이 떠오릅니다.이번 글은 이런 상황에서 참고할 수 있는 종합 가이드로, 미국 각 주별 규정 차이부터 신고 절차, 보험 처리, 그리고 유용한 팁까지 자세히 담았습니다. 마지막에는 흥미로운 Fun Fact와 짤막한 일화도 소개하니 끝까지 읽어보세요!왜 신고가 필요할까?법적 의무 준수:미국은 연방국가로 각 주(State)마다 독자적인 교통법..
이제까지 우리는 CUDA의 기본 문법, 메모리 계층, 비동기 스트림, 2D 데이터 처리 등 다양한 기초 개념을 다뤄왔습니다. 하지만 이 모든 것이 현업이나 프로젝트에서 활용되기 위해서는 체계적인 빌드 환경과 현대적 C++ 기능과의 자연스러운 결합이 중요합니다. 이번 글에서는 CMake를 통한 빌드 시스템 설정 방법과 C++20/23 기능(Coroutine, Concept, Constexpr, Lambda 개선 등)을 CUDA 코드와 융합하여 더 깔끔하고 유지보수하기 쉬운 코드를 만드는 방법을 살펴보겠습니다.CMake로 CUDA 빌드 환경 현대적으로 관리하기기본 구조 복습이전 글에서 간단히 소개했듯이, CMake는 CUDA를 별도의 언어로 인식하고, project(... LANGUAGES CUDA CXX)..