kotlin 철학

roon-replica·2022년 6월 14일
0

kotlin

목록 보기
1/1
  • 참고 자료
    코틀린 인 액션 ch1~ch3

java를 대신할 언어에 대한 요구사항

  1. static typing (+ 타입 추론)
  2. 기존 java와의 상호 운용성
  3. 개발 생산성 향상 -> 저녁 있는 삶
  4. 뜻을 파악하기 쉬운 언어

type 관련 특징

  • static typed
  • type inference
  • nullable type 지원
  • function type?

철학

  1. 실용성
    코틀린은 연구를 위한 언어가 아님

  2. java와의 상호운용성
    java 라이브러리 그대로 사용 가능
    자바와 코틀린 소스를 섞어 쓸 수 있음 (어떤 의존성이 있어도 가능하다고 함..)

  3. 안전성
    안전성은 프로그램에서 발생할 수 있는 오류 중에 일부를 설계가 원천적으로 방지해준다는 뜻
    안전성과 생산성은 trade off 관계가 있다
    코틀린을 JVM에서 실행한다는 것이 상당한 안전성을 보장한다는 것이라고 함
    타입 추론, 널이 될 수 있는 값, 캐스트 관련해서 java보다 더 나음

  4. 간결성
    언어의 간결성은 의도 파악이 쉬운 구문 구조를 제공하고, 번거로운 코드가 적은 것

더 생각해볼 것들

  • 코틀린이 js를 지원한다는게 어떤 느낌인지 모르겠음. 본 적 없어서

  • static typing이 뭔지 알긴하는데 설명할 정도로 정확히는 모르겠음
    static typed면 컴파일 시점에 모든 구성 요소의 타입을 알 수 있고,
    사용할 때마다 컴파일러가 타입을 검증해준다??

  • 코틀린 코드에서 java 클래스를 상속하면?

  • 코틀린에서 변수는 다 참조 타입? java도 실제로는 다 참조 타입인건가?
    -> 메모리 구조 다시 봐야할 듯

  • 코틀린은 왜 접근 제한이 없고 다 public인지?

  • 커스텀 접근자 잘 이해 안 됨

  • smart cast 잘 이해 안 되고 원리 모름

  • 코틀린은 왜 checked/unchecked exception을 구별하지 않는지?
    unchecked exception 사용을 지양하기 때문?

  • 코틀린은 객체 생성할 때 왜 new 안 붙임?


  • 확장 함수 잘 모름. 까먹음
    -> 확장함수는 클래스의 멤버 메소드를 선언 시점 이후에도 추가할 수 있는 기능이라 해도 될 듯

  • 확장 함수는 override가 안 된다?

  • 확장 프로퍼티 잘 모르겠음

  • 어떻게 다른 JVM 언어로 작성된 클래스도 확장 가능한지 동작원리 모름

  • 코틀린이 자체 컬렉션이 없다고하는데 mutableListOf같은 건 java의 list를 구현한건가?

  • open 키워드 모름
    https://www.baeldung.com/kotlin/open-keyword

profile
집중 ➝ 프로세서↑ 시간 투자 ➝ 디스크↑

0개의 댓글