지난 10월 30일 스프링노트에서 글을 작성하다가 발견한 벌레이다. 웹사이트에 GFDL로 공개된 그림을 불러와서 스프링노트에 저장(외부 이미지를 스프링노트에 저장 옵션)을 지정하려고 했는데, 그만 미리보기에서 그 옵션을 가리는 일이 벌어졌다. 다행히 재현이 가능하여 몇 차례 더 확인하여 지금에야 올린다.

  • 참고 : 이 현상은 파이어폭스 v3.5.4 (2009년 11월 3일 현재 최신 버전)에서 확인하였습니다.

벌레의 유형

  • 파이어폭스를 사용할 때 나 혼자만 잘나면 되고 다른 놈은 제 역할도 못하게 만드는 이기적인 벌레이다.

벌레의 발견

지난 10월 30일 스프링노트에서 글을 작성하다가 외부 이미지를 불러오면서 발견한 벌레이다.

조금 옆으로 퍼진 스프링노트 화면

조금 옆으로 퍼진 스프링노트 화면

내가 자료화면으로 제시하는 800x600 화면으로는 삽입 메뉴와 부가기능 메뉴를 제대로 보여줄 수 없어서 너비를 920픽셀로 조정했다. 아울러 이미지 불러오기를 할 때 이미지 미리보기 기능을 켰을 때 위아래로 가리는 현상을 막기 위해 높이도 720픽셀로 조정했다. 이 현상은 버그가 아니라고 여겨지니 오해 없기를 바랍니다.

이미지 첨부 대화상자

위 그림에서 외부 URL로 첨부하기를 클릭한다.

외부 URL로 첨부하기

외부 URL로 첨부하기

위의 그림이 화면에 나타났을 때 미리보기를 클릭하였다.

불러올 그림 미리보기 화면

불러올 그림 미리보기 화면

위와 같이 미리보기 화면 아래쪽에 대화상자의 다른 내용을 가리는 글을 볼 수 있다. 문제가 되는 부분만 떼어내면 아래와 같다.

위 그림에서 왼쪽 체크박스오른쪽 [삽입] 단추를 가리는 것은 아래와 같은 저작권 보호를 위한 글귀이다.

특히 왼쪽의 체크박스는 잘 클릭이 되지 않아도 가려져서 그런가 보다 생각했지만, 오른쪽은 조금 의외였다. 글씨가 옅은 색이라 가려진 모습이 잘 보이지 않았기 때문이다. 결국 확대해 보니 "삽"자까지는 가려져 있고, "입"자도 일부 가려져 있었다. 처음에 이것을 눈치채지 못한 까닭은 내가 "입"자보다 오른쪽을 클릭했기 때문이리라 추측한다.

해결하기

이 문제에 대한 완전한 해결은 스프링노트 측에서 수정해 주는 방법뿐이다. 다만 그 이전까지 임시로 쓸 수 있는 방법은 그저 사용자가 주의하는 것이다.

우선 이미지 첨부 대화상자를 부른다.

위의 그림에서 자주색 네모로 표시한 부분을 잘 보자. 왼쪽 체크박스에 체크 기호가 되어 있다. 이것을 먼저 체크한 다음에 [미리보기] 단추를 클릭하자.

체크박스가 유지된 화면

체크박스가 유지된 화면

먼저 체크박스를 표시하면 위와 같이 그 체크 기호가 유지된다. 다만 이때 [삽입] 단추의 일부를 가리는 현상은 어쩔 수 없다. 앞서 말했듯이 스프링노트 개발진에서 수정해 주어야 할 부분이기 때문이다.

제작자/제공자의 답변

2009년 11월 3일 오류를 보고한 상태이다.

관련 문서

내부 문서

외부 문서

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


Posted by koc/SALM 트랙백 0 : 댓글 0

들어가며

사용자는 프로그램을 사용하다가 버그가 발생하면 그것을 제작자(혹은 제작사)에 알려주게 된다. 이러한 행위를 버그리포팅(bug reporting; 오류 보고)이라고 하며, 이는 프로그램 수정판(patch version)이나 향상판(upgrade version)에 도움을 주게 된다.

