2015년 5월 25일 월요일

delacourt at a glance 만들면서...

최근에 취미 코딩으로 회사 지하식당의 메뉴를 좀 더 보기 좋게 제공하는 사이트를 만들었다. 이걸 만들면서 경험한 내용을 블로그로 남겨놓는다. 아마도 내용이 제법 길어질 수 있을므로 여러개의 블로그로 올릴 것 같다.

1.
처음에는 생각만 했었다. 지하1층 메뉴와 지하2층 메뉴를 한 페이지에서 확인 할 수 없고, 한번씩 링크를 눌러서 2개의 페이지에서 메뉴를 확인한다는게 좀 불편했었다. 아~ 좀 불편하네~ 좀 길어져도 한 페이지에 해 놓으면 페이지 전환없이 편하게 볼텐데...

2.
전혀 상관없는 계기로 웹페이지를 긁어서 원하는 데이터를 뽑아내고 원하는 형식으로 표시하는 작업을 2번 정도 진행했다. 첫번째는 로컬시스템의 html파일에서 JQuery의 ajax를 이용해서 작업했고, 두번째는 nodejs로 만든 서버를 AWS에 띄워서 request로 호출하고, 결과 html 문자열은 cheerio로 파싱해서 작업했다. 더 상세한 내용은 다른 블로그에서....

3.
비슷한 작업을 2번정도 연습하고, 그 와중에 AWS에 서버도 셋팅을 하고 나니, 식당 메뉴를 보기 좋게 만드는 작업을 해보고 싶어졌다.

4.
소스는 GitHub에 올렸다. 서버는 AWS를 쓰기로 했다. 자바스크립트로 nodejs로 구현해서 별도 웹서버는 필요없었다. 도메인은 생각하지 않고 시작했는데, 결국 여기에서 kr.pe의 서브도메인을 무료로 받았다.

5.
단순히 서버를 하나 띄워서 사용자의 요청이 들어올 때마다 공식홈페이지에서 데이터를 가져와서 뿌리기로 했다. 접속주소도 루트로 들어올때만 준비한 페이지를 보여주게 하고 그 외의 주소는 아무 표시없이 무시했다.

2개 페이지의 결과를 합쳐서 응답해야 해서, async라는 모듈을 사용했다. html template을 쉽게 만들기 위해 swig도 썼다. 위에서도 언급했지만, html 파싱은 cheerio를 썼다.

6.
하루 정도 서비스를 해보니까 하루에 몇명이나 들어올까가 궁금해졌다. 좀 찾아보니 구글 어날리틱스가 있어서 출근길에 붙였다. 하루종일 통계가 안나와서 답답했는데 하루가 지나니 자 나온다.

7.
빌드를 자동화해야 할 것 같아서 travis를 붙이긴 했는데, travis에서 실제로 AWS 서버에 배포하는 것 까지 붙이진 않았다. 대신 AWS 콘솔에서 사용할 작은 shell 프로그램만 하나 만들었다. nodejs 프로세스를 죽이고(kill), git pull 한다음 nohup으로 실행하는 것 까지 한다.

8.
공식홈페이지에서 제공하던 기능은 다 포함했기에 GitHub에서 1.0.0으로 릴리즈를 했다. 현재 버전이기도 하다. 현재 버전에 포함되지 않은 기능들은 GitHub의 Issue로 등록했다. 앞으로는 Issue 기반으로 작업할 생각이다.

여기까지가 큰 흐름이고, 자세한 내용은 번호마다 다른 블로그에서 더 자세하게 다루겠다.

댓글 없음:

댓글 쓰기