2022년 초심자 및 경험자를 위한 스칼라 면접 질문 및 답변 상위 27개
게시 됨: 2021-01-07스칼라 인터뷰에 참석하고 어떤 질문과 토론을 하게 될지 궁금하십니까? 인터뷰에 참석하기 전에 스칼라 인터뷰 질문의 유형에 대한 아이디어를 가지고 정신적으로 답변을 준비할 수 있도록 하는 것이 좋습니다.
범용 프로그래밍 언어로 시작된 Scala는 오늘날 빅 데이터 산업에 파문을 일으키고 있습니다. 이 모든 것은 높은 확장성 요소와 페타바이트 규모의 빅 데이터를 처리할 수 있는 능력 때문입니다. Scala는 객체 지향 프로그래밍과 함수형 프로그래밍의 기능을 결합하고 JVM(Java Virtual Machine)에서 실행할 수 있습니다. 방대한 라이브러리와 함께 Scala는 개발자들이 가장 선호하는 프로그래밍 언어 중 하나로 부상했습니다. 그 결과 전 세계적으로 Scala 전문가에 대한 수요가 증가했습니다.
Scala 전문가를 위한 증가하는 고용 기회를 활용하려는 경우 첫 번째 단계는 Scala 인터뷰에 에이스하는 것입니다. 우리는 그 목적을 충족하기 위해 이 포스트를 디자인했습니다. 스칼라 인터뷰에서 가장 일반적으로 묻는 15가지 질문 목록입니다.
당신을 돕기 위해 스칼라 인터뷰 질문의 깊이와 진정한 의도를 이해하기 위해 최고의 스칼라 인터뷰 질문과 답변 가이드를 만들었습니다.
더 이상 고민하지 않고 시작하겠습니다!
상위 25개의 Scala 인터뷰 질문 및 답변
1. Scala는 어떻게 OOP이자 함수형 프로그래밍 언어입니까?

