훗.. 질러?

과거 미놀타社의 alpha7 필름 카메라를 사용하게 되면서 왠만한 DSLR은 그 부족한 기계적 성능과 크롭화각으로
눈에 차지도 않았으며 알파7 보다 기계적 성능이 우수한 DSLR은 감히 넘보기 힘든 가격대로 인해
이제껏 DSLR은 나에겐 'Out of 眼中'이었던게 사실이다.

시작을 미놀타로 한지라 기껏 갖추게된 렌즈 라인업을 포기하기 힘들어 타社 바디로의 이행은 생각 해 보지도
않았을 뿐더러 미놀타 마운트의 Full Frame바디가 나오기 전까진 DSLR로 넘어갈 생각이 없었는데..
출사 한 번에 사용하는 필름 양이나 현상비를 생각 해 보면 빨리 디지털로 넘어가는게 절약하는길이 아닐까
하는 생각이 드는것도 사실..

소니 알파 700

내년 중반이면 소니에서 알파 마운트의 FF바디가 나온다곤 하지만 솔직히 지금 출시된 A700도 카메라의 기계적
성능은 알파 7 에 근접하거나 뛰어넘는다고 판단이 되기 때문에 마음이 살짝( 이 녀석이 크롭바디가 아니었다면
지금쯤 아마 내 손에 들려 있을지도.. ) 흔들리고 있다.

이녀석.. 질러? 말어?
2007/09/28 01:49 2007/09/28 01:49
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

하에 special

2007/09/26 23:11

서비 Photo ,



며칠 전 미냥쿵양을 중심으로 번개팀을 결성해 진행한 사진 촬영이 있었습니다.
촬영장소는 고려대였구요.
전날까지 구질구질 비가 내려 촬영 당일 날씨 걱정을 많이 했는데 거짓말처럼 날이 개 주더라구요.

거기서 꽤나 눈에띄는 친구를 알게되었습니다.
보이시한 스타일에 눈매가 매력적인 친구로 활동닉은 '하에'라고 하더군요.

촬영 끝나고 본래 모습으로 돌아 온  하에양의 모습도 꽤나 놀라웠습니다.
완전 범생스타일의에 얌전한 소녀의 인상이었거든요.

기회가 되면 평소 모습도 한번 촬영해 봤으면 좋겠어요.















minolta @7, 50mm, 100mm macro, fuji pro 160s, kodak portra 160vc


사용자 삽입 이미지
2007/09/26 23:11 2007/09/26 23:11
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다
  1. 로커 갤러리에서도 봤지만, 여기서도 보게 되네요..^^

  2. lichengmo님 찾아주셔서 감사합니다.
    누구신지 궁금해서 홈 방문하려 했는데
    http://imno1.com/ 는 403 에러가 뜨더군요.. T.T
    날 밝으면 다시 한 번 찾아 뵐게요..
    평안한 밤 되세요.

후아.. 이거 거의 죽겠는걸?

근래 수년간 서울-고향 이동하는데 이렇게나 오래 걸려본 적이 있었나?
오후 두 시에 차 타서 하루를 넘기고 이제 도착했으니.. 11시간..
사고 기능이 현저히 떨어질 정도로 머리가 멍- 하다...
배고프고 눈 따갑고 엉덩이 아프고.. 이거 완전 폐인?

씻기도 해야겠고 배도 고픈데.. 만사가 다 귀찮은 이 기분이라니.
이 시간에 어디 밥 먹을 만한 곳 없나...

2007/09/26 01:37 2007/09/26 01:37
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

마츠 타카코 ( 松たか子 ) :: 夢のしずく

마츠 타카코

2001년 12월 마츠상의 concert tour vol.1 ~a piece of life~ 앨범을 통해서 처음 듣게된 곡.
어제 우연히 이 곡을 다시 접했다..  시간이 꽤 흘렀지만 그때와 마찬가지로 내귀에
착 감기는 그녀의 목소리.. 목소리.. 화려하거나 기교가 있진 않지만 부담스럽지 않은 목소리와
심플한 음색으로 내 귓가에 오래동안 머물렀던 곡.



마츠 타카코
2007/09/19 00:56 2007/09/19 00:56
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

토니 타키타니 :: トニ-瀧谷

토니 타키타니

