MSVC C++ 전처리만 수행하기

C++ 레딧에 테스트코드 라이브러리중에 ddoctest가 있다구 해서 한번 사용해보았다. 해당 깃 링크는 https://github.com/onqtam/doctest 이다. 예제 코드는 다음과 같다 하지만 막상 TEST_CAST랑 CHECK의 구현부를 확인할려고하면….. 다음과 같은 코드를 볼수있다. 매크로의 최대의 단점중 하나인데 이는 컴파일 옵션을 주어서 어느정도 해결할수 있다. 바로 /p옵션인데 자세한것은 다음의 링크를 참조해주자. https://docs.microsoft.com/ko-kr/cpp/build/reference/p-preprocess-to-a-file?view=vs-2019 여튼 이옵션을 주고 컴파일하게되면 더보기…

v8 엔진 컴파일러

이글은 http://jayconrod.com/posts/51/a-tour-of-v8–full-compiler 해당 글을 번역한 포스트입니다. 적어도 2010년부터 5년간 자바스크립트는 JIT 컴파일러로 변화자마자 성능이 비약적으로 상승했여 웹에 전형적으로 사용하게 되었다. 그 결과 자바스크립트는 HTML5를 이끌고 있게 되었다. V8엔진은 자바스크립트를 네거티브한 코드로 실행한다. 이를 이용한것이 구글 크롬,node js이다. V8엔진은 정말 흥미롭지만 아쉽게 문서가 많이 없어 제작하게 되었다. 해당 내용은 가상머신이나 컴파일러에게 더보기…

HTTP 데이터 전송방식에 따른 네트워크 패킷

웹개발을 하다보니 POST에 Content-Type에 따라 어떻게 데이터를 보내는지 알고싶어 정리한글입니다. HTTP에서는 크게 바디와 헤더 ,URL파라메타를 쓰므로 크게 나우어 GET/POST 만 있어 이것만 진행했습니다. 테스트는 POSTMAN가 피들러를 이용하였습니다. 보통 GET을 아래와 같은 패킷으로 날린다. HTTP에서의 가장 큰 특징이 있다면 아래와 같이 한글을 파라메타를 넘길경우 퍼센트 인코딩을 실시한다.( https://ko.wikipedia.org/wiki/%ED%8D%BC%EC%84%BC%ED%8A%B8_%EC%9D%B8%EC%BD%94%EB%94%A9 ) 구현방법은 생각보다 더보기…

[책] 밑바닥 부터 시작하는 딥러닝 2

이책은 한빛미디어의 제공을 받아 적은 리뷰입니다. 일단 이책의 중반까지만 봐서 전체적인 평가를 못하겠다구 말씀드리겠습니다. 그래서 지금까지 느낀점에대해서만 적겠습니다. 이책의 내용은 자연어처리를 중점으로 설명합니다. 주로 word2vec을 따라 만드는 식입니다. 1편같은 경우는 강화학습을 따라 만들다고 보면되고 이편은 word2vec과 RNN부분을 집중적으로 밑바닥으로 만든다고 보시면됩니다. 책 초반에는 1편의 내용을 간단히 요약을 하고 그담 챕터부터 더보기…

C# Entity Framework(EF) Mysql 간단 사용하기

대부분의 언어에서는 각자에 대표적인 ORM이 있는데 C#에서는 일명 EF에서 만든 공식 ORM이 있다. 간단하게 콘솔 프로젝트을 NET Framework 4.6.1 이상만든다. 먼저 해야할일은 EF SDK를 받아야 하므로 아래와 같이 콘솔 매니저를 클릭해준다. 그러면 nuget을 콘솔로 받을수 있는 명령어 창이 출력이 되게 된다. 여기서 Nuget의 다운로드 패키지를 명령어로 받을수 있는데 아래와 같이 더보기…

Eage Chromium 설치와 간단 리뷰

최근 Windows은 자체 렌더링엔진을 포기하고 Chromium 렌더링 엔진을 채용하였고 이를 프리뷰 할수 있도록 제공하다. https://www.microsoftedgeinsider.com/en-us/ 해당 버전은 위 링크에서 받을수 있다. Download를 클릭하고 설치를 하게되면 다음과 같은 화면 출력되고 Install하는걸 확인할수 있다. 아직 프리뷰라 아이콘조차도 특이하다. 일단 별차이는 없지만… 유저입장에서 큰 차이점 이라면 램을 많이쓰고 PIP를 지원한다는 점 정도말구 없다. 더보기…

DynamoDB 후기

DynamoDB을 사용하여 간단한 TODO를 만들면서 느낀점을 정리한 글 입니다. 결론을 말하자면 반쪽짜리 DB이다. 하지만 어떻게 최고의 성능을 보장하는 DB라고 생각한다. 그 이유는 DB의 가장 중요한 실행계획이 없다. 보통 mongoDB,Mysql,mariadb에서는 아래와 같은 작업을 실행해 어떻게 쿼리를 실행해야 빠를지 결정을 한다. 하지만 Dynamodb는 실행계획을 전적으로 프로그래머한테 책임을 묻는다. 흔히 DB라고 하는거는 실행계획이 더보기…

[2993] 탑

https://www.acmicpc.net/problem/2493 맨첨에 좀 어려워서 해맨거같은데 다음과 같은 방식으로 풀면된다. 타워를 하나씩 스택에 집어넣으면서 가능성이 없는애들을 제거해주면 바로 스택에 남아 있는 애가 수신하고 있는 애가 된다. 만약에 스택에 데이터가 없으면 그냥 0으로 대입하면된다.

javascript ES6 정리

해당 글은 http://es6-features.org/#ExpressionBodies 에서 제가 자주사용하는것들을 정리한거입니다. Arrow 기존은 위와 같이 function을 정의 해야하지만 이제는 C#의 람다와 비슷하게 다음과 같이 정의할수 있습니다. 덕분에 foreach나 reduce함수를 다음과 같이 선언할수 있게 되었습니다. Extended Parameter Handling 다른언어에서는 매우 매우 정상이여야할 default인자가 들어갔으며 Spread Operator이라는 문법이 추가되어 가변인자를 손쉽게 받을수 있게 되었습니다. 확인해본결과 해당 더보기…