본문 바로가기
Android Q&A/Android One a day

[안드로이드 면접] - 6 :

by 후추부 2023. 1. 29.

1. 왜 언어를 코틀린으로 선택했을까?

더보기

결론적으로 자바와 호환도 잘되면서 실용적이고 간결하며 안전한 언어이기 때문이다.

또한, 자바 플랫폼에서 돌아가기 때문에 기존 자바 라이브러리나 프레임워크에서 잘 동작하며 성능도 자바와 같은 수준이기 때문에 대체하여 좋은 이점을 더 갖은 상태로 개발할 수 있다.

그러한 이유는 코틀린이 갖는 언어적 특징 때문이다.

 

코틀린 특징

  • 정적 타입 지정언어 : 컴파일 시점에서 객체 타입이 결정된다. 이를 정적 타입이라고 일컫는다. 이와 반대로 런타임 시점에서 객체 타입이 결정되는 동적타입은 파이썬, 자바스크립트가 존재한다.
  • Null 안정성 : Java 는 NullPointer Exception 을 많이 경험했을 것이다. 이 점을 개선하여 Nullable 과 non-null 타입을 구분한다. 즉, 예상치 못한 위치에 Null 이 포함되는 경우를 대비해 안전한 Null 처리하는 기능들을 지원하여 문제점을 최소화 한다.
  • 타입 추론 : 변수의 타입을 명시하지 않아도 할당된 값만 보고 타입을 추론한다. 이는 반복적인 코드량을 줄일 수 있게 되는 장점이 있다.
  • 함수 타입에 대한 지원 : 함수형 프로그래밍의 장점은 여러가지가 있다.

 

2. 안드로이드 빌드란 무엇인가?

더보기

소스 코드를 변환해서 안드로이드의 실행파일(APK)로 만드는 것을 빌드라고 한다.

빌드는 소스 코드를 기계어로 변환한 후, 라이브러리와 연결해서 실제 실행파일로 만드는 과정을 일컫는 용어이다.

💡안드로이드는 리눅스 커널 기반이므로 리눅스 시스템의 빌드를 이해하는 게 도움이 된다

 

3. 컴파일이란?

더보기

사람이 읽을 수 있는 형태의 소스 코드를 컴퓨터가 읽을 수 있는 형태의 기계어로 변환해주는 과정이다.

컴퓨터는 기계어만 이해하고 동작하는데 이 기계어의 구조를 사람이 이해하는 것이 어려워 고급언어(C, Java, Kotlin)와 같은 컴퓨터 언어가 생겨났다.

 

4. 코틀린이 빌드 되는 과정은?

더보기

코틀린은 JVM 상에서 동작한다. 그래서 빌드되는 과정이 자바와 흡사하다.

  1. 코틀린 파일을 컴파일러인 Kotlinc 에서 바이트 코드로 변환한다.
  2. JVM jit 컴파일을 통해 Kotlinc 에서 변환한 바이트 코드를 기계어로 변환한다.
  3. 해독된 기계어는 메모리에 할당 후, cpu 에 의해서 동작한다.

 

5. 안드로이드 빌드되는 과정은?

더보기

안드로이드는 리눅스 커널기반이므로 리눅스 시스템의 빌드를 이해하는 것이 좋다.

하지만, 안드로이드와 리눅스 커널에서의 빌드와 다른 점은 안드로이드는 리소스(Resource) 라는 개념이 있다는 점이다.

 

안드로이드 2단계 컴파일로 나눌 수 있다.

먼저 1단계는 바이트코드로 변환하는 단계이다.

소스 코드, 리소스, 라이브러리까지 한 번에 컴파일을 하게 된다.

이 때 생성된 파일은 안드로이드 플랫폼에서 인식할 수 있는 바이트코드로 컴파일된다. 이 파일은 스마트폰에서 바로 실행할 수 없다.

 

그 다음 2단계는 APK 파일 생성 단계이다.

안드로이드의 빌드 1단계에서 생성된 파일을 APK 매니저라는 도구로 개발자가 설정한 패스워드와 조합해서 설치 파일인 APK 파일으로 만들어준다.

 

위 두 단계를 거치게 되면 APK 파일이 생성되는데, 이 APK 파일을 생성하는 과정을 빌드라고 한다.

 

 

 

 

'Android Q&A > Android One a day' 카테고리의 다른 글

[안드로이드 면접] - 8 :  (0) 2023.01.31
[안드로이드 면접] - 7 :  (0) 2023.01.30
[안드로이드 면접] - 5:  (0) 2023.01.28
[안드로이드 면접] - 4 :  (0) 2023.01.27
[안드로이드 면접] - 3 :  (0) 2023.01.26