토니 타키타니는 외로운 유년시절을 보냈다. 일찍이 어머니가 돌아가시고 아버지도 재즈 연주로 항상 집을 비우는 가운데 토니는 오히려 '혼자 있는 것'이 편하다는 것을 깨달았다. 그는 미술을 전공하면서 주변사람에게 항상 "너의 그림에는 감정이 결여되었다."는 말을 들었지만 그에게 있어 '감정'이란 비논리적이고 미성숙한 것일 뿐이었다.

 정교한 일러스트레이터로서 확실한 재능을 보인 그는 어느 날 아담한 체구에 단정하고 아름다운 미소를 지닌 에이코란 여성에게 불현듯 마음을 뺏겨 결혼에까지 이른다. 그의 삶은 변화했고, 난생 처음으로 생의 떨림을 맛보았으며 '다시 외로워진다는 것'을 두려워하게 되었다. 하지만 에이코에게는 유명 디자이너의 옷들을 구매하는 충동을 억누르지 못하는 한 가지 문제점이 있었다. 그녀의 쇼핑에 대한 집착은 점점 커져 스스로 감당하기 힘든 지경에 이르고, 토니는 걱정이 되어 그러한 충동을 억제해 보는 게 어떻겠냐고 넌지시 얘기해보았다. 하지만 그 결과는 비극적이었다.

 다시 혼자가 된 토니는 멍하니 앉아 아내가 남긴 옷장을 멍하니 바라보다가 너무도 아름다운 옷들이 마치 그녀의 유령을 보는 듯 하여 괴로움에 빠진다. 토니는 결국 아내와 완벽히 일치하는 치수를 가진 여성을 모집한다는 신문 광고를 내게 되고 그의 광고를 보고 한 여인이 찾아오는데...

토니 타키타니
토니 타키타니
토니 타키타니
2007/09/16 21:36 2007/09/16 21:36
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

스릴러/서스펜스 소설 좀 추천 해 주세요~

요즘, 스릴러/서스펜스 부류의 소설에 푹 빠져있다.

서스펜서 소설에 빠져들기 시작한 기간은 얼마 되지 않지만.. 예전에는 그다지 감흥이 없었던
(솔직히 말하면 많이 접하지 않았기 때문이겠지만..) 장르였는데 요즘은 영화도/소설도 이쪽으로 심하게
편중되어 있다는걸 스스로 느낄 정도로 빠져 지내고 있다.

많은 서스펜스 소설이 있지만 지난 두 달간은 세 명의 작가 작품을 집중적으로 읽고 있다.

 일본 스릴러 문학의 대표 중 한 명인 키시유스케
 또 한 명의 의학 스릴러 작가 테스 게리첸
 독특한 하드보일드 세계를 선보이는 키리노나쯔오

소설 자체의 재미도 재미지만, 한 작가가 만들어낸 등장인물이 작가의 서로 다른 작품 속에서 보이는 행동을
지켜보는 재미도 소설 자체의 재미만큼이나 흥미롭다.

이 세 작가의 작품 중(이제 여섯 권 밖에 읽지 못했지만...) 가장 독특했던 것이 키리노나쯔오씨의 'Dark'
여류작가의 글이라고 생각되지 않는 딱딱한 문체와 자신의 손으로 창조한 등장인물들을 처절하게 망가뜨리는
지독한 하드보일드.

며칠 전엔 부장님께 읽고 있는 책들이 너무 Dark한거 아니냔 소리까지 들었다.

하지만 어쩌겠어? 꽤나 재미있는걸..   한동안은 이런류의 책들을 달고 살아도 좋을것 같은데..


Ps. 요 며칠은 DeathProof 가 보고 싶어 미치겠다.
      (롤러코스터같은 영화로 일주일간 쌓인 어깨결림을 날려버릴 수 있지 않을까?)
      오늘 심야 편으로 한번 땡겨볼까 했는데.. 제일 가까운 상영장이 강변..
      비주류, 비인기 영화의 안타까움.. (아니면.. 내가 있는 곳이 문화적 혜택이 적은 지역인가..?)
2007/09/14 23:04 2007/09/14 23:04
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다
  1. 로빈 쿡도 다 읽으셨겠네요;;

  2. 다 읽다뇨..
    로빈쿡 소설은 '코마'와 '바이러스'밖에 읽지 못했습니다.
    시간을 내서 로빈 쿡의 다른 소설도 읽어보도록 할게요..

워크숍 후기 :: 서해안 태안반도에서..

