🔴 Erlang 데이터 타입 및 변환

Erlang 문법

초급 난이도
문법 타입
10/13 등록일

Erlang 데이터 타입 및 변환

초급
태그
기초 문법 입문 태그1 태그2 데이터 타입 변환 모나드
## 개요
Erlang은 다양한 데이터 타입을 지원하며, 이들 사이의 변환이 프로그램 개발에서 매우 중요합니다. 본 자료에서는 Erlang의 주요 데이터 타입과 그 간 변환 방법에 대해 설명합니다.

## 주요 특징
- **원시 타입 (Primitive Types)**: 정수(Integer), 실수(Float), 부울(Boolean), 문자열(Binary) 등 기본적인 데이터 타입이 존재합니다. 각 타입은 메모리 효율적인 저수준 표현을 제공합니다.
- **모나드 (Monads)**: Erlang의 핵심 개념 중 하나인 모나는 값의 불확실성을 처리하고, 효과(Effect)를 캡슐화하는 데 사용됩니다. `list`, `tuple`, `io` 등이 대표적인 모나드입니다.
- **구조 타입 (Tuple Types)**: 여러 개의 데이터 타입을 하나의 단위로 묶을 수 있습니다. 데이터의 구조를 명확하게 정의하고, 효율적인 메모리 사용을 가능하게 합니다.
- **열거형 (Enumerations)**: 미리 정의된 값들의 집합을 나타냅니다. 코드의 가독성을 높이고, 타입 검사를 통해 오류를 방지합니다.

## 사용법
Erlang에서 데이터 타입은 변수 선언 시 자동으로 결정됩니다. 하지만 명시적으로 타입을 지정하여 타입 안전성을 확보할 수 있습니다. 데이터 타입 간 변환은 `try...catch` 블록을 사용하여 예외 처리하고, `to_char()`, `atom2binary()` 등의 함수를 통해 수행합니다.

**코드 예제**:
```erlang
% 정수형 변수 선언 및 사용
10 + 5 -> Result. % 결과는 정수형으로 자동 변환됨

% 문자열 변수 선언 및 사용
"Hello, World!" -> Message.

% 실수형 변수 선언
3.14 -> Pi.

% 타입 변환 예제 (오류 처리)
try 10 / 0 catch % 0으로 나누기 시 에러 발생
{_, _} -> Error;
io:format("Error: Division by zero\n")
end.
```

## 주의사항
- **타입 불일치**: 데이터 타입 간의 변환 시 타입 불일치가 발생하면 프로그램이 예외를 발생시킵니다. `try...catch` 블록을 사용하여 이러한 오류를 처리해야 합니다.
- **메모리 관리**: 원시 타입은 메모리 효율적이지만, 모나드와 같은 복잡한 타입은 메모리 관리에 주의해야 합니다. 사용 후에는 반드시 메모리를 해제해야 합니다.
- **숫자형 변환**: Erlang에서 숫자는 항상 정수형으로 취급됩니다. 실수형 변환 시 `toInteger/1` 함수를 사용하여 명시적으로 형변환 해야 합니다.

## 관련 문법
- **Atom**: Erlang의 불변 문자열 타입입니다. 모나드의 이름으로 사용되며, 데이터 비교에도 활용됩니다.
- **List**: Erlang의 기본 자료구조 중 하나이며, 순서가 있는 요소들의 집합을 나타냅니다. 모나드와 함께 자주 사용됩니다.
- **Binary**: 파일이나 네트워크 데이터를 표현하는 데 사용되는 불변 바이트 문자열 타입입니다.
코드 예제
```erlang
% 정수형 변수 선언 및 사용
10 + 5 -> Result.  % 결과는 정수형으로 자동 변환됨

% 문자열 변수 선언 및 사용
"Hello, World!" -> Message.

% 실수형 변수 선언
3.14 -> Pi.

% 타입 변환 예제 (오류 처리)
try 10 / 0 catch % 0으로 나누기 시 에러 발생
  {_, _} -> Error;
    io:format("Error: Division by zero
")
end. 
```
등록일: 2025년 10월 13일 03:02
언어 정보
언어
Erlang
카테고리
Functional
인기도
#28
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요