컴퓨터에서 언어를 한다고 하면, 전통적으로 c/c++, java 등은 해야 언어를 한다고 생각하는 경향이 있었다. HTML이라는 것이 초기에 나왔을 때, 사장님을 이해시키는데 약간 시간이 들어간 것을 생각하면, 당시 마크업 랭귀지가 과연 컴퓨터 언어냐부터 출발해서, 사실 언어라는 이름을 가지고 있지만 간단한 표기방법에 대한 것일 뿐이라는 것이 매칭이 안되는 것이 당연했다.

"HTML로 프로그램된 웹사이트", 잘 아는 사람이 보면 영 어색하지 않은가? 그러나 당시 Hyper Text Markup LANGUAGE라는 html을 이해하기에는 전통적인 컴퓨터 언어 사고를 가진 사람으로서는 이해하는 것이 C에서 Java로 가는 거 보다 어려웠을 것이다.

언어라는게 변수, 조건문, 순환문, 함수 이런 것들이 있어야만 언어라 생각할 수 있지만, 사실 SQL도 언어고, Regular Expression도 언어의 일종이고, Lex 등도 언어라 할 수 있다. 나름대로 데이터를 정교하게 필터링하는 기술에 대한 것들이니까.

2년전에 회사에서 개발자의 프로필을 작성한 적이 있었다. 내가 사용할 줄아는 언어에 perl과 php, python을 넣고, 면담하는 과정에서 이런 것들(?)을 넣었냐라고 하시는 말에 살짝 그 분들의 한계를 볼 수 있었다. java나 C# 정도는 있어야했나?

xml을 하다보면, xpath[각주:1]나 xschema[각주:2] 같은 개념들이 몇년 사이에 draft에서 승인된 것을 알 수 있다. 그리고 나름 2.0 까지 스펙이 나온다. 1990년대 말 xml이라는 것이 마크업을 위한 마크업정도로 이해되었을 때는 머리깨져라 html과 비교하면서 이해했지만, 지금은 너무 자연스럽게 새로 태어나는 xml 기반의 포맷들을 반갑게 맞이하게 되었다. xml의 짜잘한 규칙들에 대한 것은 차치하고서라도, 일단 한 번 익숙해지니 상당히 진입장벽이 낮아지는 것을 알 수 있게 되었다.

xml parser가 가져다주는 편리함이 사실 xml이 여러곳에 쓰일 수 있는 매력이 아니었을까?

어제 밤부터 오늘까지 xpath를 통한 xml 문서를 접근하는 것을 어떻게 수정해야할 일이 있었는데, xml의 namespace[각주:3]가 내부 파서에서 어떻게 처리해야 되어야 하는지를 고민하다가 내가 우습게 알고 있는 xpath[각주:4]에게 된통당한 상황이다.

그 옛날 사장님이나 내 프로필 면담을 했던 부장님을 내가 욕할 것이 못된다. 우습게 알고 있는 것에 겸손해야하는 것은 그 이면에 너무 복잡하고 누군가에게는 아름다운 개념들과 연결되어 있는 것을 내가 쉽게 생각하는 것은 잘못된 것일테니까.

xpath는 path라는 것에 아주 쉽게 접근했다가, 굥장히 삽질성 언어로 변질(?)될 싹을 보았다. 고급 SQL문을 누가 쉽게 생각하는 사람이 있나? 물론 xpath를 활용한 것이 sql 수준까지 갈 일은 없어 보인다마는, 지금까지 메인 언어들의 곁다리에 있어왔던 수 많은 중급 수준의 난이도를 가지고 있는 세계에서 한자리 톡톡하게 하고 있을 것 같다. 정규표현식이 그러한 것처럼.

그 만큼 언어들은 그런 것들 풀칠에나 사용되고 프로그래머들은 중급 개념들을 잘 주물러 붙일 수 있는 기술들을 최대한 가져야하는 것 아닐까 싶다.
  1. xml을 파일 경로 처럼 접근할 수 있도록한 규약 [본문으로]
  2. DTD를 대신해서 XML의 구조를 기술하는 규약 [본문으로]
  3. xml의 namespace에는 xml 문서 규칙을 깨뜨리지 않는 범위에서 꽁수 비슷하게 구현되어 들어간 경향이 있다. [본문으로]
  4. 사실 두꺼운 책 한권으로 그 스펙/응용이 설명된다. [본문으로]
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. GNomAGa 2007.07.22 19:15 신고

    어제 캠프에서는 결코 썰렁하지 않았어요. 덕분에 많은 자극이 되었습니다. html은 아직도 언어로 인식이 되지 않고 있는 분위기가 만연하네요.. 엄연한 언어인데... 아마도 웹 페이지를해석할 일이 없는 분들은 HTML을 사용하기 보다 나모나 프론트페이지를 이용하여 웹페이지를 간단하게 제작했기 때문이 아닐까요? 기술이 인식도 변화시키네요..

+ Recent posts