API Reference

API Reference

Elixir의 전체 모듈을 한눈에 훑을 수 있는 참조 페이지예요. 이 문서는 기본 Elixir 네임스페이스(애플리케이션)에 속한 모든 모듈을 알파벳순으로 나열하고, 각 모듈이 무엇을 하는지 한 줄씩 요약해요. 새 모듈이나 예외를 찾을 때 유용하죠. Elixir v1.20.4 기준이에요.

출처: API Reference

본문

데이터 구조 접근

  • Access — 키 기반으로 데이터 구조에 접근하게 해 주는 behaviour예요. data[key] 문법을 제공하죠.
  • Agent — 상태에 대한 단순한 추상화예요.
  • Application — 애플리케이션을 다루고 애플리케이션 콜백을 정의하기 위한 모듈이에요.
  • Atom — 값이 곧 자기 이름인 상수, 아톰(원자)을 다뤄요.
  • Base — RFC 4648에 따른 데이터 인코딩·디코딩 함수를 제공해요.
  • Bitwise — 비트 단위 계산을 수행하는 함수 모음이에요.
  • Calendar — Elixir에서 달력·날짜·시간·날짜시간을 다루기 위한 책임을 정의해요.
  • Calendar.ISO — 기본 달력 구현으로, ISO 8601을 따르는 그레고리 달력이에요.
  • Calendar.TimeZoneDatabase — 시간대 데이터를 제공하기 위한 behaviour를 정의해요.
  • Calendar.UTCOnlyTimeZoneDatabaseEtc/UTC 시간대에서만 동작하는 내장 시간대 데이터베이스예요.
  • Date — 날짜 구조체와 함수예요.
  • Date.Range — 날짜 사이의 포함 범위를 돌려줘요.
  • DateTime — 시간대가 있는 날짜시간 구현이에요.
  • Duration — 기간(Duration)을 다루는 구조체와 함수예요.
  • Float — 부동소수점 수를 다루는 함수예요.
  • Integer — 정수를 다루는 함수예요.
  • List — 연결 리스트는 고른 순서대로 요소를 0개 이상 담아요.
  • Map — 맵은 Elixir의 "표준" 키-값 자료 구조예요.
  • MapSet — 집합(set)에 동작하는 함수예요.
  • NaiveDateTime — 시간대가 없는 NaiveDateTime 구조체와 함수예요.
  • Range — 범위는 step이라 부르는 공통 차이를 가진, 오름차순 또는 내림차순 정수의 연속(0개 이상)을 나타내요.
  • Record — 레코드를 다루고, 정의하고, 가져오는 모듈이에요.
  • Set (deprecated) — 집합을 위한 제네릭 API예요.
  • String — Elixir의 문자열은 UTF-8로 인코딩된 바이너리예요.
  • Time — 시간 구조체와 함수예요.
  • Tuple — 튜플을 다루는 함수예요.
  • URI — URI를 다루는 유틸리티예요.
  • Version — 버전을 파싱하고 요구사항(requirement)과 매칭하는 함수예요.
  • Version.Requirement — 버전 요구사항 정보를 담는 구조체예요.

컬렉션·열거

  • Collectable — 자료 구조를 순회하는 프로토콜이에요.
  • Enum — 컬렉션(열거형)을 다루는 함수예요.
  • EnumerableEnumStream 모듈이 쓰는 열거 프로토콜이에요.
  • Stream — 스트림을 만들고 조합하는 함수예요.
  • Keyword — 키워드 리스트는 두 요소 튜플만으로 이루어진 리스트예요.
  • List.Chars — 구조체를 (가능한 경우) charlist로 변환하는 프로토콜이에요.
  • String.Chars — 구조체를 (가능한 경우) 바이너리로 변환하는 프로토콜이에요.

