ONLINE CLASS

스칼라 프로그래밍

COURSE FOCUS

이 강의에서 배우는 핵심 실무

스칼라 인터프리터에서 var·val과 함수, 조건식·반복문을 실행하며 표현식 중심의 문법을 익힙니다. 싱글톤과 컴패니언 오브젝트, 트레이트를 살펴보고 수정 가능한 콜렉션과 수정 불가능한 콜렉션의 사용을 비교합니다. 패턴 매칭과 케이스 클래스로 중첩된 구조를 다루는 방법을 연습하며 데이터의 형태에 따라 처리 흐름을 구성해봅니다.

?

수강 전 꼭 확인하세요

수강 전 자주 묻는 내용을 간단히 안내드립니다.

Q초보자도 교재 없이 수강 가능한가요? 프로그램 정보는?
A

네, 영상과 실습자료로 쉽게 학습할 수 있습니다. 알지오는 원격평생교육원으로 프로그램 관련 정보는 제공하지 않습니다.

◆
기업이 선택한 신뢰 강의

검증된 커리큘럼과 전문 강사진으로 높은 만족도를 제공합니다.

자세히 보기  >
♥
수강료 일부는 사회환원에 사용됩니다.

작은 나눔이 더 나은 내일을 만듭니다.

자세히 보기  >
REAL REVIEW

수강생 리얼후기!

실제 수강생의 학습 경험을 확인해 보세요.

수강후기를 불러오는 중입니다.

RECENT Q&A

최근 수강질문

최근 등록된 수강질문을 작성순서대로 확인해 보세요.

ALZIO DEEP GUIDE

Scala을 더 깊게 이해하기

20강에서 표현식·함수·객체·트레이트를 배운 뒤 컬렉션과 패턴 매칭·case class·Option으로 이어집니다. 강좌의 구형 문법과 현재 Scala 3의 변화를 구분해 학습합니다.

공식 기술정보 확인20강 커리큘럼 연결2026 현재 기술정보

스칼라 프로그래밍 · 20강 · 11시간 8분

01

Scala은 무엇인가

Scala는 정적 타입 아래 객체지향과 함수형 표현을 함께 사용하는 언어입니다. 클래스·트레이트로 구조를 만들고 함수·컬렉션·패턴으로 자료를 변환합니다. 한 가지 방식만 사용하도록 강제하는 언어가 아니며 간결한 표현을 실제 타입과 결과로 설명하는 것이 중요합니다.

02

관련 플랫폼과 개발도구의 관계

JVM 생태계에서 Java 라이브러리와 연결할 수 있으며 Scala 컴파일러와 빌드 도구는 별도 역할입니다. 언어 버전과 라이브러리의 바이너리 호환 조건을 확인해야 같은 프로젝트를 재실행할 수 있습니다. Java와 같은 실행 기반을 사용할 수 있다는 것이 같은 문법이라는 뜻은 아닙니다.

03

Scala의 핵심 기능

기술 자체의 기능과 이 강좌의 직접 학습 범위는 다릅니다. 아래 연결 표시는 저장된 공개 커리큘럼에 근거합니다.

함수·표현식

계산 결과와 동작을 표현합니다. 함수를 값으로 전달하면 자료 변환 규칙을 분리할 수 있습니다. 반환값과 부수효과를 함께 확인해야 짧은 표현의 실행 의미를 이해합니다.

강좌에서 직접 학습 · 1~3·14~15강

클래스·object·트레이트

객체와 공통 동작을 구성합니다. 생성 순서와 책임을 나누면 초기화 문제를 추적하기 쉽습니다. object와 클래스의 인스턴스 생성 방식을 구분하세요.

강좌에서 직접 학습 · 5~9·11~13강

컬렉션·변환

여러 값의 매핑·집계·순회를 표현합니다. 변경 가능한 구조와 새로운 값을 만드는 변환을 구분하면 원본을 보존하는 코드를 만들기 쉽습니다. 지연된 처리와 즉시 결과를 만드는 처리도 확인해야 합니다.

