본문 바로가기

개발세발

keystone.js 홈페이지 구축


웹싸이트를 만드는 방법은 다양하지만 많이 사용되는 방법은 CMS를 설치한 후 자기 입맛에 맞게 뜯어고치는 것이다.


보통 워드프레스나 XE로 홈페이지 만든다고들 하는데, 여기서 이 워드프레스나 XE가 바로 'CMS'다.



요즘 나오는 대부분의 CMS는 php기반이다. 워드프레스 줌라 드루팔 그누보드 XE 등 모두 php기반 CMS이다.

두번째는 jsp나 asp.net일텐데, 이쪽은 CMS라기보단 보통 기업단위로 자체구축하는경우 많으므로 패쓰..



새로운 웹서버로 떠오르고 있는 것 중 하나로 nodejs가 있다. 물론 아파치나 nginx와는 별개로 돌아가므로 두개를 동시에 돌리거나 두개를 연동시켜서 돌려도 된다. (지금 구축중인 웹페이지는 nginx를 통해 nodejs로 꽂는다)


nodejs만을 이용해서도 충분히 매력적인 웹싸이트를 구동시킬 수 있다. 그래서 nodejs 기반의 CMS를 찾아봤는데 이미 개발이 한참 진행중에 있었다!!


크게 GhostJS와 KeystoneJS가 있었다. 칼립소JS도 있었지만 확인은 안해봤다.

그 중 KeystoneJS를 선택했는데, GhostJS는 좀 더 쉽지만 블로깅 위주로 만들어진 것이라고 하고, KeystoneJS는 좀 더 어렵지만 모듈을 개발하기 편하다고들 하더라. (물론 KeystoneJS도 블로깅용이긴함)


KeystoneJS는 Express.js 프레임워크랑 기본적으로 Jade 템플릿, less CSS 엔진을 사용하고 부트스트랩으로 포장되어있다. 다행이도 Yeoman제너레이터로 웹서버에 설치할 때 템플릿 엔진과 스타일 엔진을 바꿀 수 있다. (꽤 많이 지원한다) 데이터베이스로는 MongoDB를 사용한다.



설치 후 정말 초라하지만 나름 nodejs express의 MVC모델을 이해한 후에는 자유롭게 커스터마이징이 가능했다.



문제는, 이 KeystoneJS에는 로그인 기능은 있는데 '회원가입'기능이 없다. 즉, 사용자가 멤버가 되는 기능은 없고, 관리자들만 멤버로 존재하는 기능은 있다는 얘기이다. 하지만 기본적으로 커뮤니티성을 가진 웹싸이트는 당연히 회원가입이 되어야한다. 그래서 지금 커스텀 로그인&회원가입 페이지를 만들고있다.


덤으로 메일인증까지 만들었다.


추후 keystone 자체 업데이트를 고려하여 node_modules 폴더 속의 keystone과 keystone_util 내용은 전혀 건드리지 않았다.


일단은 회원가입페이지랑 로그인페이지 둘 다 만들었고 작동 잘 되는데, 좀 더 만져본 후 github에 올려놓아야겠다.

회원정보수정도 만들어야징.


그리고 더 나아가 포럼기능도 만들어봐야징...은 여기까지는 시간이 허락해주지 않을 것 같다. 그래도 도전.


데모싸이트를 보니깐 SNS로그인 연동도 만들어놓았던데, 이건..음..




뭐 아마 언젠간 회원가입기능도 KeystoneJS에 자체기능으로 들어가겠지.