프로세스·동시성·OTP

  • DynamicSupervisor — 동적으로만 자식을 시작하도록 최적화된 감독자예요.
  • GenServer — 클라이언트-서버 관계의 서버를 구현하기 위한 behaviour 모듈이에요.
  • Node — VM 노드와 관련된 함수예요.
  • PartitionSupervisor — 같은 자식의 여러 파티션을 시작하는 감독자예요.
  • Port — 포트를 통해 외부 세계와 상호작용하는 함수예요.
  • Process — 프로세스와 프로세스 사전을 다루는 편의 함수예요.
  • Registry — 로컬·분산·확장 가능한 키-값 프로세스 저장소예요.
  • Supervisor — 감독자를 구현하기 위한 behaviour 모듈이에요.
  • Supervisor.Spec (deprecated) — 자식 명세를 만드는 구식 함수예요.
  • Task — 태스크를 만들고 기다리는 편의 함수예요.
  • Task.Supervisor — 태스크 감독자예요.

프로토콜·매크로·컴파일

  • Behaviour (deprecated) — behaviour(동작)를 다루는 메커니즘이에요.
  • Code — 코드 컴파일·평가·로딩을 관리하는 유틸리티예요.
  • Code.Fragment — 텍스트 코드 조각을 분석하고 가능하면 정보를 추출하는 편의 함수예요.
  • Function — 함수를 다루는 함수 모음이에요.
  • Inspect — Elixir 자료 구조를 대수 문서(algebra document)로 변환하는 프로토콜이에요.
  • Inspect.Algebra — 대수 문서를 만들고 조작하는 함수 모음이에요.
  • Inspect.OptsInspect 프로토콜이 사용하는 옵션을 정의해요.
  • KernelKernel은 Elixir의 기본 환경이에요.
  • Kernel.ParallelCompiler — 파일을 병렬로 컴파일하고 require하는 모듈이에요.
  • Kernel.SpecialForms — 특수 형식은 Elixir의 기본 구성 요소라서 개발자가 재정의할 수 없어요.
  • Macro — AST를 조작하고 매크로를 구현하는 함수예요.
  • Macro.Env — 컴파일 타임 환경 정보를 담는 구조체예요.
  • Module — 컴파일 타임에 모듈을 다루는 함수를 제공해요.
  • Protocol — 프로토콜을 다루는 참조와 함수예요.
  • Regex — Elixir용 정규 표현식을 제공해요.

I/O·시스템·설정

  • Config — 간단한 키워드 기반 설정 API예요.
  • Config.Provider — 부팅 중 설정을 로드하는 제공자 API를 명세해요.
  • Config.ReaderConfig로 정의한 설정 파일을 읽는 API예요.
  • File — 파일을 조작하는 함수를 포함해요.
  • File.StreamFile.stream!/3이 돌려주는 File.Stream 구조체를 정의해요.
  • File.Stat — 파일 정보를 담는 구조체예요.
  • IO — 입출력(IO)을 다루는 함수예요.
  • IO.ANSI — ANSI 이스케이프 시퀀스를 렌더링하는 기능이에요.
  • IO.StreamIO.stream/2IO.binstream/2가 돌려주는 IO.Stream 구조체를 정의해요.
  • OptionParser — 명령줄 인자를 파싱하는 함수예요.
  • Path — 파일 시스템 경로를 조작하거나 가져오는 편의 함수를 제공해요.
  • StringIO — 문자열을 감싸는 IO 장치 프로세스를 제어해요.
  • System — VM이나 호스트 시스템과 직접 상호작용하는 함수를 제공해요.

예외 (Exceptions)

