CommonLisp 웹 애플리케이션 프레임워크 Caveman2에 대한 메모

소개



CommonLisp에서 웹 애플리케이션을 작성하기 위한 프레임워크인 Caveman2에 대해 살펴본 것을 메모해 갑니다.
  • Caveman2

  • 주) Roswell을 사용한다고 가정합니다. 사전에 설치하십시오. (아래 참조)
  • Roswell
  • Raspbian에서 CommonLisp 개발 환경 구축

  • 스켈레톤 프로젝트 생성



    Roswell의 local-projects 디렉토리로 이동합니다.
    자신의 디렉토리가 있으면 그 안에 들어가,
    cd ~/.roswell/local-projects/"<User Name>"
    

    없으면 디렉토리를 만든 다음 들어갑니다.
    (이것은 Github에서 계정 이름이 좋은가?)
    cd ~/.roswell/local-projects/
    mkdir "<User Name>"
    cd "<User Name>"
    

    REPL을 시작합니다.
    ros run
    

    QuickLisp에서 Caveman2를 로드합니다.
    (ql:quickload :caveman2)
    

    다음 프로그램을 실행하여 프로젝트 해골을 만듭니다.
    (caveman2:make-project #P"./myapp/" :author "<Your Full Name>")
    

    프로젝트 스켈레톤 생성에 성공하면 REPL을 종료합니다.
    (quit)
    
    ls 명령 등으로 "myapp"디렉토리가 작성되었는지 확인하십시오.
    프로젝트 스켈레톤의 초기 디렉토리/파일 구성은 다음과 같습니다.

    프로젝트 스켈레톤 디렉토리/파일 구성
    myapp
      ├── README.markdown
      ├── app.lisp
      ├── db
      │    └── schema.sql
      ├── myapp-test.asd
      ├── myapp.asd
      ├── src
      │    ├── config.lisp
      │    ├── db.lisp
      │    ├── main.lisp
      │    ├── view.lisp
      │    └── web.lisp
      ├── static
      │   └── css
      │        └── main.css
      ├── templates
      │   ├── _errors
      │   │     └── 404.html
      │   ├── index.html
      │   └── layouts
      │         └── default.html
      └── tests
            └── myapp.lisp
    

    그런 다음 local-projects 디렉토리로 이동하여 system-index.txt를 편집합니다.
    cd ~/.roswell/local-projects
    

    system-index.txt에 다음을 추가하십시오.

    system-index.txt
    "<User Name>"/myapp/myapp.asd
    

    이렇게 하면 QuickLisp에서 "myapp"를 로드할 수 있습니다.

    동작 확인



    REPL을 시작합니다.
    ros run
    

    "myapp"를 QuickLisp에서 로드합니다.
    (ql:quickload :myapp)
    

    웹 애플리케이션을 시작합니다.
    (myapp:start)
    

    다음 메시지가 나오면 시작 완료입니다.
    Hunchentoot server is started.
    Listening on localhost:5000.
    #S(CLACK.HANDLER::HANDLER :SERVER :HUNCHENTOOT :ACCEPTOR #<PROCESS clack-handler-hunchentoot(4) [Active] #x17191B5E>)
    

    웹 브라우저에서 http://localhost:5000/로 이동하면 "Welcome to Caveman2!"로 작성된 페이지가 표시됩니다.

    아래 실행중인 스크린샷



    제대로 작동합니다 ~

    웹 응용 프로그램을 중지할 때 다음 프로그램을 실행합니다.
    (myapp:stop)
    

    마지막으로



    우선, Caveman2의 동작 확인까지 할 수 있었으므로, 여기에서 좀 더 여러가지 공부해 무엇인가 만들 수 있으면~, 라고 생각하고 있습니다.

    좋은 웹페이지 즐겨찾기