코틀린
[Kotlin In Action] 1장. 코틀린이란 무엇이며, 왜 필요한가?
newwisdom
2021. 9. 1. 08:47
반응형
Kotlin in Action 책에서 각 챕터의 Summary를 보며 부족한 키워드만 후라닥 정리하는 글.
안드정이 코틀린 인 액션 책 스터디하면서 정리한 자료도 참고할 예정 땡큐땡큐
정적 타입 지정 언어
- 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있음
- 프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증
- 간결함, 정확성, 성능, 신뢰성, 유지 보수성 등의 장점
함수형 프로그래밍과 객체지향 프로그래밍
주요 개념
일급 시민 first-class 함수
- 함수를 일반 값 처럼 다룰 수 있음
- 변수 저장, 인자로 다른 함수에 전달, 함수 내에서 새로운 함수를 만들어 반환
불변성 immutability
- 일단 만들어지면 내부 상태가 절대로 바뀌지 않는 불변 객체를 사용
부수효과 없음 no side effect
- 입력이 같으면 항상 같은 출력
- 다른 객체의 상태를 변경하지 않음
- 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수함수 사용
장점
간결함
- 순수 함수를 값처럼 활용할 수 있어 더 강력한 추상화를 할 수 있음
- 추상화 덕분에 중복도 막을 수 있음
- 람다식이라는 익명 함수를 통해 간결하게 표현할 수 있음
멀티 스레드에서의 안정성
- 다중 스레드 프로그램의 오류는 여러 프로그램에서 동일한 데이터를 수정하는 것
- 불변을 사용하는 경우 안전하지 않은 수정이 발생하지 않도록 할 수 있음
테스트 용이성
- 순수함수는 부수효과가 없어 별다른 설정 없이 독립적으로 테스트하기 용이
코틀린의 지원
함수 타입
- 어떤 함수가 다른 함수를 파라미터로 받거나 함수가 새로운 함수를 반환할 수 있음
람다식
- 코드 블록을 간결하게 정의하고 전달할 수 있음
Data 클래스
- 불변 객체를 간편하게 만들 수 있는 구문을 제공
API
- 객체, 컬렉션 등 함수형 스타일로 다룰 수 있는 API를 제공
반응형