Skip to content

Latest commit

 

History

History
70 lines (59 loc) · 3.62 KB

README.md

File metadata and controls

70 lines (59 loc) · 3.62 KB

마크다운 변환 웹서버

동기

마크다운 으로 공부한 내용을 정리하는데, 사람들에게 공유하는데 어려움이 있었다. 처음에는 드롭박스로 md 파일을 관리해서 dropbox 공유 기능을 활용하니 마크다운이 html로 변환되어 공유가 되어 잘 활용하였으나 2줄 이상의 코드 ~~~ 에는 작동되지 않았다. 보통 글에 코드가 차지하는 부분이 많이 직접 md 파일을 html 파일로 변환해 배포하는 서버를 만들기로 했다.

기능

  • dropbox 에 파일을 가져오 html 파일로 변환한다.
  • 가져온 md 파일은 저장하여 버전을 체크해 변화가 없으면 저장한 파일을 보여준다.

빌드전 준비 사항

  • curl 이 설치 되어 있어야 한다.

    • dropbox API를 다루기 위한 token 을 받아오고 검증 시 사용
    • curl 설치 확인 방법
    curl --version
  • docker 가 설치 되어 있어야 한다.

    • 사용 이유
      • docker 컨테이너는 쉽게 등록 삭제 가 가능함
      • 또 서버를 늘리기가 굉장히 쉬움
  • bash 쉘이 있어야 한다.

    • 사용 이유
      • 빌드의 대부분 리눅스 명령어 사용에 연속이기 때문
      • 특히 curl 을 많이 사용

빌드 방법

  1. 우선 소스를 github 에서 내려받아 저장할 폴더에 넣어준다.
    git clone https://github.com/rkdgusrnrlrl/markdown_generator.git {저장할 폴더}
    
  2. 저장할 폴더로 들어가서 쉘스크립트에 실행 권한을 준다.
    cd {저장할 폴더} && ls | grep .sh | xargs -i chmod +x {}
    
  3. build.sh 을 실행 시킨다.
    ./build.sh
    

사용중인 모듈들

  • express : 라우팅 및 static 서버를 지원해 웹서버 개발하는데 도움이 되었다.
  • marked : 마크다운 파일을 html 파일로 변화해 주는 모듈
    • 여러 선택지가 있었으나 github 순위가 markdown 변화 모듈중 가장 높았다.
  • mocha : node.js 에 유명한 테스트 프레임 워크이다 테스트시 활용하였다.
  • chai : 테스트시 expect, assert 등 사용에 활용하였다.
  • chai-as-promised : promise 테스트 떄문에 사용하고 있는데 아직 제대로 활용 하고 있지 못하다

개선할 기능

  • json 파일로 받아온 마크다운 파일 저정하기
  • 배포 빌드 자동화
  • 빌드시 사용자에게 물어봐서 accese_tocken resource.js 저장하기
  • docker 사용 유무를 체크해서 docker 컨테이너 올리수 있게 변경(자동화)

배운 혹은 배우고 있는 기술

  • promise : dropbox api를 활용하기 위해 비동기 코드를 깔끔하게 작성하기 위해 도입
    • 테스트시에 매우 도움이 되고 있다. 정작 promise 테스트 코드를 못짜는게 문제;;
  • dropbox api 활용 : md 파일을 받아오기 위해 활용중
  • javascript 에서 unit test : mocha 와 chai를 활용하고 있지만 아직 불편함 TDD 적용에 시간이 더 들듯
  • git branch and github pull request : 이전에는 master 브런티만 썼는데 dropbox api 모듈화를 위해 브런치를 빼어 사용해봄
  • waffle.io : 쓰려고 했는데 github 에 waffle 까지 쓰려니 감당이 안되서 github으로 운영중

최종목표

  • dropbox 에 md 파일에 의존한 블로깅 서비스
  • dropbox 뿐만 아니라 google drive 나 기타 웹서비스도 연동하는 게 목표