본문 바로가기

전체 글100

[C++ Core Guidelines] I.10 예외를 사용해 필수 작업의 실패를 알리자 I.10: Use exceptions to signal a failure to perform a required task 이유에러를 무시하고 그냥 코드가 실행되게 놔두면 예상하지 못한 동작을 일으킬 수 있습니다.에러의 정의는 함수가 원래 달성해야 할 목적을 이루지 못했음을 의미합니다.  예시 (나쁜 예, 좋은 예)// 나쁨 : 음수를 반환해서 에러가 났음을 알립니다.int printf(const char* ...);// 좋음 : 새로운 스레드를 생성할 수 없을 경우 system_error 예외가 발생됩니다.templateexplicit thread(F&& f, Args&&... args);  알아두기만약 UNIX 의 시그널 헤더에서 제공하는 errno 처럼 에러 코드를 지원하는 경우, 이를 사용해도 무방.. 2024. 9. 12.
원래 나는 어떤 사람이었을까 어렸을 땐 길거리에 나앉는 사람들은 공부를 게을리하고 노력도 안 해서 도태되고 실패한 인생이라 배웠고,나 또한 그렇게 믿고 한국 사회가 강요하는 성공한 삶이라는 기준에 맞춰 차안대를 쓴 것 처럼 앞만 보고 달려왔다.12년 동안 받은 주입식 교육으로 높은 수능 점수를 만들어 명문대를 나오고, 부자인 친구를 많이 사귀고, 일류 대기업에 들어가서, 늦기전에 훌륭한 배우자를 만나고, 부모님 체면을 살릴 수 있는 결혼식을 하고, 서울에 아파트 한 채는 있어야 한다는 그런 기준들 말이다.그런데 나이를 먹고 돌이켜 보니 어른들이 했던 이야기가 항상 옳지는 않았다. 인생은 노력보다는 운이 상당한 비중을 차지한다는 것을 알았다. 회사 생활을 해보니 실력보다는 사내정치, 불합리함을 얼마나 더 잘 견디는지, 어느 사람 밑에.. 2024. 9. 12.
첫 마음가짐을 되새기다 24년 1월 테블릿에 작성한 노트를 보니, 코드쉼터라는 블로그를 만들 때 목표로 했던 두 가지가 적혀 있었다, 가능한 많은 사람들에게1. 도움이 될만한 코딩 관련 지식들을 공유하면서,2. 생각을 정리하며 편안하게 쉬어갈 수 있는 공간 1번에 대한 목표는 어느정도 잘 실천하고 있지만 2번에 대해선 소홀했던 것 같다. 둘은 완전히 다른 주제일 수 있어서 1번을 목표로 열공하기 위해 코드쉼터에 들어오신 분들이2번에도 관심을 가질 지 몰라 조심스러웠던 것 같다.시도하기 전에는 알지 못하니 그래도 도전은 해보려고 한다. 2024. 9. 12.
CMake 사용법 1. CMake 란 무엇인가여러 플랫폼 (MAC, Windows, Linux) 에서 C++ 코드를 빌드 가능하도록 도와주는 도구입니다.https://modoocode.com/332 2. CMake 설치 방법https://cmake.org/download/위 링크에서 설치 파일을 다운로드 받고 설치합니다.환경변수도 같이 설정해줍니다. 3. CMake 로 hello world 코드 빌드해보기빌드할 파일 준비 위처럼 아무 폴더나 만들고 그 안에 두 개의 파일을 만들 겁니다.CMakeLists.txt# 실행할 파일 타겟 지정add_executable(App main.cpp)# CMake 프로그램의 최소 버전cmake_minimum_required(VERSION 3.0...3.25)# 프로젝트 정보project(.. 2024. 7. 23.
C 코드를 WASM / HTML 로 빌드하는 법 1. 깃헙에서 Emscripten SDK 를 다운로드https://github.com/emscripten-core/emsdkCode >> Download ZIP >> 다운받은 파일은 압축 해제​2. Powershell 을 실행시키고 압축 해제한 경로로 이동cd "[해당경로]"​3. SDK 설치./emsdk install latest​4. 사용 버전 설정./emsdk activate latest​5. 환경변수 설정emsdk_env.batemcmdprompt.bat​6. 정상적으로 설치되었는지 확인emcc -v버전 정보를 확인​7. 테스트용 hello_world.c 코드 작성#include int main() { printf("hello, world!\n"); return 0;}​8. 코드 빌드emcc .. 2024. 7. 23.
[설계] C* 언어 철학 모토뇌에서 CPU 로 가는 가장 빠른 길The fastest way from your brain to your CPU  철학1. 극단적 명시성코드는 숨겨진 흐름 없이 보이는 그대로 작동합니다.변수의 크기와 형태가 명시적입니다. (name:i32s = 123; // 정수형 32비트 스택 메모리 사용)기본적으로 x86 bare-metal 로 동작합니다 (ABI 는 별도 지원 예정)기본적으로 묵시적 최적화를 하지 않습니다. (빌드 옵션으로 지원 예정)소스 코드는 ASM 와 1:1 로 맵핑되며, 개발 도구를 사용하여 실행 파일을 코드로 즉시 변환할 수도 있습니다.메모리의 구성, 할당, 소멸은 프로그래머가 책임집니다. (쉽게 가능하도록 도구 제공)2. 미니멀리즘변수 선언이 없습니다. (사용과 동시에 생성)포인터가.. 2024. 7. 8.