강좌에서 직접 학습 · 3~4·16~18강

패턴·case class

자료의 모양과 계열에 따라 분기합니다. 여러 중첩 자료를 조건문에 흩어 놓지 않고 읽을 때 유용합니다. 모든 입력을 처리하는지와 추출 결과를 확인하세요.

강좌에서 직접 학습 · 19~20강

타입·Option

값의 형식과 존재 가능성을 표현합니다. 결측을 정상 상태로 다뤄야 할 때 도움이 됩니다. 존재한다고 강제로 꺼내는 호출은 없는 경우의 처리를 대신하지 않습니다.

강좌에서 직접 학습 · 1~4·20강

패키지·파일·연동

코드 구성과 외부 자료·Java 도구를 연결합니다. 이름의 범위와 파일 입출력 조건을 나누면 환경 오류를 찾기 쉽습니다. 버전이 달라지면 문법과 컬렉션 인터페이스를 대조해야 합니다.

강좌에서 직접 학습 · 7~10·18강
04

이 과정의 실제 작업 흐름

1~4강은 인터프리터·표현식·제어·함수·배열·맵·튜플입니다. 5~9강에서는 클래스·object·패키지·상속과 생성 순서를 연결합니다. 객체의 상태와 함수 결과를 나눠 기록하면 두 접근이 어떤 목적에 사용되는지 설명할 수 있습니다.

10~13강은 파일·정규식·트레이트·연산자이며 14~18강은 고차함수·클로저·커링·컬렉션·지연 처리입니다. 19~20강의 패턴·case class·Option을 자료 변환의 마지막 조건 처리로 연결하세요. 병렬 컬렉션 전체 운영 성능 검증을 제공한다는 의미는 아닙니다.

  1. 표현식·함수
  2. 배열·맵
  3. 클래스·object
  4. 상속·트레이트
  5. 컬렉션 변환
  6. 패턴·Option
05

핵심 구조를 이해하는 방법

val·var와 mutable·immutable 컬렉션은 서로 다른 수준의 변경 조건입니다. 함수 결과와 원본의 변화를 나누면 자료 흐름을 읽기 쉽습니다. Option은 값이 없을 가능성을 표현하지만 그 값을 사용하는 분기까지 자동으로 결정하지는 않습니다.

06

실무 적용과 결과 확인

16~18강을 복습할 때 map·fold의 입력과 결과를 표로 기록하고 원본이 변했는지 확인하세요. 새로운 값을 만드는 처리와 수정하는 처리를 비교하는 것은 추가 응용 제안입니다. 지연된 순회를 여러 번 실행할 때 작업이 반복되는지도 따로 확인합니다.

19~20강에서는 같은 자료의 다른 모양과 값이 없는 경우를 분리해 분기 결과를 설명하세요. case class copy와 Option을 어떤 자료 모델에 쓸지 정리하면 문법 암기에서 벗어나기 쉽습니다. 확인되지 않은 대규모 분석 시스템 제작으로 실습 범위를 확대하지 않습니다.

함수형 자료 변환

14~18강에서 함수와 컬렉션의 변환을 연결합니다. 원본·반환값·실행 시점 비교는 복습 응용 제안입니다.

실제 회차와 복습 응용 구분

타입 계열과 결측 분기

19~20강의 패턴·case class·Option을 자료의 모양과 존재 가능성으로 읽습니다. 분산 분석 시스템 전체를 제작한다고 확대하지 않습니다.

실제 회차와 복습 응용 구분
07

이 강좌에서 집중할 전문주제

본 과정은 객체와 함수형 자료 처리의 연결이 중심입니다. 11~13강의 트레이트와 14~15강의 함수·클로저·커링을 별개 도구로 비교하세요. 상속 구조와 처리 함수의 조합은 다른 책임 분리 방법입니다.

