Syntax Highlighter

현재 쓰고 있는 Syntax Highlighter는 Alex Gorbatchev의 SyntaxHighlighter. ABAP code를 표현 못하는 문제가 있으나 제일 무난하다.

여러 종류의 Syntax Highlighter가 있는데 각기 장단점이 있다. 그런 면에서 ‘The Definitive Guide on WordPress Syntax Highligher Plugins‘란 포스팅은 도움이 많이 되었다.
약간 오래된 글이라서 현재 더 이상 update 되지 않는 plugin도 있지만 어떤 것들이 있는지 분위기 파악에는 도움이 된다.

The Factory Method Pattern (in ABAP)

20100512_factory_method
Factory의 요점은 다음과 같다.

  • ‘Product를 만드는 것’과 ‘등록’의 구현은 하위 클래스에서 수행한다.
  • (new를 사용해서) 실제의 인스턴스를 생성하는 대신에 인스턴스 생성을 위한 메소드를 호출함으로서(create_product) 구체적인 클래스명에 의한 속박에서 벗어나고 있다.

Framework 쪽: ZCL_FACTORY

Framework 쪽: ZCL_PRODUCT

ZCL_IDCARD_FACTORY

ZCL_IDCARD

그리고… 실행 프로그램 ZP_FACTORY_METHOD

이 실행 프로그램은 철저하게 암기할 필요가 있겠다.

Package example in ABAP

20100512_package_1
먼저 TEST_FRAMEWORK.ZCL_PRODUCT를 상속받는 TEST_IDCARD.ZCL_IDCARD를 컴파일하면 서로 다른 Package로 인한 경고를 받게 된다.

  1. 일단 TEST_IDCARD의 억세스를 가능하게 하기 위해 TEST_FRAMEWORK 쪽에서 인터페이스를 만들어주어야 한다.
    ZPIF_TEST_FRAMEWORK란 Package Interface를 만들어주고 대외적으로 오픈할 object – 여기서는 ZCL_PRODUCT와 ZCL_FACTORY – 를 추가해준다.
  2. 이때 Derive subclasses 부분도 ‘Allow Usage’ 체크를 해주어야 한다.
  3. 20100512_package_2

  4. TEST_IDCARD의 DCL(Dependency Control List)를 연다. (SE80로 가서 해당 class를 더블클릭하면 관련 탭이 보인다) 여기에 앞서 생성한 Package Interface를 추가한다.

다음으로, TEST_FRAMEWORK와 TEST_IDCARD의 상위 Package인 TEST_FACTORY_PATTERN 아래의 리포트 ZP_FACTORY_METHOD가 하위 Package들의 object를 억세스하게 하기 위해 아래와 같은 조치가 필요하다.

  1. ZPIF_TEST_FACTORY_METHOD라는 상위 Package의 Package Interface를 만든다. 여기에는 아무 것도 추가할 필요 없다. (어쨌건 인터페이스는 필요하다)
  2. 앞서 TEST_FRAMEWORK의 경우와 같이 TEST_IDCARD에서도 외부 억세스를 위한 인터페이스를 만들어야 한다.
    이 Package에 속한 ZCL_IDCARD와 ZCL_IDCARD_FACTORY를 인터페이스에 추가하면 자동적으로 그 부모 class의 object도 추가가 된다.

20100512_package_3

여기까지.
써놓고 보니 어지러워보이긴 하지만 개념 자체는 단순하다. 그래도 Java의 Package 컨셉이 훨씬 깔끔한 건 사실이다.

High End 2010 참관기 – 그밖에…

이번 München 방문 때 숙소는 Unterhaching – München 바로 밑의 동네입니다 – 에 있는 Holiday Inn에서 묵었습니다. 49유로라는 파격적인 offer에 혹해서 갔는데 결과적으로 너무 만족스러웠지요. 박람회장과 차로 25분 거리지만 이 정도 offer라면야…

차가 있으면 확실히 이런 것이 편합니다. 시내에서 이런 호텔에 묵으려면 두배 이상의 가격에 더 좁은 방, 주차비 추가 등등 비용이 급격히 상승하거든요.

