JUNG규봉 KIM혜미



잘사는 집의 자식들 같은데

현대에 이르러서 이런일이 시끄러워질뿐

예전부터 이런 일들은 널리고 널렸지


잘사는 집 남자들의 대부분은 아니고 소수겠지만
(물론 잘살지 못하는 남자들도 해당되지만 그쪽이 오히려 더 순수한 남자들이 많다)

워낙에 여자가 주위에 많이 꼬여

여자를 일종의 놀이로 생각하는 경향이 있어 이렇게 되는 것 같다.


만약 조금이라도 보통사람들 처럼 연애를 했다면

결혼이란걸 하기전에

다른 여자로 마음이 바뀌었을때 그때 헤어졌겠지.



아마 못 헤어진건 육체때문에

혹은

정말 진정으로 사랑했던가


둘 중 하나일 것이다.


뭘까
~/.vimrc를 다음과 같이 설정하면
파일을 utf-8 혹은 euc-kr의 타입에 맞게 open하고 그것에 맞게 저장한다. 아주 유용함.


set nu
set smarttab
set smartindent
set showmatch
set tabstop=4
set ts=4
set sw=4
syntax on

if v:lang =~ "^ko"
  set encoding=cp949
  set fileencodings=utf-8,cp949
  set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-*
elseif v:lang =~ "^ja_JP"
  set fileencodings=euc-jp
  set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*
elseif v:lang =~ "^zh_TW"
  set fileencodings=big5
  set guifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0
elseif v:lang =~ "^zh_CN"
  set fileencodings=gb2312
  set guifontset=*-r-*
endif
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
  set encoding=utf-8
  set fileencodings=utf-8,cp949
endif


set backspace=eol,start,indent

filetype on

set background=dark

colorscheme evening

set nobackup












































































































































































































































































































































































































































java.math.BigDecimal

| 1 Comment | No TrackBacks

java.math.BigDecimal의 바른 사용에 대해서-2


또 쏘장입니다.

 

이전 글에서도 언급을 했지만 개발시 계산을 할 때 보통 primitive date type을 사용해서 계산을 하고, 아주 정확한 계산을 할 때 java.math.BigDecimal을 사용한다고 했습니다.

오늘도 정확한 계산을 위해 사용하는 BigDecimal을 잘 못 사용하고 있는 경우를 발견해서 이전글과 연결하여 포스팅 해봅니다.

 

만일 다음과 같은 값이 있다고 가정을 하고 나누기를 해봅니다.

double d1 = 1.0;

double d2 = .3;

 

d1 / d2 ==> 3.3333333333333335라는 결과가 나옵니다.(이건 제 노트북에서 나온 값이구요. 다른시스템 다른 OS에서는 다른 값이 나올 수도 있습니다.)

이상 없군요. ^^;

 

이제 동일한 값을 BigDecimal로 처리해봅시다.

BigDecimal b1 = BigDecimal.valueOf(1.0);

BigDecimal b2 = BigDecimal.valueOf(.3);

 

b1.divide(b2);

==> java.lang.ArithmeticException을 토해내는군요. (Non-terminating decimal expansion; no exact representable decimal result.)

이유는 계산에 끝이 보이지 않기 때문이라지요. 3.33333333333333333333333333333.....이 무한으로 나가는 경우입니다.

이런 경우가 자주 발생하지 않는 경우라도 한 번 발생하면 대책이 없지요. 소위 말하는 "시.한.폭.탄"이라고나 할까요.

 

오늘 발견한 잘 못 사용한 예도 바로 이 경우였습니다.

어 쩌다 한 번 나올까 말까한 로직에서 나와버린 거지요. ^^;

 

그러면 어떻게 하면 될까요.

BigDecimal을 사용해서 나누기(java.math.BigDecimal#divide())를 할 때는 반드시 소수 몇 째자리까지 계산을 할 것인지 지정을 해주어야 합니다.

 

아래와 같이 말이지요.

b1.divide(b2, MathContext.DECIMAL32); 처럼요.

MathContext에는 static으로 DECIMAL32,64,128이 선언이 되어있고 정밀도는 32-7, 64-16, 128-34로 지정이 되어있습니다. 만일 그 이상의 정확도를 요하는 경우라면 직접 new MathContext(256)처럼 정밀도를 지정해주시면 됩니다.

 

BigDecimal을 이용한 나누기 얘기가 나온김에 나누기에 관한 method도 한 번 살펴봅시다.

  • b1.divide(b2, BigDecimal.ROUND_HALF_UP);
    이경우는 수수자리는 버려진다고 보시면 됩니다. round mode는 BigDecimal의 상수를 참조하세요.
  • b1.divide(b2, RoundingMode.HALF_UP);
    RoundingMode enum에서 사용하는 상수는 BigDecimal에 정의 된 상수와 같습니다. 살펴보니. HALF_UP(BigDecimal.HALF_UP)으로 되어 있더군요.
  • b1.divide(b2, MathContext.DECIMAL32);
    정밀도를 계산결과 소수 6자리로 지정한 경우입니다. 이 경우는 3.333333이 나오겠지요.
    정밀도는 이전에 언급 된 내용을 참고하세요.
  • b1.divide(b2, new MathContext(256));
    이 경우는 정밀도를 직접 지정한 경우입니다.
  • b1.divide(b2, 16, BigDecimal.ROUND_HALF_UP);
    이 경우는 소수 16자리까지 scale을 하는 경우입니다. 소수 17자리에서 반올림됩니다.
  • b1.divide(b2, 16, RoundingMode.HALF_UP));
    위의 경우와 같습니다. 다만 rounding mode를 enum으로 사용하고 있을 뿐입니다.