18강의 Stream·Java 컬렉션 연동·병렬 컬렉션 표기는 현재 라이브러리 구성과 대조해야 합니다. 19~20강의 추출자와 패턴은 자료의 형태를 읽는 학습으로 연결합니다. 현재 Scala 3의 모든 타입 기능을 제공한다는 뜻은 아닙니다.

08

현재 기술과 강좌 환경의 관계

공개 자료에서 정확한 Scala·JDK·Eclipse 버전은 확정되지 않습니다. 프로시저 문법·조기 정의 등 구형 항목이 있으므로 최신 Scala 3 문법 강좌로 표시하지 않습니다.

현재 Scala 3에서는 구형 프로시저 문법과 일부 초기화 문법 등 변경 사항을 확인해야 합니다. 컬렉션도 사용하는 세대와 의존성에 맞춰 대조하세요. 마이그레이션 전체·최신 타입 기능·분산 분석 프레임워크 전체는 다음 학습 범위입니다.

09

목적에 맞는 기술 선택과 비교

아래 비교는 목적과 작업 구조를 선택하기 위한 안내입니다. 다른 기술 전체를 본 강좌에서 가르친다는 뜻은 아닙니다.

목적에 맞는 기술 선택과 비교
선택지작업 접근이 강좌와의 관계
Scala객체와 함수·타입·패턴 조합본 과정의 중심
JavaJVM 객체와 다른 언어 규칙연동 조건과 문법을 비교
KotlinJVM 등 대상의 다른 정적 언어자료 표현과 null 처리 비교
10

기술개념과 알지오 커리큘럼 연결

회차는 공개 커리큘럼의 실제 순서입니다. 실습 후 응용 제안과 현재 기술 참고정보를 강의에서 제공하는 실습으로 해석하지 않습니다.

기술개념과 알지오 커리큘럼 연결
기능·개념무엇인가실무 의미강좌 회차학습 상태
표현식·함수·자료 구조값과 처리 단위자료의 입력·결과1·2·3·4강강좌에서 직접 학습
클래스·object·패키지·상속객체와 이름 범위생성 순서와 책임5·6·7·8·9강강좌에서 직접 학습
파일·정규식외부 자료와 패턴입출력 실패와 해석9·10·11강강좌에서 직접 학습
트레이트·연산자공통 동작과 호출 규칙구성·초기화 조건11·12·13강강좌에서 직접 학습
고차함수·클로저·커링동작을 값으로 전달재사용할 처리 규칙14·15강강좌에서 직접 학습
컬렉션·변환·지연 처리여러 자료의 처리원본·결과·실행 시점16·17·18강강좌에서 직접 학습
패턴·case class·Option자료 계열과 결측 표현조건별 결과 확인19·20강강좌에서 직접 학습
11

처음 배울 때 자주 생기는 오해

Scala는 Java 문법의 별칭인가?

별도 언어입니다. JVM 연결과 문법을 구분하세요. 1~4강의 표현식과 함수 규칙을 직접 확인합니다.

val이면 컬렉션 내용도 항상 불변인가?

재대입과 자료 변경은 다릅니다. 16~18강의 mutable과 immutable을 구분하세요. 객체가 가진 상태까지 자동으로 바뀌지 않는다고 단정하지 않습니다.

트레이트는 클래스 복사인가?

공통 동작과 타입 관계를 구성하는 도구입니다. 11~13강에서 생성 순서도 확인하세요. 여러 동작의 초기화를 같은 시점으로 가정하지 않습니다.

Option이면 없는 값을 신경 쓰지 않아도 되나?

존재 가능성을 표현하는 도구입니다. 20강의 분기와 연결하세요. 없는 값에서 강제로 꺼내는 동작은 실패할 수 있습니다.

병렬 컬렉션이면 항상 빠른가?