아내와 서로 우리의 선택에 자화자찬을 하던 중 박람회장(M.O.C.) 앞 ibis에서 49유로 offer를 선전하는 커다란 광고판을 보았습니다. 좀 쓸쓸해지더군요. -_-a

**********

전시장 출입은 자유롭지만 근처에 식당이라고는 눈을 씻고 찾아봐도 안 보였기 때문에 비싼 구내식당을 이용해야 했습니다. 그래도 스파게티는 수준급이더군요. 내년에 올 때는 일부러 다시 먹어도 될 듯.

사실 점심 때 전시회장 밖을 보니 배낭에서 꺼낸 맨 빵과 물로 점심을 치르는 사람이 제법 있었습니다. 수천만원 짜리 오디오 전시회에 오는 사람이 모두 메르세데스를 몰 필요는 없지만 왠지 묘한 느낌이 들더군요.

**********

오랜만에 München에 온 김에 현지인에게 유명하다는 식당 두 군데를 가보았습니다. 하나는 ‘Donisl’, 다른 하나는 ‘Augustiner Keller’였는데 저는 Donisl이 훨씬 좋더군요.
음식은 Augustiner Keller가 낫지만 그만큼 값이 비싼 데다가 너무 시끄럽고 정신 없었습니다. Donisl도 시끄럽긴 하지만 식당내 구획이 제법 잘 되어있어서 편안한 느낌을 받았거든요.

High End 2010 참관기 #3/3

전시장을 돌다보니 마치 패션쇼에 온 듯 한 느낌을 받더군요. 각자 자신의 최고의 모습과 사운드를 무대에서 보여주면 관객들이 정신 없이 플래쉬를 터뜨리며 열광하는.

다행인 것은, 아내 역시 오디오에 많은 관심을 보이기 시작했다는 점입니다. 소리야 어떻든간에, 이쁘잖아요. :-) WAF (Wife Acceptance Factor)는 업체에게나 남편들에게나 중요합니다…

Tannoy
20100508_highend2010_27
DC10T은 이번 전시회에서 본 가장 아름다운 스피커였습니다.
너무 혹해서 가격을 물어보니 DC10T는 5,500유로, DC8T는 4,500유로 정도라고 하더군요. Mannheim의 Expert Gallerie – 지난 1월 Martin Logan을 청음했던 곳입니다 – 에서 마침 DC10T를 주문했다고 하니, 운이 좋다면 나중에 들어볼 기회가 생길 수도 있을 것 같습니다.

오디오 가격들을 보고 늘 기겁을 하던 아내도 이 제품을 보더니 아무 말 않더군요. 이 정도로 수려한 자태의 스피커라면 스피커 업계의 WAF Top 순위에 오를 수도 있지 않을까 싶습니다.

Griphon
20100508_highend2010_28
이번 전시회에서 드물게 영어로 프리젠테이션을 하던 Griphon의 전시장입니다. 제품 자체가 아닌, 음악과 뇌의 상호작용 등에 대한 것들이라 약간 흥미가 떨어지긴 했습니다만 꽤 재미있었지요. (15세에서 25세 사이에 소위 ‘음악적 취향’이란 것이 형성되고 이것이 남은 일생 내내 지배한다더군요)

전면의 거대한 스피커는 4-Way Twin Tower 형의 ‘Poseidon‘입니다. 디자인보다 오히려 네이밍이 더 훌륭하다고 생각될 정도로 이미지에 잘 어울리는 이름이었지요.

프리젠테이션 간간히 들려주던 보컬음은 정말 환상적이었습니다. 직전에 들었던 Focal의 소리보다 낫다는 생각까지 들었으니까요. 그런데 어떤 방문객이 Rachmaninov CD를 주며 좀 들려줄 수 있냐고 하더군요. 제대로 된 피아노 소리를 들을 수 있겠구나 싶어 경청했는데, 이런… 좀 실망했습니다. 피아노와 관현악 파트가 완전히 따로 노는 듣보잡 연주 탓도 있겠지만 앞서 보컬에서 들려주었던 탁월한 현장감은 온데간데 없이 평범한 소리를 들려주더군요.
기대가 컸던 만큼이나 많이 아쉬웠습니다.

