메아리 저널

날아간 POST 폼 되살리기

열심히 놀고 있는데 #tokigun에 yser 님께서 등장하셔서 난데 없이(..) 하는 말씀. "토끼군 님 도와줘요 ㅠㅠ"

무슨 일인가 했더니, 신 현석 님 블로그에 꽤나 긴 답변을 달려다가 실수로 이름을 안 쓰고 Post 단추를 눌러서 내용물을 거의 날릴랑 말랑 하게 된 것이었다. (아주 다행히도 새로 고침을 하면 POST 폼을 다시 전송하려는 시도는 하고 있었다) 이건 사용자 인터페이스 면에서 상당히 난감한 상황인데, 어차피 soojung은 모든 개발자들이 귀차니즘에 빠져서 허우적거리는 중이라 이런 걸 미리 고치라고 할 수도 없는 노릇이니 어떻게든 되살릴 방법을 찾아야 했다.

혹시 이런 상황에 빠지신 분을 위해서 대충 어떻게 대처해야 할 지 간단하게 요약해 보겠다.

  • 해당 페이지를 파이어폭스에서 열었고, web developer 확장이 깔려 있다면, web developer에서 Forms - View Form Information 메뉴에 들어 가서 폼 정보를 보면 된다.
  • 만약 winpcapEthereal이 깔려 있다면 이걸로 패킷을 갈무리하기 시작한 뒤에 폼을 재전송해서 내용물을 찾아 보면 된다. 아마 그냥 쓰기는 난감하고 날 패킷을 파일로 저장한 뒤에 뒤지는 게 더 빠를 것이다.
  • 그래도 안 되면 내 맘대로 주무를 수 있는 웹 서버를 찾아 본다. 이번 상황에서는 yser 님이 내 노트북에 깔린 웹 서버를 사용했다. 정 안 된다면 웹 서버를 하나 깔아 보시던지, 이 쪽에 빠삭한 후배를 하나 붙잡아다 협박하시면 될 것이다. 이 웹 서버가 http://example.com/...이라고 하자.
  • 해당 폼이 전송되는 페이지를 잘 기억한다. 이 경우에는 http://hyeonseok.com/soojung/web/2006/01/22/218.html였다.
  • 이제 이 URL에서 도메인을 우리가 확보한 웹 서버 주소로 바꿔서 들어 가 본다. 물론 아무 짓도 안 했으니 Not Found 따위가 뜰텐데, 이걸 phpinfo 같이 POST 정보를 보여 주는 페이지로 만들어 놓는다. phpinfo를 쓴다면 해당 파일에 <?php phpinfo() ?>라고 써 놓은 뒤에 페이지가 제대로 안 나오면 .htaccess에 ForceType을 먹여서 되게 하면 될 것이다.
  • 잘 된다 싶으면 원래 컴퓨터로 돌아 가서 hosts 파일에 해당 페이지의 도메인이 우리가 쓰는 웹 서버 아이피로 연결되게 고친다. 윈도우라면 %systemroot%\system32\drivers\etc\hosts에 있고, 다른 운영체제는 적당히 때려 맞춰 보시라. -_-;
  • 이렇게 한 뒤에 원래 페이지를 다른 창에서 열어 본다. 우리가 원하는 페이지가 안 나온다면 우리가 확보한 웹 서버에서 해당 도메인을 인식 못 하는 것이므로, Virtual Host 설정이라던지 뭐 그런 것들을 만져 줘서 되게 한다.
  • 이제 원래 창으로 돌아 와서 새로 고침을 한 뒤에 POST 정보를 다시 전송하면 POST 정보가 원래대로 뜰 것이다. :)

애초에 브라우저가 파폭이었고 web developer가 깔려 있다는 사실을 알고 있었으면 이런 삽질을 할 필요는 없었겠지만 -_-;; 아무튼 혹시나 싶어서 이런 내용도 써 넣는다. 이번 사건으로 느낀 점이라면,

  • 개발자의 귀차니즘은 사용자의 불편을 부른다. ⇒ soojung 프로젝트 다시 재개하자. OTL
  • 한 두 줄이 넘어서 잃어버린 뒤 기억하기 힘든 내용은 항상 메모장이든 어디든 백업하는 습관을 들이자.
  • 웬만하면 파이어폭스에 web developer 정도는 깔아 두자. 웹 개발자가 아니더라도 쓸 일 많다. -_-

이 글은 본래 http://tokigun.net/blog/entry.php?blogid=51에 썼던 것을 옮겨 온 것입니다.


(rev 1d46270eb038)