일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 데이터베이스 첫걸음
- 실버 4
- 브론즈 1
- Bitrise
- 실버2
- LazyColumn
- Activirty
- Myungpyo Shim
- Android
- 백준
- github action
- kotlin
- capitalize
- 피보나치 수 2
- 데이터베이스
- 성빈랜드
- LazyRow
- gradlew
- DB
- 프로그래머스
- 최댓값 최솟값
- suspend programming
- .github
- navigation component
- DB 기능
- compose
- 2레벨
- 브론즈1
- 개발하는 정대리
- keystore
- Today
- Total
plzy의 개발 블로그
[Kotlin in Action] 코틀린의 철학 #2 본문
이전 포스팅에서는 코틀린이 무엇인가 에 대한 포스팅을 해봤다.
이번 포스팅은 코틀린의 철학이다.
java의 뒤를 나온 kotllin 어떤 철학이 있을까?
실용성
kotlin을 처음 만들 때 대규모 it 프로젝트를 경험을 바탕으로 만들어졌다고 한다.
또한 코틀린은 어떠한 패러다임에 의존하는 것이아닌 프로그래머의 스타일에 따라 자유자재로 변환하여 쓸 수 있다.
객체지향이나 함수형 등 취향에 맞게 쓰면 된다.
그리고 kotlin은 연구를 위한 언어가 아닌 다른 언어의 성공적인 해법과 기능을 의존한다.
그래서 좀 더 익숙하고 쉽게 배울 수 있다.
kotlin은 인텔리 J의 IDE에 편리한 개발환경이다.
생산성이 뛰어나다.
간결성
코드를 쓰는 것보다 읽는것이 시간이 더 오래 걸린다고 한다.
버그를 수정할 때 많은 코드를 읽어야한다.
하지만 kotlin은 간결하다.
Java에서 게터와 세터, 생성자 피라미터를 필드에 대입하는 등 귀찮은 코드를 작성해본 경험이 있을 것이다.
하지만 kotlin은 묵시적으로 제공하기 때문에 작성할 필요 없다.
kotlin은 다양한 표준 라이브러리를 제공하기 때문에 라이브러리 함수 호출로 대치할 수 있다.
kotlin은 연산자 오버 로딩을 지원하지만 언어가 제공하지 않은 연산자를 프로그래머가 정의할 수 없다.
안정성
언어가 안전하다는 것은 일부 오류를 원천적으로 방지해준다는 것이다.
이를 실현되려면 컴파일 시 프로그램이 어떻게 작동될 것인지 자세히 알아야 한다.
그러기 위해선 코드를 더 많이 써야 할 것이고 생산성이 내려간다.
이렇게 안정성과 생산성의 관계를 트레이드오프라고 한다.
kotlin은 jvm 위에서 돌어간다. 이것만으로 상당한 안정성을 보장한다고 볼 수 있다.
또한 NullPointerException을 null safety로 사전에 막을 수 있고, ClassCastException으로 객체를 다른 객체로 cast 할 때 미리 검사하지 않으면 ClassCastException이 발생할 수 있다.
상호운용성
java에서 kotlin 코드를 호출할 때 아무런 노력이 필요 없다.
또한 기존 자바 라이브러리를 최대한 활용할 수 있어 상호운영성이 뛰어나다고 볼 수 있다.
java와 kotlin의 소스파일이 섞여 있어도 제대로 컴파일할 수 있고,
IDE 기능도 언어와 관계없이 제대로 작동한다.
- 자바와 코틀린 소스파일을 자유롭게 컴파일 할 수 있다.
- 여러 언어로 이루어진 프로그래밍을 디버깅할 수 있다.
- 자바 메서드를 리팩터링 해도 kotlin 코드도 변경된다. 역으로 kotlin 메소드를 리팩토링해도 java 코드까지 모두 변경된다.
'독서록' 카테고리의 다른 글
[이펙티브 코틀린] 가변성을 제한하라 #1 (0) | 2022.05.17 |
---|---|
[Kotlin In Action] kotliin이란 무엇인가? #1 (0) | 2022.05.11 |