Triangle
20100508_highend2010_29
Triangle사의 스피커 ‘GENÈSE‘ 입니다. 별 기대 없이 청음 해보았는데, 의외로 굉장히 소리가 좋았습니다. 직전의 Focal도 그렇고, 혹시 프랑스 쪽 메이커 제품의 소리에 어떤 경향이 있어서 내 취향과 잘 맞는 것이 아닐른지 – 하는 속단까지 들더군요.
무척 호방하고 거침없는 소리에 한참을 빠졌다가 피아노 곡을 들려줄 수 있냐고 따로 부탁을 했습니다. 우연의 일치인지 Rachmaninov의 피아노 협주곡을 또 틀어주더군요. 이번에도 연주는 피아노가 혼자 미쳐 날뛰는… 에휴…
현악 파트는 거슬림 없이 울림이 좋은 소리를 보여주었지만 피아노는 아니었습니다.
아쉬움이 남았지만 나중에라도 같이 쓰인 Lyric 앰프와 함께(이 앰프를 매칭기기로 계속 추천하더군요) 다시 들어보고 싶은 모델이었습니다.

TAD
20100508_highend2010_30
파이오니어의 프리미엄 브랜드인 TAD의 ‘Reference One’입니다. 이번 전시회를 통틀어서 가장 훌륭한 소리였습니다. 소리를 들려주는 것이 아니라 ‘보여’주더군요.
제가 들어갔을때 뉴에이지 분위기의 어떤 성악곡이 흘러나오고 있었는데, 뭐랄까, 스피커 앞에 깔려있는 천을 밟고 노래하는 이가 걸어나오는 듯한… 말로 표현하기 힘든 경험이었습니다. 제가 가지고 있는 구닥다리 고물 스피커도 파이오니어지만 이 물건과 비교하는 것 자체가 어불성설인 듯 하고…
청음실 분위기 자체에서 어떤 경건함을 느낄 만큼 사운드에 매료되었습니다.

옆에 CR1(Compact Reference One), 이름에서 알 수 있듯이 아버지 Reference One의 컴팩트 버젼, 특히 같은 Beryllium mid/tweeter와 custom drivers를 갖춘 스피커가 전시되어 있었습니다.
이 CR1은 독일에 딜러가 있냐구 물어보니 수더분하게 생긴 담당자가 자기가 유럽에서 유일한 딜러다, 스웨덴에 있는데 필요하면 언제든지 비행기를 타고 방문하겠다 – 고 하더군요.
가격이 상상이 가데요 ㅎㅎ 35,000유로라는데, Pair 가격인지 한 짝의 가격인지는 기억이 안 납니다. 가격을 듣고 좀 어지러워서… (독일에서는 보통 스피커 가격을 게시할 때 한 짝의 가격을 올립니다. 이해는 안 가지만)
뭐, 이런 소리를 ‘볼 수 있는’ 경험에 만족해야겠지요.

Audio Physic
20100508_highend2010_31
Nubert와 함께 이번 전시회에서 꼭 방문하고 싶었던 전시장이 바로 ‘Audio Physic’ 이였습니다. 예전에 이들의 모델 ‘Sitara’에 대한 리뷰가 무척 좋았기 때문에 관심이 많이 있었지요. (Sitara는 독일서 약 2,000유로 정도 합니다)
많은 전시장이 청음 스케쥴을 정해 놓고 운영하고 있었지만, 대부분 입장과 퇴장이 자유로왔습니다. 반면 여기는 티켓을 발행하면서 엄격하게 운영하더군요. 말인 즉슨, 5분 듣고 어떻게 우리 스피커가 좋은 지 알 수 있느냐 – 는 것이지요. 호감이 가더군요.
시간이 늦어서 청음 기회가 있을까 싶었는데, 다행히 마지막 세션에 빈자리가 생겼습니다. 30분 정도 다양한 음악을 들을 수 있었지요.

