본문 바로가기

전체 글38

[C++] template <1> template은 어디에 필요한가?C++을 쓰다보면 파이썬같은 인터프리터 언어에 비해서 빠르고 문법이 패턴화 돼 있어서 좋지만 몇가지 불편한 점들이 있다. 대표적인게 자료형 선언이다.파이썬은 자료형을 선언할 필요도 없고 함수나 클래스에서도 받아들이지만C++은 매개변수를 사용할때 어떤 자료형을 쓸 지 선언해줘야한다. 그렇다보니 여러 자료형에 공통적인 함수를 만든다 하더라도 여러번 오버로딩 해야 하는 단점이 있다.즉 template은 딱딱한 C++의 자료형 선언을 편하게 해주기 위해서 존재한다.template은 무엇인가?따라서 template은 제네릭한 (일반적인) 자료형을 의미하는 코드다. 라고 정리할 수 있다template이 사용되는 곳은 어디인가?그 목적에 따라서 template은 함수나 class의 .. 2024. 9. 7.
[책 리뷰] 백치, 이 세상은 사상이나 정의를 그린 정물화가 아닌 가장 치밀한 심리까지 표현된 풍경화. 백치란 책은 전락하는 책이다. 그것도 극 중의 거의 모든 인물이 자기 자신의 결함으로 인해 파멸로 빠지게 되는 이야기다. 모든 이야기의 중심에는 주인공이자 책의 제목처럼 백치인 미쉬킨 공작이 있고 공작은 이들의 파멸을 가속하고 본인 자신도 파멸시키는 역할을 한다.이 책을 읽으면서 가장 궁금했던 것은 왜 공작이 백치인가 하는 점이었다. 책의 상당 부분 동안 공작은 백치라기보단 성자 같다. 공작은 거의 나쁜 감정과 무관한 사람처럼 보인다. 그가 감정을 가지고 있지 않다고는 할 수 없지만 그가 가진 감정들에는 악의가 없다.작중에서 공작이 백치라 불리는 것은 어느정도 시대상과도 연관이 있다. 도스토예프스키의 작품의 특징이자 장점처럼 이 소설의 인물들은 작가가 바라보는 당시의 러시아에 많은 영향을 받았다. 당대의.. 2024. 8. 5.
[C++] 입출력 스트림 프로그래밍 언어의 입출력프로그램은 사실 어떤 입력을 받고 어떤 출력을 내주는 기계에 불과하다. 그리고 OS에 올라간 프로세스 이외에서 정보를 얻고 주기 위해서는 위해서는 (디스크에서 파일을 읽고 쓴다거나 사용자가 데이터를 입력한다거나) 입출력 시스템에 대한 제대로된 이해가 필요하다.스트림스트림이란말은 입출력의 개념에 부합하기 때문에 자칫 그 말의 제대로된 놓치기 쉽다. 한마디로 입출력 자체를 다른말로 스트림이라고 하는거 아니야? 라고 생각할 수 있다.C++ 입출력은 스트림이고 C는 아니다하지만 사실 스트림은 그자체로 입출력이라고 할 수 없다. C에서 가장 자주 사용하는 입출력 시스탬은printf()scanf()두가지이다. 사실 알고리즘 푸는 정도에 쓰는데는 아무 문제가 없다. 하지만 좀 더 심화된 시스템.. 2024. 7. 8.
[C++] 예외 처리 예외처리예외처리는 프로그래밍 언어에서 필수다. 단순 알고리즘을 풀면서도 수많은 에러와 마주하고 실제 서비스를 위한 프로그램에서는 예상하지도 못한 에러가 발생할 때도 많을 것이다.최근 SRS라는 오픈소스 프로젝트를 읽고있는데 그쪽의 코드를 보면 실제 로직보다 에러처리가 훨씬 많다는걸 알 수 있었다. 그러다보니 내가 나아가야 할 방향도 이런 에러들을 관리하는 방향이라는 생각을 하게 됐고 정리나 한 번 해보려고한다.try, catch, throw, noexcepttry - catch는 다른 언어에서도 많이 사용되는 쌍이다. 일단 무슨에러가 발생할지 모를 때 로직을 감싸고 에러가 발생했을 경우에 할 로직을 따로 처리해놓는 것이다 try { int result = divide(num1, num2.. 2024. 6. 26.