Scala는 각 값을 '함수'를 더 포함하는 '객체'로 취급하는 Java 기반 다중 패러다임 프로그래밍 언어입니다. 이것이 Scale을 OOP와 함수형 프로그래밍 언어의 조합으로 만드는 것입니다.
2. Scala는 일반적으로 어디에 사용됩니까?
범용 언어로서 스칼라는 다양한 용도로 사용됩니다. 일반적으로 Scala는 광범위한 분석 또는 기계 학습 엔진용 코드를 작성하는 데 사용할 수 있습니다. Java Virtual Machine으로 컴파일할 수 있는 유형 안전 프로그래밍 언어로서 Scala의 주요 용도는 기존 Java 코드를 업그레이드하는 것입니다. 기존 Java 코드는 종종 복잡하고 지루합니다. 이것은 Twitter, LinkedIn 및 Netflix와 같은 인기 있는 플랫폼에서 광범위한 애플리케이션을 발견했습니다.
3. Scala가 하이브리드 언어인 이유를 설명하십시오.
스칼라는 함수형 프로그래밍 언어와 객체 지향 프로그래밍 언어의 기능을 모두 통합합니다. 스칼라에서 입력되는 모든 값은 객체로 취급됩니다. 동시에 모든 기능은 값입니다. 따라서 스칼라는 모든 기능을 객체로 만들 수 있습니다. 이것은 Scala를 하이브리드 프로그래밍 언어로 만듭니다.
4. 기존 프로그래밍 언어와 비교하여 Scala의 가장 큰 장점은 무엇입니까?
Scala의 시작은 현재 프로그래밍 언어 집단을 업그레이드하고 Java, Python, C 프로그래밍 등과 같은 인기 있는 프로그래밍 언어에 증분 가치를 추가하는 것이었습니다. 따라서 처음부터 Scala는 유연한 구문을 가진 더 짧고 간결한 코드를 제공합니다.
또한 다른 정적으로 유형이 지정된 프로그래밍 언어와 달리 Scala에는 추가 정보가 필요하지 않습니다. 예를 들어 유형을 지정하거나 코드 작성의 다른 단계에서 반복해야 할 필요가 없습니다. Scala는 Java Virtual Machine에 통합되어 Java의 기존 코드를 컴파일할 수 있으므로 코드를 재사용할 수 있습니다.
스칼라는 하이브리드 프로그래밍 언어이기 때문에 동시 프로그래밍도 지원합니다. 또한 Scala는 코드의 오류를 즉시 표시하므로 향상된 테스트를 지원합니다. 전반적으로 고성능과 높은 생산성을 보장합니다.
읽기: 빅 데이터 인터뷰 질문 및 답변
5. 스칼라에서 다양한 유형의 변수는 무엇입니까?
스칼라에는 두 가지 유형의 변수가 있습니다.
- 변경 가능한 변수 – 이 변수에는 변경을 지원하는 값이 있습니다(생성 후 새 값을 할당할 수 있음). 'var' 키워드를 사용하여 선언합니다.
- 불변 변수 – 이 변수에는 한 번 생성되면 변경할 수 없는 값이 있습니다. 'val' 키워드를 사용하여 선언됩니다.\
6. Scala에서 지원하는 몇 가지 프레임워크를 언급하십시오.
Scala에서 지원하는 프레임워크는 다음과 같습니다.
- 불꽃
- 끓는
- 네오포제이
- 놀다
- 아카
- 승강기
7. 재귀 꼬리란 무엇입니까?
Scala에는 자신을 호출할 수 있는 Recursion Tail이라는 함수가 있습니다. 예를 들어, 함수 a 는 함수 c를 추가로 호출하는 함수 재귀 꼬리를 만들려면 콜백 함수가 마지막으로 수행된 함수여야 합니다.
8. 스칼라에서 튜플은 어떤 용도로 사용됩니까?
튜플의 목적은 프로그래머/코더가 튜플 전체를 전달할 수 있도록 고정된 유한 수의 항목을 결합하는 것입니다. 튜플은 다양한 데이터 유형을 가진 객체를 보유할 수 있으며 변경할 수 없습니다.
튜플은 유한 입력의 조합을 나타냅니다. 튜플은 고정된 수의 항목을 함께 결합하는 데 사용됩니다. 이를 통해 프로그래머는 신중한 항목을 전체에 통합할 수 있습니다. 튜플은 변경할 수 없지만 서로 다른 유형의 항목을 함께 결합할 수 있습니다.
9. BitSet이란 무엇입니까?
BitSet은 배열로 표시된 음이 아닌 정수로 구성된 집합입니다. 배열의 크기는 다양하지만 64비트 워드로 압축됩니다. BitSet에서 가장 큰 숫자가 메모리 공간이 됩니다.
10. ofDim()이란 무엇입니까?
스칼라에서 ofDim()은 다차원 배열을 생성할 수 있는 함수입니다. 데이터를 여러 차원에 저장할 수 있습니다. 이는 일종의 행렬처럼 됩니다.
11. Closure 기능의 목적은 무엇입니까?
클로저는 스칼라에서 반환 값이 클로저 함수 외부에서 선언된 하나 이상의 변수 값에 의존하는 함수입니다.
12. Scala에서 앱이 필요한 이유는 무엇입니까?
스칼라에서 앱이 필요한 이유를 설명하기 전에 스칼라 특성이 무엇인지 이해합시다. 스칼라 특성은 특히 메서드와 변수 또는 필드의 다중 상속을 용이하게 하는 스칼라의 단위입니다. 이 앱은 일종의 스칼라 특성입니다.
Scala에서 클래스가 데이터와 메서드를 결합하는 것처럼 앱은 기본 메서드와 해당 멤버를 통합합니다. 여러 면에서 앱은 도우미 클래스로 분류될 수 있습니다. Scala의 앱을 통해 객체를 실행 가능한 코드로 바꿀 수 있습니다.
13. Scala의 일반 접근 한정자는 무엇입니까?
Private, Protected 및 Public은 Scala에서 사용할 수 있는 주요 세 가지 액세스 수정자입니다. 그들 각각은 특정한 두드러진 특징을 가지고 있습니다.
private access modifier는 사용자의 액세스를 사용자가 정의된 클래스나 개체로만 제한합니다.
보호된 멤버는 사용자가 정의된 클래스의 모든 하위 클래스에 액세스할 수 있습니다.
앞의 두 개와 달리 Public 멤버는 프로그램의 어디에서나 액세스할 수 있습니다. 사전 정의된 키워드는 액세스를 제한하지 않습니다.
14. 스칼라에서 변수에 제공되는 범위의 유형은 무엇입니까?
Scala에는 사용 사례에 따라 세 가지 변수 범위가 있습니다.
필드 – 개체 내에서 선언된 변수입니다. 액세스 수정자에 따라 필드는 프로그램 내부 어디에서나 액세스할 수 있습니다. 'var'와 'val'로 선언할 수 있습니다.
메서드 매개변수 – 주로 메서드에 값을 전달하는 데 사용되는 변경할 수 없는 변수입니다. 메서드 내에서 액세스할 수 있습니다. 그러나 참조를 사용하여 메서드 외부에서 메서드 매개변수에 액세스할 수도 있습니다.