그런데 이러한 버그리포팅을 제작자가 무시하는 경우도 있는데, 이럴 경우 사용자는 불쾌감을 느끼게 된다. 하지만 왜 버그리포팅이 무시되는지는 깊게 생각하지 않는 사람이 많다. 

우선 버그리포팅이 너무 추상적이기 때문에 무시된다. 둘째 재현이 되지 않는 경우에는 무시된다. 셋째로 개발자 측의 정책적인 이유에서 무시되기도 한다. 심지어 답변하는 측의 무지 또는 무성의 때문에 무시되는 일도 있다.

버그리포팅이 무시되는 이유

추상적인 버그리포팅

버그리포팅이 너무 추상적이기 때문에 무시되는 일도 있다. 버그패치를 하려면 구체적인 상황이 제시되어야 한다.

버그는 모든 경우에 발생하는 예는 매우 드물며, 대부분 특정 상황에서 발생하게 된다. 그러므로 버그가 발생한 상황을 구체적으로 기술할 필요가 있으며, 그게 어렵다면 특별한 버그 발생 조건을 명시해야 한다. 그것이 나타나지 않은 버그리포팅은 추상적이라 여겨지고 그 버그리포팅은 무시된다.

개발자 입장에서는 추상적인 상황에 대해 대처할 방법이 없다. 또한 프로그램의 내부 오류가 아닌 이상 버그는 반드시 외부로 표출되어야 하며, 그것은 거의 대부분 특정 조건에 따라 발생하게 된다. 이것은 그 상황을 구체적으로 설명할 수 있음을 나타낸다. 그러므로 반드시 버그가 발견되면 그 상황을 기록해 두어야 자신이 전달한 버그리포팅이 무시되지 않게 된다.

재현 불가

버그리포팅을 하기 전에 자신이 발견한 버그를 재현해 보아야 한다. 자신이 생각하는 그 상황에서 버그가 발생하는지를 시험해 보아야 한다는 뜻이다.

버그가 재현되지 않는다면 주로 (1) 그것은 일시적인 현상이거나, (2) 그게 아니면 내부적인 오류가 있는데, 그것이 사용자가 알지 못하는 어떤 이유로 외부로 표출된 경우이다. (1)의 경우는 프로그램 오류이기보다는 시스템의 문제이거나 설치된 프로그램끼리 충돌하는 경우 등으로 재현이 어려운 경우도 있고, 아예 그 상황 자체가 다시 나타나지 않을 수도 있다. (2)의 경우는 일반 사용자는 알 수 있는 방법이 없고, 이 경우 버그의 재현은 거의 불가능에 가깝다.

버그가 재현되지 않는 또 다른 이유는 버그의 발생원인을 착각했기 때문이다. 이 경우 버그는 존재하지만 발생원인을 착각했기 때문에 자신이 생각하는 이유로는 재현되지 않게 된다.

마지막으로 사용자는 재현에 성공했지만 개발자 측에서는 재현에 실패하는 경우도 있다. 이것은 하드웨어적인 문제가 겹치거나 사용자의 시스템 환경과 개발자의 시스템 환경이 판이하게 다른 경우에 발생한다.

정책적인 이유

개발자나 회사의 정책적인 이유로 버그리포팅이 무시된다.

개발자 측의 정책에 따라 최신 버전이 나오게 되면 이전 버전에 대한 버그리포팅은 무시되기도 한다. 예컨대 인터넷 익스플로러 5 이전 버전은 현재 버그리포팅을 무시하고 있다.

버그 패치를 적용하면 속도 저하 등의 현상이 생기는 예도 있다. 그런데 그 속도 저하 등 성능 저하가 심하다면 버그리포팅은 일정 기간 무시되기도 한다. 물론 중대한 보안버그라면 반드시 적용되겠지만, 그렇지 않다면 일정기간 무시될 수 있다는 말이다.

