코틀린/코틀린 문법

Git Book 문법 [안드로이드와 코틀린]

정혜현 2024. 5. 27. 17:12

용어정리

더보기
  • API Application Programming Interface : 애플리케이션 간의 상호작용을 위한 규약 또는 프로토콜. 안드로이드 API는 개발자에게 안드로이드 플랫폼의 기능을 사용할 수 있게 제공하는 도구
  • 빌드Build : 소스코드를 기계어로 변환 후 실행파일로 만드는 과정
    리눅스에서의 빌드 : 소스코드를 바이트코드로 컴파일 후 라이브러리를 연결해 실행파일로 만드는 과정
    안드로이드에서의 빌드 : 소스코드, 리소스, 라이브러리까지 한 번에 바이트코드로 컴파일 후 APK매니저로 설치파일을 생성
  • 바이트코드 : 안드로이드 런타임에서 이해할 수 있도록 변환한 기계어
  • APK : 안드로이드 패키지Android Package의 줄임말로 안드로이드 설치 파일의 확장자명
    AAB : APK 파일을 대체하는 새로운 파일형태. 앱을 다운로드할 때 사용자에게 필요한 모듈만 골라 APK 파일로 생성
  • AOT컴파일 Ahead Of Time : 설치시. 리눅스 운영체제에서 실행할 수 있는 파일 형태로 일부 컴파일
  • JIT컴파일 Just In Time : 호출시. AOT컴파일에서 제외된 파일을 호출하여 컴파일  
    왜 2번이나 컴파일 하나요? 성능 및 속도와 디스크에 차지하는 용량이 반비례하기 때문에 상황에 맞춰 각각의 장단점을 효율적으로 조절 

안드로이드 Android

  • 플랫폼 : 리눅스 운영체제 안에서 리눅스와 상호작용하면서 동작. 
  • API : 레벨에 따라 기능이 추가되거나 변경될 수 있다. 따라서 레벨이 변경될 때 코드를 다시 한 번 확인해볼 필요가 있다. 1년에 한 번 정도 메이저 버전이 업데이트 된다. 
  • 젯팩 Jetpack : 안드로이드 모든 버전과 기기에서 일관되게 동작하는 라이브러리. 버전 호환성으로 비정상 종료와 메모리 누수를 줄이고 반복되는 코드를 제거해 코드 복잡도를 낮추며 개발자가 필요한 로직에만 집중할 수 있게 한다. 약 90개의 라이브러리를 제공하는데 입문단계에서 꼭 필요한 라이브러리는 다음과 같다.
    • Collection

    • ConstraintLayout

    • Fragment

    • RecyclerView

    • ViewPager2

    • Preference

    • Room

  • 뷰바인딩 ViewBinding : findViewById를 떨쳐내고 뷰 객체에 접근하기 위한 뷰 바인딩 지원.
  • 코루틴 Coroutine : 스레드를 경량화한 코루틴 제공. 기존 스레드는 코루틴을 위해 실행 가능한 공간을 제공하는 역할만 하며 하나의 스레드에 여러개의 코루틴이 존재할 수 있도록 설계됐다. 동시성 프로그래밍이 가능.  

 

코틀린 Kotlin

Jet brans사가 만든 프로그래밍 언어. 자바와 100%호환되며 간결성과 Null안전성이 특징. Google에서 2017년 5월에 공식 채택했고, 2019년에 퍼스트로 선언하며 메인언어로 지원하고 있다. 함수형 프로그래밍을 표방하고 있다. 

 

 

앱이 만들어지는 과정

  • 소스코드 작성 : 코틀린으로 소스코드 작성
  • 설치파일 생성(빌드) : 컴파일+비밀번호로 생성. 코틀린으로 작성된 소스코드를 바이트코드로 컴파일 후, APK 매니저에서 비밀번호를 가지고 있는 키 스토어와 조합해 안드로이드에서 실행될 수 있는 설치파일의 형태로 반환하여 생성
  • 업로드 및 등록 : 구글 플레이 스토어에 앱 업로드 및 등록. 단순히 올리기만 하는 것이 아니라 설치파일의 정상 작동여부, 보안 등 앱을 검수하는 과정까지 포함
  • 앱 선택 및 설치 : 구글 플레이 스토어에서 앱 선택 및 설치. AOT컴파일하여 실행속도가 빨라지고 사용자에게 기능의 사용권한을 요청
  • 앱 실행 : 아이콘을 터치하여 앱 실행. JIT 컴파일 후 사용권한 중 '실행 시 권한'이 포함되어 있으면 사용자에게 확인 요청