Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 리버스프록시
- 코틀린
- 자바비동기
- java
- 레벨로그
- GithubOAuth
- 데이터베이스락
- jsp프로젝트
- 우아한테크코스
- 트랜잭션
- 무중단배포
- 객체지향생활체조
- 테코톡
- KotlinInAction
- ObjectCalisthenics
- tomcat설정
- S2139
- 코틀린기초
- 백준
- 코틀린뽀개기
- Google Place Photo API
- 트랜잭션성질
- 트랜잭션속성
- kotlin
- servlet프로젝트
- subprocess에러
- mysqld.sock
- DynamicWebProject
- 알고리즘
- 스프링트랜잭션
Archives
- Today
- Total
초이로그
[Kotlin In Action] 1장. 코틀린이란 무엇이며, 왜 필요한가? 본문
코틀린의 주요 특성
주 목적: 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것
정적 타입 지정 언어
- ↔️ 동적 타입 지정 언어(ex. Groovy, JRuby)
- 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있다.
- 프로그램 안에서 객체의 필드나 메서드를 사용할 때마다 컴파일러가 타입을 검증한다.
- 코틀린은 모든 변수 타입을 직접 명시하지 않아도 된다. 코틀린 컴파일러가 변수 타입을 자동으로 유추하기 때문이다. ➡️ 타입추론
- 성능, 신뢰성, 유지 보수성, 도구 지원성에서 장점을 갖는다.
- 코틀린은 nullable type을 지원한다. 컴파일 시점에 NullPointerException을 검사하여 프로그램의 신뢰성을 높인다.(6장)
함수형 프로그래밍과 객체지향 프로그래밍
함수형 프로그래밍
- 일급 시민인 함수
- 함수를 일반 값처럼 다룰 수 있다.
- 변수에 저장하거나 인자로 다른 함수에 전달하거나 새로운 함수로 만들어 반환할 수 있다.
- 불변성
- 불변 객체를 사용한다.
- 부수 효과 없음
- 입력이 같으면 항상 같은 출력이다.
- 다른 객체의 상태를 변경하지 않고, 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수함수를 사용한다.
- 간결성, 다중 스레드 환경에서의 안정성, 테스트 용이성의 장점을 갖는다.
코틀린의 함수형 프로그래밍 지원
- 함수 타입 지원: 함수가 또 다른 함수를 파라미터로 받거나 새로운 함수를 반환 가능
- 람다식 지원: 번거로운 준비 코드 작성 불필요. 코드 블록을 쉽게 정의 및 전달 가능
- 데이터 클래스: 불변적인 값 객체를 간편하게 만들 수 있는 구문 제공
- 코틀린 표준 라이브러리: 객체와 컬렉션을 함수형 스타일로 다룰 수 있는 API 제공
코틀린의 철학
- 실용성: 쉽게 배울수 있으며 간결한 코드를 작성할 수 있다. 도구의 지원을 강조한다.
- 간결성: 프로그램의 부수적인 요소(게터, 세터 등)를 줄일 수 있다.다양한 라이브러리를 지원한다. 짧은 코드를 작성할 수 있고, 짧은 코드를 읽으면 된다!
- 안전성: JVM에서 실행되어 상당한 안전성을 보장한다. 추가로, 컴파일 시점 검사를 통해 오류를 더 많이 방지한다(ex. NullPointerException, ClassCastException 방지).
- 상호운용성: 기존(Java) 라이브러리를 그대로 사용할 수 있다.
코틀린 코드 컴파일(빌드 과정)
'Programming Language > Kotlin' 카테고리의 다른 글
코루틴 기본 (2) | 2022.12.16 |
---|---|
코틀린 뽀개기 (2) | 2022.10.08 |