이번 주말 충북 태안군 소재 '하늘과 바다사이'리조트에서 워크샵을 가졌습니다.
제가 다녀본 서해안 중에 가장 멋진 곳이었습니다. 멋진 날씨에 멋진 풍경..

집에서 간단히 짐을 꾸리면서 예상 했던 필름 롤 수를 완전히 빗나가게 한 그런 장소였습니다.
이번 워크숍에서 2가지 큰 소득이 있었는데요..
하나는 변변한 재주 없는 제가 M.V.P를 먹었다는거.. ( 예~ MVP에 선정된 이유는 상상에 맞기겠습니다. ^^ )
그리고 또 하나가 모 이사님과 형동생 하기로 했다는것! ( 물론, 사내에선 그러지 못 하겠지만요. ^^;;  그 의의만으로 뿌듯하군요..)

여느 워크샵과는 달리 바깥 풍경도, 날씨도 최고 였기 때문에 꽤나 들뜬 시간들을 보낼 수 있었습니다.

행사를 하면 항상 뒤에서 행사 준비/진행을 하느라 고생해 주시는 사우분께 감사 드립니다.


Arrange : Jae.key



숙소 입니다. 전봇대가 살짝 에러긴 하지만 예쁘죠?


바닷가를 향한 베란다쪽 입니다.


해안에 심겨있는 두그루 나무. 밀물때는 소나무의 밑둥이 바닷물 속으로...


모래사구입니다.  너무 멋지더군요.. 알흠다운 모델이 절실해 지는 장소였습니다.


사내 사진 동호회 '찰나' 에서 온갖 궂은일을 도맡아 해 주시는 진원씨


미모의 연주대리님.. 실물은 이보다 더 이쁘시죠.. ^^


디자인실 막둥이 혜지씨와 은경씨


음화화.. 형 동생하기로한 모 이사님 입니다. ㅎㅎ


개발실의 정신적 지주.. 라고나 할까요?


멋쟁이 병호 대리님..


선글래스가 너무나 잘 어울렸던 노수과장님.. 원래 남자는 잘 안찍는데..
무지하게 찍어 댔습...


최 이사님의 애교스런 부이~~


해명대리님 그 선글래스는 혹시?


제 든든한 동기 준호대리 입니다.


PST의 주 전력이 모여 계시는군요..


바다에서 이거 안 할 수 없죠?


그래도 마냥 신나는건 어쩔 수 없습니다.


정말 유쾌하게 쉬었습니다.


fin

사진을 취미로 하면서 이제 어디 갈 때면 어느정도 필름 분량을 예상하면 거의 맞아 떨어지거나 필름소모에 완급을 조절할 수준에 왔는데.
이번 워크샵에서는 완전히 예상을 빗나갔습니다.
많은 장면을 담지 못해 아쉽지만, 이후의 즐거웠던 시간은 다른 사우분들이 잘 담아 주셨을 겁니다.

minolta @7, tokina 28-80, fuji 160s
2007/09/09 23:29 2007/09/09 23:29
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

워크샵 댕겨 오겠슴다~

애애액~~ 오늘부터 워크샵이라고? 내일 출발하기로 한 거 아니었나?
출근하니 오늘 출발 이라네.. 휴가 간 사이 무슨일이 있었던거야~~
덴장.. 세면도구도.. 갈아입을 옷도 안 싸왔구만.. 집에 다녀와야 하나...?

으으.. 왠지 놀러 간다는 기분보단 오늘, 내일 처리 할 업무일정을 뺏기는것 같은 기분이..

일단 짐을 좀 챙기러 집으로 고고싱~ 해야것다..
이번주는 암 생각 말고 죽~~~ 쉬라는 계시로 받아들이지 뭐.

2007/09/06 13:54 2007/09/06 13:54
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

텍스트 큐브 1.5.x 표지( cover ) 글목록 갯수 조절하기.

2007.09.05.추가 - 텍스트큐브 센터의 '표지' 항목에 글 목록 수를 조절하는 옵션이 있군요.. 0.0
                         왜 지금껏 보지 못한거지?

텍스트 큐브 1.5에서 표지 기능을 활성화 하면 기본적으로 10개의 글목록이 보여 진다.
이 갯수를 조절하기위해선 약간의 소스 수정이 있어야 한다.

우선, index.xml 의 <coverpage> 항목을 보면
 <coverpage title="Recent Posts" handler="MT_Cover_getRecentEntries">
      <params>
        <param>
          <title xml:lang="en">Show recent posts per list</title>
          <title xml:lang="ko">출력될 최근 글 수</title>
          <name>entryLength</name>
          <type>int</type>
          <default>10</default>
        </param>
   </params>
 </coverpage>