스피커는 그들의 flagship인 ‘Cardeas’였습니다. 자신 있게 클래식부터 Jazz, Pop, New Age 등 다양한 곡을 들려주더군요. 해당 스피커의 구조와 원리에 대한 간단한 설명과 함께.
처음 들려준 것은 Mozart의 피아노 소나타. 현장음에 가까운 피아노의 소리가 이런 것이 아닐까 싶었습니다. 다음에 들려준 피아노 반주의 뉴에이지 보컬 곡에서는 그냥, 참 좋다… 라는 말 밖에 못하겠더군요. Vivaldi의 사계 중 여름에 이어 Dire Straits의 ‘Money for Nothing’을 Jazz 풍으로 희화한 곡에서는 다들 어깨를 들썩거렸습니다. 이 곡은 LP가 아닌 CD로 들었으면 더 좋았을 것 같았습니다.

Audio Physic 제품을 다 듣고 나서 아내가 한마디 하더군요. Nubert를 좋아하는 회사 동료들이 한 말 – Nubert가 최고의 사운드를 제공하진 않지만 동급의 사운드를 다른 메이커 제품으로 들으려면 네다섯 배 가격은 지불해야 한다 – 이 완전히 이해가 가더라구요. 동감했지요.
Cardeas의 소리는 정말 훌륭했습니다. 하지만 ‘nuVero 14’도 이 정도 소리는 내는데 가격은 1/4 정도거든요. (Cardeas는 약 18,000유로 정도 합니다)


청음을 마치고 나니 이미 매장들 대부분이 문을 닫았습니다. 생각 같아선 하루 더 머물고 싶었지만 월요일에 너무 피곤할 듯 하여 그냥 집으로 돌아왔습니다.
어찌나 흥분했던지 Heidelberg로 돌아오는 4시간 가량의 운전 시간이 피곤하질 않더군요.

추1: 더 상세한 사진들은 Picasa에 따로 올렸습니다.
추2: 사용된 기기에 대한 보다 상세한 정보가 여기에도 있습니다. 전부는 아니지만 꽤 많은 내용이 기록되어 있습니다.

High End 2010 참관기 #2/3

위층 매장 역시 2개 홀로 나뉘어 빼꼼히 업체들이 전시를 하고 있었습니다.
1층과는 달리, 이곳에는 기본적으로 청음을 하는 공간을 매장마다 제대로 갖추고 있더군요. 이걸 기대했지요. 사실 ‘보는’ 물건을 보러온 것은 아니니까요.

아쉬운 점은, 대부분이 Jazz나 Pop 음악을 들려주었다는 점입니다. 저에게는 그 음들이 별로 레퍼런스가 되지 못하거든요. 다들 자기네 flagship을 내세우고 있었고, 그런 제품에서 Jazz 음악이나 Pop 음악이 안 좋을리가 없습니다. (물론 차이야 있겠지만 저는 그걸 구분할 능력이 안됩니다. 바로 옆에 갖다 놓고 번갈아가며 비교해준다면 모를까)
제 경우는 항상 듣는 피아노 소나타나 바이올린 소나타를 들을 때 그 스피커에 대한 호불호가 확 갈리기 때문에 가능한 그쪽 소리를 들어보려고 노력했습니다.

T+A
20100508_highend2010_17
보면 볼수록 단단하고 박력있어 보이는 T+A 제품들입니다. 우리나라에는 많이 알려진 것 같지 않지만 여기서는 정말 많이 보이는 브랜드입니다. (예전에 Focal 스피커 청음 때도 이 제품을 썼었습니다)
가격이 조금 부담스럽지만 같은 가격대 제품을 고르게 된다면 1순위로 고려해보고 싶은 모델들입니다.

Dali
20100508_highend2010_18
Dali의 Euphonia MS5을 들을 수 있었습니다. 이들 제품 유닛의 색감이 무척 끌리더군요.
샘플링 CD에 어울릴 듯한 Jazz 음악을 들려주었는데 꽤 좋았습니다. 좀 조용한 곡에선 어떤 소리가 나올지 궁금하더군요.

