빠른 참조

Phoenix 프레임워크 치트시트

Elixir 웹 프레임워크 Phoenix 핵심 참조 가이드: 빠른 시작, 디렉터리 구조, 라우팅, Plug.Conn 파이프라인, Ecto 마이그레이션 및 제너레이터.

· 게시일

Phoenix는 Elixir 및 Erlang BEAM 런타임 위에서 동작하는 고생산성, 무결점 신뢰성의 현대 웹 프레임워크입니다.

빠른 시작 (Quickstart)

# Hex 패키지 매니저 및 Phoenix 설치 아카이브 등록
mix local.hex
mix archive.install hex phx_new

# PostgreSQL 연동 신규 Phoenix 애플리케이션 생성
mix phx.new my_app

# 개발 서버 실행
mix phx.server

디렉터리 구조 (Application Directory Layout)

my_app/
├── assets/          # 프론트엔드 에셋 (esbuild, Tailwind CSS)
├── config/          # 환경별 설정 (dev, test, prod)
├── lib/
│   ├── my_app/      # 비즈니스 도메인 로직 및 Ecto 스키마
│   ├── my_app.ex
│   └── my_app_web/  # 웹 계층 (컨트롤러, 뷰, 라우터)
│       ├── controllers/
│       ├── router.ex
│       └── endpoint.ex
├── priv/
│   └── repo/        # 데이터베이스 마이그레이션 및 시드 데이터
└── test/            # ExUnit 테스트 모음

컨트롤러 및 파이프라인 (Controllers & Pipelines)

Phoenix는 HTTP 요청 변환을 위해 일관된 Plug.Conn 구조체를 사용합니다:

defmodule MyAppWeb.UserController do
  use MyAppWeb, :controller

  def show(conn, %{"id" => id}) do
    user = MyApp.Accounts.get_user!(id)

    conn
    |> put_status(200)
    |> render("show.html", user: user)
  end

  def api_index(conn, _params) do
    users = MyApp.Accounts.list_users()
    json(conn, %{data: users})
  end
end

제너레이터 및 컨텍스트 (Generators & Contexts)

# 전체 HTML CRUD 컨텍스트, 스키마, 컨트롤러 일괄 생성
mix phx.gen.html Accounts User users name:string email:string:unique

# JSON API 리소스 생성
mix phx.gen.json Catalog Product products title:string price:decimal

# 데이터베이스 마이그레이션 실행
mix ecto.migrate

관련 참조 문서

관련 주제