Graphics Programming
종이책을 버리다 본문
종이책에 무슨 미련이 그렇게 있었는지 차곡차곡 쌓다가 드디어 버릴 결심을 했다. 컴퓨터 책상 옆에 보조 책상을 놔뒀는데 금방 책으로 가득 차서 뭘 하지 못하게 된 것도 있고, 몇 년째 펼치지 않은 책도 허다하고, 더이상 내 인생과 상관이 없을 것 같은 책들도 있다.
무엇보다 이사할 때 힘들어 죽겠다. 가구나 전자제품 같은 보편적인 이삿짐은 적은데 책 싸느라 항상 고생이 이만저만 아니었다.
막상 그대로 내다버리기는 또 미련이 남아서 빠르게 훑어보고 컴퓨터에 정리한 다음 버리는 책도 있다. 교양서, 소설, 쓸모 없는 전공서적, 이제는 관심 없는 프로그래밍 서적 등을 버리고 있다.
대학교에서 배운 무선이동통신. 큐잉 이론에 관한 수학은 재밌었는데 그 외에는 별로 재미 없었다.
예전에는 셜록 홈즈, 애거서 크리스티, 히가시노 게이고 등 유명한 작가들의 추리 소설을 많이 읽었다. 뤼팽 전집도 읽은 기억이 나는데 뤼팽은 추리 소설이라기보단 모험 소설에 가까웠던 것 같다. 추리 소설을 몇십 권 읽었지만 직접 추리하는 건 관심이 없었다. 그냥 사건이 벌어지고 탐정이 추리하는 과정을 읊어주는 게 재미있었다. 직접 추리할려니 골이 아파서 몇 개 풀어보다가 말았다.
게임 레벨 디자인에 관심이 많았을 때 샀던 책. 하지만 내용이 기대했던 것과 크게 달랐다. 무슨 말인지도 모르겠고 너무너무 지루해서 별로 주의깊게 읽지 않았었다. 이번에 다시 펼쳐보니 역시 재미없어서 그냥 덮었다.
대학교에서 인공지능 혼자 공부한다고 산 것 같은데... 정말 개론이여서 내용이 얕다. 공학적으로 뭔가를 배울 수 있는 책도 아니고 올해에 심층 학습을 사서 (물론 안 보고 있음) 이제 필요 없다.
예전에 취업하기 전에 혼자 게임 완성해보고 싶어서 시나리오 쓰는 용으로 샀던 것 같다. 완성한 게임이 없으니 실패한 계획이었다. 이런 책 읽는다고 시나리오가 뽑히는 것도 아니어서 플롯이 굉장히 어설펐다. 이제 회사에서는 프로그래밍만 하면 되니까 상관 없는 일이다.
고등학생 때 샀던, 프로그래밍 책도 아닌데 왜 샀는지 도무지 기억이 나질 않는 책이다. 10년이 넘었으니 -_- 아마 그 때도 읽어보고 이걸 왜 샀지 했을 것이다.
회사 다니며 프로그래밍에서 가장 생각을 바꾼 주제를 꼽으라면 디자인 패턴이다. 대학생까지는 마냥 OOP 원칙이나 디자인 패턴이 킹갓인 줄 알았고 뭐든지 이걸 따라서 설계해야 하는 줄 알았다. 하지만 프로그래밍으로 해결하는 문제 영역은 아주 다양하고 각 영역마다 고유의 해법이 있다. 익숙한 게임 프로그래밍을 예로 들어보면 상속이니 추상화니 하는 것보단 수행 시간, 분기 제거, 캐시 히트, 메모리 절약 등이 중요한 서브시스템들이 많다.
프로그램을 만들 때 Data-Oriented Design과 Object-Oriented Design을 완전 배타적으로 채택해야 하는 건 아니다. 프로그램의 가장 꼭대기는 OOP로 설계하고 밑바닥에선 효율적인 데이터 처리를 고민하는 게 당연하지만, OOP 책들을 읽어보면 그런 데이터의 효율적인 처리가 중요한 수준까지 침범해서 온갖 클래스와 메서드로 쪼개놓곤 한다.
스크립트 언어로 코딩을 시작해서 C++을 메인 언어로 쓰게 되고, 하스켈 같은 별 거지 같은 언어도 맛본 뒤 내린 결론은 지금의 하드웨어에서는 모든 언어가 어차피 어셈블리나 ISA로 통한다는 것이다. C/C++은 여기에 가장 근접한 대중적인 언어고. 여러 10년차 프로그래머들에게 파이썬 같은 언어가 더 좋다는 말을 듣는데 이유를 모르겠다. 프로그래머는 좀 더 로우 레벨에 가까워야 하지 않을까.
아마도 처음으로 산 알고리즘 대회용 책이다. 쉬운 알고리즘 문제를 우연히 풀어보고 흥미가 생겨서 샀는데 첫 문제들부터 안 풀리니까 바로 흥미를 잃고 쳐박아뒀던 것 같다. 이 때 열심히 했으면 몇 년 뒤에 ACM-ICPC 대회에 나가서 후회를 안 했을 텐데. 급하게 3개월 공부하고 팀원 버스 받으면서 간신히 동상을 탔었는데 내가 그동안 공부를 했었다면 두 문제 정도 더 풀어서 은상은 탔을 것이다. 어쨌든 이제는 알고리즘 대회도 접었고, 온라인으로 연습할 수 있는 좋은 사이트가 많아서 필요 없어졌다.
그 외에도 몇 권 더 버렸지만 책장을 보니 티도 안 난다. 그나마 닌텐도 스위치 끼워넣을 자리는 생겼다. 몇 권이나 더 버릴 수 있을까...