Amphion
20100508_highend2010_19
핀란드의 Amphion 매장 앞에서는 바람잡이… 하시는 분이 간단한 공연을 했습니다. 영화 ‘Once’에서 나온 ‘Falling Slowly’를 부르던데, 아이구… Glen Hansard보다 훨씬 낫더군요. 고음부가 정말 멋있었습니다. 아내와 넋을 잃고 보다가 “전시장 내에서 더 좋은 소리로 자기 노래를 들을 수 있다”는 말에 무의식적으로 안으로 들어갔습니다.

20100508_highend2010_20
전부는 아니지면 그의 스튜디오 녹음 실황과 영상 일부를 보고 들을 수 있었는데요, 안타깝게도 2m가 넘는 Amphion의 웅장한 스피커에서 나오는 소리보다 이 양반이 홀에서 기타치며 노래하던 소리가 더 좋데요 ㅎㅎ
아무래도 실패한 마케팅 같습니다.

Nubert
20100508_highend2010_21
전시회에 온 주 목적 중 하나가 이 Nubert의 ‘nuLine 122’에 어울리는 기기를 물어보는 것이었습니다. 어제 Nubert 청음실에서 열심히 들어본 후 nuLine 122로 거의 마음을 굳혔거든요.
놀랍게도 매장에는 Günther Nubert(Nubert 설립자)가 한쪽 구석에서 고객들과 진지한 토론을 하고 있었습니다. 딜러가 아닌 순수 동호인들과 이런 시간을 갖는 모습이 무척 보기 좋더군요.

우리나라에서는 알려지지 않은 브랜드이지만 이곳 독일에서 Nubert의 인기는 상당합니다. 그 때문인지 매장 내에는 정말 많은 사람들이 있더군요.
간신히 한 사람 붙잡아서 nuLine 122에 어울리는 앰프를 추천 받았습니다.

맑은 소리를 잘 살릴 수 있는 앰프가 좋다고 하는데, 나중에 제대로 확인할 방법이 있을 지 모르겠습니다.

그들의 최상급 모델인 nuVero 14로 다양한 소리를 들려주었는데 조작자 미스로 순간 거슬리는 소리가 났었습니다. 적잖이 당황하더군요 ㅋㅋ

German Physiks
20100508_highend2010_22
폼 나는 German Physiks의 스피커들입니다. 상단 콘 드라이버 모양은 ‘DDD Driver’라고 하는데 전방향으로 소리를 방사하는 역할을 합니다.
굉장한 기대를 하게 만드는 외양에 비해 소리는 그다지 인상적이지 않았습니다.

Göbel
20100508_highend2010_23
여태껏 보아왔던 것들 중 디자인이 가장 모던하고 세련된 제품이었습니다. 단, 옆에 우퍼를 놔두었음에도 불구하고 베이스가 부족하게 들린 이유가 무엇이었는지 모르겠네요. 단지 착각이었는지도. (Sting의 곡을 들었습니다)
아무래도 전 커다란 인클로저에서 나오는 소리를 편애하는 듯 하네요.

Emille
20100508_highend2010_24
광우전자의 ‘에밀레’에서도 근사한 소리를 들려주었습니다. 사실 소리보다는 진공관 앰프 구경하기 바빴지요. (제품들 정말 아름답더군요)
구경 와중에 갑자기 직원분께서 – 한국분입니다 – 친절하게 팜플렛이 든 백을 주시길래 영어로 몇마디 감사하다고 하고 나왔습니다. 전시장을 나오고 나서야 개그를 했다는 것을 알아챘지요… 오디오 구경에 정신줄을 놓고 다닌 거 맞습니다.

전 이런 이국땅에서 선전하는 우리 제품들 볼 때마다 늘 가슴이 뭉클해지데요.