지역 변수 – 이 변수는 메서드 내에서 선언되며 메서드 내에서만 액세스할 수 있습니다.
15. 스칼라 프로그램을 어떻게 실행할 수 있습니까?
Scala를 사용하여 프로그램을 실행하려면 먼저 SCLA REPL을 사용하여 작성한 다음 컴파일을 진행해야 합니다. 이것은 'SCALAC' 명령을 사용하여 바이트 코드로 변환한 다음 Java 가상 머신으로 전송할 수 있습니다. 그런 다음 'SCLA' 명령을 사용하여 프로그램을 실행할 수 있습니다.
읽기: Hadoop 인터뷰 질문 및 답변
16. "Null", "Nil", "None" 및 "Nothing"이라는 용어의 차이점을 설명합니다.
이 용어는 비슷하게 들리지만 각각 다른 것을 나타냅니다.
Null은 값이 없음, 특히 AnyRef에서 상속된 복합 형식에 대한 형식 정보가 없음을 나타냅니다.
Nil은 목록의 끝을 나타냅니다.
없음은 내부에 가치가 없는 옵션의 가치를 나타냅니다.
Nothing은 가장 낮은 유형을 나타냅니다. AnyRef 및 AnyVal 아래의 모든 값이 그 아래에 속합니다.
17. Scala의 다양한 루프 유형은 무엇입니까?
루프는 스칼라에서 사용되는 가장 일반적인 배열 문자열입니다. Scala는 네 가지 주요 유형의 루프를 제공합니다.
While 루프 - 스칼라에서 while 루프를 사용하면 "if-else" 명령으로 정의된 조건이 참인 한 명령문을 반복할 수 있습니다. while 루프는 먼저 조건을 테스트한 다음 실행합니다. 무한 루프를 정의하는 데 유용합니다. 이 경우 조건은 절대 거짓이 되지 않는 방식으로 설정됩니다.
Do-While 루프 - 이 루프는 루프 본문의 끝에서 조건이 테스트된다는 점을 제외하고는 while 루프와 유사하게 작동합니다.
For 루프-It은 루프 본문에서 일련의 명령문을 여러 번 실행합니다. For 루프는 이러한 경우 루프 변수를 관리하는 코드를 축약하는 데 효과적입니다.
Break- 앞의 세 가지와 달리 break 명령은 명령문 직후에 루프를 종료하고 루프 실행으로 이동하는 데 사용됩니다.
18. Scala의 Presidency 및 Priority 테이블은 무엇입니까?
프레지던시 및 우선 순위 테이블은 Scala에서 어떤 작업을 먼저 수행할지 결정합니다. 다음 표는 Scala에서 연산자 우선 순위를 나타냅니다.
예를 들어, p+q*r에 대한 결과를 얻기 위해 Scala는 다음 순서로 작업을 수행합니다.
먼저 q*r이 계산됩니다. 그런 다음 for(q*r) 값을 p에 추가하여 최종 출력을 얻습니다.
19. Scala의 주요 연산자는 무엇입니까?
스칼라의 주요 연산자 중 일부는 산술 연산자, 관계 연산자, 논리 연산자, 비트 연산자 및 할당 연산자입니다. Scala의 연산자는 식별자라고도 합니다.
20. Scala에서 클래스는 객체와 어떻게 다릅니까?
간단히 말해서, 객체는 Scala의 클래스 내에 있습니다. Scala의 클래스는 데이터와 해당 메서드를 결합하는 반면 객체는 주어진 클래스 내부의 인스턴스입니다.
21. 특성이란 무엇입니까? 언제 사용됩니까?
특성은 다중 상속 사용을 용이하게 하는 클래스의 특정 단위를 나타냅니다. 변수 및 필드와 함께 메서드를 캡슐화합니다. 특성은 하나의 클래스만 확장할 수 있지만 클래스는 여러 특성을 가질 수 있습니다.
특성은 주로 종속성 주입에 사용됩니다. 종속성 주입이 주석을 통해 수행되는 Java와 달리 Scala에는 주석이 없거나 가져와야 하는 특수 패키지가 없습니다. 종속성 주입을 트리거하려면 특성으로 클래스를 초기화하기만 하면 됩니다.
22. Scala의 기본 패키지는 무엇입니까?
스칼라는 Java.lang, java.io 및 PreDef의 세 가지 기본 패키지와 함께 제공됩니다. 세 가지 패키지의 기능은 모두 다릅니다.
Java.lang은 기본적으로 Java 프로그래밍 언어입니다. 여기에는 Java 프로그래밍 언어의 디자인과 호환되는 클래스가 포함됩니다.
Java.io는 입출력 리소스를 위해 Scala에서 클래스를 가져오는 데 도움이 됩니다.
PreDef에는 Map, Set 및 Lists와 같이 특별히 변경할 수 없는 컬렉션에 대한 유형 별칭이 포함되어 있습니다.
23. 암시적 매개변수란 무엇입니까?
암시적 매개변수를 사용하면 모든 매개변수를 전달하지 않고도 함수를 호출할 수 있습니다. 이 경우 모든 매개변수 또는 암시적으로 선언하려는 매개변수에 대한 기본값을 제공해야 합니다. 값/함수 매개변수/변수를 '암시적'으로 만들려면 암시적 키워드가 필요합니다.
24. 스칼라 옵션이 어떻게 도움이 되나요?
Scala Option 키워드는 누락된 값을 래핑하려고 할 때 유용합니다.
25. 모나드란 무엇입니까?
Scala의 또 다른 매력적인 기능은 한 객체가 다른 객체를 감싸는 기능입니다. 이것은 Monad를 사용하여 가능합니다. 모나드는 기본 객체의 조작을 위해 함수가 지시될 수 있는 객체입니다. Monad는 프로그램을 객체에 직접 적용하지 않습니다. 일반적인 용어로 선물 포장지와 유사합니다.
26. 스칼라 맵이란?
스칼라 맵은 키를 사용하여 값을 검색해야 하는 키-값 쌍의 모음을 나타냅니다. 맵의 값은 고유하지 않지만 키는 고유합니다.
스칼라 맵은 효과적으로 변수의 모음입니다. 여기에는 키와 값이 포함됩니다. 키는 값을 검색하는 데 사용됩니다. 값은 Scala 맵에서 고유하지 않지만 키는 고유합니다. 변수와 유사하게 스칼라 맵도 변경 가능하거나 변경 불가능할 수 있습니다.
27. Scala의 주요 프레임워크는 무엇입니까?

