데모 서비스용 id/pw는 devnote/devnote를 이용해 주세요.
- Server-side/Front-end 모두 자바스크립트로만 작성되어 있습니다.
- 프로젝트 빌드에서 테스트, Template, i18n에 이르기까지 제품코드는 모두 javascript로 만들었습니다.
- 하단의 설계도 그림을 보시면 좀 더 이해가 빠르실겁니다.
- 동일한 코드를 Server-side/Front-end 양쪽에서 사용합니다.
- 이를테면 markdown 렌더링을 클라이언트에서 하고 있다가, 필요에 따라서는 서버에서 해서 보내거나, 그 반대로 하는 것이 가능합니다.
- 이를 통해 능동적인 부하분산/클라이언트 환경에 따른 적절한 대응이 가능합니다.
- Data Store로 DB를 사용하지 않고 git과 command level에서 호환되는 파일구조로 contents를 저장하도록 만들었습니다.
- 따라서 마치 git을 사용하듯 git clone, push, pull 을 사용해서 게시물의 내용을 로컬로 내려받고 수정해서 다시 올리는 것이 가능합니다.
- 표준 문서 포맷은 앞서 이야기 드렸듯이 markdown 입니다.
- 개발자들이 최소한의 구조화된 문서를 작성하는데 있어 markdown은 매우 훌륭한 구조라 생각합니다. (github 기본 문서포맷 중 하나죠)
- 문서 내려받아 수정해서 올리는 작업이 기본 git 방식으로 동작합니다. (하단부의 'GIT compatible storage 실습' 참조)
- 노트 작성할 때 markdown syntax highlight와 미리보기 기능을 제공합니다.
- 새노트 작성시 우측의 접기 버튼을 누르면 preview를 볼 수 있습니다.
- 페이지 제목 충돌 실시간 표시
- 동일한 제목의 글을 2명 이상이 동시에 작성하려고 하면 충돌여부를 실시간으로 알려줍니다.
- Mobile 지원
- 근래에는 당연한 이야기지만 responsive design이 적용되어 있어 모바일에서도 불편없이 사용가능합니다.
- 모바일에서 어떤 식으로 보이는지 보려면 브라우저의 가로폭을 줄여보세요. :)
- 오픈소스 프로젝트라 전체 코드가 공개될 예정입니다.
- 기본 뼈대 마무리 하는 대로 외부 오픈해서 내부/외부 개발자들과 함께 만들어 가려고 합니다.
- 이달 말/다음달 초를 예상하고 있습니다.
id/pw는 동일하게 devnote/devnote 입니다.
웹 페이지에 접근해서 새 노트(MyPage) 작성한다. git clone으로 노트를 내려 받는다.
git clone devnote@10.64.80.79:notes/note.git
note 폴더내의 방금 작성한 노트제목의 파일을 열어서 내용 수정 수정된 페이지를 서버로 다시 올린다.
git add MyPage
git commit -m "push test"
git push
웹 페이지로 접근해서 해당 내용 수정여부 확인
- 배포될 웹 서비스 제품이라는 측면에서 아직 보완할 부분이 많습니다.
- UI는 도움 받아서 하고 있는데 저희가 서버 개발자들이다 보니 관련 센스가 많이 부족합니다.
- 제목에 특수 기호가 들어 갈 때의 문제점, 제목이 파일명으로 쓰이기 때문에 발생하는 문제점 등이 대표적입니다.
- IE에서 디자인이 깨져 보입니다.
- 글 작성시 상단의 미리보기 버튼 눌렀을 때 버튼이 없어짐
- 등등..
- node.js & server-side javascript 에 대한 기술
- 이 분야는 앞으로 특수 기술이라기 보다는 일반 기술로의 범용화를 목표로 하고 있습니다.
- 선행 삽질 비용을 저희가 먼저 치뤘기 때문에 기술이 필요해 질 때 도입 비용을 줄일 수 있습니다. (기술 레퍼런스 프로젝트가 될 수 있게 만들예정입니다)
- 개발자 노트
- 파일 저장 웹 서비스, code syntax highlight, 실시간 편집, git clone, push 지원... 어디서 많이 보던 내용 아닌가요? : ) 경우에 따라, 더 발전 시킨다면 github 같은 서비스를 만드는 것도 가능합니다.
- 메뉴얼, wiki, 공동 저작이 필요한 어디든 사용 할 수 있도록 만드는 것이 목표입니다.
- nFORGE 연동
- 저희 팀 미션 중 하나가 nFORGE 개발인데요 nFORGE 위키를 개발자 노트로 대체(혹은 포함)할 예정입니다.
- 코드 공개 준비
- 문서화, 리팩터링
- 서비스 버그 및 불편 사항들 해결
- 외부 개발자 참여 정책수립
