학과 샘플강의

스칼라 프로그래밍 - 총 11시간 8분 / 강의당평균 : 33분23초

알지오 2016. 10. 18. 09:06


스칼라 프로그래밍

전체 : 11시간 8분 / 강의당평균 : 33분23초

01 스칼라 인터프리터 사용
var/val/숫자 타입/연산자/함수/산술/연산자 오버로딩/메소드 호출/스칼라독 열람/조건식/블록식/입력과 출력
38분
책갈피 : [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 제어구조와 함수 part1
스칼라 이클립스/루프/while/for/고급 for루프/for 컴프리헨션/제너레이터/함수/기본인자와 이름인자/가변인자
31분
책갈피 : [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 제어구조와 함수 part2, 배열
프로시저 만들기/레지이값이란/예외처리 만들기/배열 사용하기/고정길이 배열/가변길이/배열(배열버퍼)/배열과 배열버퍼 방문/배열 변환/일반알고리즘
33분
책갈피 : [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 오브젝트
싱글톤/컴페니언 오브젝트/apply 메소드/애플리케이션 오브젝트/이뉴머레이션
34분
책갈피 : [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 문자열 읽기
토큰과 숫자 읽기/URL과 다른 소스에서 읽기/바이너리 파일 읽기/텍스트 파일 쓰기/디렉토리 방문하기/직렬화
32분
책갈피 : [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 스칼라의 연산자와 함수
apply 메소드/update 메소드/추출자/unapplySeq 메소드/고차함수/값으로서 함수/익명함수
33분
책갈피 : [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 함수
인자 추론/유용한 고차함수/클로저/SAM 변환/커링/제어 추상화
34분
책갈피 : [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 return 표현식과 콜렉션 part1
return 표현식/콜렉션/중요 콜렉션 트레이트/수정 가능한 콜렌션과 수정 불가능한 콜렉션/시퀀스/리스트/수정 가능한 리스트
34분
책갈피 : [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 콜렉션 part2
집합/원소들을 추가 혹은 제거하는 연산자/공통메소드/함수매핑/리듀싱/폴딩/스캐닝
30분
책갈피 : [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 콜렉션 part3
지핑/이터레이터/스트림/레이지뷰/자바콜렉션과의 상호 호환/쓰레드 세이프 콜렉션/병렬 콜렉션
32분
책갈피 : [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 패턴 매칭과 케이스 클래스 part1
더 나은 switch/가드/패턴에서 변수타입 패턴/배열, 리스트, 튜플을 매치하기/추출자/변수 선언에서 패턴
31분
책갈피 : [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 패턴 매칭과 케이스 클래스 part2
for 표현식에서 패턴/케이스 클래스/copy 메소드와 이름있는 인자/case 절에서 중위 표기법/중첩 구조 매치하기/케이스 클래스는 나쁜가?/잠김 클래스/이뉴머레이션 흉내내기/Option타입
40분
책갈피 : [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] 엘리스에 대한 정수 자체가 없을 경우


샘플확인 : 알지오 검색후 -> 강의검색란 -> 스칼라 프로그래밍