목록전체 글 (210)
관심있는 것들 정리
std::cin을 이용해 console에서 character 입력을 받는 것은 익숙한데, 이를 googletest를 이용해 시험을 하려 해 보면,cin >> a와 같이 수행 시 keyboard로 입력을 해 주지 않으면 문제가 된다.이런 경우, 다음과 같이 stringstream을 이용해서 처리할 수 있다.// istream::get example#include // std::cin, std::cout#include // std::ifstream#include #include // std::istringstreamusing namespace std;string readTest(std::istream& in){ string a; std::cout > a; ret..
c로 코딩을 할 경우, sorting 순서, 중복항목 체크를 직접해 주어야 하지만 c++의 경우 이를 간단히 처리해준다.map에서 key 값을 기준으로 sorting하면서 merge가 되며, 간단히 int 타입을 key로 하는 map에 대한 예제는 다음과 같다.#include#include#inclucdeusing namespace std;int main(){ map tmap1 = {{10, "10"}, {1, "1"}, {3, "3"}, {20, "20"}}; map tmap1 = {{10, "10"}, {5, "5"}, {6, "6"}, {20, "20"}}; tmap1.insert(tmap2.begin(), tmap2.end()); for(auto& p: tmap..
코딩을 처음배울 때는 내가 사용하는 언어의 문법을 배우는 데 바쁘고, 그 언어를 이용해 기능을 구현하는 것에 관심이 있어, 클린 코드라는 것을 들어도 귀에 들어오지 않는다. 이는 회사에 취직해서 회사의 플랫폼에 맞춰, 주어진 업무를 빠른 시간내에 구현하는 초기 개발자에게도 해당하는 이야기일 수 있다. 회사가 만드는 프로그램의 수명에 따라, 어떤 곳은 단품을 만들면 새로 코드를 만들어야 하고 어떤 곳은 10년이 지나도 동일한 코드 베이스에서 계속해서 기능 개발 및 버그 수정을 해야하는 곳이 있다. 후자의 경우, 시간이 지나면 지날 수록, 또 새로운 기능을 계속 개발하면 개발할 수록, 이전에 급한 일정때문에 기능에만 몰두해 개발한 코드는 부채처럼 나에게 계속 코드 관리의 어려움, 테스트의 어려움, 그리고 여..
googletest가 나온지 상당히 오래됐고, 회사에서 사용한지도 꽤 오래됐다.그래서 집에 있는 Mac 머신에서도 googletest 수행해보려고 해 보면 자꾸 에러가 나서, 간단히 컴파일하는 방법과 관련 CMakeLists.txt 파일을 정리해 둔다. 1. googletest 개발용 header와 library 설치$ git clone https://github.com/google/googletest.git$ cd googletest$ mkdir install$ cd install$ cmake ../$ make$ sudo make install$ export CPLUS_INCLUDE_PATH=/usr/local/include$ export LIBRARY_PATH=/usr/local/lib이렇게 하면, ..
이제는 Javascript가 중요해졌다 라고 이야기하기에는 그렇게 된지 너무 오래되어 진부한 표현인 것 같다. Javascript, CSS, HTML 을 이용하여 웹개발을 하는 것은 너무 당연한 일이 되었고, Frontend를 어떻게 개발하는 것이 효율적인지, Backend를 어떻게 개발하면 효율적인지를 알려주는 친절한 책이 많이 나와 있어, 본인이 익혀야 할 필요가 있는 기술들, 흥미가 있는 기술들을 선택적으로 많이 공부하는 경우가 많다. 그래서 많은 책들을 살펴보면 비슷비슷해 보이기도 한다. 한빛미디어에서 출간된 본 도서는 그러면 어떤 부분이 다른 책들과 차이가 있을까? 라는 생각으로 책을 읽기 시작했다. 지금은 그렇지 않지만, 오픈소스에 관심을 많이 가지지 않던 시절에는 문서가 잘 작성된 오픈소스..
처음에 대학교때라고 생각을 했었는데... 시간이 안 맞네.. 아무래도 오래전 샀던 다른 것과 헷갈린듯하다. 어쨌든 오래전...교보문고에 들렀다가 샀던 음반이 생각나 CD 장에 꽂아두었던 CD를 뒤적이다 그 때 산 CD를 찾았다.보통 대부분의 CD는 RIP해서 Dropbox에 두고, 듣고 싶을 때마다 찾아 듣는데, 왜인지 이유는 모르겠으나, 이 CD는 RIP이 안 되어있었다. 그 때 사서 듣다가, 다른 음반들 이것저것 나오는 것에 치여, 먼지만 쌓여있던 앨범이 Isao sasaki 의 (이 분 이름도 잊어버리고 있었...) 앨범이다.STOMP 뮤직에서 2009년에 발매한 Stars&Waves 라는 앨범인데, 그 때는 그다지 듣기 좋다는 생각이 없었다가, 다음해인가 발매된 Missing you 라는 앨범을 ..
프로그램을 작성하는 일을 하는 사람들이 아주 많은 요즘이다. 대학에서 다양한 내용을 배우고 회사에 취직해서 선배들로부터 업무를 배우고, 그에 맞춰 업무가 진행되는 방식대로 프로그램을 작성해 나간다. 영업과 제품 기획 부서에서 고객의 요구에 맞는 기획을 하고 새로운 프로젝트가 시작되면, 설계 부서에서 그에 맞는 구조 설계를 진행하고 등등.. 많은 부분은 회사에 짜여진 틀에 맞춰 진행이 된다. 이러한 과정 속에 프로그래머는 목표에 맞는 기능을 작성하기 위해, 기능에 맞는 목표, 그에 따른 기능 협의, 기능 설계, 상세 설계, testcast 설계, 코딩, UT, BT 등의 테스트 과정을 처리해 나가며 주어진 업무가 완료될 때까지 진행해 나간다. 이와 같은 업무 과정들이 숙달이 되고, 밀려드는 업무를 처리하는..
선언과 정의의 차이https://banaba.tistory.com/41 선언과 정의(declaration and definition)0. 개요프로그래밍에서 선언(declaration)과 정의(definition)는 명백히 다른 역할을 하지만 혼동하여 사용하기 쉽습니다. 선언과 정의의 가장 큰 차이는 "메모리를 할당하는가" 입니다.메모리를 할당banaba.tistory.com c++ 17 정리 잘되어 있는 사이트https://devhycho1107.tistory.com/53 C++ 17 에서 업데이트 된 기능 정리.이 글은 17년에 표준화 된 C++ 17 의 새로운 기능에 대한 정리한 글 입니다. 1. Class Template argument Deduction ( 클래스 템플릿 인자 추론 ) 기존에는 함..