Kotlin In Action을 찍먹해보고...

박경현·2023년 12월 9일
0

도서관에 책이 있길래 시험공부도 하기 싫은 찰나에 바로 읽어봤다...

코틀린을 하려면 무조건 봐야하는 책이라고 다들 말해서 흥미가 있었는데 이번에
찍먹으로 봤었다

1장 - 코틀린이란 무엇이며 왜 필요한가

언어를 알려면 일단 이 언어가 왜 만들어졌고 무엇인지 아는게 중요하다!

책에 적혀있는 맨 앞장에는 이렇게 적혀있었다

코틀린
자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어
간결하고 실용적이며 자바 코드와의 상호 운용성을 중시함

내 생각을 같이 가미하자면 코틀린은 자바를 현대 스타일로 바꾼 느낌인거 같다

간단하게 코드를 구경해보자

data class Person(val name: String, val age: Int? = null)

func main(args: Array<String>) {
	val persons = listOf(Person("영희"), Person("철수", age=29))
    val oldest = persons.maxBy{it.age? : 0}
    println("나이가 가장 많은 사람: $oldest")
}

여기서 다른건 다 이해했는데 저 it을 보고 좀 신기했었다
내부적으로 리스트내 변수들을 돌면서 null이면 0을 반환하고 아니면 age값을 반환해서 max값을 찾는 방식이다!

코틀린의 주요 특성

현재 자바가 사용되고 있는 모든 용도에 적합하면서 안드로이드, 서버(백엔드) 등에서 적극 활용되고 있다

코틀린은 정적타입 지정 언어이면서 함수형 프로그래밍이 가능하다!

정적타입 지정 언어

말 그대로 컴파일때 모든 프로그램의 구성요소 타입을 알 수 있고,
객체의 필드나 메서드를 사용할 때마다 컴파일러가 타입을 검증해준다

사실 런타임때 잡히는 오류가 최악인데 코틀린은 정적타입 지정 언어라 이런 오류 또한 최대한 배제 할 수 있다!

그렇다면 동적 타입 지정 언어는 뭘까? 정적도 있으니 당연히 동적도 있다!!

타입과 관계없이 모든 값을 변수에 넣을 수 있고 메소드나 필드 접근에 대한 검증 또한 런타임때 일어난다
코드는 짧고 데이터는 유연하게 생성하지만 오류가 런타임때 날 수도 있어서 이걸 진짜 주의해야한다!!

함수형 프로그래밍

함수를 일반 값처럼 사용하는 방식이 가능하다! -> 변수에 함수를 저장할 수가 있는 것!!
불변성 - 만들어지고 나면 내부가 절대로 바뀌지 않는 불변 객체를 사용해서 프로그램을 작성

즉 입력값이 같으면 항상 같은 출력이고 다른 객체의 상태를 변경하지 않는다!!

이러한 함수형 프로그램의 장점은 무엇이 있을까?

작성할 때 간결해진다
함수를 값처럼 사용하다 보니 추상화가 가능
비슷한 작업이 있으면 공통부분 함수내부로, 다른 세부사항은 인자로 받아서 처리!

이게 핵심인데

다중 스레드를 사용해도 안전하다!!

코틀린 찍먹 소감

일단 왜 인기 많은지 알거같다 좋은 기능이 거의 다 들어가 있어서!
자바로 작성이 많이 되어있는데 이 부분들을 다 커버치는게 가능한것도 신기하고
더 범용성이 넓어서 배워볼 필요가 있는 언어네...

profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글