- solidity
- 프런트엔드
- Java
- postman
- postman collection variables
- postman csv
- 우수한 프런트 개발자
- postman excel
- MFC
- emplace_back
- oracle
- postman session
- web developer
- 다빈치 리졸브
- Intellij
- postman tests
- Unity
- Interaction developer
- UI/UX Engineer
- C++
- 좋은 개발자
- c#
- postman html parse
- postman collection
- Android/iOS Developer
- LSL_Script
- Android
- Front-end developer
- postman automations
- postman pre-request
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Today
- Total
목록전체 글 (174)
david's daily developer note
VC 11 이상, Visual Studio 2015 이상 버전에서 Magic Static이 적용되었다. 항상 골치아픈 동시성(Concurrency) 이슈와 관련된 내용이다. https://docs.microsoft.com/en-us/previous-versions/hh567368(v=vs.140) lock과 TLS(Thread Local Storage) 개념을 사용하여 정적 싱글톤 변수 생성을 Thread-Safe하도록 표준에 추가한 것이다. 기존 코드와 Magic Static을 적용한 코드에 대한 예제는 아래 문서에서 확인하자. Support For C++11-14-17 Features (Modern C++) Table of contents Support For C++11/14/17 Features (..
__func__ 컴파일러에 의해 미리 정의해둔 변수이며, 함수의 이름을 문자열 리터럴로 표현하고 식별가능하다. C 표준 1999개정판에서 도입되었으며, Visual Studio 2015 이상 지원한다.C++ Logger 개발에 유용할 듯하다. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm
코드 작성 기계인 소위 개발자들은 코드 작성 과정에서 비슷한 코드 블록을 반복적으로 작성하는 상황이 빈번하다. 이는 매우 피곤하다. 가끔 키보드를 난타하는 즐거움이 있지만, 단순 반복이다 보니, 생각하는 지적인 기계인 우리에게는 이 상황은 거의 피곤할뿐이다.. 반복적인 코드 블록은 For, While 루프라던지, Switch, If등의 분기 조건이 일반적이다. 최근의 팀원들과 코딩 컨벤션 규칙을 만들고자 "좋은 코드 프로젝트"라는 것을 시작했다. 구글의 C++ 스타일 가이드와 몇몇 서적들을 보면서 룰을 만들고 있다. (https://google.github.io/styleguide/cppguide.html) 그러나,,, 안타깝게도 PM의 엄청난 잔소리가 없다면 동료들이 실천하지 않는다는 것도 알고 있다...
Visual Studio (*.natvis) 파일을 활용하여 Watch 표현을 입맛대로 수정할 수 있다. Simple Example을 통하여 *.natvis를 활용방법을 간력하게 살펴보자(VS 2012).먼저 다음의 샘플 코드를 보자struct natvis { int m_test; };class class_A { public: class_A (natvis* pData) { m_pData = pData; } natvis* m_pData; };class class_B { public: class_B (const natvis& data) { m_tData.m_test = data.m_test; } natvis m_tData; };void natvis_test() { natvis struct_1; struct_..
새로운 버전의 SDK에서 APC를 조작할 수 있는 인터페이스가 추가되어 간략하게 개념 정리를 해보려한다.APC는 Asynchronous Procedure Call의 약자이다. 함수를 직접 호출하는(synchronous) 방식과 다르게 특정 시점에 불리는 Callback과 같다. APC는 스레드의 특정상태에서 불리는 Callback을 등록하며, 등록 대상이된 스레드가 호출하는 것을 보장한다.스레드 호출 보장은 어떻게 가능할까? 윈도우 스레드는 개별적으로 APC Queue를 가지고 있기 때문에, 구분하여 적재 가능하다. APC Queue 적재는 아래 API를 사용한다. (인자는 순서대로 CALLBACK 함수, 스레드핸들, 파라메터이다.)WINBASEAPIDWORD WINAPI QueueUserAPC( _In..
copy constructor 이전의 글에서 이동생성자 (move constructor)를 설명하면서 잠시 언급했었다. C++11부터 복사 할당 및 이동 할당이 지원되는데, 이동생성자의 개념 설명과 이동생성자가 있을때, 복사생성자가 불리지 않는다는 등의 설명이었다. 이 글에서는 복사생성자에 대한 이야기를 하려한다. 복사생성자의 원형은 다음과 같다. class test_copy{ test_copy(const test_copy& rhs){ .... } }; 복사생성자는 같은 형태의 객체를 인자로 전달하는 시점에 호출된다. 1. 대입연산자 혹은 생성자의 인자로 전달하여 새로운 객체 초기화할 때 2. 함수 호출할 때, 인자로 넘기거나 반환하는 경우 (call by value) 클래스 구현에 복사생성자를 구현하지..
line Intersect컴퓨터 응용에서 기하학적인 문제를 해결하기 위해서는 연산의 단순화 과정이 중요하다. 기하적인 알고리즘들의 해결에서 직선 교차는 단순화를 위해서 제법 많이 사용된다.실제 CAD 응용프로그램에서도 직선으로 표현하고 처리하는 비중이 크다.이 글에서는 직선의 교차판단에 과정을 순서대로 설명한다(응용에 따라서 중간 과정이 필요없을 수도 있다). 1. Filter Box Intersect두 개의 직선의 교차를 알기 위해서, 가장 먼저해야할 일은,Box 교차를 판단하는 것이다. Box 는 직선의 두 점으로 구성되는 MBR이다.Box 교차를 먼저 파악하는 이유는 교차하지 않는 두 직선을 빠르게 필터하기 위함이다.이는 직선이 아니라, 곡선일 경우에는 더 효과적이겠다.단순히 하나의 MBR 최소점보..
memory fragmentation - struct packing 메모리 단편화(memory fragmentation)에 관한 글을 일전에 작성했다. 이전 글에서 내부단편화의 문제를 간략하게 언급하였는데, 이 글에서는 내부단편화를 만드는 패딩비트에 대해서 알아보자. 우선 구조체 패킹을 이해하고자 다음의 예를 보려고 한다. struct pack_1 { char c1; // 1byte char c2; // 1byte }; struct pack_2 { char c1; // 1byte double d1; // 8byte }; 두 구조체의 크기는 각 2 byte, 16 byte이다. 2번 구조체의 크기가 16 byte가 나온 이유를 간단히 설명하면, 구조체의 Primitive 멤버는 패킹 크기 내에서 자신의 크..
memory fragmentation 메모리 단편화와 관련한 이야기를 해볼까 한다.. 우리는 우리의 프로그램을 사용하는 사람들의 PC가 슈퍼컴퓨터가 아닌 것을 알고 있다. 그렇지만, 우리는 메모리를 효율적으로 사용하기 위해서 얼마나 고민하고 있을까? 나는 될 수 있다면 new 키워드를 사용하지 않으려고 노력한다. Native 개발자가 Low 레벨 메모리 접근을 꺼리는 이유는 여러 가지다. 나의 경우는 멀티스레드, 멀티코어 환경에서 안전성을 보장받지 못한다는 점과(그건 뭐.. 대부분 그렇긴 한데..) 경험상 메모리 할당의 남발이 메모리 단편화의 문제를 만들고, 결국 성능을 저하하는 원인이 될 수 있기 때문이다. 메모리 생명주기를 알 수 없는 런타임 메모리 할당이 스택 될 수 없고, 필연적으로 단편화가 발생..