마지막으로 경쟁사 제품과 관련한 버그는 무시하는 경우가 있다. 이런 경우 고의적으로 경쟁사 제품의 설치 및 사용을 막는다는 의심을 받기도 한다.

답변자의 무지 또는 무성의

답변자가 글을 제대로 읽지 않거나 버그리포팅 내용을 확인하지 않아서 무시되는 경우도 있다. 나와 네이버는 악연인지 버그리포팅이나 항의글이 무시되는 경우가 많았다. 특히 답변자가 해당 내용을 알지 못하거나, 버그리포팅 내용을 확인하지 않아서 엉뚱한 답변을 하는 경우도 있었다.

  • 네이버 결계 벌레 : 파일이 존재함에도 "삭제한 파일이기 때문에 접근할 수 없다."라고 답변이 왔다. 또한 그 게시글에서 분명히 "홈페이지 등록 갱신을 거부합니다."라고 했는데, 나중에는 네이버 측에서는 내가 "홈페이지 등록 요청"을 했다고 주장했다.
  • 네이버에 파이어폭스에 대해 물었는데 익스플로러에 해당하는 답변을 하는 경우가 있다. 초보적인 오류임에도 다른 사이트에서는 일어나지 않는 일이 네이버에서는 몇 차례나 일어난다.
  • 그밖에 자주 나타나는 무성의한 답변으로는, 프로그램이나 제작자를 가리지 않고, 버그리포팅에 나타난 내용을 해결책으로 제시하는 경우이다. 다시 말해 버그리포팅을 할 때 A라는 작업을 했음에도 결과가 나아지지 않았다고 버그리포팅을 했음에도 다시 A라는 작업을 하라고 답변하는 경우가 많다.

답변자의 무지 또는 무성의는 매우 심각한 결과를 가져온다. 왜냐하면 버그리포팅이 무시되는 경우 일반적으로 사용자는 그 사실을 알 수 없다. 그러나 이러한 답변자의 무지나 무성의는 답변자가 바로 알아차릴 수 있고, 그에 대해 허탈함이나 불쾌감을 가지게 된다. 이는 대답하는 사람이 가져야 할 기본적인 소양, 곧 "질문 내용이나 버그리포팅 내용을 제대로 읽기"를 하지 않았다는 말이 되기 때문이다.

대응

버그리포팅이 무시되면 대응할 방법이 거의 없다. 추상적인 버그리포팅의 경우는 "개발자에게 의견을 전달했다."라는 식으로 말할 뿐이며, "재현 불가"는 재현할 수 없다는 말을 되돌려준다. 정책적인 이유라면 그 역시 "회사 정책상 지원하지 않는다."라는 말을 하게 되며, 답변자의 무성의는 어쨌든 답변은 받은 셈이다.

이때 추상적인 버그리포팅이나 재현 불가는 당장 할 수 있는 일이 없다. 그저 다시 버그가 나타나기를 기다려야 한다. 버그가 다시 나타나면 다행이고 그게 아니라면 어쩔 수 없이 포기해야 한다. 물론 나중에 다시 버그가 발생하면 그때 다시 버그리포팅을 하면 된다. 한/글/ 2005에 나타난 구결 표기 오류를 참조하라.

회사 정책상의 이유라면, 그것이 중대한 버그인지를 먼저 생각해야 한다. 사소한 버그이거나 다른 기능과의 충돌 때문에 "구현하지 않은 기능"일 수도 있기 때문이다. 다시 말해 사용자 설명서 등에 "불가능한 기능" 또는 "제공하지 않는 기능"이라는 식으로 기술되어 있다면 일단 버그가 아니다. 물론 사용자 입장에서는 버그라고 여겨지겠지만, 회사의 입장에서는 버그가 아니므로 "회사 정책"상 버그 수정은 하지 않게 된다. 만약 중대한 버그라면 반드시 추가로 버그리포팅을 하는 편이 좋다.

관련 문서

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

Posted by koc/SALM 트랙백 0 : 댓글 0

티스토리 툴바