작업 크기와 비용·환경에 따라 다릅니다. 18강 표기와 현재 의존성을 확인하세요. 모든 자료 처리를 더 빠르게 한다고 보장하지 않습니다.

현재 Scala 3 그대로 실행할 수 있나?

구형 문법과 라이브러리 변화가 있습니다. 제작 버전은 미확정입니다. 현재 마이그레이션 조건을 별도로 대조하세요.

12

다음 학습 방향

자바(JAVA) 기초 + 고급

JVM 생태계의 Java 객체·예외 기초와 비교합니다.

자료 보기 →

코틀린

Kotlin의 자료 모델과 함수 표현을 비교합니다.

자료 보기 →

Scala 관련 과정 비교

입문·실무·심화 과정의 실제 커리큘럼을 목적에 맞게 비교합니다.

자료 보기 →

실습과 복습 계획

새 환경에서 예제를 확인하고 학습 계획을 세우는 방법을 살펴봅니다.

자료 보기 →

기술정보는 Scala 공식 프로젝트의 공식자료를 기준으로 검토했으며, 강좌 범위는 스칼라 프로그래밍의 공개 커리큘럼과 구분했습니다.

공식 기술정보 확인일: 2026-10-05 · 강좌 업데이트일을 의미하지 않습니다.

스칼라 프로그래밍 스칼라 프로그래밍
  • 스칼라 프로그래밍

  • 강의구성
  • (20강) 전체 : 11시간 8분|평균 : 33분23초
  • 이용기간/강사
  • 2개월
    알지오 R&D [IT] ▶ 프로필 보기
  • 증빙가능
  • 수료증, 수강증, 학습진도
  • 수강료
  • 310,000원할인155,000원
?

수강 전 꼭 확인하세요

수강 전 자주 묻는 내용을 간단히 안내드립니다.

Q 초보자도 교재 없이 수강 가능한가요? 프로그램 정보는?
A