Acapella
20100508_highend2010_25
소리보다 그 모양에 온통 마음을 뺏긴 독일 Acapella사의 스피커 ‘High Violoncello II’ 입니다. 전시장 내 메인은 다른 업체이고 Acapella의 스피커가 협찬을 한 것 같은데 이 강렬한 와인색은 아무리 쳐다봐도 질리질 않더군요. 덕분에 무슨 소리를 들었는지, 어땠는지는 하나도 기억 나지 않습니다.
사진 정리하면서 업체 홈페이지를 가봤는데, 정말 이야… 하는 감탄이 나오더군요. 보는 즐거움도 듣는 즐거움에 필적할 수 있습니다. 이들 홈페이지에 가서 제품들 구경 한 번 하시길 강력히 추천합니다.

Focal
20100508_highend2010_26
무척 좋아하는 Focal 스피커의 전시장입니다. 이들이 유행시킨 Beryllium 트위터는 호불호가 명확하게 갈린다고 하는데, 제 경우엔 몇달전 청음한 이후로 열광적인 팬이 되었습니다. 가격이 좀… 심각합니다만, 나중에 은퇴했을 때 이런 스피커 갖춘 청음실 하나 있었음 하는 꿈이 있지요.
뭐, Grande Utopia는 너무 괴물같긴 합니다만.

청음 세션은 Stella Utopia로 진행 했는데, 정말 최고였습니다. 극히 낮은 저역의 흑인보컬이 나오는 부분부터 듣기 시작했는데, 어지간한 스피커로는 적당히 타협을 볼 것 같은 소리를 아무 무리없이 재생해내더군요. 이어진 포크 음악의 어커스틱 기타 소리는 귀를 관통해 몸 안에서 투명하게 울리는 듯한 느낌을 주었습니다.

다른 전시장 관람에 대한 욕심이 없었으면 세월아 네월아 하고 앉아있고 싶던, 환상적인 사운드였습니다.

그밖에, 건너편 매장에서는 iPot 용 Wireless Speaker인 Zikmu Parrot by Starck을 전시하고 있었습니다.

20100508_highend2010_32
디자인이 매우 아름답습니다. 이들 홈페이지에 가보시면 환상적인 디스플레이들을 구경하실 수 있습니다.

추: 더 상세한 사진들은 Picasa에 따로 올렸습니다.

High End 2010 참관기 #1/3

지난 5월 8일, München에서 열린 High End 2010에 갔다 왔습니다. 눈과 귀가 아주 호사를 했지요.

Pro-Ject
20100508_highend2010_01
입구에 들어서자마자 화려한 색의 턴테이블들이 눈길을 끌더군요. 대부분의 LP를 한국에 두고오긴 했지만 아직 몇백장의 LP들을 가지고 있고, 기존 턴테이블이 거의 수명을 다한 듯 하여 턴테이블들을 보면 계속 관심이 갑니다.
추세가 그러한지, 이번 전시회 매장 대부분이 LP를 많이 틀어주더군요.

턴테이블 예산은 아직 잡기 힘든 관계로(스피커, 앰프, CDP만 현재 고려중) 시작은 이 업체의 Debut III부터 할까 생각중이지만 – 가격은 240유로 정도인 듯1 Xpression Classic 쪽도 쉽게 무시하진 못할 것 같습니다. (Any experience with Pro-Ject Debut III?)

Davone
20100508_highend2010_02
특이한 모양새 때문에 눈길이 많이 갔는데, 아쉽게도 청음할 기회는 없었습니다. 사실 계속 매장을 돌다보니 이 정도는 지극히 평범한 모양의 스피커이더군요. :-)

Audio Reference
20100508_highend2010_03
Audio Reference사의 매장은 Hall 4에서 가장 큰 매장이었습니다. 도우미도 있더군요. Sonus Faber 제품군이 아무래도 눈에 들어와 사진을 찍었습니다. (오른쪽 끝에 Amati Anniversario란 제품이 보입니다) flagship으로 Stradivari를 전시해놓았는데 꽤 인상적이었습니다.

Epos
20100508_highend2010_04
‘Encore 50’이란 모델인데 단단하게 생긴 모양이 딱 제 스타일입니다. 들어볼 수 있었음 참 좋았을텐데 아쉽더군요. Creek의 ‘Evolution’ 시리즈와 같이 전시를 하고 있었습니다.

