알지오 평생교육원

로그인|회원가입|고객센터
HOME>IT전문가>웹 프로그래밍 class1>스칼라 프로그래밍

스칼라 프로그래밍

스칼라 프로그래밍
20회차 속성과정
전체 : 11시간 8분|회차당 평균 : 33분23초

이용기간 2개월

전문강사 : 김주영

250,000155,000



스칼라 프로그래밍 사용법 강좌
자바 가상 머신(JVM)에서 동작하는 언어로 자바보다 더 간결한 프로그램을 개발할수 있습니다. 어떤 자바 라이브러리나 자바 프레임워크와도 상호 동작이 가능하기 때문에 웹프로그래밍을 모르는 c개발자가 자바프로그래밍을 학습할때 좋습니다. 프로그래밍언어이기때문에 기본적인 개념이 있는 상태에서 이용해야 활용이 가능합니다.
  • 01.38분 스칼라 인터프리터 사용

    var, val, 숫자 타입, 연산자, 함수, 산술, 연산자 오버로딩, 메소드 호출, 스칼라독 열람, 조건식, 블록식, 입력과 출력

    책갈피 : [00:00] 기본 셋팅/[00:27] 입력/[00:40] 스칼라의 기본기/[01:00] 예시/[01:13] Res0/[02:35] 메소드 호출/[03:03] toUpperCase/[03:33] toLowerCase/[05:39] 값, 변수 선언/[05:55] 이름 정의/[07:10] var 값 변경/[08:15] 타입지정/[09:26] 여러 값, 변수 선언/[09:46] Null/[10:07] 자주 사용되는 타입/[10:50] 예시/[12:23] 공통된 문자 출력/[14:34] 산술과 연산자/[14:48] 예시/[16:37] Method/[17:13] Counter/[17:35] Var cnt/[17:51] 함수, 메소드호출/[18:17] Import/[18:54] Sqrt/[19:11] Pow/[19:17] Min/[19:43] Distinct/[20:29] Apply/[21:42] 웹페이지/[22:29] Array/[22:48] 문자열 사용/[22:53] StringOPs/[23:07] Math 함수/[24:58] Var X/[25:04] If/[27:38] 종료/[28:28] Var N/[28:42] ;을 사용하는 예제/[29:16] Var 지정/[31:19] 블록식과 할당/[32:22] Math/[32:33] Var Distance/[34:15] 입력과 출력/[35:35] Printf/[36:43] LeadLine/[37:11] ReadInt

  • 02.31분 제어구조와 함수 part1

    스칼라 이클립스, 루프, while, for, 고급 for루프, for 컴프리헨션, 제너레이터, 함수, 기본인자와 이름인자, 가변인자

    책갈피 : [00:25] 스칼라 이클립스 실행/[01:02] 스칼라 프로젝트 생성/[02:00] while 문 만들기/[02:34] print r값 출력/[03:53] println r값 출력/[04:59] 문자열이나 배열을 돌때/[05:15] until 매소드 작성/[05:55] 출력/[06:11] 구문 한줄로 수정/[07:10] 브레이크 문이 필요할 경우/[07:53] import/[08:20] breakable 입력/[08:54] 실행/[09:09] 고급 for루프와 for 컴프리헨션/[10:07] 제너레이터 구분/[10:56] 값 출력/[11:39] 이진 조건의 예/[13:07] 변수 소개하는 여러 정의/[13:30] 값 출력/[13:56] for루프의 바디가 yield로 시작할때/[14:15] 실행/[14:41] 컬렉션과 제너레이터 호환의 예/[16:06] 스칼라 함수 작성/[16:37] 프로젝트 생성/[17:02] 기본 함수 입력/[19:03] 함수 호출/[19:56] 대괄호 함수 부분 출력/[20:29] 재귀함수 작성/[21:33] 출력/[21:56] 기본인자와 이름인자/[22:11] 프로젝트 생성/[22:30] 함수에 기본인자를 줄 수있는 예제 작성/[22:45] 함수 작성/[23:26] decorate 호출/[25:06] 인자 이름 지정/[26:03] 이름 없는 인자와 이름인자 섞기/[26:52] 가변 인자 작성/[27:22] 문법보기/[28:22] sum 함수 호출/[28:37] 출력/[29:36] sum함수를 하나의 인자로 호출하려면/[30:26] 실행

  • 03.33분 제어구조와 함수 part2, 배열

    프로시저 만들기, 레지이값이란, 예외처리 만들기, 배열 사용하기, 고정길이 배열, 가변길이, 배열(배열버퍼), 배열과 배열버퍼 방문, 배열 변환, 일반알고리즘

    책갈피 : [00:02] 프로시저 알아보기/[00:16] 새 프로젝트 생성/[01:00] 상자안에 문자열 출력하는 예제 만들기/[01:18] def box 입력/[01:57] box 호출/[02:06] 실행/[03:35] 레이지 값이란/[04:00] 예제 작성/[05:30] 스칼라에서 예외 처리방법/[06:46] throw 식/[07:13] 예제 작업/[08:11] try catch 절에 값 입력/[08:31] 에러 출력/[09:30] 배열에 대해 알아보기/[09:37] 새 프로젝트 작성/[10:11] 배열 작성/[10:24] array 타입 사용/[11:24] 초기화 값 임의로 작성하고 싶을때/[12:07] array 접근 방법/[12:45] 배열 버퍼 작성/[13:39] 빈 배열 버퍼 작성/[15:30] 원소를 제거할수 있는 방법/[16:17] 위치 이외의 모든 원소 옮기기/[18:56] 값을 배열버퍼로 전환하기/[19:21] 배열과 배열 버퍼 방문/[20:02] 예제 작성/[21:15] 예제2 작성/[22:03] 배열의 끝을 시작으로 원소를 방문하는 구문 넣기/[22:30] 출력/[22:51] 각 배열의 원소 직접 방문/[23:10] 출력/[23:36] 배열 변환 작성/[25:37] 모든 짝수 원소를 2배로 만드는 예제/[27:07] 보존할 인덱스를 수집할수 있도록 하기/[27:33] 새 함수 정의/[29:18] 값 호출/[29:44] 일반 알고리즘/[30:30] 내장 함수 작성/[31:56] sorted 함수

  • 04.30분 맵과 튜플

    맵 생성 방법, 맵 값 접근 방법, 맵 값 갱신 방법, 맵 반복, 정렬 맵, 자바 연동 방법, 튜플, 지핑

    책갈피 : [00:11] 맵과 튜플/[00:38] 간단한 문법 이용해 작성하기/[01:26] 맵 생성/[01:57] 수정 가능한 맵 생성/[02:23] 빈 맵으로 시작하기/[03:38] 맵 데이터 구조와 함수의 차이/[03:59] 맵 값 접근/[04:15] 예제 작성/[04:58] 주어진 값에 키 확인하기/[05:46] 간단한 호출 조합 작성/[06:27] 키 호출 작성/[07:00] 결과값 확인/[07:24] 맵 값 갱신/[08:20] 갱신 값 입력/[08:35] 존재하지 않는 키의 값 수정/[09:05] 여러 키 값 더하기/[09:33] 키와 관련된 값 삭제/[10:09] 원하는 갱신이 반영된 새 맵 얻기/[11:05] 수정된 값 확인/[11:48] var를 이용해 갱신하기/[12:22] 값 출력/[12:37] 수정 불가능한 맵에서 키 제거하기/[13:00] 값 출력/[13:22] 맵 반복/[14:35] 반복문 작성/[15:37] 값 출력/[16:00] keyset/[16:52] 값 출력/[17:11] 맵 뒤집기/[17:29] 정렬 맵/[18:03] 수정 불가능한 트리맵 얻기/[18:48] 삽입한 순서대로 key 방문하기/[19:17] 자바 연동 방법/[19:56] import 문 입력/[21:00] 자바 유틸을 맵 스트링 스트링 타입으로 변환/[21:55] 값 출력/[22:37] 자바 맵 메소드에 스칼라 맵 넘기기/[23:22] 튜플/[24:32] 각 구성요소 접근의 예/[25:41] 값 출력/[26:37] 하나 이상의 값을 리턴하는 함수에 유용한 예/[27:37] 값 출력/[28:03] 지핑/[29:55] 값 출력

  • 05.35분 클래스

    클래스, 인자 없는 메소드, 게터와 세터가 있는 프로퍼티, 빈프로퍼티, 보조생성자, 기본 생성자 만들기

    책갈피 : [00:07] 클래스를 구현하는 방법/[00:52] 클래스와 인자없는 매소드 작성하기/[01:45] 클래스 만들기/[03:04] 클래스 호출/[04:00] 출력/[04:30] 괄호의 유무에 따라 호출하기/[06:15] 게터와 세터가 있는 프로포티 작성/[06:30] 클래스 생성/[07:23] 값을 자바에서 선언할 경우/[08:46] 스칼라 용으로 게터세터 작성하기/[09:41] 값 호출할 변수 선언/[10:48] 출력/[11:07] 게터와 세터 매소드 직접 재정의/[12:26] 새로 정의한 값 사용하는 방법/[13:09] 출력/[14:05] 게터만 있는 프로포티 생성/[14:35] 클래스 만들기/[15:41] message 클래스 생성/[16:02] 출력/[16:15] 세터 형식 확인 방법/[16:29] 다른 방법으로 수정되는 프로포티 만드는 방법/[17:44] 프로포티 구현의 네가지 선택 방법 요약/[18:52] 오브젝트 비공개 필드 작성/[19:56] 카운터의 의미/[21:18] this 한정자로 엄격한 접근제한 만들기/[22:33] 빈 프로포티에 대해 알아보기/[23:11] 매소드 자동 생성의 예/[24:14] name 에 대한 네가지 매소드 생성/[24:52] 값 호출하기/[25:22] 출력/[26:14] 보조생성자에 대해 알아보기/[27:03] 두개의 보조 생성자가 있는 클래스 생성/[28:10] 보조 생성자 만들기/[28:52] 다른 보조 생성자 만들기/[29:37] 값 호출하기/[30:32] 출력/[31:29] 기본 클래스에서 가장 중요한 점/[31:47] 생성자에 바로 인자 넣기/[32:52] 출력/[33:45] 기본 생성자 인자의 형태/[34:23] private val의 정의

  • 06.34분 오브젝트

    싱글톤, 컴페니언 오브젝트, apply 메소드, 애플리케이션 오브젝트, 이뉴머레이션

    책갈피 : [00:07] 스칼라에서 오브젝트의 사용 시기/[01:11] 싱글톤에 대해 알아보기/[02:00] 오브젝트 사용 예/[02:53] newUniqueNumber 호출해서 사용하는 방법/[03:30] 출력/[04:46] 컴패니언 오브젝트/[05:08] 컴패니언 오브젝트 사용 예/[05:25] 클래스 만들기/[06:10] 값 정의/[06:30] 디스크립션 생성/[07:30] 출력/[08:03] 컴패니언 오브젝트 팁/[08:46] 클래스, 트레이트 확장 오브젝트/[09:24] 액션을 위한 클래스 만들기/[10:13] 오브젝트 입력/[11:07] 만들어진 값의 출력 예/[12:05] 어플라이 매소드 만들기/[12:46] 예제 만들기/[12:56] array 오브젝트 식 배열/[13:35] new 사용할 경우/[14:07] array와 new array의 차이점/[15:01] 어플라이 매소드 정의 예제/[15:41] 밸런스 값 초기화/[16:07] deposit 함수 입력/[16:41] 어플라이 함수 새롭게 정의/[18:07] 오브젝트 명 클래스와 동일하게 정의/[18:44] 계정 생성/[19:07] 출력/[20:07] 어플리케이션 오브젝트 작성/[21:02] hello 오브젝트 생성/[21:48] 생성자 바디에 프로그램 코드 넣는 방법/[22:30] 아규먼트에 들어온 인자값들의 형태가 필요할 경우/[24:22] 이뉴머레이션/[24:55] 이뉴머레이션 초기화 예제 소스 만들기/[26:41] trafficlightcolor 작성 확인/[27:37] value나 ID 값 받을수 있도록 구문 입력/[28:11] 값 확인/[30:11] type 명칭 더하기/[30:40] 사용 방법의 예/[31:40] 출력/[32:19] trafficlightcolor 모든 값 출력/[33:05] id 나 이름으로 이뉴머레이션 값 찾기

  • 07.32분 패키지와 임포트

    패키지, 스코프규칙, 체인패키지 구문, 파일시작 표기법, 패키지 오브젝트, 패키지 가시성, 임포트

    책갈피 : [00:08] 패키지와 임포트/[01:26] 새 프로젝트 생성/[01:59] 패키지 알아보기/[02:43] 패키지에 아이템 넣는 예제 만들기/[03:13] 클래스 작성/[04:13] 하나의 패키지 여러 파일에 정의하기/[04:42] 하나의 파일에 한개 이상의 패키지 넣기/[04:57] 패키지 생성/[05:08] 클래스 입력/[06:00] 새 패키지 사용법/[06:58] 출력/[07:57] 스코프 규칙/[08:15] 바깥 스코프 접근의 예/[08:41] 오브젝트 작성/[09:50] giveraise 함수 입력/[11:11] impatient 아래 manager 클래스 생성/[12:33] 컬렉션 패키지 입력/[13:13] 최상위 스칼라에 있는 컬렉션 패키지 찾기/[14:43] 체인 패키지/[15:00] 예제 작성/[15:31] 새로운 페인 패키지 생성/[16:15] 디스크립션 만들기/[17:48] 출력/[18:00] 이클립스에서 출력되지 않는 이유/[19:26] 파일시작 표기법/[21:41] 패키지 오브젝트/[22:25] 새 프로젝트 생성/[23:02] 패키지 오브젝트 생성 방법/[23:37] 디폴트네임 입력/[24:07] person 클래스 입력/[25:17] 출력/[26:52] 패키지 가시성/[27:11] 자신의 패키지 내에서면 가시성을 가지는 예/[28:22] import/[28:41] 새 구문 import/[29:22] 모든 멤버를 import 하는 방법/[30:21] 클래스나 오브젝트의 모든 멤버 import 방법/[31:21] 패키지 import 예

  • 08.34분 스코프 규칙

    멤버이름 변경 및 숨기기, 암묵적 임포트, 상속, 클래스 확장, 메소드 오버라이드, 타입검사와 캐스트, 보호 필드와 메소드, 슈퍼클래스 생성, 필드 오버라이드

    책갈피 : [00:07] 스코프의 사용 방법/[00:26] 새 프로젝트 생성/[01:15] manager 클래스 입력/[02:30] 멤버 이름 변경 및 숨기기/[02:45] import문 작성/[03:23] 선택자 문법으로 멤버 이름 변경의 예/[04:00] 선택자 문법 사용의 장점/[05:00] 선택자가 이름 변경 및 숨기는 방법/[05:46] 암묵적 임포트/[06:15] 스칼라 패키지 임포트/[08:54] 상속/[09:31] 새 프로젝트 생성/[10:07] 상속 예제 만들기/[11:33] 출력/[12:18] 메소드 오버라이드/[12:41] 오버라이드 필드 만들기/[13:37] 출력/[15:03] 타입검사와 캐스트/[15:26] 예제 작성/[16:37] 값이 임플로이인지 확인하기/[17:33] if문 입력/[18:03] println 입력/[19:10] 출력/[20:07] 보호 필드와 메소드/[20:33] 예제 작성/[22:11] 슈퍼클래스 생성/[22:52] 예제 작성/[23:25] person 클래스 작성/[24:10] employee 클래스 작성/[24:44] 오버라이드 값 상속 받기/[25:30] 출력/[26:03] 기본 생성자 인자를 클래스 인자로 생각하기/[26:55] 자바 클래스 확장/[27:11] 예제 작성/[28:11] 출력/[28:40] 필드 오버라이드/[29:11] 예제 작성/[30:15] 오브젝트 입력/[31:07] 출력/[31:52] 임의로 id를 Int로 지정하기/[33:29] 출력/[33:46] 필드 오버라이드 시 제약사항

  • 09.35분 익명 서브클래스

    추상클래스, 추상필드, 생성 순서와 조기정의, 스칼라 상속계층, 오브젝트 등식, 파일과 정규 표현식, 줄읽기

    책갈피 : [00:08] 상속에 대한 익명 서브클래스/[00:49] 예제 작성/[01:26] 익명 서브 클래스의 인스턴스 생성/[02:15] greeting의 스트링 형태 만드는 문법/[03:19] 출력/[03:46] 추상 클래스/[04:10] 예제 작성/[04:46] 새 클래스 작성/[05:46] 출력/[06:46] 추상 필드의 특징/[07:00] 예제 작성/[08:46] employee 클래스 값 정의/[09:03] 갑 확인 입력/[09:52] 출력/[10:48] 생성 순서와 조기 정의/[11:26] 예제 작성/[13:01] 프로그램 동작법 확인/[13:28] 출력/[13:39] 출력 순서 설명/[15:41] 치료법/[16:30] 조기 정의 예제/[17:37] 출력/[18:11] 스칼라 상속계층/[19:22] 예제 작성/[19:37] account 클래스 생성/[19:48] 오브젝트에서 val 입력/[20:47] null 타입/[21:11] nothing 타입/[22:47] 출력/[23:33] 오브젝트 등식/[24:29] 예제 작성/[25:30] equals 함수 정의/[26:15] item 정의/[27:15] 출력/[28:41] hash code 합치기/[29:17] 파일과 정규 표현식/[30:37] 새 프로젝트 생성/[31:02] 줄읽기 작성/[32:15] for문 입력/[34:05] 출력

  • 10.32분 문자열 읽기

    토큰과 숫자 읽기, URL과 다른 소스에서 읽기, 바이너리 파일 읽기, 텍스트 파일 쓰기, 디렉토리 방문하기, 직렬화

    책갈피 : [00:12] 문자열 읽기 작성하기/[01:23] 소스 열기/[01:49] 파일 위치 입력/[02:15] buffered 메소드 입력/[02:37] 출력 입력/[04:00] 단어 추출/[04:53] 출력/[05:15] 문자열로 처리하는 방법 작성/[05:46] tokens 입력/[06:10] numbers 입력/[06:46] 예 보기/[07:12] 출력/[08:20] 문자를 숫자로 변환할 경우/[09:22] 콘솔에서 숫자 읽기/[10:22] 출력/[10:45] url과 다른 소스에서 읽기/[11:20] 외부 url 에서 소스 가져오기/[12:24] 주어진 문자열에서 읽기/[12:52] 문자열이 있다고 가정하기/[13:26] 출력/[13:39] 표준 입력에서 읽기/[14:20] 출력/[14:50] 바이너리 파일 읽기/[15:11] 파일을 바이트 배열로 읽는 방법 작성/[15:39] 파일 받기/[17:37] 넘어올 두개의 인자 입력/[17:56] 출력/[18:21] 텍스트 파일 사용 방법/[19:06] 텍스트 파일 만들기/[19:32] for문 입력/[20:15] 출력/[21:52] 디렉토리 방문 방법/[22:56] 디렉토리를 도는 메소드 입력/[24:03] 모든 하위 디렉토리 방문하기/[24:56] 출력/[25:41] 또다른 방법/[26:15] 암묵적 변화 사용법/[28:15] 출력/[29:18] 직렬화/[30:47] 시리얼라이즈 작성/[31:41] 프렌즈로 넘어온 값 스트링으로 변환

  • 11.32분 정규 표현식과 트레이트

    정규 표현식 그룹 만들기, 트레이트, 인터페이스로서 트레이트, 레이어드 트레이트

    책갈피 : [00:06] 정규 표현식 방법 알아보기/[00:42] 스칼라 프로젝트 생성/[01:19] 표현식 만들기/[02:28] findall 메소드 사용/[03:07] 출력/[03:30] 이터레이터 형태로 변환/[04:12] 문자열에서 첫번째 매치 찾기/[04:53] 문자열 시작 매치 확인 방법/[05:15] 출력/[05:30] 전체 매치 치환/[06:00] 출력/[06:56] 정규 표현식 그룹 작업 방식/[07:30] 그룹 만들기/[07:54] 그룹매치/[08:30] 복수의 매체에서 그룹 추출방법/[09:11] 출력/[09:43] 트레이트/[10:58] 인터페이스로서의 트레이트/[11:50] 추상 매소드 생성/[12:24] 서버 클래스 구현 제공의 예/[13:22] 하나 이상의 트레이트가 필요할 경우/[14:37] 출력/[14:50] 구체적 구현이 있는 트레이트 작성/[15:31] 콘솔 로거 트레이트로 만들기/[16:06] 트레이트 사용 예제/[16:30] 클래스 만들기/[17:41] 출력/[18:36] 구체적 구현이 있는 트레이트의 단점/[18:51] 트레이트가 있는 오브젝트/[19:45] 클래스 정의에 트레이트 사용하는 법/[21:47] 콘솔로거 생성/[22:37] 출력/[23:33] 다른 트레이트 추가/[23:52] 레이어 트레이트/[24:45] 새로운 트레이트 발생시키기/[25:30] timestampLogger 생성/[26:18] 긴 로그메시지 자르는 트레이트 생성/[28:18] 순서가 중요한 이유/[29:15] 클래스 생성/[29:41] Logged 확장/[31:03] 출력

  • 12.33분 트레이트

    트레이트의 추상 메소드 오버라이드 하기, 리치 인터페이스를 위한 트레이트, 트레이트의 구체 필드, 트레이트의 추상필드, 트레이트 생성순서, 트레이드 필드 초기화

    책갈피 : [00:04] 트레이트의 추상메소드 오버라이드 하는 방법/[00:11] 새 프로젝트 생성/[01:03] 타임스테프 트레이트 확장/[01:29] 추상 메소드 오버라이드/[02:00] 슈퍼로그 호출이 오류가 난 이유/[03:05] 리치 인터페이스를 위한 트레이트/[03:52] 로깅 메시지에 쉽게 기능 추가하기/[04:23] 경고 메시지 입력/[05:12] 확장 해 개발하기/[06:15] 메시지를 스트링 형태로 받기/[07:08] 출력/[07:46] 트레이트의 구체 필드/[08:48] 프로세스 자세히 살펴보기/[09:07] 새 프로젝트 생성/[09:35] 클래스 입력/[10:03] 트레이트로 콘솔 로거 생성/[10:28] 쇼트 로거 생성/[11:41] Account 클래스 생성/[13:15] 출력/[14:50] 트레이트의 추상 필드/[16:18] 쇼트 로거 값 오버라이드/[17:26] 트레이트 생성 순서/[17:48] 새 프로젝트 생성/[18:02] 파일로거를 트레이트로 만들기/[18:52] import 시키기/[19:22] 값 가져오기/[20:41] 출력/[21:55] 새 클래스 생성/[22:29] def 입력/[23:22] 출력/[24:37] 챕터 새로 고침/[25:48] 트레이터 필드 초기화/[26:15] 새 프로젝트 생성/[26:48] 트레이트, 파일로거 가져오기/[27:18] 파일 네임 입력/[28:11] account, savingaccount 붙여넣기/[28:51] 클래스 수정/[29:06] exe01 앱으로 확장하기/[29:48] 출력/[30:41] 생성순서가 문제가 될 경우/[31:29] 실행/[31:47] lazy 값 사용/[32:52] 실행

  • 13.35분 트레이트와 스칼라의 연산자

    클래스를 확장한 트레이트, 셀프타입, 연산자, 인식자, 삽입연산자, 단항연산자, 할당연산자, 우선순위, 결합성

    책갈피 : [00:06] 클래스를 확장한 트레이트 알아보기/[00:39] 새 프로젝트 생성/[01:02] 트레이트 Logged 입력/[01:40] LoggedException 입력/[02:44] 트레이트 믹스 하는 클래스 생성/[03:07] 문구 입력/[03:45] class account 입력/[03:51] class savingsaccount 입력/[04:42] try catch 절 이용/[05:15] 출력/[05:46] 클래스가 관련없는 클래스를 확장할 경우/[06:57] 셀프타입/[07:15] 새 프로젝트 생성/[08:05] 트레이트 샘플타입으로 만들기/[09:39] 셀프타입 트레이트가 더 유연한 상황/[10:09] 구조적 타입을 이용하는 loggedexception 수정하여 작업하기/[10:52] 소스 수정/[11:30] try catch 절 붙여넣기/[11:43] 출력/[12:01] 내부에서 일어나는 일 알아보기/[14:58] 지정된 값이 있을경우/[15:52] 콘솔 로거에서 maxlength 초기화 할때/[16:45] 트레이트가 슈퍼클래스를 확장할 경우/[17:14] 연산자/[18:41] 인식자에 대해 알아보기/[20:00] 프로젝트 만들기/[20:11] 제곱근 입력/[20:52] 출력/[21:52] 백쿼드로 출력하기/[22:36] 삽입 연산자/[23:22] 연산자 예/[23:44] 클래스에서 연산자 정의하기/[24:00] 프렉션 클래스 만들기/[24:37] 값 import/[26:07] 단항연산자/[26:29] 연산자가 뒤에 올 경우/[27:56] a값 출력/[28:03] 할당 연산자/[28:26] 소스 작성/[29:22] 할당 연산자 사용시 몇가지 세부사항/[30:52] 우선순위/[31:52] 최고 우선순위/[32:30] 같은열의 문자가 같은 우선순위를 갖는 예/[33:22] 결합성/[33:43] 결합성의 예

  • 14.33분 스칼라의 연산자와 함수

    apply 메소드, update 메소드, 추출자, unapplySeq 메소드, 고차함수, 값으로서 함수, 익명함수

    책갈피 : [00:05] apply, update 메소드/[00:11] 새 프로젝트 생성/[00:56] scores 입력/[01:51] update 입력/[02:19] update 입력/[03:15] 추출자/[03:52] 예제 만들기/[04:00] 오브젝트 생성/[05:09] 값 체크하기/[05:46] 퍼스트, 라스트 호출/[06:26] 케이스 클래스 입력/[07:14] 커런시 오브젝트에서 값 추출하기/[08:33] 출력/[09:35] 인자 없는 추출자/[09:56] 새 프로젝트 생성/[10:22] number 오브젝트 입력/[10:46] try catch절 사용/[11:31] 문자열에서 숫자열 뽑아내기/[12:33] 출력/[12:48] 추출자로 입력 테스트 하기/[13:24] 추출자를 이용한 패턴에 텍스트 추가/[15:11] 출력/[15:48] unapplySeq 메소드/[16:17] 새 프로젝트 생성/[16:44] unapplySeq 메소드 입력/[17:55] name 오브젝트 이용해 작업하기/[19:18] 출력/[20:48] 저자 바로 출력하기/[21:11] 고차 함수/[22:41] 값으로서 함수 방법/[23:03] 새 프로젝트 생성/[23:30] math 함수 입력/[24:37] 출력/[26:03] fun의 값을 다른 함수에 주는 또다른 방법/[27:07] 익명 함수/[27:48] 값을 변수에 저장/[28:30] 함수 이름 주지 않고 값을 다른 함수에 넘기기/[29:30] 중괄호로 함수 인자 넣기/[30:11] 함수 인자를 받는 함수 작업/[30:22] 새 프로젝트 생성/[30:45] valueAtQuarter 입력/[31:37] 함수 형태의 값 입력/[31:56] 출력/[32:30] valueAtQuarter의 타입

  • 15.34분 함수

    인자 추론, 유용한 고차함수, 클로저, SAM 변환, 커링, 제어 추상화

    책갈피 : [00:06] 고차 함수의 인자 추론 방법/[00:24] 새 프로젝트 생성/[00:57] valueAtOneQuarter 입력/[01:53] 인자 옆에 괄호 생략해서 쓰기/[02:57] fun 변수에 에러가 나는 이유/[04:00] 유용한 고차 함수/[04:38] 콜렉션 생성하는 빠른 방법/[05:00] 삼각형 출력하기/[05:30] foreach 입력/[05:45] 출력/[06:14] 필터 메소드의 응용/[06:46] 출력/[07:29] 왼쪽에서 오른쪽으로 시퀀스를 모든 원소에 적용하기/[08:15] 출력/[09:03] 정렬에 이항함수 사용/[09:41] foreach 형태로 출력하기/[10:31] 클로저/[11:05] 새 프로젝트 생성/[11:18] mulby 함수입력/[11:50] 새로운 호출 부르기/[12:31] 출력/[12:46] 값 살펴보기/[14:58] SAM 변환/[15:56] 새 프로젝트 생성/[16:11] 두개의 import 이용해 작업하기/[16:59] 버튼이 클릭 됐을때 카운터 증가시키기/[18:22] 함수를 액션 인스턴스로 변환하는 방법/[19:17] 이벤트 입력/[20:25] 출력 가능하게 프레임 만들기/[20:52] 출력/[22:36] 커링/[23:03] 새 프로젝트 생성/[23:26] 정의 메소드 가정/[24:06] mulOneAtAtime함수 사용/[24:52] 출력/[25:07] 단축문 사용/[25:55] 커링을 사용해 많은 정보 얻기/[26:33] corresponds 입력/[28:30] 출력/[28:55] 제어 추상화/[29:11] 새 프로젝트 생성/[29:22] runInThread 함수입력/[30:07] 구문 실행하기/[30:33] 출력/[31:17] 구문 지우고 출력하기/[32:15] until문 정의/[33:24] 이름으로 호출 인자

  • 16.34분 return 표현식과 콜렉션 part1

    return 표현식, 콜렉션, 중요 콜렉션 트레이트, 수정 가능한 콜렌션과 수정 불가능한 콜렉션, 시퀀스, 리스트, 수정 가능한 리스트

    책갈피 : [00:05] return 표현식/[00:42] 새 프로젝트 생성/[00:59] 함수 만들기/[01:48] indexof 함수 입력/[03:07] 리턴 타입 지정/[03:36] 구문 확인/[04:00] 출력/[04:46] 콜렉션/[05:15] 중요사항/[06:46] 중요 콜렉션 트레이트/[06:57] 새 프로젝트 생성/[07:26] coll 입력/[08:11] 출력/[09:24] 개선 사항/[10:03] 사용할 컬러 import/[10:18] set 을 이용해 세가지 컬러 입력/[11:24] sortedset 입력/[11:48] 출력/[12:31] sortedset 값 출력/[12:56] 수정 가능한 콜렉션과 수정 불가능한 콜렉션/[13:07] 수정불가능한 콜렉션/[14:43] 예제 만들기/[15:37] 수정 불가능한 맵/[16:02] mutable 맵 만들기/[16:59] 맵에 에러가 나는 이유/[17:41] 새로운 집합 만들기/[18:52] 출력/[19:33] 시퀀스/[20:07] vec 변수 입력/[20:45] time 메소드가 있을 경우/[21:48] 출력/[22:11] 불가능한 시퀀스/[23:22] 리스트/[23:56] list 형태 값 입력/[24:40] 연산자 예/[25:06] 출력/[26:10] 모든 원소의 합 계산하는 소스만들기/[27:03] 출력/[27:41] 패턴 매칭 사용/[28:30] 출력/[29:33] 수정 가능한 리스트/[30:22] 루프 문 만들기/[31:00] while 문 입력/[31:25] 출력/[32:07] 두번째 원소 제거/[32:36] 출력

  • 17.30분 콜렉션 part2

    집합, 원소들을 추가 혹은 제거하는 연산자, 공통메소드, 함수매핑, 리듀싱, 폴딩, 스캐닝

    책갈피 : [00:06] 콜렉션의 집합/[00:24] 새 프로젝트 생성/[00:41] 소스 입력/[01:40] 출력/[02:19] LinkedHashSet 이용해 원소 순서 유지하기/[03:23] sortedset 으로 정렬된 집합의 형태로 값 이용하기/[03:51] 비트 집합/[04:30] contains와 subsetOf 입력/[05:56] 합집합과 차집합 예제/[06:44] 출력/[07:26] 원소들을 추가 혹은 제거하는 연산자 알아보기/[08:05] 예제 보기/[08:16] 출력/[09:13] 수정가능한 콜렉션 예/[10:00] 수정 불가능한 콜렉션 예/[11:09] 원소 제거하기/[11:37] 여러 원소 추가/[12:07] 여러 원소 제거하기/[12:26] 출력/[12:43] 연산자 요약/[13:48] 공통메소드/[14:50] 가장 중요한 메소드 종류/[15:37] 함수 매핑/[16:10] 문자열에 리스트가 주어졌을때의 함수 매핑/[16:26] 문자열들의 리스트 얻는 방법/[16:48] 출력/[17:33] flatMap으로 모든 값 병합하기/[18:41] 출력/[19:15] 옵션을 리턴하는 함수에 flatMap 사용하는 경우/[19:32] 콜렉트 메소드/[20:15] 출력/[20:48] foreach 사용법/[21:11] 리듀싱, 폴딩, 스캐닝 알아보기/[22:45] reduceRight 입력/[24:15] foldLeft 입력/[25:48] 연산자 기호를 이용한 foldLeft 연산/[26:41] 폴딩/[27:48] 과정에 대한 다른 방식/[28:07] scanLeft, scanRight/[28:36] 출력

  • 18.32분 콜렉션 part3

    지핑, 이터레이터, 스트림, 레이지뷰, 자바콜렉션과의 상호 호환, 스레드 세이프 콜렉션, 병렬 콜렉션

    책갈피 : [00:06] 지핑 알아보기/[00:27] 새 프로젝트 생성/[00:59] prices 변수 입력/[01:15] 양에 대한 변수 입력/[01:40] zip으로 수량 값 넣을 경우/[02:23] 각 쌍의 함수 적용하기/[02:49] 출력/[03:53] 한 컬렉션이 다른 컬렉션보다 짧을 경우/[04:27] 출력/[04:54] zipAll 입력/[05:09] 출력/[05:29] zipWithIndex 입력/[06:43] zipWithIndex.max로 값 출력하기/[07:14] 인코딩이 가장 큰 값의 인덱스/[07:30] 이터레이터/[08:26] 예제 입력/[08:56] 출력/[10:39] iter.length, iter.hasNext 값 출력/[11:20] 이터레이터 사용하지 않고 값 컬렉션으로 복사하기/[11:50] 스트림/[12:33] 예제 입력/[13:37] 출력/[14:43] tail 호출/[15:20] 이터레이터에서 스트림 생성하기/[16:41] 레이지뷰/[17:18] 예제 입력/[18:02] 출력/[18:56] 큰 컬렉션 여러 방법으로 변환/[20:37] 출력/[21:11] 자바콜렉션과의 상호 호환/[21:59] 예제 입력/[23:07] 출력/[24:48] getProperty로 값 받아오기/[25:03] 쓰레드 세이프 콜렉션/[25:52] 예제 입력/[27:26] 여러 쓰레드가 맵을 공유할 경우/[27:48] 병렬 콜렉션/[28:37] coll이 큰 콜렉션일 경우/[29:18] 가능한 범위 내에서 콜렉션 매소드 병렬하기/[30:03] 포 루프 병렬/[30:26] 출력/[31:40] 콜렉션의 기본 개념

  • 19.31분 패턴 매칭과 케이스 클래스 part1

    더 나은 switch, 가드, 패턴에서 변수타입 패턴, 배열, 리스트, 튜플을 매치하기, 추출자, 변수 선언에서 패턴

    책갈피 : [00:04] 패턴 매칭과 케이스 클래스 알아보기/[00:34] 중요시 해야할 부분 살펴보기/[01:52] 더 나은 switch 알아보기/[02:00] 새 프로젝트 생성/[02:23] 스칼라 코드 입력/[03:07] 출력/[04:30] 구문 간소화/[04:57] 출력/[05:12] 모든 타입을 이용한 match 문 사용 예/[06:12] 가드 알아보기/[06:30] 패턴에 가드 추가하기/[07:00] match 입력/[08:00] 출력/[09:05] 패턴에서의 변수 처리/[09:46] 예제 입력/[10:58] 출력/[12:45] 타입 패턴/[12:56] 예제 입력/[13:46] result로 값 받기/[14:48] 출력/[15:35] 타입에 매치할 경우/[16:10] 타입 패턴에서 유의할점/[16:22] 예제 입력/[18:00] 출력/[19:03] 배열, 리스트, 튜플 매치하기/[19:26] 예제 입력/[19:45] 값 매치시키기/[20:41] 출력/[21:33] 리스트 표현식으로 리스트 매치하기/[21:48] 예제 입력/[22:52] 출력/[23:37] 튜플의 표기법 사용/[24:10] 예제 입력/[24:41] 출력/[25:30] 추출자 알아보기/[26:15] 예제 입력/[27:21] 정규 표현식에 그룹이 있을 경우/[28:18] 출력/[28:37] unapplySeq 이용/[29:07] 변수 선언에서의 패턴 알아보기/[29:26] 예제 입력/[30:25] 변수 문법 있는 패턴 사용

  • 20.40분 패턴 매칭과 케이스 클래스 part2

    for 표현식에서 패턴, 케이스 클래스, copy 메소드와 이름있는 인자, case 절에서 중위 표기법, 중첩 구조 매치하기, 케이스 클래스는 나쁜가?, 잠김 클래스, 이뉴머레이션 흉내내기, Option타입

    책갈피 : [00:09] for 표현식에서 패턴 알아보기/[00:55] 자바 프로퍼티 스칼라 맵으로 변환/[01:21] for문 입력/[01:57] 출력/[02:28] 빈 값을 가지는 모든 키 출력하는 예제 만들기/[02:52] 출력/[03:07] 가드 사용/[03:37] 출력/[03:52] 케이스 클래스 알아보기/[04:09] 케이스 확장하는 두개의 케이스 클래스 만들기/[05:28] for문 입력/[05:55] 값 매치하기/[06:56] 출력/[07:30] 예제의 여러가지 의미/[08:48] 카피 메소드와 이름있는 인자 알아보기/[09:20] 예제 입력/[10:50] 출력/[11:26] case 절에서 중위 표기법/[12:03] 예제 입력/[12:31] 매치를 이용해 케이스문으로 확인/[14:09] 넘어온 형태 출력/[15:05] 중첩 구조 매치/[15:35] 예제 입력/[16:22] 값 묶기/[17:14] 소스의 특징 보기/[17:48] 스페셜 형태 매치/[18:21] 중첩된 값 변수에 바인드 하기/[19:21] 출력/[20:03] 스페셜의 또다른 패턴/[20:52] 매치 문들로 가격 계산 함수 응용해 만들기/[22:11] 출력/[22:36] 케이스 클래스에 대한 의문/[24:33] 케이스 클래스의 편리한 점/[25:22] currency 클래스 살펴보기/[26:00] 잠김 클래스 알아보기/[26:45] 케이스 클래스 입력/[27:18] 잠김 클래스 작업/[27:52] 유로 클래스를 추가할 경우/[28:33] 출력/[30:18] 이뉴머레이션 흉내내기/[30:40] 새 오브젝트 생성/[31:14] 신호등 형태 오브젝트로 만들기/[31:55] for문 입력/[32:12] 컬러 매치/[32:45] 출력/[33:05] Option타입/[34:14] 주어진 키에 대한 값이 없을경우/[34:43] 예제 입력/[35:50] 출력/[36:07] isEmpty, get 사용하기/[37:00] getOrElse 사용하기/[38:07] None 건너뛰기/[38:52] foreach 사용하기/[39:22] 엘리스에 대한 정수 자체가 없을 경우