1. Shrink는 압축이 아니다
파일 단위로 문서(document)를 취급하는 대부분의 응용 프로그램들은 파일 내용을 메모리로 전부 읽어들여서 처리를 하며, 저장도 내용 전체를 한꺼번에 한 파일로 쓴다.
뭐, 개발툴 같은 경우 여러 파일을 묶어서 프로젝트라는 개념을 도입하기도 하지만, 그래도 개개의 파일을 읽어들여 편집하는 건 전체 단위이다.
하지만, 부분적인 수정이 빈번히 발생하고 매번 파일 전체를 메모리로 읽고 쓰기에는 용량이 너무 커질 수 있는 자료구조는 위와 같은 단순한 방식으로 다뤄지지 않는다. 데이터베이스라든가, 이메일 클라이언트의 편지함, 그리고 가상 기계 프로그램이 만들어 내는 가상 디스크 같은 건, 프로그램 메뉴를 살펴보면 Compact 내지 Shrink라는 명령이 반드시 존재하는 걸 볼 수 있다.
이런 데이터들은 오래 사용하다 보면 파일 내부에 fragmentation이 필연적으로 발생하며 그 양이 누적된다. 그렇기 때문에 주기적으로 shrink를 해 줘야 파일 크기가 실제 내부 데이터가 차지하는 크기와 비슷하게 최적화되며, 데이터를 다루는 performance도 좋아진다.
사실은 오늘날 컴퓨터에 존재하는 파일 시스템 자체부터가 이와 비슷한 발상으로 관리되며, 그래서 '조각 모음'이 필요한 형태이다. 윈도우 비스타 이상부터는 그걸 운영체제가 서비스(시스템이 내부적으로 돌리는 프로세스) 차원에서 주기적으로 알아서 돌려 준다. 뭐, random access에 최적화되어 있는 SSD 메모리는 그런 패러다임조차 바꿔 놓긴 했지만 말이다.
그런데 데이터베이스나 관련 프로그램들이 그 기능을 '압축'이라고 번역해 놔서 나를 몇 차례 굉장히 혼동시키곤 했다. shrink의 결과가 파일 용량 감소인 건 사실이지만, 재배치 내지 정리와 훨씬 더 가까운 개념이 어떻게 압축이라 불릴 수 있는가? 서랍 정리와 방 정리를 군대식으로 잘 해서 방이 예전보다 넓어 보이는 게 어떻게 물건을 압축한 결과라 볼 수 있겠는가?
전산학, 컴퓨터, IT 쪽에 최소한의 감각이 있는 사람이 압축이라 하면 바로 떠올리는 개념은, 무손실이든 손실이든 압축 알고리즘이며, 결과물의 크기는 줄어드는 대신 데이터를 읽고 쓰는 cost가 커지는 그런 tradeoff이다. 그러니 데이터베이스를 압축하겠다고 하면 개념에 굉장한 혼란이 생길 수밖에 없다. 차라리 과거 도스 시절에 존재했던 Stacker, DoubleSpace, DriveSpace 같은 디스크 압축 프로그램은 진짜로 그런 의미의 압축이 맞았다.
그럼 비판만 하지 말고 대안을 제시해야 하는데, shrink 내지 compact를 어떻게 번역하면 우리말로 더 잘 와 닿을지 고민된다. 한 단어로는 어려울 것 같고 끽해야 내부 메커니즘을 표현한 '파일 내부 구조 재정리'라는 뜻이 담긴 표현을 써야 하지 않겠나 싶다.
2. Everett
미국 북서부의 워싱턴 주, 시애틀 근교에는 Everett(에버렛)이라는 도시가 있다. 그런데,
- 윈도우 프로그래머로서: 비주얼 스튜디오 2003의 코드명이 이것이었다.
- 교통· 항공· 우주 매니아로서: 이곳에 보잉 사의 세계 최대 규모의 비행기 조립 공장이 있다. 항공 덕후라면 이 사실이 바로 떠오를 것이다. ㅋㅋ
VS 닷넷 초기인 2002/2003이 버그가 많다고 욕 많이 얻어먹긴 했다. 하지만, <날개셋> 한글 입력기 개발을 6년간 VS 2003으로 해 본 본인으로서는 그게 그 정도로 나쁘지는 않았다. 닷넷이 아닌 Win32 native의 관점에서 봐도 오히려 VS 6.0보다 향상된 기능이 많고 UI가 깔끔해져서 반갑게 잘 쓰며 지냈다.
운영체제의 코드명인 시카고(윈도우 95), 휘슬러(윈도우 XP), 롱혼(윈도우 비스타) 등과는 달리, 개발툴은 아무나 쓰는 제품이 아니다 보니 코드명이 잘 알려져 있지 않다. 하지만 그런 것들도 코드명이 있긴 하다.
비주얼 스튜디오 2005의 코드명은 Whidbey, 2008의 코드명은 Orcas이다. 단, 오피스 제품이 코드명이 있다는 얘기는 지금까지 못 들었다.
이 글 쓰는 과정에서 미국 지리 공부를 좀 했다. 미국의 행정 수도인 워싱턴 D.C.는 말 그대로 미국의 초기 역사가 담긴 동부 끝자락에 있는 반면, 워싱턴 주는 전혀 동쪽에 있지 않으며 그 반대이다. 워싱턴 주와 워싱턴 D.C.는 지리적으로 아무 관계가 없으니, 뉴욕 주와 뉴욕 시의 관계처럼 생각해서는 절대 절대 안 된다. ^^;;;
마이크로소프트 본사가 있는 곳은 시애틀. 고로 이곳 근처이며 역시 서쪽 끝 되겠다.
이름도 비슷하고 옛날에 윈도우 95의 임팩트가 크기도 했으니, 난 한동안 MS가 시카고에 있는 줄 알았으며, 고로 실리콘 밸리와 마이크로소프트는 마치 칼텍과 MIT 사이만큼이나 엄청 멀리 떨어져 있는 줄 알았다. 게다가 빌 게이츠는 하버드 중퇴이기도 하니 웬지 그의 주 활동 영역도 동부였을 것 같지 않나? -_-;;; 하지만 그렇지 않다.
빌 게이츠가 2008년 6월 27일에 은퇴했으니, 나 병특 마치기 딱 사흘 전에 은퇴했다.
나는 이제야 군필자가 되어서 한국에서 제약 없는 사회 생활을 시작하기 직전이었던 반면, 그 양반은 그때 기업 경영자로서 완전 만렙 찍고 은퇴했다. ㄷㄷㄷ
3. 김 명호
우리나라에 김 명호라는 이름은 여러 동명이인이 존재하는데, 다들 IT나 최소한 이공계에서 쟁쟁한 실력자들이다.
- 한국 마이크로소프트의 최고 기술 임원인 김 명호 상무. IT 매니아라면 이름 안 들어 본 사람이 없을 것이다.
- 카이스트 전산학과의 김 명호 교수. 우리나라에서 얼마 안 되는 데이터베이스 전문가이다. 아, 그러고 보니 카이스트 황 규영 교수도 DB 쪽은 가히 만렙 찍은 분이 아니던가(빡센 강의 커리큘럼 때문에 학부생들로부터 별명이 '황디비'..). 카이스트는 DB에 강하다. ㄲㄲ
- 그리고, 성균관 대학교의 수학과 교수였고, “석궁-_- 테러”로 유명한 김 명호 박사. 좋게 말하면 정말 머리 좋고 유능한 학자이고, 좀 삐딱하게 말하자면 너무 강직하고 현실과 타협을 못 하고 일종의 똘끼도 보이는 천재 타입의 인상? 그 근성이 지나쳐서 교수 재임용에 탈락하고 나중엔 살인 미수 혐의로 징역까지 몇 년 살다 2011년 초에 출소했다.
세상 부적응형의 천재 타입이라면 정말 교수가 아니면 할 일이 없을 텐데, 그 연세에 범죄자로 전락하여 교도소 나와서 앞으로 뭐 하고 사시려나 좀 걱정되기도 한다.
Posted by 사무엘