본문 바로가기

분류 전체보기

내 케릭터 내 케릭터 데비리너스 (Devil In Us) ㅎㅎ 커피숍 엔제리너스 패러디 한거죠. 내 머리의 한계로는 괜찮은 이름.. ㅎㅎ 뭐.. 신컨도 아니고 아직 장비가 좋은것도 아니고 만렙도 아니지만... 틈틈히 게임하면서 이것저것 적겠습니다. 혹 저보다 모르는 분을 위해... 더보기
학원 졸업.. 12일 학원을 졸업했다. 생각지도 못하게 내부 평가에서 1등도 하고... 이자리를 빌어서 팀원들에게 (나는 팀장은 아니였지만..ㅎ) 고맙다. ㅎㅎ 깡뱅, 승환이, 세홍이, 지성이, 규현이, 경덕이 형 모두 수고하셨어요. 근데... 학원이 끝나니 혼란스럽다. 1년전 격었던 그 상황이 그대로 다시 돌아왔다. 단지 바뀐거라고는 내가 나이를 더 먹고.. 그때보다는 쓸모 있어졌다는 거.. ㅎㅎ +- 제로가 될지도 모르겠지만 나 스스로는 + 일 것이라고 생각한다. 여튼... 다시 직면한 취업. 전혀 나아지지 않은 경기.. 어떻게 해야될지 모르는 상황... ㅋㅋ 거기에 곧 이사도 가야되고 어수선하다. ㅎㅎ 낼은 면접도 있는데... 이거 처음 하는거다 보니 어떤거 물어 볼지 어떻게 해야될지... 멍~! 때리고 있는 하.. 더보기
Volatile variable 얼마전에 이것에 대해 아냐고 저에게 물어봤습니다. 물론 몰랐습니다. ㅎㅎㅎ ㅠ.ㅜ 안 써본건 잘 모른다는...; 그래서 공부 시작. 네이버 지식 검색에서 찾은 정보를 종합하면 Volatile variable 는 지역 변수를 선언할 때 레지스터 변수로 선언할 수 있는 경우에도 그렇게 선언하지 않고 반드시 메모리상의 변수로 만들어 처리하는 것입니다. 다시 말하면 변수를 선언하면 메모리에 일정 공간을 차지하게 됩니다. 하지만 메모리에 읽고 쓰는 것은 느리고 CPU의 속도는 빠릅니다. 그 차이로 인해 CPU의 성능을 재대로 활용하지 못하게 됩니다. 그런데 CPU 내부에도 메모리처럼 사용할 수 있는 공간이 조금 존재하고 이것을 register 라고 합니다. 즉 많이 사용되는 변수는 이곳에 저장하면 속도가 더 빨라.. 더보기
Const (함수) 이번에는 함수와 함께 const 키워드를 쓰는 것을 알아 보겠습니다. 역시 3 개의 경우의 수가 있습니다. 함수 뒤에 const, 매개변수 앞에 const, 리턴 형 앞에 const 1. const 멤버 함수(함수 뒤) void ConstTest::Test() const 의 경우가 되겠습니다. 이 경우 이 함수를 통해서 멤버 변수의 값이 변경되는 것이 허용되지 않는다는 것입니다. 아래 그림에서는 int a 가 ConstTest의 멤버 변수 이므로, ConstTest::Test() 로 a = 10은 허용되지 않습니다. 2. 매개변수 앞 void ConstTest::Test2( const int b ) 입니다. 매개변수(인자)가 상수화 되는 것입니다. b = 10 은 에러입니다. 3. 리턴 형 앞 const.. 더보기
Const (포인터) 면접 준비를 하면서 자주 받는 질문이여서 한번 정리를 해볼까 합니다. 변수에 관련된 경우의 수는 3가지가 있습니다. 포인터가 가리키는 변수의 상수화, 포인터의 상수화, 둘 다 상수화 로 const 키워드의 사용된 위치를 보면 쉽게 알 수 있습니다. 1. 포인터가 가리키는 변수의 상수화 ( const int* p = &a ) 포인터 p가 가르키는 변수를 상수화 하겠다 는 것입니다. 하지만 포인터 p를 통해서 변수 a의 값을 변경하는 것만 막는 것이지, 포인트 p가 가리키는 변수를 상수화 한다는 것은 아닙니다. 2. 포인터의 상수화 포인터 p를 상수화 한다는 것입니다. 즉, 포인터 p가 지니는 주소 값을 변경할 수 없다 는 것 입니다. 대신 포인터 p가 가르키는 변수의 값은 변경할 수 있다 는 것 있습니다... 더보기
자신의 IP 가져오기 서버를 하다가 보면 가끔 자기 자신의 IP가 필요할 때가 있습니다. 여러가지 방법이 있겠지만... 주로 getsockname() 또는 gethostname()과 gethostbyname()을 사용한 2가지 방법으로 사용하더군요. 저는 이호성 님의 블로그(astromaker.egloos.com) 에서 본 글(http://astromaker.egloos.com/tb/81576) 을 참고하여 사용했습니다. 이호성 님이 말씀하셨듯이 이렇게 사용하려면 우선은 bind를 해야됩니다. 제가 적은 소스에는 바인드 부분도 포함하였습니다.( 제가 까먹을까봐... ^^;) WSADATA wsaData; SOCKET tempSocket; struct sockaddr_in temp_addr; if( ::WSAStartup( M.. 더보기