내가 원했던 홈페이지의 모양은 사용자가 올린 페이지(html, markdown)에 따라서 동적으로 구성되는 형태이다. (아직 100% 완성은 아니다.) 대부분의 블로그, 카페는 미리 카테고리, 메뉴를 지정한다. 그리고 그 메뉴 안에서 글을 쓴다. (일명 제로보드 스타일?) 그것을 벗어나보고 싶었다. 어머니 루치아 여사님의 홈페이지를 만들기 위해서 이기도 하고 재밋을것 같았다!! 구체적인 방법은 아래에서!

들어가기에 앞서 웹서버 운영환경은 리눅스 가상서버 호스팅이며, OS는 Ubuntu 12.04이다.

Nancy

먼저 Nancy 부터 소개해본다.

Nancy는 홈페이지 제목에서부터 알 수 있듯이 "Lightweight Web Framework for .net" 이다. 쉽게 말해서 웹서버 라이브러리라고 생각하면 된다. 여러 플러그인과 유용한 기능들이 함께있다. 선택하게 된 가장 큰 장점이라 하면 쉬운 URL 설정이다. 참고

1년 전 쯤 대학교선배와 웹서버를 직접 만들어서 동아리 홈페이지를 구축하려던 시도를 했었는데, 그 시도 후에 맞이한 Nancy는 정말 편했다. 직접 웹서버를 만들었을 때 (완성도 못했다) 의 시행착오는 이 포스팅과 거리가 있으므로 생략!

아래 코드는 Hello World! 를 출력하는 코드이다. 갑작스럽지만 Nancy에 대한 소개는 여기서 끝!


void Main()
{
    using (var host = new NancyHost(new Uri("http://localhost:8080")))
    {
        host.Start();
        Console.ReadLine();
    }
}

public class SampleModule : Nancy.NancyModule
{
    public SampleModule()
    {
        Get["/"] = _ => "Hello World!";
    }
}

Dropbox

Dropbox 는 너무 유명해서 딱히 설명을 쓰지 않겠다. 대신 왜 Dropbox를 썼는지에 대해서 얘기해보려고 한다.

초간단 쇼핑몰 비슷한 형태의 블로그를 만들려고 했다. (어머니 루치아 여사님을 위해서)
하지만 여사님은 네이버 블로그의 사용조차 쉽지 않아하셨다. 지금까지 그나마 익숙하게 해오신것은 사진을 분류별로 폴더 정리하는 경험, 워드 작업 정도.. 그래서 나온 아이디어는 폴더를 정리하면 그게 바로 쇼핑몰의 상품이 되도록 하는 것이다. 이렇게 되면 특별한 지식 없이도 상품을 등록할 수 있고, 상품의 표시 순서도 조정할 수 있다.

쇼핑몰
  + 카드 (카테고리)
  ˆ|-- 파스텔 카드 (상품)
  |-- 포도 카드
  |-- 튤립 카드
  + POP
  |-- 입체 POP
  |-- 평면 POP
  |-- 켈리
  + 공작
  |-- TV상자
  |-- 세계지도

ˆ위 구조는 상품의 구조도이다. 동시에 우리가 흔히 쓰는 폴더 구조와 아주 유사하다. 폴더를 만들고, 그 안에 사진을 넣으면 사진의 파일명에 상관 없이 해당 사진들을 화면에 보여주는 방식이다. 사진 찍고, 폴더 만들고, 사진 옮겨넣는 작업만으로 홈페이지에 상품을 등록할 수 있는점은 굉장히 매력적이라고 생각한다. 폴더를 써야 하는 점, 컴퓨터,핸드폰,서버에서 잘 연동되어야 한다는 점에서 Dropbox는 아주 훌륭한 도구였다.

현재 여사님은 컴퓨터로도, 핸드폰으로도 직접 상품을 등록하고 사진도 올리고 계시다.
사실 지금 이 블로그도 모두 Dropbox에 글을 올리고 서버에서 자동으로 글을 읽어서 화면에 표시하고 있다. 화면 오른쪽(모바일은 하단)의 푸른색 메뉴 목록은 미리 지정한 것이 아니고 글을 쓸 때 지정한 메뉴들이 자동으로 계산되어진 결과이다.

Dropbox 에는 아래처럼 입력하였다. 물론 파일을 읽어서 파싱한다!

@title : Nancy, Dropbox 로 홈페이지 만들기
@category : Tech
@tags : c#(csharp), nancy, dropbox, webserver
@content
내가 원했던 홈페이지의 모양은 사용자가 올린 페이지(html, markdown)에 따라서 동적으로 구성되는 형태이다.

맺으며

Razor Engine 얘기까지 하고 싶었지만, 결정적인 구성요소는 아니라고 생각되어 생략했다.
어머니 홈페이지가 잘 완성되고 홍보에 도움이 되길 바라는 바람이다.