노무현 대통령 배너
BLOG main image
왕미친놈의 왕미친세상입니다. 미친 소리는 써도 되지만, 근거 없는 소리는 쓰면 안 됩니다.


지난 달에 아크로에디트 홈페이지에 들렀다가 URL 강조에 대한 오류를 지적한 글을 보았습니다. 그때 저도 한 가지 벌레를 발견했으나, 한컴오피스2010 베타버전에 대한 버그 리포팅 때문에 올리지를 못하다가 이제야 올립니다.

벌레의 유형

자신이 끼어야 할 곳과 끼지 말아야 할 곳을 제대로 알지 못하는 벌레입니다.

개발자의 답변

2010년 1월 4일 버그 리포팅을 한 상태입니다.

벌레의 발견

아크로에디트 홈페이지에서 URL 인식기능 개선 건의라는 글을 읽고 URL 강조 기능을 시험해 보고 알게 되었다.

아크로에디트 URL 강조 테스트

아크로에디트 URL 강조 테스트

아크로에디트 URL 강조 테스트 그림에는 URL 강조에 대한 여러 가지 상황이 나타나 있습니다.

  • 제1열 : 올바른 URL이며, URL 강조도 정상 작동합니다.
  • 제2열 및 제3열 : URL 인식기능 개선 건의에서 지적했습니다. 올바른 URL이며, URL 강조에서 오류가 있습니다. 이때 물음표(?)는 쿼리(query; 데이터베이스에서의 요청)를 나타냅니다. 그리고 그 뒤에 오는 등호(=)는 쿼리의 물음표와 함께 쓰여 URL을 구성합니다.
  • 제4열 : 올바른 URL이며, URL 강조에서 오류가 있습니다. 마지막 슬래시(/)를 포함해서 URL을 구성합니다. 그러므로 당연히 URL 강조도 마지막 슬래시(/)를 포함해야 합니다.
  • 제5열 : 올바르지 않은 URL이며, URL 강조는 정상 작동합니다. 등호(=)는 물음표(?)과 함께 쓰여 URL을 구성합니다.
  • 제6열 및 제7열 : 올바른 URL이며, URL 강조도 정상 작동합니다. 이때 역슬래시(\ 또는 )는 윈도에서는 경로에 임의로 사용할 수 없는 예약어로서 경로의 구분에만 사용합니다만[각주:1], 유닉스 환경을 바탕으로 한 인터넷에서는 사용할 수 있습니다. 다만 여러 가지 이유로 인터넷에서도 자주 사용하지 않습니다. 따라서 제6열 및 제7열의 URL이 실재할는지는 의문입니다만, 그 형식은 올바릅니다.

그런데 제4열의 오류는 뜻밖이었습니다. 왜냐하면 인터넷에서는 http://www.AcroEdit.pe.krhttp://www.AcroEdit.pe.kr/은 서로 다르기 때문입니다. 물론 그 두 주소가 대부분 같은 대상을 가리키도록 나타나지만, 엄밀히 말해 서로 다르다는 뜻입니다. 그러므로 마지막에 붙은 슬래시(/)를 URL 강조에서 인식하지 못한 것은 뜻밖이었습니다.

벌레의 원인

URL을 인식하는 알고리듬에서 URL의 끝을 인식하는 부분에서 오류가 있지 않나 예상해 봅니다.

비슷한 벌레

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 유닉스에서는 슬래시(/)가 경로를 구분하는 역할을 합니다 [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

티스토리에 주석을 달면 가끔 한 글자씩 빼먹고 나타내는 경우가 있다. 특히 \ 문자(역슬래시)를 나타낼 때 항상 한 글자씩 빼먹고 나타낸다.

벌레의 유형

  • 덧셈을 못하는 벌레이다.
  • 그게 아니라면 자신의 본문을 화면 표시가 아니라 나눗셈으로 착각하는 벌레이다.

벌레의 발견

우연히 주석에 하드디스크 파일의 경로를 나타내다가 발견하였다.
이것은 스프링노트에서 [footnote] 표시를 붙여 나타내어도 나타나면, 티스토리에서 주석을 붙여도 나타났다.

벌레 분석

우선 편집 화면을 보면 다음과 같다.

티스토리 글쓰기(편집) 화면

티스토리 글쓰기(편집) 화면

위에서 보면 각주 부분에 어떤 파일의 경로가 있다. 파일 경로이므로 \ 문자(역슬래시 문자)가 들어가야 한다. 그 부분만 따로 떼면 다음과 같다.

위와 같이 입력했다. 다만 알아보기 쉽게 \ 문자를 자주색으로 나타냈으며, 실제로는 티스토리 글쓰기(편집) 화면처럼 모두 검은색이다.

미리보기를 하면 다음과 같다.

주석(각주)에서 \ 문자(역슬래시)를 나타내는 예제 미리보기

주석(각주)에서 \ 문자(역슬래시)를 나타내는 예제 미리보기

그런데 위에서 보면 조금 이상한 부분이 있다. 일단 그 부분만 떼어 보자.

\ 문자(역슬래시 문자)가 전혀 나타나지 않는 각주 부분

\ 문자(역슬래시 문자)가 전혀 나타나지 않는 각주 부분

무슨 까닭에서인지 \ 문자(역슬래시 문자)를 전혀 나타내지 못하고 있다.

벌레 잡기

내 짧은 지식으로 생각건대, 이것은 C 언어에서 문자열을 나타낼 때와 비슷한 현상이다. 다시 말해 C언어에서 printf 함수로 문자열을 출력할 때 \ 문자를 나타내려면 \ 문자를 1회 입력하면 안 된다. 반드시 2회, 그러니까 \\ 처럼 2회 입력해야 \ 문자를 1회 출력해 준다.

문제는 왜 이렇게 복잡한 방법으로 입력하게 만들었느냐이다. 이런 방식은 컴퓨터를 익숙지 않거나, 컴퓨터 언어(C 언어, 또는 자바스크립트 언어)를 전혀 모르는 사람에게는 꽤 큰 불편을 불러오는 악성 벌레이기 때문이다.

아무튼 이 문제를 해결하려면 \ 문자를 2회 겹쳐서 표기하면 된다.

\ 문자(역슬래시)를 2회 입력한 편집 화면

\ 문자(역슬래시)를 2회 입력한 편집 화면

각주(주석) 부분만 떼어 내면 위와 같다.

미리보기를 하면 아래와 같다.

주석 부분에 파일 경로명이 제대로 나타난 미리보기 화면

주석 부분에 파일 경로명이 제대로 나타난 미리보기 화면

제작자/제공자의 답변

2009년 5월 30일 아침에 오류 보고했다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

카테고리

분류 전체보기 (1005)
스크립트 (22)
벌레와 팁 (126)
소프트웨어 (240)
하드웨어 (6)
이야기 (24)
말의 나무 (506)
미쳐보자 (22)
일기 (48)
아이폰 (10)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

글 보관함