2012년 3월 23일 금요일

간단한 웹 서버 aspen

단순한 웹 서버가 필요할 일이 있을까 생각했지만 의외로 필요한 경우가 제법 있다. 예를 들어 Sencha Touch 등을 이용한 웹 앱을 만드는 경우 AJAX 통신을 하려면 꼭 웹서버가 필요하다. 이럴 때는 필요한 기능만 제공하는 단순한 웹서버가 있으면 편하다. 하물며 요즘처럼 웹 개발이 대세인 시대에 이런 도구 하나쯤은 있는 편이 좋을 것 같다.

Aspen은 Python으로 만들어진 심플하고 빠른 웹 서버이다.


설치는 위 공식 사이트에서 소스를 받아서 설치해도 되겠지만 pip가 있다면 더 간단히 설치가 가능하다.

$ pip install aspen

이제 실행시키면 된다. 원하는 html 파일이 있는 곳에서 그냥 aspen을 아무 인자 없이 실행시키자.

$ aspen
Greetings, program! Welcome to port 8080.

aspen이 실행되면 어떤 포트에서 실행되는지 메시지가 나온다. 기본포트는 8080임을 알 수 있다. 이제 localhost:8080을 웹브라우저로 열어보면 페이지가 보일 것이다. 물론 index.html 파일이 없으면 404가 뜨겠지만...

다른 포트로 열고 싶다면 -a 혹은 --address 옵션을 이용하면 된다.

$ aspen -a localhost:8000
Greetings, program! Welcome to port 8000.

만약 맥에서 homebrew등으로 python을 별도로 설치했다면 /usr/share/python 밑으로 설치가 될 수도 있다. PATH에 포함이 안된 경로라서 명령어를 입력해도 실행이 안된다. 이럴 때는 적당히 링크라도 걸어주자.

$ ln -s /usr/local/share/python/aspen /usr/local/bin/

. . .

참고) 왜 웹 앱 개발에 웹서버가 필요한가?

웹브라우저에서 제한을 가하기 때문이다. 만약 웹 서버 없이 로컬의 파일을 그대로 웹브라우저로 열었을 때 해당 페이지에서 AJAX로 통신을 하려 하면 아래와 같은 자바스크립트 오류가 발생한다.

Cross origin requests are only supported for HTTP

물론 개발용 서버가 별도로 있다면 고민할 필요는 없다. ;-)

댓글 없음 :