[첫화면으로]Diary/미안해지네

마지막으로 [b]

/미안해지네

예전에 화제가 되었던 YahooPipes를 며칠 전에야 조금씩 끄적거려보고 있습니다. 그러고보니 제가 네이버 웹툰의 RSS가 없을까 해서 [한RSS]에서 검색했더니 누군가 만든 피드가 있던데, 이것도 이 야후파이프를 사용해서 만들었나보더라고요.

그런데 최근에 그 피드가 잘 동작을 안 하는 것 같고, 다른 웹툰들의 RSS도 있으면 좋겠다 싶어서 뒤져보다가, 결국 '에잇 뚝딱거려 만들어보자'가 되었습니다.

예전에 KPUG이나 Clien의 게시판 RSS를 만들 때는 사실 정말 고역이었거든요. 글목록 페이지의 html소스를 읽어들여서 개별 글들의 링크와 작성자, 작성시각 등을 정규표현식을 사용하여 뽑아내야 하는데... 예전에 디자인된 게시판들은 "table 속의 두번째 컬럼 안에 있는 table 속의 table 속의 세번째 컬럼이 글제목" 이런 식이라서1 -ㅅ-;;; 게다가 각 태그에 고유한 id가 붙어있다거나 하다못해 class지정이 되어 있다면 그런 표식을 검색하여 원하는 부분을 찾아낼텐데, 그런 것도 없이 죄다 style 속성을 직접 태그마다 지정을 하고 있는 경우가 많더군요.

그래서 어떻게 해야 했냐 하면, 일일이 숫자를 세어가면서 더듬어가야 했습니다:
  • "<table" 찾고, "<td" 찾고, "<td" 찾고, "<table" 찾고 "<table" 찾고, "<td" 찾고 "<td" 찾고 다음 "<td"를 찾아라. 찾았으면 그 태그부터 "</td" 까지가 글제목
  • 다시 "<td" 찾고 "<td" 찾고 "<span" 찾은 후 "</span" 태그까지가 작성자
  • 다시 무슨 태그 찾고 태그 세 개 스킵하고 다음 태그 안에 들어가는게 작성시각

따라서 일단 이렇게 검색하는 과정을 수행하는 Perl 코드 자체가 지저분해지고, 만일 웹페이지 디자인이 조금이라도 달라지면 추출이 제대로 되지 않으니 다시 손을 봐야 하는데, 코드가 지저분하니 손보기도 어려워지고... 외줄 위에서 자전거 타는 것 같이 아슬아슬하게 굴러가고 있는 프로그램이 되는 거죠.

그런데 웹툰 사이트들, 특히 포털 사이트의 웹툰 서비스 페이지에 가서 html 소스들을 보면, 비교할 수 없이 깔끔하게 되어 있는 겁니다:
  • 태그에 고유한 id가 붙어 있어서 원하는 영역만 잘라내기도 쉽고 - "<div id='list'"와 "</div" 사이가 목록이 있는 영역
  • 아예 각 영역의 시작과 끝에 적절한 주석이 들어가 있어서 간단히 주석만 찾으면 되기도 하고 - "<!-- 목록 시작 -->"부터 "<!-- 목록 끝 -->"까지가 목록
  • id나 class 속성이 잘 지정되어 있어서 필요한 항목도 쉽게 찾을 수 있고 - "<div id='title'"과 "</div" 사이가 글제목, "<span class='date'"와 "</span" 사이가 작성일자

아니 이렇게 감사할데가...

그래서 아주 수월하게 여러 웹툰 사이트들의 RSS를 만들어낼 수 있었습니다. 아마 프로그래밍을 전혀 못해도, html 태그 중 중요한 것 몇 개의 의미만 알 수 있다면 [feed43] 같은 서비스를 사용해서 아주 쉽게 RSS를 만들어낼 수 있을 것 같더군요.

감사하긴 한데... 생각해보면 그런 사이트들 입장에서는 웬만하면 대문으로 들어와서 만화 서비스로 들어가고, 업데이트된 만화 뿐 아니라 전에 봤던 만화라도 다시 한 번 더 클릭하고 하면서 조금이라도 더 광고에 노출되는 횟수가 늘기를 바랄 거란 말이죠. 그래서 그런 서비스에 RSS 같은 걸 제공하기도 쉽지 않았을테고 말이죠. 기술적으로 어려울 것도 없는데 많은 포털들이 카툰RSS를 제공하지 않는 이유가 달리 있겠습니까. :-D (그런 의미에서 daum은 작품별로 RSS를 제공하고 있어서 박수를 쳐주고 싶음)

요컨데, 웹 표준을 준수하고, table을 남발하지 않고, 태그에 id나 class를 적절히 부여하고, 스타일쉬트를 잘 사용하고, 적절하게 주석을 달아주면서 깔끔하게 html 코드 구조를 디자인해서 만들면
  • 검색 엔진 입장에서 검색하기도 좋고
  • 스크린 리더 등 장애인을 위한 프로그램 입장에서도 제대로 정보를 읽어서 전달해주기에 좋고
  • 다양한 브라우저에서 제대로 보이므로 사용자 입장에서도 좋고
  • 코드를 유지보수하기고 쉬워지니 해당 업체에서 일하고 있는 웹프로그래머들 입장에서도 좋지만
  • 이렇게 사용자가 긁어가서 자기가 필요한 알맹이만 쏙 집어가기에도 좋아진다
라는 게죠.

왠지 조금, 미안해졌습니다.
-- Raymundo 2009-4-15 11:26 pm

Comments & Trackbacks

먼 말인지는 다 못알아 듣겠으나, 대강 이해한 바로는.. 당신이 미안한게 맞는 군요. ㅎㅎㅎ
그나저나 어제 수고했어요. 오늘은 푹 자고 학교에 가서도 푹 있다가 오세요.
-- Zehn02 2009-4-17 8:00 am

ㅇㅇ 당신도 고생했어요 :-)
-- Raymundo 2009-4-17 11:15 am

Raymundo 님이 미안하셔야 하는거 맞아요. 그러니 밥사세요.(응?)
-- Nyxity 2009-4-18 1:39 pm

한끼 식사 5천원짜리를 포탈의 웹프로그램 담당 직원들 수로 곱하면 얼마죠... 그보다 다 들어갈 식당이 없어서 힘들듯... ( '3')
-- Raymundo 2009-4-18 2:36 pm
이름:  
Homepage:
내용:
 


주인장분류

<<   /학교의웹방화벽3 (2009-04-17)[p]   | /미안해지네 (2009-04-15) |   /순서가헷갈려 (2009-04-10)[n]   >>

Diary

최근 글들

코멘트와 트랙백

옛 글들

  • /Archive - 월별로 한번에 보기
  • /List - 전체 포스트 목록

RSS

주요 페이지

이 홈페이지의 인터위키는 다음과 같습니다.
GyparkWiki  UTF-8
https://gypark.pe.kr/wiki/

각주:
1. 기술적인 얘기지만 정규표현식은 중첩된 구조를 검색하는 건 힘들어서... (div)(div)내용(/div)(/div) 이걸 "(div)부터 (/div)까지 검색해라"라고 하면 "(div)(div)내용(/div)"이렇게 찾아버립니다

마지막 편집일: 2012-2-11 12:25 am (변경사항 [d])
1055 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기