Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

JSP환경에서 AJAX로 파라미터 한글로 보내기

파라미터를 한글로 던지는게 일반적이라고 생각하지는 않지만 어쩔수 없이 그런 상항이 생겼다. DB에는 한글로 들어 있었고 DB수정을 요구할 수는 없는 상황에서 어쩔수 없이 파라미터를 한글로 던져야 했다.

환경은 JSP에 WAS로 Weblogic이 올라가 있었고 AJAX에는 prototype.js를 사용하고 있었다. OS는 AIX와 Windows에서의 테스트 결과 동일했기 때문에 큰 영향은 없을 것이라고 본다. 이렇게 환경을 거론하는 이유는 다른 환경에서 어떻게 돌아갈지 잘 모르기 때문이다.

물론 JSP파일은 euc-kr기반이다. UTF-8로 인코딩된 환경이라면 한글이라고 큰 문제가 생기진 않겠지.... UTF-8로 개발하기가 만만치 않아서 문제이지만......

정확한 문제는 euc-kr로 된 JSP파일에서 AJAX를 통해서 파라미터를 던지는데(GET방식이다.) AJAX는 전송을 UTF-8로 하기 때문에(전혀 없진 않은것 같지만 AJAX통신을 다른 인코딩으로 하는건 만만찮은 일인것 같다.) 요청받은 JSP에서 받은 parameter가 인코딩문제로 읽을 수 없게 되어서 결국 쿼리도 날릴수 없게 된 상황이다.

JAVA에서 getByte로 인코딩을 바꿔보고 별의 별짓을 다해봐도 안되었는데 생각보다 쉽사리 해결했다. 역시 안될때는 동작원리를 잘 고민해봐야하는것 같다...

간단히 봤을때 파라미터를 던질때 UTF-8로 던진다. 이걸 euc-kr로 받는게 문제였는데 JSP인코딩관련해서 올린 포스팅이 있었다. 우린 이걸 묻지마 3줄이라고 부른다.. ㅋ 단순히 여기서 인코딩을 UTF-8로 바꾸어 주었다.


<%@ page contentType="text/html; charset=utf-8" %>
<% request.setCharacterEncoding("utf-8"); %>
<% response.setContentType("text/html; charset=utf-8"); %>

대충보면 알수 있다시피 현재페이지의 인코딩을 설치하고 Requet와 Response의 인코딩을 설정해 주었다. 즉 파라미터를 받을 때 여기서 설정된 인코딩형태로 받는 것이기 때문에 여기서 UTF-8로 설정해서 AJAX로 던진 파라미터를 올바른 인코딩으로 받았다.

이렇게 한뒤에 JSP파일에서는 별다른 인코딩없이 필요한 String을 만들어서 화면에 출력해 주었더니 한글을 포함한 AJAX데이터 전송에 아무런 문제가 일어나지 않았다.


덧) 내가 맡은 부분이 아니어서 처음부터 붙잡고 있었던건 아니지만 해결할때는 꽤 고생했었는데 이렇게 설명하자니 되게 뻔한내용같네.. ㅡ..ㅡ

2008/01/30 02:02 2008/01/30 02:02

구글에 대한 개인적인 생각....

블로깅을 하다보면 구글에 대한 글을 많이 보게 된다. 물론 대다수가 친구글성향을 띤 글이다.(그중에 상당수는 반네이버이다.)

물론 나도 구글을 좋아한다.(네이버를 싫어하진 않는다.) 구글은 웹2.0의 선두라는 위치에 어울리는 기업이라고 생각하고 여태까지 상당히 잘 해왔다고 생각하고 있다. 구글의 새 서비스들을 볼 때마다 깜짝 놀래서 반해버리곤 한다. 구글스토리 책을 읽고 감명도 많이 받았다.

하지만 그건 그거고.... 성격이 까칠한 상태라 확 기울진 않는다. 인터넷의 많은 글들을 보자면 구글을 칭송하는 것 까지만 좋지만 좀 아니라고 생각하는 것도 일단 구글이라는 이름이 붙으면 그냥 넘어가는 경우를 많이 보게 된다. (난 이런걸 그다지 좋아하지 않고 이런 부분은 애플에서도 동일하게 드러난다.) 물론 이런 부분도 어찌보면 브랜드 마케팅의 성공적인 부분이라고 할 수도 있겠다.