Elixir의 예외들은 모두 이 문서에 등장해요. 핵심을 몇 가지 보면:

  • ArgumentError — 함수에 대한 인자가 잘못됐을 때 던져지는 예외예요.
  • ArithmeticError — 잘못된 산술 연산에서 던져지는 예외예요.
  • BadArityError — 함수를 잘못된 수의 인자로 호출했을 때 던져지는 예외예요.
  • BadBooleanError — 불리언이 예상됐는데 다른 값이 주어졌을 때 던져지는 예외예요.
  • BadFunctionError — 함수가 예상됐는데 다른 값이 주어졌을 때 던져지는 예외예요.
  • BadMapError — 맵이 예상됐는데 다른 값이 주어졌을 때 던져지는 예외예요.
  • CaseClauseErrorcase/2 식의 항이 정의된 -> 절 중 어떤 것과도 맞지 않을 때 던져지는 예외예요.
  • Code.LoadError — 파일을 로드할 수 없을 때 던져지는 예외예요.
  • CompileError — 코드를 컴파일할 때 오류가 있을 때 던져지는 예외예요.
  • CondClauseErrorcond/1 식의 어떤 절도 참(truthy)으로 평가되지 않을 때 던져지는 예외예요.
  • Enum.EmptyError — 비어 있지 않은 열거형을 기대했는데 빈 것을 발견했을 때 던져지는 예외예요.
  • Enum.OutOfBoundsError — 열거형이 특정 크기를 가질 것으로 기대했는데 너무 작을 때 던져지는 예외예요.
  • ErlangError — Elixir가 처리하지 않는 값으로 오류가 나는 Erlang 코드를 호출할 때 던져지는 예외예요.
  • File.CopyError — 파일 복사가 실패할 때 던져지는 예외예요.
  • File.Error — 파일 연산이 실패할 때 던져지는 예외예요.
  • File.LinkError — 파일 링크가 실패할 때 던져지는 예외예요.
  • File.RenameError — 파일 이름 변경이 실패할 때 던져지는 예외예요.
  • FunctionClauseError — 함수 호출이 정의된 어떤 절과도 맞지 않을 때 던져지는 예외예요.
  • Inspect.Error — 구조체를 inspect할 수 없을 때 던져져요.
  • JSON.DecodeErrorJSON.decode!/1이 던지는 예외예요.
  • Kernel.TypespecError — 타입스펙에 오류가 있을 때 던져지는 예외예요.
  • KeyError — 자료 구조에서 키를 찾을 수 없을 때 던져지는 예외예요.
  • MatchError — 패턴 매칭(=/2)이 실패할 때 던져지는 예외예요.
  • MismatchedDelimiterError — 코드를 파싱할 때 짝이 맞지 않는 구분 기호를 발견했을 때 던져지는 예외예요.
  • MissingApplicationsError — 애플리케이션이 하나 이상의 빠진 애플리케이션에 의존할 때 던져지는 예외예요.
  • OptionParser.ParseError — 옵션 파싱이 실패할 때 던져지는 예외예요.
  • Protocol.UndefinedError — 주어진 값에 대해 프로토콜이 구현되지 않았을 때 던져지는 예외예요.
  • Regex.CompileError — 정규 표현식을 컴파일할 수 없을 때 던져지는 예외예요.
  • RuntimeError — 일반적인 런타임 오류를 위한 예외예요.
  • SyntaxError — 코드를 파싱할 때 문법 오류가 있을 때 던져지는 예외예요.
  • System.EnvError — 시스템 환경 변수가 설정되지 않았을 때 던져지는 예외예요.
  • SystemLimitError — 시스템 한계에 도달했을 때 던져지는 예외예요.
  • TokenMissingError — 코드를 파싱할 때 토큰이 빠졌을 때 던져지는 예외예요.
  • TryClauseErrortry/1else 절 중 어떤 것도 맞지 않을 때 던져지는 예외예요.
  • UndefinedFunctionError — 정의되지 않은 함수를 호출했을 때 던져지는 예외예요.
  • UnicodeConversionError — 데이터를 유니코드로 또는 유니코드에서 변환할 때 던져지는 예외예요.
  • URI.ErrorURI가 유효하지 않을 때 오류가 발생하며 던져지는 예외예요.
  • Version.InvalidRequirementError — 버전 요구사항이 유효하지 않을 때 던져지는 예외예요.
  • Version.InvalidVersionError — 버전이 유효하지 않을 때 던져지는 예외예요.
  • WithClauseErrorwith/1 식의 항이 else의 정의된 -> 절 중 어떤 것과도 맞지 않을 때 던져지는 예외예요.

그 밖의 모듈

  • Dict (deprecated) — 딕셔너리를 위한 제네릭 API예요.
  • Exception — throw/catch/exit와 예외를 다루는 함수예요.
  • GenEvent (deprecated) — 이벤트 핸들러 behaviour가 있는 이벤트 매니저예요.
  • HashDict (deprecated) — 튜플 기반 HashDict 구현이에요.
  • HashSet (deprecated) — 튜플 기반 HashSet 구현이에요.
  • JSON — JSON 인코딩·디코딩이에요.
  • JSON.Encoder — 자료 구조의 커스텀 JSON 인코딩을 위한 프로토콜이에요.
  • IO.StreamError — IO 스트림 관련 예외예요.

더 알아보기