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.UTCOnlyTimeZoneDatabase —
Etc/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 — 컬렉션(열거형)을 다루는 함수예요.
- Enumerable —
Enum과Stream모듈이 쓰는 열거 프로토콜이에요. - 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.Opts —
Inspect프로토콜이 사용하는 옵션을 정의해요. - Kernel —
Kernel은 Elixir의 기본 환경이에요. - Kernel.ParallelCompiler — 파일을 병렬로 컴파일하고 require하는 모듈이에요.
- Kernel.SpecialForms — 특수 형식은 Elixir의 기본 구성 요소라서 개발자가 재정의할 수 없어요.
- Macro — AST를 조작하고 매크로를 구현하는 함수예요.
- Macro.Env — 컴파일 타임 환경 정보를 담는 구조체예요.
- Module — 컴파일 타임에 모듈을 다루는 함수를 제공해요.
- Protocol — 프로토콜을 다루는 참조와 함수예요.
- Regex — Elixir용 정규 표현식을 제공해요.
I/O·시스템·설정
- Config — 간단한 키워드 기반 설정 API예요.
- Config.Provider — 부팅 중 설정을 로드하는 제공자 API를 명세해요.
- Config.Reader —
Config로 정의한 설정 파일을 읽는 API예요. - File — 파일을 조작하는 함수를 포함해요.
- File.Stream —
File.stream!/3이 돌려주는File.Stream구조체를 정의해요. - File.Stat — 파일 정보를 담는 구조체예요.
- IO — 입출력(IO)을 다루는 함수예요.
- IO.ANSI — ANSI 이스케이프 시퀀스를 렌더링하는 기능이에요.
- IO.Stream —
IO.stream/2와IO.binstream/2가 돌려주는IO.Stream구조체를 정의해요. - OptionParser — 명령줄 인자를 파싱하는 함수예요.
- Path — 파일 시스템 경로를 조작하거나 가져오는 편의 함수를 제공해요.
- StringIO — 문자열을 감싸는 IO 장치 프로세스를 제어해요.
- System — VM이나 호스트 시스템과 직접 상호작용하는 함수를 제공해요.
예외 (Exceptions)
Elixir의 예외들은 모두 이 문서에 등장해요. 핵심을 몇 가지 보면:
- ArgumentError — 함수에 대한 인자가 잘못됐을 때 던져지는 예외예요.
- ArithmeticError — 잘못된 산술 연산에서 던져지는 예외예요.
- BadArityError — 함수를 잘못된 수의 인자로 호출했을 때 던져지는 예외예요.
- BadBooleanError — 불리언이 예상됐는데 다른 값이 주어졌을 때 던져지는 예외예요.
- BadFunctionError — 함수가 예상됐는데 다른 값이 주어졌을 때 던져지는 예외예요.
- BadMapError — 맵이 예상됐는데 다른 값이 주어졌을 때 던져지는 예외예요.
- CaseClauseError —
case/2식의 항이 정의된->절 중 어떤 것과도 맞지 않을 때 던져지는 예외예요. - Code.LoadError — 파일을 로드할 수 없을 때 던져지는 예외예요.
- CompileError — 코드를 컴파일할 때 오류가 있을 때 던져지는 예외예요.
- CondClauseError —
cond/1식의 어떤 절도 참(truthy)으로 평가되지 않을 때 던져지는 예외예요. - Enum.EmptyError — 비어 있지 않은 열거형을 기대했는데 빈 것을 발견했을 때 던져지는 예외예요.
- Enum.OutOfBoundsError — 열거형이 특정 크기를 가질 것으로 기대했는데 너무 작을 때 던져지는 예외예요.
- ErlangError — Elixir가 처리하지 않는 값으로 오류가 나는 Erlang 코드를 호출할 때 던져지는 예외예요.
- File.CopyError — 파일 복사가 실패할 때 던져지는 예외예요.
- File.Error — 파일 연산이 실패할 때 던져지는 예외예요.
- File.LinkError — 파일 링크가 실패할 때 던져지는 예외예요.
- File.RenameError — 파일 이름 변경이 실패할 때 던져지는 예외예요.
- FunctionClauseError — 함수 호출이 정의된 어떤 절과도 맞지 않을 때 던져지는 예외예요.
- Inspect.Error — 구조체를 inspect할 수 없을 때 던져져요.
- JSON.DecodeError —
JSON.decode!/1이 던지는 예외예요. - Kernel.TypespecError — 타입스펙에 오류가 있을 때 던져지는 예외예요.
- KeyError — 자료 구조에서 키를 찾을 수 없을 때 던져지는 예외예요.
- MatchError — 패턴 매칭(
=/2)이 실패할 때 던져지는 예외예요. - MismatchedDelimiterError — 코드를 파싱할 때 짝이 맞지 않는 구분 기호를 발견했을 때 던져지는 예외예요.
- MissingApplicationsError — 애플리케이션이 하나 이상의 빠진 애플리케이션에 의존할 때 던져지는 예외예요.
- OptionParser.ParseError — 옵션 파싱이 실패할 때 던져지는 예외예요.
- Protocol.UndefinedError — 주어진 값에 대해 프로토콜이 구현되지 않았을 때 던져지는 예외예요.
- Regex.CompileError — 정규 표현식을 컴파일할 수 없을 때 던져지는 예외예요.
- RuntimeError — 일반적인 런타임 오류를 위한 예외예요.
- SyntaxError — 코드를 파싱할 때 문법 오류가 있을 때 던져지는 예외예요.
- System.EnvError — 시스템 환경 변수가 설정되지 않았을 때 던져지는 예외예요.
- SystemLimitError — 시스템 한계에 도달했을 때 던져지는 예외예요.
- TokenMissingError — 코드를 파싱할 때 토큰이 빠졌을 때 던져지는 예외예요.
- TryClauseError —
try/1의else절 중 어떤 것도 맞지 않을 때 던져지는 예외예요. - UndefinedFunctionError — 정의되지 않은 함수를 호출했을 때 던져지는 예외예요.
- UnicodeConversionError — 데이터를 유니코드로 또는 유니코드에서 변환할 때 던져지는 예외예요.
- URI.Error —
URI가 유효하지 않을 때 오류가 발생하며 던져지는 예외예요. - Version.InvalidRequirementError — 버전 요구사항이 유효하지 않을 때 던져지는 예외예요.
- Version.InvalidVersionError — 버전이 유효하지 않을 때 던져지는 예외예요.
- WithClauseError —
with/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 스트림 관련 예외예요.
더 알아보기
- Elixir 다운로드: 현재 버전과 설치 방법
- getting-started 가이드: 언어를 처음 배우는 입문서
- ExDoc:
ExDoc도구에 대한 문서 - HexDocs: 패키지와 라이브러리 문서 검색