- 네이버 OpenAPI 공식 까페(새 창으로 열기)에 포스팅 한 글 입니다.


안녕하세요?

웹에이전시에 몸담고 있는 평범한 개발자 입니다.

몇달전 쯤 관리하는 사이트에 naver open api로 검색기능을 추가하는 작업이 있었습니다. 기획팀장님께서 이런 매쉬업류 서비스에 관심이 많으셔서 개발에 들어가기 전 선행 되어야 할 작업은 미리 선행이 되어 맘편하게 개발을 했었습니다. (오픈api와 제휴 등)

개발 자체는 어려운게 아니었으나 이상하게 생각치도 못한 문제들이 많이 튀어 나왔었드랬죠.그 중 가장 크리티컬했던 두 문제에 대한 에피소드와 해결 방법을를 다루고자 이렇게 글을 씁니다.


1. 인코딩 문제


개발에 착수하여 작업물들을 개발서버에서 작업 후 실서버에서 테스트 해보려고 업로드 한 뒤 검색을 해 보았습니다. 헌데, 정상적인 결과물이 아닌 이상한 결과물들이 화면을 덮고 있었죠..

가 령, '컴퓨터' 라는 키워드로 검색을 했다면 '컴퓨=0' 이런 식으로 검색이 되는겁니다. 이상하다 싶어 다른 단어로 검색을 했는데 전부 비슷한 패턴으로 검색이 되는것이었죠. 혹시나 해서 영문으로 검색을 해 보았더니 잘 되는겁니다.(패턴이 비슷했던걸 보아하니 URL에 파라메터로 물고가는 녀석들이 겹쳐서 저런 문제가 생긴 듯 합니다.)

며칠있다 오픈인데 이런 황당한 문제를 겪게 되어 다급해지기 시작했고, 쓸 수 있는 방법을 총 동원해 보았지만 해결책은 쉽사리 나오지 않더군요. 혹시나 하는 생각에 헤더의 contenttype, 파일 자체 인코딩방식, 코드페이지 등..별의별짓을 다했으나 먹히지 않더랍니다.

그 러다 불현듯 UTF-8로 문자를 변환해서 쿼리를 날리자 라는 생각에(레퍼런스에 명시되어 있었지만 query=컴퓨터 로 해도 결과가 나왔었어서orz) 케릭터셋을 좀 팠습니다. 헌데 이거 변환 해주려면 아스키코드 패턴에 정규식도 알아야될 것 같고 시간적으로 여유가 없어서 컴포넌트를 찾던 도중 아주 훌륭한 컴포넌트를 발견하여 해결을 보았습니다.(asp는 이럴때 참 우울하더라고요..php만 봐도 기본적으로 지원해 주는 함수가 수두룩한데 asp는 거의 만들어서 써야 한다는..-_-)

URLTools.asp 라는 컴포넌트 입니다.
출처 : http://www.egocube.pe.kr/

사용법은 간단합니다. 우선 URLTools.asp를 인클루드 하고 URLEncodeUTF8(query) 쓰면 끝..;

입력 받을 쿼리가 간단하게 URF-8로 인코딩되어 날라가서 정상적인 결과물들이 반환되는 모습을 보고 훈훈함과 동시에 제작하신 분께 감사한 마음을 느꼈죠..ㅎㅎ


2. 이미지 깨짐 문제


오픈 며칠 전 이것 저것 테스트를 해보던 도중 특정 검색어 검색 시 이상하게 이미지중 일부 혹은 대부분이 깨지는 문제를 겪게 되었습니다.

이건 도대체 뭘까 하고 이 까페에도 질문을 올렸던 기억이 납니다만, 당시에 asp로 개발하시는 분들은 별로 없었는지 뚜렷한 해결책을 찾지 못했었습니다. 그 중 ones100라는 분이 리플을 남겨 주셨었는데 php의 경우 fopen() 함수를 쓰면 된다고 하셔서 냅다 fopen 함수를 파 보니 스트림으로 파일을 데려오는 녀석이더군요.

저는 회심의 미소를 지으며 adodb.stream을 떠올렸습니다. 이놈은 로컬 경로만 지원할거란 자명한 사실을 망각한채 코드 몇줄 짜놓고 보니 아뿔싸.. 외부 url은 불러오지 못하는 거였죠..

키보드 던졌습니다.

밖에 나가서 담배 한대 물고 고민 하던 중 황당한 방법이 머릿속에 떠올랐습니다. XMLHTTP로 데려와서 binarywrite로 하면 될까? 라는 생각에 냅다 자리에 않아서 코딩했습니다. 그때 코딩한게 이겁니다.

<%
URL = request.querystring("url")
Response.ContentType = "image/jpeg"
Set xmlHTTP = Server.CreateObject("Microsoft.XMLHTTP")
xmlHTTP.Open "GET", URL, false
xmlHTTP.Send(null)
response.BinaryWrite xmlHTTP.ResponseBody
Set xmlHTTP = nothing
%>

이 놈을 서버에 올리고 기존 <img> 태그에 다이렉트로 물려 있던 url을 저 파일에 태워서 돌려 보았습니다. 수도 없이 엑박을 외쳐대던 이미지가 주루룩 뜨는겁니다. 탄성과 환호를 외쳐대다가 과장님한테 한소리 들었던..흠흠; 아무튼..-_-; 이렇게 해결을 보게 되었습니다.

오랜만에 들어와서 요런 글 남기자니 쑥쓰럽네요..ㅎㅎ 사실, 언젠가는 쓰려고 했었는데 여차저차 핑계로 요까지 미루게 되었네요. 근무중이긴 하지만..-_- 삘 받을때 삘 받은 일을 해야 직성이 풀리는 성격이라..-0-;

그럼, 많은 분들께 도움 되길 바랍니다. 화이팅~


P.S : 첨부한 URLTools.asp에 UTF-8인코딩 외에 디코딩 및 일반 URL엔코딩/디코딩 함수도 포함되어 있습니다..

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 마르도르

2008/08/12 10:21 2008/08/12 10:21
, , , , , , , , ,
Response
A trackback , 2 Comments
RSS :
http://www.saystone.com/tc/rss/response/14

Trackback URL : http://www.saystone.com/tc/trackback/14

Trackbacks List

  1. Ambien cr color.

    Tracked from Ambien. 2009/10/19 21:07 Delete

    Will ambien show up in a urine test.

Comments List

  1. 봄돌 2009/07/20 17:14 # M/D Reply Permalink

    예전에 저런 함수를 썼었는데 보관을 안했더니
    다시 찾으려니 힘드네요.
    정말 어렵게(한 1시간 정도 걸려서) 찾았습니다.
    덕분에 한 건 해결했습니다.
    고맙습니다.

    1. 마르도르  2009/08/09 11:43 # M/D Permalink

      도움 되셨다니 다행입니다. :)

Leave a comment
[로그인][오픈아이디란?]
« Previous : 1 : ... 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : Next »