Scala에서 다중 패러다임 호환성은 고유한 기능입니다. Scala의 프레임워크는 Akka 프레임워크, Spark 프레임워크, Play 프레임워크, Scalding 프레임워크 및 Neo4j 프레임워크에서 리프트 프레임워크 및 볼러 프레임워크에 이르기까지 다양합니다.
결론
이것은 가장 자주 묻는 스칼라 인터뷰 질문과 답변 을 다룹니다. 또한 Scala에 대한 기본 이해를 교육하는 데 도움이 됩니다. 그러나 이것은 완전한 목록이 아닙니다. 스칼라는 연습과 경험을 통해서만 숙달될 수 있는 몇 가지 미묘한 측면을 가지고 있습니다.
특히 패턴 매칭, 생성자, 대기열에 대한 이해는 코딩 기술을 크게 강화하고 직장에서 성능을 향상시킬 수 있는 Scala의 필수 기능입니다.
위에서 논의한 Scala 인터뷰 질문과 답변은 초보자가 소프트웨어 개발 작업을 준비하는 데 도움이 되는 Segway가 될 것이며, 전문가에게는 Scala 인터뷰 질문에 대한 약간의 브러시 업이 일상적인 코딩 관행의 개선을 구현하는 데 항상 편리할 것입니다.
빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하십시오. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.