상위 22개 Erlang 인터뷰 질문 및 답변(2025)
꿈의 직업을 얻기 위한 신입 지원자와 경력 지원자를 위한 Erlang 인터뷰 질문과 답변은 다음과 같습니다.
1) 얼랭이란 무엇입니까?
Erlang은 범용 프로그래밍 언어이자 런타임 환경입니다. 동시성, 내결함성 및 배포에 대한 지원이 내장되어 있습니다. Erlang은 오픈 소스로 제공됩니다.
2) OTP(Open Telecom Platform)란 무엇인지 설명해주세요.
OTP는 오픈 소스 플랫폼이며 ASN.1 컴파일부터 WWW 서버 제공까지 모든 작업을 수행하는 Erlang용 대규모 라이브러리 세트입니다.
3) 얼랭의 주요 기능은 무엇인가요?
Erlang의 주요 기능은 다음과 같습니다.
- 선언적 구문: 선언적 구문이 있습니다.
- 병발 사정: 프로세스 기반 동시성 모델이 있습니다.
- 실시간: 실시간 시스템을 프로그래밍합니다.
- 연속 작동 : 연속적인 작동을 가능하게 해줍니다.
- 건장한: 런타임 오류를 감지하기 위해 언어에 세 가지 구성이 있습니다.
- 메모리 관리: 메모리는 자동으로 할당되고 필요하지 않을 때는 할당 해제됩니다.
- 유통 : 공유 메모리가 없으며 분산 시스템을 erlang으로 쉽게 구축할 수 있습니다.
- 완성: 다른 언어로 작성된 프로그램의 쉬운 통합
4) erlang이 제공하는 데이터 유형의 이름을 지정합니까?
Erlang은 두 가지 데이터 유형을 제공합니다.
- 상수 데이터 유형: 이러한 유형의 데이터 유형은 더 원시적인 하위 유형으로 분할될 수 없습니다. 숫자와 원자로 구성되어 있습니다.
- 복합 데이터 유형: 이러한 유형의 데이터 유형은 다른 유형의 데이터 유형을 그룹화하는 데 사용됩니다. 튜플과 리스트로 구성됩니다.
5) Erlang에서 노드 연결을 끊는 명령은 무엇입니까?
erlang:disconnect_node(노드)를 호출하면 노드 연결이 강제로 끊어집니다.
6) Erlang의 모듈이 무엇인지 설명해주세요.
Erlang을 사용하면 코드를 모듈로 구성할 수 있습니다. 모듈은 기능으로 구성됩니다. 이는 로컬 기능 범위(공용 및 개인)를 도입합니다.
7) 모듈이 Erlang에 어떻게 저장되는지 언급하세요.
모듈 이름은 .erl이라는 파일에 저장됩니다. 파일 기본 이름과 모듈 이름은 동일해야 합니다.
8) Erlang의 비트 문자열이 무엇인지 설명하세요.
형식화되지 않은 메모리 영역을 저장하기 위해 비트 문자열이 사용되며 비트 구문을 사용하여 표현됩니다.
9) 패턴 매칭이 무엇인지 설명해주세요.
함수 호출을 평가할 때 패턴 일치가 발생합니다. 패턴 일치 메커니즘을 통해 변수는 값에 바인딩됩니다.
10) PID 데이터 유형이 무엇인지 설명해주세요.
PID는 프로세스 식별자를 의미하며 모든 프로세스에 할당되는 고유한 프로세스 식별자에 사용되는 데이터 유형입니다.
11) Erlang에 파일을 포함하려면 어떤 명령을 사용합니까?
두 가지 방법으로 Erlang에 파일을 포함할 수 있습니다.
- (파일)을 포함합니다.
- include_lib(파일).
12) Erlang에서는 런타임 오류가 어떻게 처리됩니까?
Catch 또는 Try를 사용하면 런타임 오류 및 기타 예외로 인해 프로세스가 종료되는 것을 방지할 수 있습니다. Catch Expr은 평가 중에 예외가 발생하지 않는 한 표현식의 값을 반환합니다. Try Exprs는 예외 클래스를 식별하고 원하는 클래스를 처리하도록 선택하는 기능을 갖춘 향상된 catch 기능입니다.
13) Erlang에서는 "프로세스"가 어떻게 생성되나요?
프로세스는 generate를 호출하여 생성되며,spawn은 새로운 프로세스를 형성하고 pid를 반환합니다.
- 생성(모듈, 이름, 인수) -> pid()
14) 가드 시퀀스를 정의하고 유효한 가드 표현은 무엇입니까?
Erlang 함수 절은 가드로 보호할 수 있습니다. 조항은 가드가 보유하는 경우에만 보호될 수 있습니다. 세미콜론(;)으로 구분된 일련의 가드이고, 가드는 쉼표(,)로 구분된 일련의 가드 표현입니다. 가드 중 하나 이상이 참인 경우 가드 시퀀스는 참입니다.
15) 유효한 보호 표현 목록을 제공합니까?
유효한 보호 표현은 다음과 같습니다.
- 아톰 참,
- 기타 상수
- 지정된 BIF에 대한 호출
- 용어 비교
- 산술 표현식
- 부울 표현식
- 단락 표현
16) Erlang에서 메시지를 보내고 받는 방법을 설명하세요.
메시지를 보낼 때 Erlang은 메시지를 보내는 연산자로 느낌표(!)를 사용합니다. 메시지를 보내는 데 사용되는 구문은 Pid 입니다! 메시지. 메시지를 수신하기 위해 Erlang은 패턴 일치를 사용하고, 메시지 큐에서 메시지를 전달하기 위해 receive 문을 사용합니다.
17) Spawn/ 1l3 및 Spawn_link 1l3이 무엇인지 설명하세요.
Spawn/ 1l3: 새 프로세스를 생성하고 해당 pid를 반환합니다. 시스템 스케줄러 큐에는 새로운 프로세스가 잠시 후에 실행될 수 있도록 배치됩니다. Spawn_link/1l3: generate/1l3과 동일한 기능을 제공하지만 새로 생성된 프로세스와 호출자 간에 원자적으로 생성되는 링크가 추가되어 있습니다.
18) Erlang에서 매크로를 작성하는 구문은 무엇입니까?
Erlang에서 매크로를 작성하는 데 사용되는 구문은 다음과 같습니다.
define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )
19) Erlang에 사전 정의된 매크로를 나열하시겠습니까?
Erlang의 사전 정의된 매크로는 다음과 같습니다.
- 모듈 : 현재 모듈의 이름을 반환합니다.
- 모듈_문자열: 현재 모듈의 이름을 문자열로 반환합니다.
- 파일 : 현재 파일 이름을 반환합니다.
- 선: 현재 줄 번호를 반환합니다.
- 기계: 현재 컴퓨터 이름 'BEAM'을 반환합니다.
20) 레코드란 무엇이며 Erlang에서 레코드를 어떻게 정의할 수 있는지 설명해주세요.
고정된 수의 요소를 저장하기 위해 데이터 구조 레코드라고 불리는 것을 사용합니다. 표현식은 컴파일 기록 중에 튜플 표현식으로 변환됩니다. Erlang의 레코드는 레코드 이름과 그 뒤에 레코드의 필드 이름으로 정의됩니다. 레코드 및 필드 이름은 원자여야 합니다.
record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )
21) Erlang에서 레코드 필드에 액세스하는 데 사용되는 명령은 무엇입니까?
Expr#Name.Field, 이 명령은 지정된 필드의 위치를 반환하는 데 #Name.Field가 사용되는 동안 언급된 필드의 값을 반환합니다.
22) epmd가 무엇인지 설명해주세요.
epmd는 분산 Erlang 통신을 설정할 때 Erlang 프로그램에서 사용하는 작은 이름 서버입니다. Erlang 포트 매퍼 데몬이라고도 합니다. 기호 노드 이름을 사용되는 컴퓨터 주소에 매핑하는 일을 담당합니다.
이 인터뷰 질문은 당신의 비바(구술)에도 도움이 될 것입니다.