목록Categories (1099)
KoreanFoodie's Study
밀치며 나아간다. 성의 없는 사과를 건내며 등산복 입은 아주머니의 가방을 툭 친다. 환승이 다 같은 환승이 아닌가보다. 빠른 환승, 빠른 출구. 조금이라도 더 빨리 가기 위해서, 무례함을 매일 연습하는 사람들. 무료한 표정으로 몇 초 남짓한 시간을 아끼려는 평범한 사람들. 한가함에 괴로워하면서도 뒤쳐지는 것을 견디지못하는 사람들. 내일도, 그 다음날도 무질서한 행렬을 만들 사람들. 빠른 출구는 오늘도 문전성시를 이루고 있다.
어느 순간부터 새로운 취미가 생겼다. 어둑한 스탠드 불에 의존해 눈을 감고 아무 생각 없이 노래를 듣는 것. 신나는 노래여서도 안된다. 무조건 감성에 푹 빠질 수 있어야만 해. 그러니 오늘도 원슈타인 플레이리스트를 틀어놓아볼까. 푹 빠지고 싶으니까. 영화 속 등장인물이 된다면. 아무 생각 없이 주어진 각본대로 움직이는 마네킹이 될 수 있다면. 그래서 난 영화가 좋아지고 있다. 흠뻑 젖고 싶으니까. 슬픈 이별 노래든, 달콤한 사랑 노래든. 아니면 감성 넘치는 힙한 음악이든. 주인공이 아니어도 괜찮다. 그냥 마리오네트가 되는 것으로도 충분하니까.
일기로 쓰려던 토막글조차, 멋들어진 에세이로 변모시키려는 욕심으로 오염되어 가고 있다. 일기에 왜 퇴고 따위를 해야 해. 그냥 내뱉으면 되는 것을. 일기를 쓰는데 왜 그리 머리를 싸매야 해. 그냥 있는 그대로. 받아적기만 하면 되잖아. 또또, 점점 길어지고 있는 글을. 봐봐, 라임까지 맞추려는 어설픈 시도를. 나의 욕심. 끝없는 인간의 욕심. 나만이 볼 일기마저 니스칠을 하게 만드는 덧없는 허영이여.
아버지는 나에게 이르셨다. 불의를 보면 꾹 참고 지나가라고. 잠깐만. 나에게 가정교육의 중요성을 설파한다거나, 내 아버지의 인간성을 속단하지는 않았으면 좋겠다. 한국말은 끝까지 들어볼 필요가 있는 법이다. 그러니 마지막의 마지막까지 잠시만 호흡을 가다듬어 보자. 누군가가 나에게 제일 존경하는 사람이 누구냐고 묻는다면, 나는 작년에도, 5년 전에도 그랬듯 아버지를 언급할 것이다. 왜 아버지를 제일 존경하는 인물로 꼽냐고? 당연하게도, 아버지가 세상에서 제일 멋있는 사람이기에, 능력이 정말 출중하시기에... 같은 피상적인 조건 때문은 아닐 것이다. 다만, 나에게 있어 너무나 고마우신 분이기 때문에. 나에게 좋으신 분이기 때문에 그렇게 이야기할 수밖에 없는게 아닐까. 반면 한 번도 만나본 적 없는, 어쩌면 주..
모두의 코드를 참고하여 핵심 내용을 간추리고 있습니다. 자세한 내용은 모두의 코드의 씹어먹는 C++ 강좌를 참고해 주세요! C++ 스타일의 캐스팅 기존의 C 언어에서는 컴파일러가 알아서 캐스팅하는 암시적(implicit) 캐스팅과, 프로그래머가 직접 캐스팅하라고 지정하는 명시적(explicit) 캐스팅이 있었다. 하지만 C++에서는 다음과 같은 4가지의 캐스팅을 제공하고 있다. 1. static_cast : 우리가 흔히 생각하는, 언어적 차원에서 지원하는 일반적인 타입 변환 2. const_cast : 객체의 상수성(const)를 없애는 타입 변환. 쉽게 말해 const int가 int로 바뀐다. 3. dynamic_cast : 파생 클래스 사이에서의 다운캐스팅 4. reinterpret_cast : 위..
모두의 코드를 참고하여 핵심 내용을 간추리고 있습니다. 자세한 내용은 모두의 코드의 씹어먹는 C++ 강좌를 참고해 주세요! friend 키워드 클래스 내부에서 다른 클래스나 함수들을 friend로 정의할 수 있는데, friend로 정의된 클래스나 함수들은 원래 클래스의 private로 정의된 변수나 함수들에 접근할 수 있다. class A { private: void DoSth() {}; int a; friend class B; friend void func(); } class B { public: void b() { A a; a.DoSth(); a.a = 1; } } void func() { A aa; aa.a= 2; a.DoSth(); } 위에서 friend로 지정된 클래스 B와 함수 func( )는..
모두의 코드를 참고하여 핵심 내용을 간추리고 있습니다. 자세한 내용은 모두의 코드의 씹어먹는 C++ 강좌를 참고해 주세요! MyString의 '==' 연산자 오버로딩 이미 MyString class에서 compare함수를 만들었다면, 연산자 오버로딩은 간단히 구현할 수 있다. bool MyString::operator==(const MyString& str) { return !compare(str); } 대입 연산자 함수 복소수를 구현한 Complex 클래스에서 '=' 연산자 함수를 구현한다고 해 보자. Complex& Complex::operator=(const Complex& c) { real = c.real; img = c.img; return *this; } 왜 참조자(Complex &)로 값을 ..
모두의 코드를 참고하여 핵심 내용을 간추리고 있습니다. 자세한 내용은 모두의 코드의 씹어먹는 C++ 강좌를 참고해 주세요! explicit 키워드 explicit 키워드는, 간단히 말해 암시적 형 변환을 허용하지 않을 때 붙여주는 키워드이다. 예를 들어, 이전에 만들었던 MyString 클래스에 다음과 같은 생성자와 함수를 추가한다고 가정해 보자. MyString::MyString(int capacity) { string_length = 0; string_content = new char[capacity]; memory_capacity = capacity; } void MyString::DoSomething(MyString s) {}; 만약, explicit이 없다면, 다음과 같은 호출은 정상적으로 작동..
들어봐. 내가 노래를 들으며 에스컬레이터를 천천히 내려가고 있었는데 말야. 내려가다 보니 스쳐 지나치는 사람들도 역시 나와 같은 에어팟 프로를 갖고 있더라고. 근데 그 중 한 분이 에어팟 프로를 떨어뜨린거야. 케이스를 닫다가. 어쩌긴 어째, 친절함이 모토인 내가 못 본척 할 수 없었지. 그래서 마치 카드 마술을 하듯 과장된 손짓으로 튕겨 나가는 에어 팟을 하나, 둘 집어 그분에게 건내주었어. 깜짝 놀라 청설모처럼 눈을 똥그랗게 뜬 그분은 에어팟 한쪽을 어색하게 들고 있었지. 마침 나는 에어팟을 끼고 있었기에, 왼쪽 콩나물을 잠시 빼어들고 그분의 에어팟에 가볍게 부딪혔어. Cheers. 에어팟 건배와 함께 나는 나지막이 그런 문구를 내뱉고 유유히 그 자리를 빠져나왔어. 아마 모르긴 몰라도, 그 분에게는 평..
모두의 코드를 참고하여 핵심 내용을 간추리고 있습니다. 자세한 내용은 모두의 코드의 씹어먹는 C++ 강좌를 참고해 주세요! 문자열 클래스 기존 C언어에서는 문자열의 마지막에 널 값('\0')을 삽입했다. C++에서는 표준 라이브러리로 string 클래스를 제공하고 있으므로, char* 대신 string을 사용하자! 직접 String Class를 만들어 보는 것은 좋은 연습이 된다. 필요 명세는 다음과 같다. 변수 : 문자열 길이, 문자열 내용, 사용하는 메모리 크기 메소드 : 생성자, 소멸자, insert, erase, find, reserve, assign, compare 더보기에 예제 코드를 넣어 놓았다. 더보기 모두의 코드에서 제시한 MyString 클래스 코드 예시 : #include // str..