Manley Labs
20100508_highend2010_05
다양한 Manley Labs의 앰프 제품들입니다. 모양이 썩 맘에 들더군요. 나중에 앰프 쪽에 관심을 갖게 되면 한번 고려할지도.

PSB
20100508_highend2010_06
공격적인 마케팅을 하던 캐나다 PSB사의 스피커들입니다. 얼핏 B&W의 스피커인줄 알았습니다. 저랑은 달리 아내는 유닛 부분의 이 노란색이 싫다네요.

Klangfluss
20100508_highend2010_07
독일 Klangfluss사의 제품들입니다. 이번 전시회에서 가장 신기한 제품 중 하나였는데, 그들 설명을 듣더라도 정확히 무슨 원리인지 모르겠어요. 청음회를 하길래 들어가보려 했으나 사람이 너무 많아서 포기했습니다. 신기하게 생각하는 것은 저뿐만이 아닌 듯. ㅎㅎ

20100508_highend2010_08
소리는 무척 맑더군요. 상단의 직경 10cm 정도의 구체를 ‘Sound Orb’라고 하는데 여러 종류로서 교체가 가능합니다. 본체 위의 원뿔형 모양이 트위터 역할을 하는 듯한데 구체와의 거리 조절이 가능합니다. 이로서 소리를 소위 ‘인터액티브’하게 재생할 수 있다는데, 아뫃튼 무척 신기했습니다.

GamuT
20100508_highend2010_09
덴마크 업체인 GamuT의 모델들입니다. 정말 소리 좋더군요. 거친듯한 표면과 마무리 외양과는 달리 들려주는 소리는 무척이나 우아하고 짜임새가 있었습니다.
가격이 쎌 것 같아서 맨 오른편의 작은 스피커(El Superiores S3)의 가격을 물으니 직원분이 웃으며 affordable 하다고 하더군요. 17,000유로… -_-a
가격만 어느 정도 되었어도 심각하게 고려했을 정도로 맘에 드는 소리를 들려준 스피커였습니다.

Phonar
20100508_highend2010_11
‘music hall’이란 브랜드의 이 업체 제품들은 가격이 썩 괜찮습니다. 평도 좋은 것 같구요. 단지 제가 사는 Heidelberg 근처에는 딜러가 없는 듯 해서 아쉽네요. 이들의 스피커 및 턴테이블을 포함한 소스기기들에 꽤 관심이 있는디…
수상내역도 제법 있고, 일단 디자인이 무척 유려합니다.

ROSSO FIORENTINO
20100508_highend2010_12
이탈리아 ROSSO FIORENTINO의 ‘Volterra’란 제품입니다. 예의바른 펭귄같이 생긴 스피커인데, 마침 좋아하는 Eagles의 ‘Tequila Sunrise’를 틀어주더군요. 넋 놓고 좋은 스피커로 좋아하는 노래 잘 감상했습니다.

Cambridge Audio
20100508_highend2010_13
심각하게 영입을 고려중인 메이커인지라 사진을 많이 찍었습니다. 구입에 관심있는 놈들만 찍다 보니 정작 최고급 하이엔드 제품군들은 잊어버리고 사진도 안 찍었더군요. 헐…
외양만으로는 전 Cambridge Audio의 제품이 제일 예쁜 것 같아요.

Magnepan
20100508_highend2010_14
어떤 소리가 나올지 마냥 궁금하기만 한 Planar 스피커인 Magnepan의 모델들입니다. 역시 가지고야 싶지만 곧 태어날 아기가 나중에 꺅꺅 거리며 손으로 퍽 뚫어버릴 수도 있겠다는 생각을 하니 좀 끔찍하더군요.

그밖에,

20100508_highend2010_15
LP 매장입니다. 발 디딜 틈 없이 북적대더군요.

20100508_highend2010_16
센스쟁이 상품인 LP 청소기입니다. LP가 천천히 회전하면서 먼지하나 없이 청소합니다. 가격은 그리 나이스하진 않더군요. (1,800유로가 넘습니다)

추: 더 상세한 사진들은 Picasa에 따로 올렸습니다.

