mix project

eesope·2025년 1월 27일

elixir

목록 보기
1/5

Elixir와 Phoenix 웹 프레임워크로 프로젝트 시작하기

  • Elixir는 현대적인 함수형 프로그래밍 언어로, 뛰어난 동시성 처리 및 고성능을 자랑하는 언어
  • Phoenix는 Elixir에서 가장 인기 있는 웹 프레임워크

1. Elixir 프로젝트 시작하기

Elixir로 새로운 프로젝트를 시작하려면 mix new 명령어를 사용해야 한다. 이 명령어는 기본적인 Elixir 프로젝트 구조를 자동으로 생성해준다.

mix new some_prj

위 명령어를 실행하면 some_prj라는 이름의 디렉토리가 만들어지고, 그 안에 Elixir 프로젝트를 위한 기본 파일들이 생성된다. 프로젝트 폴더에는 mix.exs 파일이 포함되어 있으며, 이를 통해 의존성 관리, 빌드 및 실행 등의 설정을 할 수 있다.

기본적인 Mix 프로젝트 구조

  • mix.exs: 프로젝트 설정 파일로, 의존성 관리 및 빌드 설정을 담당
  • lib/: 애플리케이션 코드가 들어가는 폴더
  • test/: 테스트 코드가 들어가는 폴더

Mix 프로젝트에서 할 수 있는 일

  • 컴파일: mix compile 명령어로 코드를 컴파일할 수 있다.
  • 테스트: mix test 명령어로 테스트를 실행할 수 있다.
  • 실행: iex -S mix 명령어로 프로젝트를 인터랙티브 셸에서 실행할 수 있다.

2. Phoenix 웹 프레임워크 시작하기

Phoenix는 Elixir에서 웹 애플리케이션을 개발할 때 매우 유용한 프레임워크이다. Phoenix 프로젝트를 시작하려면 mix phx.new 명령어를 사용한다.

mix phx.new some_app

이 명령어를 실행하면 some_app이라는 디렉토리가 생성되고, 그 안에 Phoenix 웹 애플리케이션을 위한 기본 파일들이 생성된다. Phoenix는 기본적으로 웹 서버, 라우팅, 데이터베이스 연결(옵션) 등을 자동으로 설정해준다.

Phoenix 프로젝트의 기본 구조

  • config/: 애플리케이션 설정 파일이 들어있는 폴더
  • lib/: 애플리케이션 코드가 들어있는 폴더
  • priv/: 리소스 파일(예: 데이터베이스 마이그레이션)
  • test/: 테스트 코드

Phoenix 프로젝트에서 할 일

  • 데이터베이스를 사용하는 경우, mix ecto.create 명령어로 데이터베이스를 생성하고, 마이그레이션을 적용할 수 있다.
  • mix phx.server 명령어를 사용하여 로컬 서버를 실행하고, 웹 애플리케이션을 테스트할 수 있다.

3. Phoenix 의존성 관리

Phoenix 프로젝트에서는 기본적으로 몇 가지 주요 의존성을 사용한다. 예를 들어, 웹 애플리케이션에서 HTTP 요청을 처리하기 위한 phoenix 패키지, 데이터베이스와 상호작용하기 위한 ecto 패키지가 포함된다.

의존성 관리

  • mix.exs 파일의 deps 섹션에서 필요한 의존성들을 정의한다.
  • mix deps.get 명령어로 의존성을 설치할 수 있다.
  • mix compile을 통해 의존성도 함께 컴파일된다.

Ecto: 데이터베이스 연동

Phoenix는 기본적으로 Ecto를 사용하여 데이터베이스와 상호작용한다. Ecto는 Elixir에서 데이터베이스와 쉽게 연결하고, ORM(Object-Relational Mapping) 및 쿼리 빌더 기능을 제공하는 라이브러리이다.

Ecto의 주요 구성 요소

  1. Ecto.Schema: 데이터베이스 테이블을 Elixir 구조체로 매핑한다.
  2. Ecto.Changeset: 데이터를 검증하고 변환하는 기능을 제공한다.
  3. Ecto.Repo: 데이터베이스와의 CRUD 작업을 수행한다.
  4. Ecto.Query: Elixir에서 SQL을 작성하지 않고, 함수형 스타일로 데이터 조회가 가능하다.

Ecto와 Phoenix의 관계

Phoenix 프로젝트는 기본적으로 Ecto와 연동되어, 데이터베이스를 쉽게 다룰 수 있도록 지원한다. 하지만 만약 데이터베이스가 필요 없는 경우, --no-ecto 옵션을 사용해 Ecto를 제외한 Phoenix 프로젝트를 만들 수 있다.

mix phx.new my_app --no-ecto

이렇게 하면 Ecto와 관련된 설정이 포함되지 않는다.

4. Mix 명령어 옵션

Elixir와 Phoenix 프로젝트를 만들 때 사용할 수 있는 Mix 명령어 옵션에는 여러 가지가 있다. 여기서는 자주 사용되는 옵션들을 소개한다.

자주 사용되는 Mix 명령어 옵션

  • --sup: OTP 애플리케이션을 생성할 때 Supervisor를 포함시킬 수 있다. Supervisor는 프로세스 충돌을 처리하는 역할을 한다.
  • --module <ModuleName>: 기본 모듈 이름을 변경할 수 있다. 예를 들어, mix new chat --module MyChat으로 모듈 이름을 MyChat으로 설정할 수 있다.
  • --umbrella: 여러 개의 독립적인 애플리케이션을 하나의 프로젝트에서 관리할 때 사용한다.
  • --no-ecto: Phoenix 프로젝트에서 Ecto를 제외하고 생성한다.
  • --no-deps-check: 종속성 확인 없이 프로젝트를 생성한다.

Ecto 관련 옵션

Phoenix 프로젝트를 만들 때 데이터베이스 없이 사용할 경우 --no-ecto 옵션을 사용할 수 있다. 데이터베이스가 필요 없는 프로젝트에서 유용하게 사용된다.

mix phx.new my_app --no-ecto

--no-deps-check 옵션

이 옵션을 사용하면, 의존성 설치를 건너뛰고 프로젝트를 빠르게 생성할 수 있다. mix deps.get 명령어를 통해 의존성을 나중에 설치할 수 있다.

mix phx.new my_app --no-deps-check

5. 결론

Elixir와 Phoenix 웹 프레임워크를 사용하면, 고성능의 동시성 처리와 강력한 웹 애플리케이션을 손쉽게 개발할 수 있다. Elixir 프로젝트를 시작할 때는 mix new 명령어를 사용하고, Phoenix 프로젝트를 시작할 때는 mix phx.new 명령어를 사용한다. 또한, Phoenix 프로젝트는 기본적으로 Ecto와 함께 제공되며, 데이터베이스가 필요 없으면 --no-ecto 옵션을 사용하여 제외할 수 있다.

profile
go simple 🧑🏻‍💻

0개의 댓글