본문 바로가기

호타루의 빛 ( 스포 포함) 건어물녀에서 벗어나 사랑에 빠진 아메미야... 같이 살게 된 아메미야랑 테시마군 더보기
장기하 「싸구려 커피」 붕가붕가레코드 '수공업소형음반' 시리즈 No.9 장기하 「싸구려 커피」 한국 대중 음악의 오래된 미래! 어렸을 적 소년 장기하는 라디오에서 흘러나오는 배철수 아저씨의 목소리를 들으며 "이 사람은 말하는 게 참 음악처럼 들리는구나"라고 생각했다. 그러다 나이를 먹은 청년 장기하, 어느새 자신도 음악처럼 말하고 있음을 깨닫게 되었다. 그래서 노래를 하기로 마음을 먹은 그는 "역시 가수는 외모가 중요하지"라 생각하여 그렇게 얼굴이 괜찮은 음악인들을 수소문하던 중 운 좋게도 실력마저 출중한 정중엽(베이스/코러스), 이민기(기타/코러스), 김현호(드럼/퍼커션/코러스)를 만나 '장기하와 얼굴들'을 결성하게 되었다. 그리고 우연하게 찾은 댄스홀에서 똑같은 복장으로 무표정하게 춤을 추고 있는 이름 모를 두 여인을 만나.. 더보기
effective cpp 22. 값에 의한 호출보다는 레퍼런스에 의한 호출을 선호한다. 두개의 클래스가 있다고 보고 class Person { public: Person() { TRACE("Pserson 생성자\r\n"); }; ~Person() { TRACE("Pserson 소멸자\r\n"); }; }; class Student : public Person { public: Student() { TRACE("%p : student 생성자\r\n", this); }; Student(Student& a) { TRACE("%p : 복사생성자\r\n", this); }; ~Student() { TRACE("%p : student 소멸자\r\n", this); }; }; // 함수 Student returnStudent(Student .. 더보기
Const 변수 - cpp const 란! const는 변수의 선언 앞에 붙어서 변수를 상수화 한다. 1. const가 변수 앞에 붙었을 때 const double PI = 3.14; // 이후 PI 에 대한 값은 변경 불가능! PI = 2.3 ;// Error! 2. const 가 포인터 자료형 앞에 붙었을 때 int gorp = 16; int chips = 12; const int* p_snack = &gorp; *p_snack = 20; /// int gorp = 16; int chips = 12; int* const.. 더보기
Effective C++ 효율! 항목 17. 효율 향상에 있어 지연평가는 충분히 고려해볼만하다! 1.참조 카운팅 class String{....} String s1 = "Hellow"; String s2 = s1; ->String의 복사생성자가 보통의 상식대로 만들어졌다면. s2는 s1으로 초기화된 이후에 s1과 s2가 "Hellow" 의 사본이 동시에 가지고 있게 된다. 이때, s2 와 s1이 동일한 값을 갖기 위해 new/strcpy이 수행되어야 하므로 실행비용이 만만찮게 든다. 하지만 지금까지는 s2의 존재이유가 없다(s1이 존재하기 때문에) 그렇기 때문에 존재이유가 없는 s2를 (결국 필요로 할때까지) 복사생성자 따위를 사용하여 복사해놓지 않는다. 만약, s1 스트링과 s2 스트링을 print 해야 하는 경우 굳이 s3 = s1.. 더보기
Class에서 static 변수의 쓰임 /* PersonalCount3.cpp */ #include using std:cout; using std:endl; Class person { char name[20]; int age; static int count; public: person(char* _name,int _age) { strcpy(name,_name); age = age; cout 더보기
More Effective CPP! 항목 1. 포인터(pointer)와 참조자(reference)를 구분하자. 가장 쉽게 볼수 있는 차이점은 연산자의 차이다. 포인터의 경우 *과 ->을 쓰고 참조는 .을 쓴다. 개념상의 차이점은 포인터의 경우 null을 가르킬수 있고 참조의 경우 null을 가르키는 것은 참조라 볼수 없다. 이 때문에 참조는 개념상 null을 검사할 필요가 없어 유용하다. C 언어에는 참조의 개념은 생략되었는데 C++에 들어오면서 클래스가 생기면서 명확한 개념으로 자리 잡힌듯 하다. 항목 2. 가능한 C++ 스타일의 캐스트를 즐겨 쓰자. 단순한 C 스타일의 캐스트인 괄호()는 너무나도 범용적인 의미를 지녀서 해석상 오류가 생기기 쉽다. 더욱이 C++로 넘어오면서 클래스와 상속으로 인해 의미를 식별하기 힘든 경우도 생길수 있.. 더보기
스마트 포인터 - CPP 스마트 포인터란? 흠... 이번 시간엔 꽤나 영특한 녀석을 소개하고자 한다. 바로 '스마트 포인터' 란 놈인데 게으르고 주위 깊지 못한 본인과 같은 프로그래머 들에겐 한 줄기 단비와 같은 존재가 아닐수 없다. * 첨부된 예제에서 사용된 스마트 포인터는 boost 라이브러리에 속한 Shared Pointer( shared_ptr ) 란 놈이다. 따라서 이놈을 사용하려면 미리 라이브러리를 설치 해야 하는데 이곳에서 알아보도록 ( http://www.boost.org ) 동적 할당의 그림자 C++ 과 같은 객체 지향 언어에서 객체를 동적 할당을 이용해 생성하는 것은 아주 자연스러운 일이고 그 만큼 비일 비재하게 발생하게 된다. 그러나 모든 일에는 책임이 따르는 법, 똥을 쌌으면 누군가는 치워야하는 것이다. 즉.. 더보기
파견의 품격10 3개월의 계약이 얼마 안남은 어느날... 내가 이렇게나 만류하는데 계약 갱신은 거부하는 건 어째서인가? 첫째 3개월 이상 일하면 제 능력이 너무나도 뛰어나서 사원들과 격차가 벌어집니다. 둘 사원이 제게 너무 의지해서 더욱 더 쓸모없어집니다 셋 이런 질문을 받는 것 자체가 쓸데없는 참견입니다 머야 저여자 열라 짜증나! 앞으로 3주간 시급만큼은 제대로 일해드리겠습니다 휘릭 가지 말아주세요 이대로 저희와 함께 일해주세요 제게는 당신이... 필요해요 98개사... 제가 여태까지 파견으로 갔던 회사들의 수 입니다 98사째에 그런 얘기를 해주는 상사를 저는 처음으로 만났습니다... 너무 무른 점을 제외하면 사토나카 주임은 훌륭한 상사입니다 하지만 전 3개월에 사라집니다 제가 파견으로 살아가기 위한 제 룰이기 때문입.. 더보기
DRM PC에 가지고 있는 데이터는 복사가 손쉽게 이루어진다.복사된 데이터는 P2P 프로그램이나 웹하드 디스크를 통해 널리 유포 된다.이렇게 저작권이 있는 Content, data의 무단 복제를 막기 위해 발표한 것이 DRM이 되시겠다.자 DRM이란 무었인가?Digital Rights Management의 약자로, 사전적의미는 "디지털 권리 관리(?)"이다.OMA에서 이 DRM을 Mobile 환경에 맞게 표준화 하여 OMA DRM 1.0을 발표했다.OMA DRM 1.0OMA DRM 1.0은 아래와 같이 각 Level로 나뉜다. Level은 선택사항라서 하나를 선택하면 되는 것이다.Forward LockCombined DeliverySeparated DeliveryForward Lock(이하 FL)FL은 Head.. 더보기