태그 보관물: REPL

Firefox 확장 MozRepl!

MozRepl은 모질라 어플리케이션 개발자를 위한 인터랙티브 자바스크립트 콘솔이다. 이름에서 알 수 있듯이 Mozilla REPL(Read Eval Print Loop)이다. REPL은 말 그대로 읽고, 평가하고, 출력하는 루프이다. 그냥 Shell을 생각하면 된다. 명령을 입력하면 실행하고 그 결과를 출력해 주고 다시 입력을 기다리는 방식이다. 이 REPL은 ruby, node.js, python과 같은 인터프리터 언어에서 쉽게 볼 수 있다.

MozRepl은 파이어폭스(FireFox)의 부가기능으로 설치된다. MozRepl에서 바로 설치할 수 있다. 설치가 끝났으면 파이어폭스를 재시작하고, 파이어폭스 메뉴 도구->MozRepl->Start로 MozRepl을 시작하자. 또는 Activate on startup을 체크해서 파이어폭스를 시작할 때마다 MozRepl을 자동으로 시작하게 할 수 있다. 이제 MozRepl에 연결을 해 보자

user@computer:$ telnet localhost 4242
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Welcome to MozRepl.

- If you get stuck at the "...>" prompt, enter a semicolon (;) at the beginning of the line to force evaluation.
- If you get errors after every character you type, see http://github.com/bard/mozrepl/wikis/troubleshooting (short version: stop using Microsoft telnet, use netcat or putty instead)

Current working context: chrome://browser/content/browser.xul
Current input mode: syntax

repl>

repl 프롬프트가 명령을 기다리고 있다. 친절하게도 마이크로소프트의 telnet을 쓰지 말고 putty나 netcat을 사용하라고 한다.
간단하게 document.title; 을 입력해 보자. 그러면 파이어폭스의 현재 페이지의 제목을 출력해 줄 것이다. 또 BrowserReload();를 입력하면 페이지가 새로고침된다.
고작 이걸 하려고 이 확장을 설치해야 하나 싶을 것이다. 하지만 이 확장으로 Emacs나 Vim과 같은 에디터에서 파이어폭스를 조정할 수 있다. HTML 페이지를 수정하고 저장하면 결과를 새로 고침 버튼을 누르지 않고 자동으로 로드시킬 수 있다. 이 내용은 조금 길어지기 때문에 따로 포스팅할 예정이다. 이외에 MozRepl에 대한 설명은 MozRepl Wiki를 참조하자.

문제가 하나 있다. 한글이 잘 안 나온다. 위에서 document.title;을 한글 사이트, 예를 들어 다음과 같은 사이트에서 실행하면 한글이 깨져서 나온다. 이문제는 MozRepl을 패치해야 하는데 MozRepl을 다운 받고 소스의 몇 군데를 수정해야 한다. 귀찮다. 그래서 준비했다. 패치된 MozRepl을 설치하고 결과를 확인해 보자. 두둥!!