[TIL] 오늘의 TIL

posted by donghyun

2 min read

태그

엘릭서 웹 프레임워크관련

가벼운 엘릭서 웹 프레임워크를 찾고있다. 파이썬의 플라스크 같은? 피닉스는 사실 꽤 가벼운 편이지만 그래도 역시 해줘야할것들이 있다. 예를들어 template같은건 json api만 만들고 싶다면 필요없고, 개인적으로 쓸 토이 프로젝트에 보안설정이나 캐시설정도 필요없을 것이다. 확장성이 큰 프레임워크는 항상 기본 바탕이 어느정도는 귀찮다. 물론 동시에 피닉스에 익숙해지려고 Todo같은건 열심히 만들고 있다.

일단 이 글을 보고 꽤 감명받았다. 뭐냐면 피닉스 프레임워크를 구성하는 주요 라이브러리 두개를 따로 떼서 그걸로 그냥 웹 프레임워크를 하나 만들수 있다는 점? 파이썬 플라스크는 장고와 완전히 별개지만, 피닉스의 두 라이브러리를 이용해 lightweight한 프레임워크를 만드는건 피닉스에 대한 이해도도 높여줄 것이다.

defmodule MinimalServer.Router do
  use Plug.Router

  plug(:match)
  plug(:dispatch)

  get "/" do
    conn
    |> put_resp_content_type("application/json")
    |> send_resp(200, Poison.encode!(message()))
  end

  defp message do
    %{
      response_type: "in_channel",
      text: "Hello from BOT :)"
    }
  end
end

뭐 요런 느낌

2020년 1월 30일의 이 오픈소스 프레임워크 목록 글도 꽤 괜찮다. 엘릭서 커뮤니티가 생각보다 오래된만큼 생각보다 프레임워크들이 많다! 물론 대부분 대중적이진 않는것같다. 그만큼 피닉스가 강력한건가? 아니 사실 엘릭서 사용 사례가 애초에 없으니 뭐가 대중적인지 내가 섣불리 판단할 순 없다.

여기서 Trot 라이브러리가 위에서 plug랑 cowboy 두개만 가지고 만든 경량 프레임워크이다. 이 라이브러리 소스를 잘 뜯어보면 좋을것같다. 피닉스 소스는 지금 뜯어보기엔 좀 무리가 아닐까..

그밖에도 라이브 대시보드(이게 프레임워크인가?)라던가 재밌어보이는게 있다.

erlang에 httpc라는 클라이언트가 있으니 HTTPoison같은 라이브러리 굳이 항상 쓸필요는 없다!라는 글이 있는데 흠, 일단 머릿속에 박아놓자.