네, 영상과 실습자료로 쉽게 학습할 수 있습니다. 알지오는 원격평생교육원으로 프로그램 관련 정보는 제공하지 않습니다.

  • 01.38분 스칼라 인터프리터 사용
    var, val, 숫자 타입, 연산자, 함수, 산술, 연산자 오버로딩, 메소드 호출, 스칼라독 열람, 조건식, 블록식, 입력과 출력
    기본 셋팅, 입력, 스칼라의 기본기, 예시, 값, 변수 선언, 공통된 문자 출력, 함수, 메소드호출, 문자열 사용, 블록식과 할당, ReadInt
  • 02.31분 제어구조와 함수 part1
    스칼라 이클립스, 루프, while, for, 고급 for루프, for 컴프리헨션, 제너레이터, 함수, 기본인자와 이름인자, 가변인자
    스칼라 이클립스 실행, 구문 한줄로 수정, 값 출력, 스칼라 함수 작성, 기본인자와 이름인자, 이름 없는 인자와 이름인자 섞기, sum함수를 하나의 인자로 호출하려면
  • 03.33분 제어구조와 함수 part2, 배열
    프로시저 만들기, 레지이값이란, 예외처리 만들기, 배열 사용하기, 고정길이 배열, 가변길이, 배열(배열버퍼), 배열과 배열버퍼 방문, 배열 변환, 일반알고리즘
    프로시저 알아보기, 스칼라에서 예외 처리방법, 배열 작성, 원소를 제거할수 있는 방법, 배열의 끝을 시작으로 원소를 방문하는 구문 넣기, 새 함수 정의, sorted 함수
  • 04.30분 맵과 튜플
    맵 생성 방법, 맵 값 접근 방법, 맵 값 갱신 방법, 맵 반복, 정렬 맵, 자바 연동 방법, 튜플, 지핑
    맵과 튜플, 간단한 문법 이용해 작성하기, 간단한 호출 조합 작성, 원하는 갱신이 반영된 새 맵 얻기, 값 출력, 자바 유틸을 맵 스트링 스트링 타입으로 변환, 지핑
  • 05.35분 클래스
    클래스, 인자 없는 메소드, 게터와 세터가 있는 프로퍼티, 빈프로퍼티, 보조생성자, 기본 생성자 만들기
    클래스를 구현하는 방법, 게터와 세터가 있는 프로포티 작성, 게터와 세터 매소드 직접 재정의, 출력, 매소드 자동 생성의 예, 다른 보조 생성자 만들기, private val의 정의
  • 06.34분 오브젝트
    싱글톤, 컴페니언 오브젝트, apply 메소드, 애플리케이션 오브젝트, 이뉴머레이션
    스칼라에서 오브젝트의 사용 시기, 컴패니언 오브젝트 사용 예, 오브젝트 입력, 어플라이 함수 새롭게 정의, 아규먼트에 들어온 인자값들의 형태가 필요할 경우, type 명칭 더하기, id 나 이름으로 이뉴머레이션 값 찾기
  • 07.32분 패키지와 임포트
    패키지, 스코프규칙, 체인패키지 구문, 파일시작 표기법, 패키지 오브젝트, 패키지 가시성, 임포트
    패키지와 임포트, 하나의 파일에 한개 이상의 패키지 넣기, giveraise 함수 입력, 예제 작성, 패키지 오브젝트, 패키지 가시성, 패키지 import 예
  • 08.34분 스코프 규칙
    멤버이름 변경 및 숨기기, 암묵적 임포트, 상속, 클래스 확장, 메소드 오버라이드, 타입검사와 캐스트, 보호 필드와 메소드, 슈퍼클래스 생성, 필드 오버라이드
    스코프의 사용 방법, 선택자 문법 사용의 장점, 상속 예제 만들기, 메소드 오버라이드, println 입력, employee 클래스 작성, 오브젝트 입력, 필드 오버라이드 시 제약사항
  • 09.35분 익명 서브클래스
    추상클래스, 추상필드, 생성 순서와 조기정의, 스칼라 상속계층, 오브젝트 등식, 파일과 정규 표현식, 줄읽기
    상속에 대한 익명 서브클래스, 추상 필드의 특징, 출력 순서 설명, equals 함수 정의, for문 입력
  • 10.32분 문자열 읽기
    토큰과 숫자 읽기, URL과 다른 소스에서 읽기, 바이너리 파일 읽기, 텍스트 파일 쓰기, 디렉토리 방문하기, 직렬화
    문자열 읽기 작성하기, 소스 열기, 파일 위치 입력, buffered 메소드 입력, 출력 입력, tokens 입력, url과 다른 소스에서 읽기, 파일을 바이트 배열로 읽는 방법 작성, 디렉토리 방문 방법, 직렬화, 프렌즈로 넘어온 값 스트링으로 변환
  • 11.32분 정규 표현식과 트레이트
    정규 표현식 그룹 만들기, 트레이트, 인터페이스로서 트레이트, 레이어드 트레이트
    정규 표현식 방법 알아보기, 전체 매치 치환, 인터페이스로서의 트레이트, 콘솔 로거 트레이트로 만들기, 콘솔로거 생성, timestampLogger 생성, 출력
  • 12.33분 트레이트
    트레이트의 추상 메소드 오버라이드 하기, 리치 인터페이스를 위한 트레이트, 트레이트의 구체 필드, 트레이트의 추상필드, 트레이트 생성순서, 트레이드 필드 초기화
    트레이트의 추상메소드 오버라이드 하는 방법, 새 프로젝트 생성, 타임스테프 트레이트 확장, 확장 해 개발하기, 쇼트 로거 생성, 새 클래스 생성, account, savingaccount 붙여넣기, 실행
  • 13.35분 트레이트와 스칼라의 연산자
    클래스를 확장한 트레이트, 셀프타입, 연산자, 인식자, 삽입연산자, 단항연산자, 할당연산자, 우선순위, 결합성
    클래스를 확장한 트레이트 알아보기, 클래스가 관련없는 클래스를 확장할 경우, 소스 수정, 콘솔 로거에서 maxlength 초기화 할때, 제곱근 입력, 단항연산자, 결합성
  • 14.33분 스칼라의 연산자와 함수
    apply 메소드, update 메소드, 추출자, unapplySeq 메소드, 고차함수, 값으로서 함수, 익명함수
    apply, update 메소드, 퍼스트, 라스트 호출, try catch절 사용, unapplySeq 메소드, 저자 바로 출력하기, fun의 값을 다른 함수에 주는 또다른 방법, 새 프로젝트 생성, valueAtQuarter의 타입
  • 15.34분 함수
    인자 추론, 유용한 고차함수, 클로저, SAM 변환, 커링, 제어 추상화
    고차 함수의 인자 추론 방법, 새 프로젝트 생성, 삼각형 출력하기, mulby 함수입력, 버튼이 클릭 됐을때 카운터 증가시키기, 단축문 사용, 구문 실행하기, 이름으로 호출 인자
  • 16.34분 return 표현식과 콜렉션 part1
    return 표현식, 콜렉션, 중요 콜렉션 트레이트, 수정 가능한 콜렌션과 수정 불가능한 콜렉션, 시퀀스, 리스트, 수정 가능한 리스트
    return 표현식, 새 프로젝트 생성, 중요사항, sortedset 입력, 수정 불가능한 맵, time 메소드가 있을 경우, 모든 원소의 합 계산하는 소스만들기, 두번째 원소 제거
  • 17.30분 콜렉션 part2
    집합, 원소들을 추가 혹은 제거하는 연산자, 공통메소드, 함수매핑, 리듀싱, 폴딩, 스캐닝
    콜렉션의 집합, 새 프로젝트 생성, LinkedHashSet 이용해 원소 순서 유지하기, 합집합과 차집합 예제, 원소 제거하기, 출력, 연산자 기호를 이용한 foldLeft 연산, scanLeft, scanRight
  • 18.32분 콜렉션 part3
    지핑, 이터레이터, 스트림, 레이지뷰, 자바콜렉션과의 상호 호환, 스레드 세이프 콜렉션, 병렬 콜렉션
    지핑 알아보기, 새 프로젝트 생성, 출력, iter.length, iter.hasNext 값 출력, 이터레이터에서 스트림 생성하기, 쓰레드 세이프 콜렉션, 포 루프 병렬, 콜렉션의 기본 개념
  • 19.31분 패턴 매칭과 케이스 클래스 part1
    더 나은 switch, 가드, 패턴에서 변수타입 패턴, 배열, 리스트, 튜플을 매치하기, 추출자, 변수 선언에서 패턴
    패턴 매칭과 케이스 클래스 알아보기, 모든 타입을 이용한 match 문 사용 예, 타입 패턴, 배열, 리스트, 튜플 매치하기, 예제 입력, 정규 표현식에 그룹이 있을 경우, 변수 문법 있는 패턴 사용
  • 20.40분 패턴 매칭과 케이스 클래스 part2
    for 표현식에서 패턴, 케이스 클래스, copy 메소드와 이름있는 인자, case 절에서 중위 표기법, 중첩 구조 매치하기, 케이스 클래스는 나쁜가?, 잠김 클래스, 이뉴머레이션 흉내내기, Option타입
    for 표현식에서 패턴 알아보기, 값 매치하기, 예제 입력, 스페셜 형태 매치, 케이스 클래스 입력, 신호등 형태 오브젝트로 만들기, getOrElse 사용하기, 엘리스에 대한 정수 자체가 없을 경우

강의목록 다운로드                        1:1 강의 질문&답변






도움이 필요하신가요?
💬
알지오 학습·수강 도우미
운영진이 확인한 안내를 자세히 보고, 필요하면 바로 상담하세요.
상담 상태 확인 중