[GDSC Ewha 5th] Android Session

[GDSC Android] Chapter 0. Kotlin을 사용한 Android 개발

wlalsu_u 2023. 9. 28. 15:29

0.1 Kotlin과 Android 알아보기

 

 

 

 

Kotlin 이란?

 

 

- Java 플랫폼에서 돌아가는 새로운 프로그래밍 언어

 

- 주로 서버와 안드로이드 개발에서 사용되며, 무료 오픈 소스로 사용 가능

 

- 개발자의 생산성과 효율성을 높여주는 현대 최신의 프로그래밍 언어

 

- 명확성, 간결성, 코드 안전성을 제공함

 

- 2017년부터 Android 앱 개발을 위한 공식 지원 언어로 선정되며, Android 개발자의 60% 이상이 사용

 

 

 

 

 

Android 란?

 

 

- Google에서 만든 모바일 기기 제어를 위한 Linux 기반 OS

 

- OS 와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 서비스를 하나로 묶어 제공

 

- 누구나 참여할 수 있는 오픈 소스 모바일 플랫폼

 

- 이식성이 우월하여 스마트폰 및 태블릿 뿐만 아니라 TV, 자동차, 가전 기기에도 적용 가능

 

- 안드로이드 앱은 주로 코틀린을 이용하여 개발됨

 

 

 

 

 

Kotlin을 이용한 Android 개발을 위해 필요한 도구

 

 

1) Java Development Kit

 

2) Java Runtime Engine (Windows의 경우)

 

3) IntelliJ IDEA

 

4) Android Studio

 

 

 

 

 


 

 

 

0.2 Benefits of Kotlin

 

 

 

Java 와 비교하여 Kotlin 이 가지고 있는 장점에 대해 알아보자.

 

 

 

 

 

1) 높은 표현력과 간결함 (Expressive and concise)

 

 

- getter / setter 와 같은 상용구 코드를 제거

 

- 람다를 지원하여 작은 코드 블록을 라이브러리 함수에 쉽게 전달 가능

 

- 하지만 간결하면서 가독성을 높이기 위해 충분한 상용구 코드를 사용하도록 설계

 

 

 

 

 

예를 들어 아래 Java 코드의 경우,

 

getter 와 setter를 Java의 class 내에 작성해야 하는 것을 확인할 수 있다.

 

 

 

public class Aquarium {

   private int mTemperature;

   public Aquarium() { }

   public int getTemperature() {
       return mTemperature;
   }

   public void setTemperature(int mTemperature) {
       this.mTemperature = mTemperature;
   }

   @Override
   public String toString() {
       return "Aquarium{" +
               "mTemperature=" + mTemperature +
               '}';
   }
}

 

 

 

 

 

하지만 동일한 코드를 Kotlin으로 작성하면,

 

상용구 코드를 제거하고 data class 로 간결하게 표현할 수 있다.

 

 

 

 

 

data class Aquarium(var temperature: Int = 0)

 

 

 

 

 

 

2) 안전한 코드 지원 (Safer code)

 

 

- nullable 과 non-nullable 데이터 타입을 구별

 

- 컴파일 타임에 오류를 발생시켜 Null Point Exception을 줄임

 

- 타입 자동 추론을 사용하여 타입 안전성을 보장

 

- Kotlin 코드가 포함된 Android 앱의 경우 다운될 확률이 20% 낮음

 

- 결과적으로 컴퓨터 충돌 발생을 낮추고, 디버깅 소요 시간이 줄어들어 금전적인 이익

 

 

 

 

 

 

3) 상호운용성 (Interoperable)

 

 

- Java 프로그래밍 언어와 100% 호환됨

 

- Java 메소드 호출, Java 클래스 상속, 인터페이스 구현, 어노테이션 적용이 모두 가능

 

- 기존 Java 프로그램에 Kotlin 코드 추가 가능

 

 

 

 

 

 

4) 구조화된 동시 실행 (Structured Concurrency)

 

 

- 비동기 코드를 차단 코드처럼 쉽게 사용 가능

 

- 네트워크 호출부터 로컬 데이터 엑세스까지 백그라운드 작업 관리를 단순화

 

 

 

 

 

 


 

 

 

0.3 IntelliJ IDEA 를 사용해서 Kotlin Project 만들기

 

 

 

 

먼저 IntelliJ IDEA 에서 New Project를 생성하자.

 

 

 

Name 을 HelloKotlin으로 지정하고, Language를 Kotlin 으로 설정한다.

 

JDK는 설치되어 있는 가장 최신 버전의 JDK를 설정한다.

 

 

 

 

 

 

 

 

 

 

Create 버튼을 누르면, 아래와 같이 기본 메인 함수가 작성되어 있는 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

이제 Kotlin 의 대화형 셸인 REPL (Read-Eval-Print Loop) 를 사용해보자.

 

코드를 한 줄 씩 직관적으로 확인할 수 있어, 새로운 언어를 학습하기 유용하다.

 

 

 

 

Tool > Kotlin > Kotlin REPL 을 선택하여 REPL 을 열어보자.

 

 

 

 

 

 

 

 

 

 

 

REPL에 다음의 코드를 입력하고 실행해보자.

 

 

명령을 입력한 후 Ctrl + Enter ( Mac 의 경우 Command + Enter ) 를 누르면 실행할 수 있다.

 

 

 

 

fun printHello() {
    println("Hello World")
}

printHello()

 

 

 

 

 

 

 

 

fun 키워드

 

 

- 뒤에 이름을 지정하여 함수를 지정

 

- 괄호 안에는 함수 매개변수를 입력

 

- 중괄호 안에 함수에 대한 코드를 구성

 

- kotlin 에서는 줄 끝에 세미콜론을 사용하지 않음

 

 

 

 

 

 

 

[ 💡Summary ]

- Kotlin은 개발자의 생상성을 높여주는 새로운 프로그래밍 언어로, 대부분의 Android 개발에 사용됨

- Kotlin은 높은 표현력, 안전성, 간결성, 이식성을 가지고 있음

- 대화형 셸인 REPL에 코드를 입력하고 Ctrl + Enter 를 통해 실행 가능

 

 

 

 

 

 


 

 

 

[ Week-01 ] 과제 제출

 

 

 

 

실습 1) IntelliJ에서 println ("Hello World") 을 실행한 화면을 캡쳐

 

 

 

 

 

 

 

 

 

 

 

실습 2) IntelliJ에서 val name / $name 을 실행한 화면을 캡쳐

 

 

 

 

 

처음에 아래와 같이 $name 뒤에 "님" 을 바로 옆에 붙이면 컴파일 오류가 뜬다!

 

 

 

 

 

 

 

 

 

변수 이름을 지정할 때,

 

유니코드(영어, 한글 모두 포함)는 모두 변수 이름으로 설정되므로 발생하는 오류이다.

 

 

 

 

 

따라서 아래와 같이

 

val name님 = "지민" 으로 설정하면

 

오류를 해결할 수 있다!

 

 

 

 

 

 

 

 

 

 

 

 

 

만약 name 이라는 변수를 사용하고 싶다면,

 

중괄호를 사용해서 ${name} 작성하면 오류를 해결할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'GDSC Android 교육 세션 자료' 와 'Codelab 1강 : Kotlin 기본사항' 내용을 기반으로 작성하였습니다.