elixir 설치 및 iex 사용하기 (Windows, wsl, cmd) + 1일차 공부 노트

Jiumn·2024년 4월 22일

elixir 공부를 시작하며 처음 알게된 것들과 시도한 것들을 기록해보고자 한다.

elixir는 erlang 의 VM(가상머신)에서 동작되므로 erlang을 먼저 설치해야 된다.

erlang 설치

(erlang 공식 사이트에서 윈도우 버전으로 설치)

시스템 환경변수 설정해줘야 힘. (erlang 설치 폴더 > bin 폴더 주소를 복사해서 환경변수 path 목록에 추가해주면 됨)

erlang 설치 여부 확인

>erl
Erlang/OTP 26 [erts-14.2.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]

Eshell V14.2.4 (press Ctrl+G to abort, type help(). for help)
1>

elixir 설치

  • elixir 공식 사이트에서 윈도우 버전으로 설치함.
  • 설치 시에 환경변수도 설정되므로 따로 설치할 필요 없음.

erlang 설치 여부 확인

>elixir --version
Erlang/OTP 26 [erts-14.2.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]

Elixir 1.16.2 (compiled with Erlang/OTP 26)

wsl 에서 사용하고 싶다면 다음 명령어를 입력.

sudo apt-get install elixir     

만약 정상적으로 실행이 안된다면 컴퓨터 재부팅 후 실행해볼 것.

iex 사용하기

elixir 실행할 때는 vscode 사용하거나 iex 사용하면 됨.
터미널에서 iex 를 입력하면 실행 가능.
iex는 별도의 컴파일 없이 바로 실행 가능하기 때문에 간단한 테스트를 할 때 편리함.

vscode 에서는 elixir extension 설치하고 사용하면 편리함. (자동 완성, 하이라이팅 등 elixir 관련 기능 제공)

기초 문법

(* 유튜브 영상과 elixirSchool 사이트 등을 보며 배운 것들을 생각나는 대로 리뷰한 끄적임 수준의 것..)

  • elixir 모듈 문법
defmodule Module do
	def hello do
    	"hello world!"
    end
end
  • 컴파일
c("파일 이름")

컴파일 후 함수를 실행해야 함.

  • 함수 실행
Module.hello() // 모듈명.함수명
"Hello world!"

만약 함수에 매개변수가 있는 경우 소괄호 안에 인자를 같이 전달

  • 파일 읽기 함수 (내장함수)
File.read("파일명")

대략 기억나는 것들만 기록해보자면

  • 출력
IO.puts("Hello World!")
"Hello World!"
  • 입력
IO.gets
  • 파이프라인 (|>)

    • 자바스크립트의 옵셔널 체이닝이랑 비슷하다고 느낌.
    • 특정 함수의 실행 결과값에 다른 함수를 또 바인딩해서 연쇄적으로 실행시켜줌.
  • 자료형에는 문자열, 숫자, 리스트, 튜플, 애텀, 맵 등이 있음.

    • 애텀이라는 자료형이 좀 특이하게 느껴짐. (:a, A 와 같은 형식으로 사용. 변수랑은 다른 게 그 이름 자체로 값을 가지게 되는 상수형임.)
    • 문자열과 숫자는 더할 수 없음. 숫자를 문자열로 변환해줘야 함.
    • 리스트에는 여러 자료형을 섞어서 담을 수가 있음.
    • 튜플도 리스트랑 비슷한데 중괄호에 선언함.
    • 리스트는 링크드리스트라고 함... (* 리스트와 튜플 차이 다시 공부)
    • elixir는 패턴 매칭이라는 특성을 이용해서 같은 이름의 함수가 있다고 하더라도 전달되는 인자에 따라 알아서 함수가 매칭됨. (이 부분이 좀 신기함.)
    • 반복문이 없는데 재귀함수를 이용해서 처리함. 패턴 매칭을 통해 구현할 수 있는 것 같음.
    • 핀 연산자(^)를 붙이면 변수에 값이 재할당이 안된다고 함. (다시 공부)
    • 그동안 공부해온 객체 지향형 프로그래밍과는 많이 다른 획기적인 부분이 있어서 신기함. 유튜브에 5시간짜리 튜토리얼이 있어서 한번 보고 쭉 따라해봐야겠음.
profile
Back-End Wep Developer. 꾸준함이 능력이다. Node.js, React.js를 주로 다룹니다.

0개의 댓글