본문 바로가기

기타

(22)
Warning 무시하지 맙시다. 많은 프로그래머들이 컴파일러가 내는 경고(Warning)를 무시하고는 합니다. 가장 큰 이유는 경고가 있더라도 바이너리를 만들 수 있기 때문이겠지요. 또 나중에 고치지 하면서 미루다 보니, 프로젝트가 커지면서 점점 더 경고들이 많아 지기 시작하고, 나중에는 주루룩 쏟아 지는 경고들을 아예 보지도 않게 됩니다. 하지만 컴파일러 경고를 무조건 무시하면 안됩니다. 프로그래머들이 디버깅을 할 때 가장 어려운 케이스가 디버깅 툴이 전혀 힌트를 주지 않는 경우 입니다. 컴파일러 경고는 거저로 컴퓨터가 알려주는 디버깅 힌트입니다. 또한 경고를 잡다 보면, 마음가짐 때문이라도 전체적인 버그 발생 빈도가 줄어듭니다. 컴파일러 경고 우리가 주로 접하는 컴파일러 경고들은 다음과 같습니다. unreferenced local ..
프로그래머를 위한 현대 시조 몇편 (재밌어요~) (주)이피파루스의 대표이사님께서 지은 시인데, 너무 재미있어서 받아왔습니다~ [원본 게시물 링크입니다] 예전 현역으로 활동할 때 소스 코드에 가끔씩 시조를 지어서 (정확히는 패러디 ㅎㅎ) 집어 넣고는 했었습니다. 간만에 기억이 나서 몇개를 올려 봅니다. 현장감을 살리기 위해 /* */ 는 그대로 놓아 둡니다. /* 하여가(何如歌) 이리쨘덜 엇더하며 져리쨘덜 엇더하리 윈도우 소스코드 얼거진들 긔 엇더하리 우리도 이같이 얼거져 데드라인 지키리라. */ /* 단심가(丹心歌) 코드를 고쳐고쳐 일백 번(一百番) 뜻어 고쳐 밤낫을 작업하야 넉시라도 잇고 업고 완벽한 코드 향한 마음 가실 줄이 이시랴. */ /* 딴따라 코더들아 딴따라 코더들아 수이짬을 자랑마라 버그창궐하면 다시 짜기 어려오니 책한권 다시 읽고 배워..
영국 입국시에 자주 물어보는 질문 방문목적 ? 영어공부하러 왔다고 하면 됩니다. 영어가 왜 필요한지 ? 본인의 전공이나 직업과 연관지어 말해야 합니다 그냥 배우고 싶다면 문제가 될 수도 있습니다. 얼마나 있을 것인지? 비자 기간만 말씀하시면 됩니다. 연장을 생각하고 있어도 이것을 말할 필요는 없어요 돈은 얼마나 있는가? 현금이나 신용카드를 소지히면 좋고 만약 돈을 별로 안가지고 간다면 매달 부모님이 얼마씩 송금하신다고 하세요 한국에서 영어공부했는가? 했다고 하세요. 안했다고 하면 한국에서 공부먼저 하고 오라고 합니다. 아버님 직업 ? 직업이 있어야 합니다. 대충 둘러대도 상관없습니다~ 없다고만 하지마세요 한국에서의 본인 직업 ? 학생 또는 직장인이면 직장을 말해주세요 왜 영국에서 영어를 배우려고 하는가 ? 영국이 영어의 본고장이고 선진문..
영국 어학연수를 위해서 준비해야 할 모든 것 어학연수를 막상 가려고 하니 무엇부터 어떻게 시작해야 할 지 정말 궁금하시죠? 어학연수를 가기 위해서는 잘 알려진 유학원을 통해서 등록하는 것이 좋습니다. 혼자서 준비해 보겠다고 고생고생하다가 비자를 거절당하는 등의 시행착오를 겪을 필요는 없다고 생각합니다. 유학원은 학교나 학원 등록시에 등록금의 일정 비율을 수당으로 받아서 그돈으로 운영되는 것이기 때문에 추가 비용이 들어간다는 걱정은 하지 않으셔도 됩니다. 하지만 인터넷으로만 검색해서는 어느 곳이 유명한 곳인지, 믿을만한 곳인지 도저히 알 수가 없겠더군요. 저의 경우는 일단 네이버에 첫페이지에 랭크된 곳들의 약도를 획득해서 몇군데를 다녀봤습니다. 그러다가 강남역출구쪽에 바로 위치하고있는 영국유학전문유학원이 있는 것을 발견했습니다. 유학원의 이름은 말하..
[WinAPI] C언어를 이용한 Recursion - Fractal Tree(프렉탈 tree) 주의할점 : 프로젝트 생성시 New - Project - Win32 Application 으로 생성해야합니다. Win32 Consol Application으로 할 경우 링크애러(아래 글 참조)를 맞이할 수 있습니다; 프로젝트 생성후 새파일을 하고 아래 소스를 넣고 cpp로 파일을 저장합니다. 소스 : #include #include const double pi = 3.14159265358979; void drawLineAngle(HDC hdc, int posX, int posY, double firstAngle, double firstLineLength); // draw line with hdc, start position, Line Direct(Angle) and Line Length void draw..
VC 애러! (crt0.obj) LNK2001: unresolved external symbol _main를 잡아보자. LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/FILENAME.exe : fatal error LNK1120: 1 unresolved externals 컴파일은 잘 넘어 가는데 링크에서 자꾸 이런 에러가 나는 경험 많이 해보셨죠? 일단 이 애러는 main() 함수를 찾을 수 없다는 링크 에러입니다. API를 처음 사용할 때 원인을 알 수 없는 이 애러때문에 고생을 많이 하는데요. 대체로 WinMain()를 쓰고 Win32 Console Application 으로 프로젝트를 생성한 경우가 많습니다. 반대로 Win32 Application 프로젝트에서 main() 을 쓰면 WinMain() 을 찾을 수 없다는 오류가 뜨..
STL 컨테이너들의 특징 및 비교 4.2 컨테이너 선택하기 다음 질문들은 특정 문제를 풀고자 할 때 어떤 종류의 컨테이너를 선택하는 것이 좋은가에 관한 몇가지 선택 기준을 제시하고 있다. 콜렉션내의 값들을 어떤 방식으로 접근하는가? 임의접근이 필요하다면, vector와 deque를 사용하라. 순차접근만으로 충분하다면, 다른 컨테이너를 써도 무방하다. 콜렉션내의 값들에 순서를 매길 것인가? 값들이 나열되는 방식에는 여러가지가 있다. 컨테이너가 유지되는 동안 계속 순서가 유지되어야 한다면, set을 선택해야 한다. set에 삽입을 하면 자동적으로 순서에 맞게 놓여진다. 반면에, 순서가 어느 한시점에서만 중요시된다면, list나 vector에 값들을 삽입하고, 적절한 때에 해당 컨테이너를 정렬을 하는 것이 더 수월하다. 만약에 데이터구조 내에..
[C++] 견고한 프로그래밍의 기법 assert()함수 assert()함수는 보통 함수 안에서 인자를 받았을 때 그 인자의 값이 정상적으로 들어왔는지 일차적으로 검사하는 역할을 한다. 이것으로 예기치 않은 값이 들어 왔을 때 오류를 띄워서 오류를 확인할 수 있으므로 보다 더 견고한 프로그래밍을 할 수 있다. assert()함수를 많이 사용할 수록 견고하고 완벽한 프로그래밍을 할 수 있다고 하니 많이 사용하도록 하자~ 사용하려면 #include - c++ #include - c 라이브러리를 인클루드 해야한다. 사용법은 function (int a) { assert( a > 0); ... } 와 같이 간단한 형식으로 사용할 수 있다. 만약 assert()안의 구문이 거짓이면 오류를 띄운다.