Kotlin In Action - 1

존스노우·2023년 1월 18일
0

코틀린

목록 보기
1/10

1 장 코틀린 이란!?

책의 내용이 길고 어렵지만 시작해보자.

요약

  • 자바와 함께 사용 상호 운용성 높다.
  • 자바보다 간결하면서(람다식) 널 안정성 제공

책을 읽고 좀더 보충해보자.

정적 타입 지정언어

  • 컴파일시 컴파일러가 타입을 검증!

  • 컴파일 시점에서 실행시 오류 발견 가능

  • 코틀린은 모든 변수 타입을 명시할 필요없이 코틀린 컴파일러가 추론이 가능함.

  • 인텔리제이로 따지면 빨간줄이나오면 컴파일(문법오류)시점

  • 실행시킬때 런타임 시점 ..

    함수형 프로그래밍

  • 일급시민함수

  • 처음엔 개념이 헷갈렸지만 코드를 보면서 이해했다.

  • 함수는 일반값처럼 저장 하거나 / 인자로 다른 함수에 전달/ 함수->새로운 함수로 변환

    불변성?

  • 객체나 변수가 생성된 이후 변경되지 않는 것!

  • 함수형 프로그래밍에서의 불변성

  • 내가 이해하는 바로는 그림에 나와있는 변수? 객체 리스트를

  • 함수를써서 내부의 값의 변경대신 새로운 값을 생성하는 방식이다.

  • 불변성을 지향하는 함수형 프로그래밍은 값을 변경X 새로운값을 생성하는 방식으로 동작 한다!

  • 코틀린은 listOf , mapOf 등 으로 불면 컬렉션을 생성한다.

  • 또 왜 불변성이라 하면 위 두개로 컬렉션만들고

  • 요소를 추가하거나 , filter로 새로운 리스트를 만들면

  • 다른 컬렉션 변수에 저장한다

  • 종합적으로 이해하자면 원본은 유지하고 복사를 통해새로운객체 추가 삭제 수정을 하는듯 ?

부수 효과

  • 외부 환경에 함수가 영향을 미치는 것.
  • 외부환경에 영향을 미친다? 무슨 말일 까.
  • 외부의 있는 상태를 변경하는 것을 의미한다
    -> 이런 형태는 함수의 실행결과가 예측하기 어렵고 테스트 디버깅이 어렵다.
    입력값에 의존하지않고, 독립적으로 동작하지 않는다.

이런 예시가 있다 조금 이해할거같으면서도 깊게 생각하면 어렵다.

  • 나는 rest Api와 조금 접목시켜 이해했따.
  • Get 조회 -> 부수효과없는 함수
  • Post 저장 or 변경 -> 상태를 변화하는 부수효과있는 함수.

이렇게 함수형프로그래밍의 핵심개념에 대해 조금 공부해 봤다.

이러한 개념으로 얻는 이익은

  1. 간결하며

  2. 순수함수로 인해 값처럼 활용 -> 강력한 추상화
    (여기서 값처럼 활용은 함수를 변수에 할당시키는등을 말한다.)

    ------------- Study Group

    1. 함수형 프로그래밍 (불변성,부수효과로 ) 많이 지원하는 추세
    2. 비즈니스 로직구현이 어려워 권장은? 되지 않음.
    3. 간결성 -> 타입추론이 굉장히 많이들어감, 의미없는 코드 부분 간소화
    4. 타입검사 스마트 캐스트 제공
profile
어제의 나보다 한걸음 더

0개의 댓글