이상으로 java.math.BigDecimal#divide()에 대해 살펴보았습니다.

 

뭐든지 잘 쓰면 약이 되고 잘 못 쓰면 독이됩니다.

항상 명심하시고 개발해주시길 바랍니다.

오늘도 즐거운 하루 보내시길...

이상 쏘장이었습니다.



[출처] java.math.BigDecimal 의 바른 사용에 대해서-2|작성자 아론

늘 이야기 했지만 무척 쉽다.


MTOS-4.34-en.zip

위 파일을 받아서

./tmp로 들어가 압축풀고

unzip MTOS-4.34-en.zip

블로그를 설치한 폴더 (../mt/)에 덮어 씌우면 끝.

cp -a ./MTOS-4.34-en/* ../mt/



조선 건국 이래로 600년동안 우리는 
권력에 맞서서 권력을 한번도 바꿔보지 못했다. 



비록 그것이 정의라 할지라도, 
비록 그것이 진리라 할지라도, 
권력이 싫어하는 말을 했던 사람은, 
또는 진리를 내세워서 권력에 저항했던 사람들은 
전부 죽임을 당했고, 
그 자손들까지 멸문지화를 당해 패가망신 했다... 



600년 동안 한국에서 부귀영화를 누리고자 하는 사람은 
모두 권력에 줄을서서 손바닥을 비비고 머리를 조아려야 했다. 



그저 밥이나 먹고 살고 싶으면, 
세상에서 어떤 부정이 생겼어도, 
어떤 불의가 눈앞에서 벌어지고 있어도 
강자가 부당하게 약자를 짓밟고 있어도 
모른척하고 고개숙이고 외면했습니다. 
눈감고 귀를 막고, 비굴한 삶을 사는 사람만이 
목숨을 부지하면서 밥이나 먹고 살 수 있었던 우리 600년의 역사 



제 어머니가 제게 남겨줬던 저희 가훈은 



"야 이놈아, 모난 돌이 정 맞는다. 계란으로 바위치기다. 바람 부는 대로 물결 치는 대로 눈치 보며 살아라" 



80년대 시위하다 감옥 간 
우리의 정의롭고 혈기 넘치는 젊은 아이들에게 
그 어머니들이 간곡히 간곡히 타일렀던 그들의 가훈 역시 



"야 이놈아 계란으로 바위치기다, 그만둬라, 너는 뒤로 빠져라" 



이 비겁한 교훈을 가르쳐야 했던 우리의 600년 역사, 
이 역사를 청산해야 한다. 
권력에 맞서 당당하게, 권력을 한번 쟁취하는 
우리의 역사가 이뤄져야만이 



이제 비로소 우리 젊은이들이 떳떳하게 정의를 얘기할 수 있고, 
떳떳하게 불의에 맞설 수 있는 새로운 역사를 만들어 낼 수 있다. 



- 故 노무현 대통령 대선출마 연설 中 -

...


정권 끝날 때쯤 아예 'MB 정권 흑서'를 하나 써야겠어요. 노대통령 수사, 용산 참사, 방송장악, 언론인 탄압, 미네르바 사건과 네티즌 탄압, 정관용, 손석희, 김제동, 윤도현 등 방송인들 퇴출 사건, 인터넷 포털 사이트에 대한 정권의 압력, 박원순 변호사를 비롯한 시민단체들에 대한 보이지 않는 탄압들, 문화예술계에서 유인촌이 완장 차고 저지른 야만적 행위들, 지금 학계에서 일어난 황당한 사건들. 이 저질 정권이 저지른 수많은 만행들을 일목요연하게 정리해 후세에 남길까 합니다.

 

ps.

 

멀쩡히 하기로 했던 초청강연이 취소되는 것이야 작년부터 익숙한 일상의 풍경이 되어버린 느낌이 있고.... 어디 강연을 갔더니, 세상에, 이번엔 보안과에서 찾아오셨더군요. 대한민국 경찰들, 왜 갑자기 문화예술에 그토록 관심이 많아졌는지.... 21세기에 무슨 통치를 이렇게 저질스럽게 하는지, 상대해주기도 뭐 하네요.  하여튼, 그래서 투표를 꼭 해야 합니다.

MB의 방송특보 김인규씨가 KBS 사장 임명

김인규 KBS 신임 사장이 취임 이틀 만에 자신의 측근으로 알려진 사내 간부들을 비서실장과 인력관리실장으로 기용하는 '친정' 인사를 단행했다.

 

[TV중앙일보] 최악의 방송 `PD수첩`...막말 `세바퀴`·시청자 우롱 `미수다`


한상률 전 국세청장(56)이 태광실업 세무조사 상황을 청와대에 실시간으로 직보했다는 의혹이 제기됐다.

안 국장측 "한상률, 박연차 세무조사 靑 보고 목격"

미술품 강매 혐의로 구속된 국세청 안원구 국장.


091125_7_1.jpg