하지만 요즘처럼 대다수의 서비스가.. 대다수의 웹이 구글화 되어가는 것은 별로 좋지 않다고 본다. 구글은 자선기업이 아니다. 어찌되었든 수익구조가 필요한 이윤추구 업체이기 때문에 독점화 되어가는 것은 별로 좋지 않다고 생각한다. 개인적으로는 구글이 새로운 MS가 되어가고 있는 건 아닌가하는 약간의 우려가 든다.(우려라고 표현한 것은 완화한 표현이다. 구글이 MS식의 노골적인 의도는 전혀 드러내고 있지 않은게 사실이기 때문에......)

구글의 모토는 "Don't Be Evil" 사악해 지지 말자이다. 래리와 세르게이는 이 말을 구글의 주 사명으로 생각하고 있고 그래서 상당히 고객중심의 서비스를 제공하고 있다. 처음 떴던 구글검색을 보자 구글검색이 가장 인기를 끌었던 것은 깔끔한 인터페이스였다.

수많은 플래시와 광고 사이에 어느게 컨텐츠고 어느게 광고인지 헷갈리는 광고의 홍수에서 살던 우리에게 검색창과 로고만 달랑 떠있고 검색결과는 보기좋게 왼쪽에 배치하고 광고는 잘 보이지도 않게 오른쪽에 배치한 모습은(한참동안 난 거기에 광고가 떠있는 줄도 몰랐다.) 파워유저들에게 칭송받기에 충분했다.

그로부터 수년이 흘렀다. 구글은 과연 사악해 지지 않았는가... 지금의 구글의 광고는 어떠한가... 최소한 예전의 네이버 광고는 네이버만 안들어가면 볼 일 없었다. 참을 수 있으면 네이버 가면되고 그렇지 않으면 네이버 안쓰면 되는거였다...

지금은??

검색엔진은 여전히 그대로지만 대신에 애드센스라는 상당히 혁신적인 아이디어를 통해서 웹전체를 구글광고가 장악하고 있다. 초기 구글의 성공을 이끈 요소중 하나였던 컨텐츠와 광고를 분리함으로써 사용자에게 불편을 주지 않으려고 했던 의도는 어디로 가고 어떻게 하면 컨텐츠와 광고를 섞게 만들어서 클릭효과를 더 높일수 있을까 하는 논의를 하고 있다.(애드센스의 정책변경으로 이탈자가 꽤 생겼지만...) 위에 말한 파워유저들에 의해서......(모두를 지칭하는 건 아니다..)

물론 광고의 배치까지 구글을 탓하기는 어렵지만 그렇다고 구글은 아무 책임이 없다고 할수도 없는 노릇이다.

개인블로거의 수익성에 대해서 까지 머라고 하고 싶지는 않다. 난 애드센스를 달지 않았지만 취미로 또는 좋아하는 일이 수익까지 낳는다면 누구나 좋아할 일이다. 하지만 개인이 자신의 블로그에서 수익을 얻으려고 하는 것은 인정받을 일이면서 네이버나 다른 포털들이 열심히 광고 달던 것은 왜 비난을 받아야 하는가? 오히려 이윤추구를 목적으로 하는 기업이 정당성이 있다면 훨씬 있어보인다. 내가 보이게만 그렇게 보이는가.....(네이버가 욕먹는게 광고 때문만은 아님은 확실하지만 이글에서 그 모든걸 논하고자 하는 것은 아니다. 하지만 포털의 광고게시정책이 상당히 오랫동안 블로거들에게 비난거리였다는 것을 부정할 수는 없다고 본다.)

초기에 왜 구글에 열광했었는지 지금의 구글의 위치를 만든 주 요소가 무엇이었는지를 잊은 것인지 지금의 구글은 온 웹을 애드센스로 덮어버렸다. 구글이 사악해지지 않았다고 할 수 있을까....? 구글은 그냥 기업이다. 자선기업이 아니다. API를 공개하고 하고 무료로 제공하고 하는 것은 사용자들을 좀더 도와주려는 것이 아니라 웹2.0의 시대가 오면서 공유와 참여를 잘 활용하면 엄청난 시너지 효과를 얻을 수 있는 시대가 왔고 이걸 어떻게 활용해야 하는지 제대로 알고 있는 기업중에 하나가 구글일 뿐이다.

머가 선이고 머가 악이란 말인가... 그냥 다들 돈벌라고 열심히 할 뿐이다.

덧) 초기 의도랑 다르게 글의 결론이 좀 애매해졌고 지난번 글과 약간은 이어지는 듯한 느낌도 있지만... 점심시간에 잠시 짬내서 하는 포스팅이라... ㅎㅎㅎㅎ
점심시간이 다 끝났네...
2008/01/29 12:46 2008/01/29 12:46