취미 14

전문가를 위한 C++ - Chapter2

프로그램을 작성하다 보면 스트링을 사용할 일이 생기기 마련이다. C언어를 사용하던 시절에는 단순히 널null 로 끝나는 문자 배열로 스트링을 표현했다. 하지만 이렇게 하면 버퍼 오버플로를 비롯한 다양한 문제 때문에 취약점이 드러날 수 있다. C++ 표준 라이브러리는 이러한 문제를 방지하기 위해 안전하고 사용하기 쉬운 std::string 클래스를 제공한다. 스트링은 굉장히 중요한 기능이므로 자세히 알아보자. 동적 스트링스트링을 주요 객체로 제공하는 프로그래밍 언어를 보면 대체로 스트링의 크기를 임의로 확장하거나, 서브스트릥(부분 문자열)을 추출하거나 교체하는 것처럼 고급 기능을 제공한다. 반면 C와 같은 언어는 스트링을 부가 기능처럼 취급한다. 그래서 스트링을 언어의 정식 데이터 타입으로 제공하지 않고 ..

취미/개발서적 2024.05.08

한 권으로 읽는 사서삼경

일단 이 책은 진짜 두껍다. 살면서 다 읽어야 할 의무감이 없다면 이 정도 페이지를 공부해야 하는 전문분야가 아니라면 한 권으로썬 읽어나가기 힘들 페이지 수일 것이다. 그래서 그냥 공부하다 마음이 답답하면 쓱 본다. 모든 책이 으래 그렇겠지만, 철학 책의 가장 큰 묘미는 남의 삶, 남의 생각을 엿본다는 것이다. 특히 고전적으로 내려오는 성인들의 생각을 엿본다는 건 아주 흥미롭다. 살면서 다양한 선택을 마주한다. 예를 들어 가볍게는 저녁 뭐 먹을까?에 대한 고민도 한다. 배움이 중요하다면 간단히 먹을 수 있는 간편식 중에 저녁을 고민할 것이고, 친교가 중요하다면 친구와 적당히 먹을만한 식당을 고민할 것이다. 그 가벼운 저녁 한 끼의 선택도 한 사람의 중요도에 의해 갈리고, 성향에 의해 또 갈린다. 책 한 ..

전문가를 위한 C++ - Chapter1

전처리 지시자C++로 작성된 소스 코드를 프로그램으로 만드는 빌드 작업은 세 단계를 거친다.  1. 전처리 단계 전처리 단계에서는 소스 코드에 담긴 메타 정보를 처리한다.  2. 컴파일 단계 컴파일 단계에서는 소스 코드를 머신이 읽일 수 있는 오브젝트Object (목적) 파일로 변환한다. 3. 링크 단계 링크 단계에서는 변환한 여러 오브젝트 파일을 애플리케이션으로 엮는다. 지시자 (directive)란 전처리기에 전달할 사항을 표현하며,#include 처럼 # 문자로 시작한다. 여기서 #include 지시자는   헤더 파일에 있는 내용을현재 파일에서 사용할 수 있게 모두 가져오도록 전처리기에 지시한다. 헤더 파일은 주로 나중에 소스 파일에서 구현할 함수를 선언(declare)하는 용도로 사용된다.이러한 ..

취미/개발서적 2024.04.27

적을 만들지 않는 대화법

해당 서적 제목만 보면,적을 만들지 않는 건 대충 비위만 맞춰주면 되는 거 아닌가 싶을 수 있다. 하지만 이 책은 누군가에게 아첨하는 방법이 아닌,학교에서는 잘 가르치지 않는 부당한 대우를 받았을 때의 대처법을 말하고 있다.말없이 상처를 감수하거나 보복하려고 하는 두 가지 모두 도움 되지 않는다고 말한다. 저자는 일상적으로 만나게 되는 문제들이 대해서 즉시 해결하도록 하고자 하며,유연하게 살아가는 대처법을 제시해 준다.이 책을 읽는다고 단숨에 인간관계에 능수능란한 마법사가 된다는 뜻은 아니지만, 해당 서적을 읽으며 느낀 점은쿵푸를 할 때 상대 공격을 잘 받아치는 것이 중요한 것처럼,대화도 상대와의 티키타카가 중요하다는 점을 강조하고 있었다. 해당 책에서는 상대방의 상황을 이해함으로써 상대방과의 소통의 원..