The Template Method Pattern

20100504_template_method
상위 class의 templateMethod는 같은 class내에 정의된 method1 ~ method3를 이용한 알고리즘을 가지고 있다.
예를 들어 method1 ~ method3가 각각 open(), print(), close() 라면 templateMethod 내부는 다음과 같을 수 있다. (아래 display()가 templateMethod다)

[java]
public final void display() {
open();
for (int i = 0; i < 5; i++)
print();
close();
}
[/java]

실질적인 각 구현은 concrete class에서 담당하므로 파일을 열어서 쓰는 작업을 할 것인지 소켓을 열 것인지 하는 실제 처리내용은 어떤 concrete class를 쓰느냐에 달려있다. 상위 abstract class의 templateMethod에서는 열고, 프린트하고, 닫는 등 일련의 처리 흐름을 형성하는 것이 중요하다.
다시 말해, 상위 class에서 프로그램의 큰 흐름을 정하고 하위 class에서 구체적인 행동을 정한다.

상위 class가 처리 알고리즘을 담고 있어야 하기 때문에 interface를 이용할 수는 없다.

The Adapter Pattern (in ABAP)

(HFDP에서)
Duck의 object가 부족해서 Turkey의 object를 이용하려고 한다… 라는 이상한 상황을 가정하고 있다. 보통 기존 모듈이 새로운 모듈을 이용하려고 하나 서로 interface가 맞지 않을때 – 구체적으로, 한 클라이언트가 다른 object의 method를 이용하고 싶지만 기존 보유한 method를 바꾸고 싶진 않다(또는 바꿀 수 없다) 할 때… 같은 있음직한 상황을 예로 든다만.

어쨌건 이 경우 Duck은 client, Turkey는 Adaptee이다. TurkeyAdapter는 타겟 interface인 Duck를 구현하며 – 당연하다. Adapter니까 – 이때 Adaptee의 method들을 이용한다는 것이 포인트이다.

[text]
REPORT zp_adapter.

*PARAMETERS:

CLASS demo DEFINITION.

PUBLIC SECTION.
CLASS-METHODS: main,
test_duck IMPORTING i_duck TYPE REF TO zif_duck.

ENDCLASS. "demo DEFINITION

*———————————————————————-*
* CLASS demo IMPLEMENTATION
*———————————————————————-*
*
*———————————————————————-*
CLASS demo IMPLEMENTATION.

METHOD main.
DATA: gr_mallard_duck TYPE REF TO zcl_mallard_duck,
gr_wild_turkey TYPE REF TO zcl_wild_turkey,
gr_turkey_adapter TYPE REF TO zif_duck. " Adaptor for Duck
" i.e. Duck is the target interface

CREATE OBJECT gr_mallard_duck.
CREATE OBJECT gr_wild_turkey.
CREATE OBJECT gr_turkey_adapter TYPE zcl_turkey_adapter
EXPORTING
i_turkey = gr_wild_turkey.

WRITE: / ‘The Turkey says…’.
gr_wild_turkey->zif_turkey~gobble( ).
gr_wild_turkey->zif_turkey~fly( ).

SKIP 2.

WRITE: / ‘The Duck says…’.
test_duck( gr_mallard_duck ).

SKIP 2.

WRITE: / ‘The Turkey Adapter says…’.
test_duck( gr_turkey_adapter ).

ENDMETHOD. "demo

METHOD test_duck.
i_duck->quack( ).
i_duck->fly( ).
ENDMETHOD. "test_duck

ENDCLASS. "demo IMPLEMENTATION

START-OF-SELECTION.
demo=>main( ).
[/text]

test_duck은 Duck interface를 인자로 받는다. Adapter는 Duck interface를 구현한 것이므로 test_duck의 인자로 Adapter를 넘길 수 있고, 그 Adapter의 method들 안에서 Adaptee의 method가 호출된다.

Duck, Turkey, TurkeyAdapter 등의 Class 및 Interface 선언 및 구현은 그냥 시스템 내 Global Class를 이용하였다.
그래서, 여기서는 생략한다.