잡다한 생각들

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 사무엘

2011/12/10 19:27 2011/12/10 19:27
,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/611

Trackback URL : http://moogi.new21.org/tc/trackback/611

Comments List

  1. 소범준 2011/12/10 21:39 # M/D Reply Permalink

    1. Shrink는 영어 동사 '움츠러들다' 또는 '움츠리다'라는 뜻으로 나오더군요.
    그래서 이걸 압축이라 하면 조금 안 어울리죠. 압축은 compress 쪽이 훨씬 가까울 텐데요.
    그 뉘앙스가 '무엇을 압박하여 그 크기나 규모를 줄이다' 쪽이니깐요.

    2. 허걱!; VS에도 버그가 있었다니!! 흠좀무.

    3. 형제님 이름도 흔하지 않다고 생각했는데, 형제님과 동명이인인 사람을 지난번에 발견했습니다.
    참고로 저는 제 이름 석자까지는 아니어도(아직 그런 사람 못봤습니다) '범준'이란 이름을 가진 사람들은
    상당히 많더군요. ㅎㅎ

    1. 주의사신 2011/12/11 16:51 # M/D Permalink

      2. Visual C++ 6.0에서는 STL(C++ 자료 구조 관련된 것으로 C++ 공부하다 보면 반드시 해야 할 것들 중에 하나입니다.)에 버그가 있는 것으로 유명했습니다.

      많은 개발자들이 자기가 뭐 잘못한 줄 알고 밤새 디버거 돌리게 했다는 유명한 버그입니다.

      학교에서 7.0을 한 번 써 본 적이 있는데, 뭘 잘못했길래 그러는지 모르겠지만, 코드가 바뀌었는데, 컴파일을 다시 안하더군요... 디버거도 말을 잘 안 듣는 경우도 있고요.

      Visual C++ 9.0에서는 do while 문을 Release 모드로 컴파일 하면 문제가 있다고 들었습니다.

      Windows API에는 유니코드가 잘 적용이 되어 있어서 문제가 없지만, MFC에서는 문제가 생기는 클래스도 몇 개 있었다고 알고 있습니다.

      MS 제품들 역시 사람이 만드는 것이니 오류들이 있습니다. 다만 제품 규모들이 다 엄청남에도 그정도로 오류가 적게 나오는 것이 대단하다는 생각을 여러 번 해 보게 됩니다.

    2. 소범준 2011/12/11 19:02 # M/D Permalink

      여러가지 경우에서 버그가 있었군요.

      프로그램 제작 툴만큼은 버그가 없을 줄 알았는데, 이것도 사람의 저작이라 그렇군요.

      새로운 정보도 배웁니다. 알려주셔서 감사합니다, 형제님. 샬롬~

  2. 김 기윤 2011/12/10 21:57 # M/D Reply Permalink

    Shrink 라는 단어를 보고나서 왠지 어디서 많이 들어 본 것 같다는 느낌이 들었는데,

    최근 제가 플레이 중인 한 TCG 에 나오는 카드 이름과 이름이 같다는 것을 한박자 늦게 깨달았습니다(..)

    http://www.sword-girls.com/World/Card/View.aspx?CardNo=200006&NowPage=1&cardEpisode=-1&cardSide=-1&cardKind=-1&cardRarity=-1&cardLevel=-1&cardSize=-1&cardArtist=&cardName=쉬

  3. 김재주 2011/12/11 16:14 # M/D Reply Permalink

    저는 '수축' 정도로 부릅니다

  4. 사무엘 2011/12/11 20:17 # M/D Reply Permalink

    소범준: 비주얼 C++에도 컴파일러 자체라면 몰라도 최소한 IDE엔 버그가 은근히 발견 빈도가 잦(았)습니다.
    2003의 경우 리소스 편집기 다루다가 IDE가 뻗는 일이 꽤 자주 있었는데 2005 이후부터는 거의 사라진 듯합니다.

    김 기윤: 저는 Duke Numek 3D에서 적을 난쟁이로 줄여 주는 무기의 이름에서 shrink라는 단어를 처음 접했지요. ㅋㅋ

    김재주: 음, 수축도 괜찮은 단어군요. ^^

Leave a comment
« Previous : 1 : ... 1615 : 1616 : 1617 : 1618 : 1619 : 1620 : 1621 : 1622 : 1623 : ... 2141 : Next »

블로그 이미지

그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/04   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

Site Stats

Total hits:
2675240
Today:
1932
Yesterday:
1540