이런 저런 생각2009. 3. 21. 22:26

2004년 겨울에 그 강풍을 맞아가며 가봤던 그랜드 캐니언에 대한 책이  드디어 우리나라에도 번역되어 나왔네요.

같이 간 사람들이 하나씩 다 사서 기념품 가게에 남은 마지막 책을 들고 오게 되어서 뜻 깊었는데 ㅎㅎ


그랜드 캐니언 상세보기


저 지층이 어떻게 생겼을까 마냥 신기했었는데, 박사님의 설명과 함께 사층리가 쌓이는 실험을 봤을 땐 얼마나 놀랐었는지 모릅니다.

20m의 사층리가 쌓이기 위해선 100m의 높이 물이 흙을 빠른 속도로 운반해야 하고,

저정도 높이의 지층이 쌓이는데 필요한 물이 있던 사건은 무엇일까요?

책에 기록된 사건으로는 유일한 사건은 노아의 홍수밖에 없습니다.

그 물들이 빠져나갈 때 생기는 엄청난 계곡. 그 그랜드 캐니언을 눈으로 보고, 그 과정들을 과학적 실험과 함께 볼 수 있다는 것이 더 놀라왔습니다.
Posted by net4all
이런 저런 생각2009. 3. 7. 18:40
상식 밖의 경제학
카테고리 경제/경영
지은이 댄 애리얼리 (청림출판, 2008년)
상세보기


나오자 마자 아마존에서 1위를 했던 책이란 딱지가 붙어있고, 또 하나의 보이지 않는 힘을 설명하는 책이라고 광고하고 있는 책입니다.

우리가 속고 있는 낱낱이 파헤쳐주겠다는 의도가 담겨있지만, 이 책이 과연 앞으로 속지 말라는 주의가 담긴 책일까요?

읽으면서 과연 이런 것들을 사람들이 모르고 있을까? 하는 생각이 들었습니다. 경제학에 관심을 갖고 있는 사람이라면 대부분 알만 한 것들이고, 그쪽 분야와 관계가 없는 사람이라 할지라도 어렴풋이 알만 한 내용입니다.
오히려 너무 앞서가는 내용이라면 '잘 만들어졌지만, 너무 시대를 앞섰다'라는 말을 들으며 사장되는 것이 보통이기에 이런 저런 내용에 어느 정도 노출된 네트워크가 발달한 시대이었기에 막연하게만 알고 있던 내용을 책 한 권에 잘 정리해 주었기에 인기를 끌었던 것 같습니다.

그렇다면 그렇게 대단하게 행동을 바꾸지 못한 다면 이 책의 또다른 의미는 무엇일까요? 마케팅이 속이기 위해서 있는 것이 아니라 어떻게 하면 상품의 의도를 사용자에게 잘 전달할까를 연구하는 것인 것처럼, 사용자에 친숙하게 다가가는 방법을 풀어쓴 책이 아닐까요?

또 하나의 설득의 심리학에 관한 책이 아닐까 합니다.

책 내용 중에 꽁짜에 대한 얘기가 있는데 1달러짜리를 꽁짜로 팔면 그것보다 옆의 물건의 할인되어서 받는 이익이 더 큼에도 꽁짜가 팔리는 현상이 나타난다고 비합리적인 선택이라고 설명한 부분이 있습니다.
다른 곳에서는 손해에 대한 두려움이 있기에 꽁짜를 좋아한다는 말을 하면서도 왜 위의 예와는 연결을 시켜서 설명을 안 한 것이 아쉬운 부분입니다.

두려움이라던가 심리적인 부분은 숫자로 나타내기 힘들기 때문이겠죠? 이런 걸 생각해서 다시 계산해 보면 옆 물건이 할인폭이 더 커서 손이 간 사람도 실제로는 필요한 것이 아닌데 산 충동구매였다던지, 내가 필요한 것과는 달라서 결국 못 쓰는 물건이었다는 경우가 있어서 이쪽을 선택하지 않은게 합리적인게 될 수도 있습니다.
(미국의 경우 필요한 물건이 아닐 경우 다시 반납할 수 있는 경우가 있어서 상황은 또 달라지지만요. 심한 경우 한참동안 냉장고 잘 사용하다가 이거 내가 원했던 게 아니라고 반납해 가는 사람도 있습니다 ㅡㅜ)

오히려 옆의 물건이 싸보이는데도 충동구매를 안 하고, 그냥 꽁짜 제품을 맛보는 것으로 유혹을 이긴 사람이 멋진 사람이 될 수도 있습니다. ㅎㅎ

.....

위의 얘기도 논란을 삼으려면 다양한 경우가 있으니까 작가도 알았겠지만 들고다니기 힘든 두꺼운 책을 만들 수는 없고 또 많은 경우를 다루기 보다는 재미있는 일부분만 다루어서 관심을 끄는 것이 경제적이기에 그런 선택을 했을 겁니다.
어찌보면 짧은 지면에 눈길을 끌 수 있는 것들을 잘 보여준 능력이 대단한 거겠죠?


Posted by net4all
웹 개발2009. 3. 5. 16:40

iBatis를 사용해서 구문을 만들 때 흔히 걸리는 것이 where title like "#title#%" 와 같은 구문을 적으면 에러를 발생한다는 것일 겁니다.

메뉴얼을 참고로 해서 where title like "$title$%"를 이용하면 title property가 저 자리에 그대로 치환되면서 사용할 수 있기는 합니다. 그런데 말 그대로 치환되는 것이기에 SQL injection 공격으로 인한 위험도 있습니다.

그래서 다른 방법으로 쓸 수 있는 것이 concat으로 프로퍼티와 %를 합쳐서 집어넣는 것입니다.

where title like concat ( #title# , '%' )

라고 적어주면 처음에 나온 의도했던 구문처럼 작동합니다.


참고로 실제로 SQL 구문이 어떻게 들어가고 있는지 보려면 log4j에서 java.sql을 DEBUG로 찍어보면 됩니다. Dynamic SQL을 사용할 때 제대로 작동하는지 확인할 때 변합니다.

log4j.properties 파일 안에

log4j.logger.com.ibatis=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG


위와 같이 적어주면 관련된 명령 등을 대부분 볼 수 있을 겁니다.
SQL 쿼리문 관련해서는

log4j.logger.java.sql=DEBUG


이렇게 한 줄만 적어주어도 되고요.

위와 같이 찍어보면 #title#은 prepared statement에서 ?로 들어가고, $title$의 경우는 그 값이 그대로 치환되어서 들어가는 것을 확인할 수 있습니다.


Dynamic SQL 사용해보면 XML의 중첩 기능을 사용해서 다양한 구문을 만들어 낼 수 있는게 재미있습니다 :)

Posted by net4all