위와 같이 글목록 출력 갯수를 조절하는 entryLength파라메터에 대해 default로 10개가 정의 되어 있다
그런데 왠일인지 이 값을 수정해도 여전히 글 목록 갯수는 10개만 나온다.

index.php 소스를 보면
18 번째 라인 부근에
 $entryLength = isset($parameters['entryLength'])?$parameters['entryLength']:10;

와 같이 index.xml에 기술된 값이 있으면 그걸 쓰고 아니면 디폴트로 10개 가져오기로 정의되어있는데도 작동
을 안하는것이다. 파라메터 전달 과정 중에 약간의 오류가 있나보다.

그래서 최후의 수단으로 $entryLength 변수를 사용 하는곳에 숫자를 바로 고쳐 보기로 했다.
index.php의 48번째 라인 근처를 보면
$entries = DBQuery::queryAll("SELECT e.blogid, e.id, e.userid, e.title, e.content, e.slogan, e.category, e.published, c.label
  FROM {$database['prefix']}Entries e
  LEFT JOIN {$database['prefix']}Categories c ON e.blogid = c.blogid AND e.category = c.id
  WHERE $multiple e.draft = 0 $visibility AND e.category >= 0
  ORDER BY published DESC LIMIT $entryLength");

과 같이 쿼리가 정의 되어 있을 것이다.

여기서 $entryLength 를 내가 원하는 숫자로 고쳐썼다.  이렇게..
$entries = DBQuery::queryAll("SELECT e.blogid, e.id, e.userid, e.title, e.content, e.slogan, e.category, e.published, c.label
  FROM {$database['prefix']}Entries e
  LEFT JOIN {$database['prefix']}Categories c ON e.blogid = c.blogid AND e.category = c.id
  WHERE $multiple e.draft = 0 $visibility AND e.category >= 0
  ORDER BY published DESC LIMIT 14");

이제 원하는 갯수만큼의 목록이 출력 된다.
이게 플러그인 자체 문제인지 내 쪽 환경 설정에 기인한 문제인지 잘 모르겠다.
2007/09/04 13:21 2007/09/04 13:21
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다
  1. 2007/09/04 18:50
    Cover 최근 글 수 마음대로 조정하기 Tracked from WWW.BELLBLOG.COM
  1. 켁.. BELLBLOG님 그런 간단한 방법이 있었군요..
    저는 왜 표지를 적용 하면서 그런 옵션을 보지 못했을까요.. T.T 이런 바부팅이..

  2. 허걱.. 소스 수정하면 나중에 업그레이드할 때 어려워질 수 있어서 잘 안하는데...
    그런데 전 메타사이트 때문에 RSS 표시 개수를 100까지 늘렸다는 ㅋㅋ..

  3. Melling님 알고보니 옵션이 있더라구요..
    ( 옵션으로 조절하게 다시 원래대로 돌려 놨습니다. )
    조절 옵션이 플로그인 쪽에 없어서 없는 줄 알았어요..
    rss 100개 라니.. 어떤 성격의 메타사이트인지 궁금해 지네요. ^^

  4. 블로그코리아에요, 여기는 RSS 전체를 불러오더군요,
    그런데 올블은 스팸방지로 최대 17개 까지라 소용없고...

  5. 안녕하세요. 이 문제로 몇주째 고민해서 매일 밤 이렇게 해결책을 찾아 헤메이고 다니다 여기까지 왔습니다.

    혹시 아신다면 조금만 도움을 받고 싶어요~~

    다중블로그를 운영중이구요. TC 1.5.2 를 사용중인데요.
    가장 최근의 업데이트까지 했구요

    커버 페이지를 플러그인 환경설정에서 단일사용자로 지정하면 잘되요...근데 다중사용자로 체크하고 저장하면... 메인페이지가 그냥 하얗게 나와요~ 암말도 없구요... 하얗게~~~~~~~~

    어떤 분은 GD가 작동안해서 그랬었다고 하는데, 제 서버는 작동을 하거든요.... 도대체 이유를 모르겠습니다.

    좀 도와주세요. ㅠ.ㅠ

    감사합니다.~

  6. Justin님 회사 워크샵으로 이제야 글 남기신거 봤습니다.
    블로그 방문 해 보니 이미 해결하신거 같더군요.
    도움 못 드려 죄송해요.

  7. 감사합니다.

    근데요... -..- 해결된게 아녀요...

    위에서 말씀드린것처럼, 메타 플러그인의 설정에서

    단일사용자용으로 놓으면 지금처럼 잘 보입니다.

    근데 이걸 "다중사용자" 용으로 바꾸면

    바로 모든 페이지가 하얗게만 나와요....

    해결이 전혀 안 됐어요.... -..-

    혹시나 어떻게 해야 하는지 아시나요 ??? -..-

    다시 한번 감사하구요,

    어떤 아이디어라도 좀 도와주세요~

    감사합니다.

앨리슨 스토키 ( Allison Stokke ) 양에게 무슨일이라도..?

요 이삼일간의 리퍼러 로그를 보면 유독 해외에서 구글 이미지 검색을 통해 앨리슨 스토키를 검색한 유입량이 눈에 띈다.

리퍼러 로그 앨리슨 스토키
- image.google 로시작하는 url은 모두 앨리슨 스토키를 검색한 결과로 유입된 로그이다. -


이게 엘리슨 스토키양이 뉴스화되어 나온 결과가 아니라 구글에서 이미지 검색을 가지고 어떤 테스트를 하는게 아닌가하는 생각마저 들 정도다..
갑자기 전 세계에서 앨리슨양의 사진을 찾는 이유가 뭘까?
2007/09/04 12:00 2007/09/04 12:00
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다
  1. 저도 그걸로 검색했다가.. 앨리슨 스토키가 아닌 다른 사진이 보였지만 그냥 클릭해봤는데요..
    이유는 2010년 세계 섹시한 스포츠 스타로 뽑혔기 때문이 아닌가 싶어요.

아..하.하.. 휴가다..

그러면 뭐하나... 아무일도 없다. 큭.
무사히 벌초를 마친것 까진 좋은데... 남은 휴가기간을 뭐하면서 보내지? 알바라도 할까? 응?


어제 근 1년만에 막내동생을 만났다. 출국하기 전과 비교해도 그닥 변한게 없..( 다고 생각 했는데.. ) 는게 아니군..
이 녀석 나갔다오더니 기독교 신자가 되어 왔잖아? 허..허..  녀석이 종교를 갖게 되리라곤...
여튼 귀국기념으로 오빠를 위해 하루종일 방 청소 같이 해 준것 고마워.( ^.T )
덕분에 온 집안이 반짝거려.. 담엔 오빠가 근사한 밥이라도 한끼 사야겠다.

이거.. 밥 얘기하니까 배고파지네.. 살짝 나가서 찬거리 사와야 겠는걸.
음.. 그리고 내일은.. 내일은.. 내일 뭐하지? 휴가를 이렇게 빈둥거리면서 보내야하나? 싫어~~
날 맑으면 기차타고 외곽이라도 살짝 다녀올까..  확실히 따듯한 햇살이 부족하긴 했어..
잠깐 나가서 볕을 쐬고 숨 좀 돌리고 오면 무료함이 좀 달아나려나?

어쩌면 난 사람이 그리운건지도 모르겠다.

결국 이 포스팅은 정리 안되는 일상의 주절거림이란 거겠지. ^^;
2007/09/03 21:45 2007/09/03 21:45
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

비 언제 그치려나...

2007/09/01 16:47

서비 낙서장 ,

조금씩 잦아들고 있긴한데.. 오늘 내에 그쳐 줬으면 좋겠는데...
꼭 원치 않을 땐 기상청 예보가 맞아 떨어지는지.. 참...
2007/09/01 16:47 2007/09/01 16:47
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다
  1. 어디 놀러가시기로 하셨어요? 라고 쓰려다 태그봤어요.
    그러고보니 곧 성묘 갈 시즌이군요..

  2. 예.. 비는 그칠것 같은데.. 풀들이 젖어 쉽지 않을거 같아요.
    벌써 2007년도 추석이라 생각하니..
    시간은 쏜살같단 어르신들 말씀을 절실히 느끼고 있습니다.

아.. 이 게임 무지 땡기네.. :: Bio Shock

바이오 쇼크

각종 게임 매거진에서 극찬을 하고 있는 바이오쇼크.
FPS게임을 마지막으로 즐기고 수년은 흘렀는데.. 요즘 Bio Shock 가 무지 땡긴다.  어두운 분위기 하며 탄탄한 스토리까지..
딱 내 스타일이긴 하지만 내 PC로 이 게임 플레이가 가능 할까 생각 해보면 완전 암울 모드..
아.. 업그레이드(라고 쓰고 새 PC 구매라고 읽는다.) 해야 하나..


DVDprime 잔상_현영님이 자막입힌 오프닝 동영상

Who's your daddy?에서 대디란 일단 표면적으로는 표지의 저 육중한 잠수복을 입은 생명체로
생각되지만 게임을 해보면 알 수 있는 이중적 의미가 있을겁니다. 루리웹에 올라온 정보에 의하면

Gatherer (Little Sisters) :
개발초기에는 유전적으로 변형된 달팽이처럼 생긴 바다생물로 묘사되었으나,
현재는 유전적으로 변형된 아이의 모습을 하고 있다.
Little Sister (아래 LS)들은 아담부족을 해결하기 위해 테네바움(Tenebaum) 박사에
의해 만들어진 존재들로서, 시체 - LS들은 'angel'이라고 부름 - 에서 비활성 아담을
체취하여 섭취한 후 그것을 사용가능한 형태로 재처리할 수 있는 능력을 갖고 있다.
게임의 개발팀은 LS의 존재를 통해, 아담이라는 필수적인 물질을 얻기 위해 어린 소녀
를 죽일 것인가라는 윤리적 결정을 플레이어에게 강요한다.
물론 LS들을 죽이는 것조차도 LS와 공생관계에 있는 Protectors(Big Daddy)로 인해 쉬
운 일은 아니다. 게임 수석 디자이너 Ken Levine에 따르면, 플레이어가 LS에게 직접적
으로 물리적인 위해를 가할 수는 없지만 아담을 체취하는데 그들을 사용할 수 있고 이
것은 곧 LS가 죽는다는 것을 뜻한다고 말했다. 그는 또한 이 장면이 오디오를 통해서
만 표현될 것이며 검은 화면으로 처리 될 것이라고 밝혔다.

(페이블 베드신 생각하면 될 듯)

Protectors (Big Daddies, Mr. Bubbles, Mr. B) :
LS들을 보호하기 위해 만들어진, 말못하고 육중한 괴물같은 존재.
잠수복처럼 생긴 육중한 아머를 착용하고 대형드릴같은 고성능 무기로 무장하고 있어
대부분의 스플라이서들은 가까이 접근하지 못한다.
수석 디자이너인 Paul Hellquist는, 플레이어가 자극하지 않는 한 Big Daddy가 먼저
공격을 하지는 않지만 "한 번 붙어보면 왜 아무도 Big Daddy와 붙으려하지 않는지 알
게 될 것이다" 라고 한다.
BD는 평상시 느린 움직임과 큰 덩치에도 불구하고 때로는 플레이어보다 훨씬 더 빨리
움직이는 민첩성을 가지고 있다.



바이오쇼크 뮤직 비디오

2007/08/31 16:16 2007/08/31 16:16
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

BigDecimal의 필요성

부동 소수점 숫자 사용은 재미있는 작업이 될 수 있다. 일반적으로 양을 다룰 때 정수가 아니라면 double 형식을 사용하려고 한다. 정수인 경우 일반적으로 int 형식이면 충분하다. 값의 크기에 따라 float나 long도 효과적일 수 있다. 그러나 화폐를 다룰 경우, 이 형식들은 최악의 선택이 되는데, 정확한 값을 제공하지 않을 때도 있기 때문이다. 단지 이진수 형식에 저장 가능한 값만 제공한다. 다음은 합계를 계산하거나 할인을 반영하거나 부가가치세를 추가할 때 double을 사용하면 겪게 되는 문제를 보여주는 간단한 예제이다.

Calc 프로그램은 금액 $100.05로 시작한 다음 사용자에게 10% 할인을 적용하고 다시 5% 부가가치세를 추가한다. 부가가치세율은 다를 수 있지만, 이 예제에서는 5%를 사용한다. 그 결과를 보자면, 이 클래스는 NumberFormat 클래스를 사용하여 결과의 형식을 지정하는데, 이 결과는 통화로 표시되어야 한다.

import java.text.NumberFormat;

public class Calc {

  public static void main(String args[]) {
    double amount = 100.05;
    double discount = amount * 0.10;
    double total = amount - discount;
    double tax = total * 0.05;
    double taxedTotal = tax + total;
    NumberFormat money = NumberFormat.getCurrencyInstance();
    System.out.println("Subtotal : "+ money.format(amount));
    System.out.println("Discount : " + money.format(discount));
    System.out.println("Total : " + money.format(total));
    System.out.println("Tax : " + money.format(tax));
    System.out.println("Tax+Total: " + money.format(taxedTotal));
  }
}

모든 내부 계산에 double 형식을 사용하면 결과는 다음과 같다.

Subtotal : $100.05
Discount : $10.00

Total : $90.04
Tax : $4.50
Tax+Total: $94.55

가운데의 Total이 기대하는 값일 수 있으나, 맨 끝의 Tax+Total 값에서 끝난다. 할인은 $10.01이 되어야 $90.04의 금액을 얻는다. 해당 부가가치세를 추가하고 나면 최종 합계가 1센트 늘어나 있다. 세무 당국은 이 점을 이해하지 못할 것이다. 반올림 오류가 문제이다. 이 반올림 오류를 바탕으로 계산한 것이다. 다음은 형식이 지정되지 않은 값이다.

Subtotal : 100.05
Discount : 10.005

Total : 90.045
Tax : 4.50225
Tax+Total: 94.54725

형식이 지정되지 않은 값을 살펴보자면, 맨 처음 떠오르는 질문은 왜 90.045가 90.05 대신 90.04가 되었는가이다. (즉, 왜 10.005가 10.00으로 반올림되는가?) 이는 소위 RoundingMode에 의해 제어되는데, 이는 Java SE 1.6에 도입된 계수법으로서 이전 릴리스에서는 그러한 제어가 없었다. 통화를 위해 도입된 NumberFormat은 기본 반올림 모드가 HALF_EVEN이다. 즉, 남은 값이 등거리(equidistant)이면 짝수 쪽으로 라운딩된다. 이 계수법에 대한 Java 플랫폼 설명서에 따르면, 통계상 이 방법은 여러 차례의 계산을 거친 후 누적 오류를 최소화한다.

RoundingMode
계수법에서 사용 가능한 또 하나의 모드는 다음과 같다.

  • CEILING 항상 양수 무한대로 라운딩한다.
  • DOWN 항상 0으로 라운딩한다.
  • FLOOR 항상 음수로 라운딩한다.
  • UP 항상 0으로부터 벗어나서 라운딩한다.
  • HALF_DOWN 항상 가장 가까운 인접 수로 라운딩한다. 단, 두 인접 수 모두 등거리라면 버림한다.
  • HALF_UP 항상 가장 가까운 인접 수로 라운딩한다. 단, 두 인접 수가 모두 등거리라면 올림한다.
  • UNNECESSARY 라운딩할 필요 없이 정확한 결과를 선언한다.

이 문제의 해결 방법을 알아보기에 앞서, 약간 다른 결과를 살펴 보도록 한다. 70센트로 시작하고 할인이 없는 경우이다.

Total : $0.70
Tax : $0.03

Tax+Total: $0.74

70센트 거래의 경우, 단순히 라운딩 문제가 아니다. 형식 지정 없이 값을 보자면 다음과 같다.

Total : 0.7
Tax : 0.034999999999999996

Tax+Total: 0.735

부가가치세인 0.035는 double로 저장할 수 없다. 즉, 이진 형식에서 double로 표현할 수 없다.

BigDecimal
클래스는 float 및 double을 사용하는 부동 소수점 연산에서 생기는 문제 몇 가지에서 도움이 된다. BigDecimal 클래스는 사실상 무제한적인 정밀도로 부동 소수점 숫자를 저장한다. 이 데이터를 다루기 위해 add(value), subtract(value), multiply(value) 또는 divide(value, scale, roundingMode) 메소드를 호출한다.

BigDecimal
값을 출력하려면 setScale(scale, roundingMode)로 단위 및 라운딩 모드를 설정하거나 toString() 또는 toPlainString() 메소드를 사용한다. toString() 메소드는 과학적 표기를 사용할 수 있지만, toPlainString()은 그렇지 않다.

BigDecimal
을 사용하도록 프로그램을 변환하기 전에 그 생성 방법을 확인하는 것이 중요하다. 이 클래스에는 16개의 구성자가 있다. BigDecimal의 값을 double과 같은 primitive 객체에 저장할 필요는 없으므로 String으로부터 BigDecimal 객체를 만드는 것이 가장 좋다. 이 오류를 보여 주기 위해 간단한 예제를 소개한다.

  double dd = .35;
  BigDecimal d = new BigDecimal(dd);

  System.out.println(".35 = " + d);

예상했던 출력이 아닐 것이다.

  .35 = 0.34999999999999997779553950749686919152736663818359375

그보다는 여기서 보여주는 것처럼 string "35"를 직접 사용하여 BigDecimal을 만들어야 한다.

  BigDecimal d = new BigDecimal(".35");

그 결과 다음과 같은 출력을 얻는다.

 .35 = 0.35

값을 생성한 후 숫자의 단위와 라운딩 모드를 setScale()을 사용하여 명시적으로 설정할 수 있다. Java 플랫폼의 다른 Number 하위 클래스와 마찬가지로, BigDecimal은 변경할 수 없다. 따라서 setScale()을 호출할 경우 반환 값을 "저장"해야 한다.

  d = d.setScale(2, RoundingMode.HALF_UP);

BigDecimal
을 사용하여 수정된 프로그램은 다음과 같다. 계산마다 또 다른 BigDecimal을 사용하고 그 단위를 설정해야 달러 및 센트에 대한 수학 연산이 수행된다. 분할 페니를 사용하려는 경우 단위에서 3개의 소수 자리로 갈 수도 있지만, 꼭 그럴 필요는 없다.

import java.math.BigDecimal;
import java.math.RoundingMode;


public class Calc2 {
  public static void main(String args[]) {
    BigDecimal amount = new BigDecimal("100.05");
    BigDecimal discountPercent = new BigDecimal("0.10");
    BigDecimal discount = amount.multiply(discountPercent);
    discount = discount.setScale(2, RoundingMode.HALF_UP);
    BigDecimal total = amount.subtract(discount);
    total = total.setScale(2, RoundingMode.HALF_UP);
    BigDecimal taxPercent = new BigDecimal("0.05");
    BigDecimal tax = total.multiply(taxPercent);
    tax = tax.setScale(2, RoundingMode.HALF_UP);
    BigDecimal taxedTotal = total.add(tax);
    taxedTotal = taxedTotal.setScale(2, RoundingMode.HALF_UP);
    System.out.println("Subtotal : " + amount);
    System.out.println("Discount : " + discount);
    System.out.println("Total : " + total);
    System.out.println("Tax : " + tax);
    System.out.println("Tax+Total: " + taxedTotal);
  }
}

여기서는 NumberFormat이 사용되지 않았다. 하지만 통화 기호를 보여주고 싶다면 다시 추가할 수 있다.

이제 프로그램을 실행하면 훨씬 나은 계산이 수행된다.

Subtotal : 100.05
Discount : 10.01

Total : 90.04
Tax : 4.50
Tax+Total: 94.54

BigDecimal
은 이 예제에서 보여준 것보다 더 다양한 기능을 제공한다. 정수를 사용하는데 무한대의 정밀도가 필요한 경우를 위한 BigInteger 클래스도 있다. 두 클래스에 대한 Java 플랫폼 설명서에서는 단위, MathContext 클래스, 정렬 및 동등(equality)에 대한 정보를 비롯하여 이 클래스와 관련된 자세한 내용을 확인할 수 있다.

저자 JZ Ventures사의 사장 겸 대표 컨설턴트 John Zukowski

2007/08/30 16:00 2007/08/30 16:00
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

용인 스피드웨이 다녀왔습니다.

예~ 어제는 무지막지하게 찌는 날이었습니다.
지난주에 직장 동료 중 하나가 스피드웨이 입장권이 생겼다고 가 볼 것을 적극적으로 권유해
다녀오게 되었습니다. 용인 에버랜드 쪽으로 가보는 것도 햇수로 2년은 넘은듯합니다.

사진찍는 사람들도, 행사 진행원들도, 레이서도 힘든 하루였을 겁니다.

이번 행사장에서의 수확이라면 레이싱 모델이 아닌 아마추어 보드팀의 퍼포먼스를 볼 수 있었다는 것입니다.
아마추어팀이라고 자신을 소개 했는데 활동명이나 연락처를 못 받아온 게 내심 아쉽네요.











곡 : Soda Love by SHK

minolta @7, 100-300apo, fuji pro 160s
2007/08/27 12:29 2007/08/27 12:29
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다
  1. 2007/08/29 22:51
    포토 에세이 찍는 법... Tracked from 요지경 세상, 즐거운 하루.