코틀린 독학 하기 2 <코틀린 소개>

코틀린 독학하기 2 하이퍼 스킬, 코틀린 소개

코틀린 독학

2번째 topic입니다.

코틀린은 JetBrains에서 2011년에 공식적으로 출시된 현대적인 프로그래밍 언어입니다. 2016년 2월 15일에 출시된 코틀린 1.0은 첫 안정 버전으로 인정받았습니다. 이 버전부터 JetBrains은 장기적인 하위 호환성을 약속했습니다. 코틀린은 자바의 번거로움과 널 포인터 예외와 같은 단점을 극복하기 위해 설계되었습니다. 코틀린의 창조자들은 기존의 자바 프레임워크와 라이브러리를 활용하면서 더 표현력 있고 간결한 구문을 제공하는 언어를 개발하는 것을 목표로했습니다.

코틀린은 일반적인 프로그래밍 과제에 대한 솔루션을 제공하는 실용적인 언어로 자리매김하고 있습니다. 자바와 완전히 상호 운용이 가능하며, 기존의 모든 자바 라이브러리, 프레임워크 및 도구를 사용할 수 있습니다. 또한 코틀린 코드를 자바에서 호출하거나 그 반대로 할 수 있습니다.

핵심 기능:

  1. 간결성: 코틀린은 보일러플레이트 코드를 최소화하여 동일한 기능을 수행하는 데 필요한 코드 줄 수를 줄입니다. 예를 들어, 코틀린의 데이터 클래스는 자동으로 equals(), hashCode(), toString() 메서드를 생성합니다.
data class User(val name: String, val age: Int)
  1. 표현력: 코틀린의 구문은 프로그래머가 더 읽기 쉽고 이해하기 쉬운 코드를 작성할 수 있도록 합니다. 예를 들어, when 표현식은 자바의 switch의 더 강력한 버전입니다.
when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> print("x는 1도 2도 아닙니다")
}
  1. 자바와의 상호 운용성: 코틀린은 완전히 자바와 상호 운용이 가능하도록 설계되었습니다. 이 기능은 자바에서 쉽게 코틀린 코드를 호출하거나 코틀린에서 자바 코드를 호출할 수 있음을 의미합니다.
// 코틀린 함수
fun getList(): List<String> = listOf("Kotlin", "Java")

// 자바 코드에서 코틀린 함수 호출
List<String> list = MyKotlinFile.getList();

코틀린은 빠르게 인기를 얻어 2017년에 구글이 공식 안드로이드 개발 언어로 선언했습니다. 현대적인 기능과 자바와의 원활한 통합으로 인해 이는 새로운 프로젝트뿐만 아니라 기존 프로젝트에도 매력적인 선택지가 되었습니다.

개발 환경 설정
코틀린에서 코딩을 시작하려면 개발 환경을 설정해야 합니다. 코틀린은 안드로이드 개발, 백엔드 및 데스크톱 응용 프로그램에 사용할 수 있습니다. 여기에는 코틀린을 설치하고 IDE를 설정하는 간단한 안내서가 있습니다:

  1. Java 개발 키트(JDK) 설치:
  • 코틀린은 자바 가상 머신(JVM)에서 실행되므로 JDK가 설치되어 있는지 확인하십시오. 공식 Oracle 웹 사이트에서 다운로드하거나 OpenJDK를 사용할 수 있습니다.
  1. IntelliJ IDEA 또는 Android Studio 설치:
  • 일반적인 개발용으로 IntelliJ IDEA Community Edition은 무료이며 코틀린을 기본으로 지원합니다. JetBrains 웹 사이트에서 다운로드할 수 있습니다.
  • 안드로이드 개발을 위해 IntelliJ를 기반으로 한 Android Studio가 최선의 선택입니다. Android 개발자 웹 사이트에서 사용할 수 있습니다.
  • 설치 중에 기본적으로 포함되어 있지 않은 경우 Kotlin 플러그인을 선택하십시오.
  1. IDE 구성:
  • IDE를 열고 새 프로젝트를 생성합니다.
  • 언어로 Kotlin을 선택하고 적절한 프로젝트 유형(JVM/Android)을 선택합니다.
  • 프로젝트 SDK를 설치한 JDK로 구성합니다.
  1. Kotlin REPL 사용:
  • Kotlin REPL(Read-Eval-Print Loop)은 전체 프로젝트를 만들지 않고도 코틀린 코드 조각을 빠르게 실행할 수 있는 도구입니다. 실험에 탁월합니다. IntelliJ IDEA에서는 Tools -> Kotlin -> Kotlin REPL로 이동하여 액세스할 수 있습니다.
  • 다음은 REPL에서 시도할 수 있는 기본 코드 조각입니다:
   fun main() {
       val greeting = "Hello, Kotlin!"
       println(greeting)
   }
  • 이것을 REPL에 복사하여 붙여넣으면 “Hello, Kotlin!”이 콘솔에 출력됩니다.

이러한 단계를 따르면 완전히 기능적인 Kotlin 개

발 환경을 갖추게 되어 애플리케이션을 개발하거나 언어를 실험할 준비가 됩니다.

코틀린의 기본 구문 및 개념
코틀린은 자바 가상 머신(JVM)에서 실행되는 정적으로 타입 지정된 프로그래밍 언어로, 자바와 완전히 상호 운용되도록 설계되었습니다. 더 간결한 구문과 향상된 기능을 제공합니다.

변수
코틀린에서는 불변 변수에는 val 키워드를 사용하고 가변 변수에는 var를 사용합니다.

val immutableString: String = "Hello" // 불변 변수
var mutableInt: Int = 42 // 가변 변수

데이터 타입
코틀린에는 Int, Double, Float, Boolean 등과 같은 내장 데이터 타입이 포함되어 있습니다. 명시적으로 선언되지 않은 경우 변수의 타입은 자동으로 추론됩니다.

val inferredType = 42 // Int 추론됨

연산자
코틀린은 자바와 유사한 연산자를 사용하며 +, -, *, / 및 %와 같은 연산자를 지원합니다. 또한 연산자 오버로딩을 지원합니다.

제어 흐름
코틀린에서는 if 문을 식(expression)으로 사용할 수 있으며, 이는 자바의 전통적인 사용법을 개선한 것입니다.

val max = if (a > b) a else b

코틀린의 for 루프는 자바와 유사하지만 향상되었습니다. 범위를 나타내는 .. 연산자를 사용하여 더 강력하게 사용할 수 있습니다.

for (i in 1..10) {
    println(i)
}

while 및 do..while 루프는 자바와 유사하게 작동합니다.

코틀린은 switch-case의 발전된 형태인 when 표현식을 소개합니다. 임의의 표현식을 지원합니다.

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> { // 블록 주목
        print("x는 1도 2도 아닙니다")
    }
}

자바보다 개선된 점
코틀린의 구문은 더 간결하여 보일러플레이트 코드를 줄입니다. 예를 들어, 각 문장 끝에 세미콜론을 사용할 필요가 없습니다. 타입 추론은 변수 선언의 번거로움을 줄입니다. when 표현식은 자바의 switch-case보다 유연하며, 코틀린의 if는 식으로 사용될 수 있어 삼항 연산자를 사용할 필요가 없습니다.

코틀린은 nullable 타입과 함수형 기능을 강조하여 현대적인 애플리케이션 개발에 강력한 선택지가 됩니다.

마무리
코틀린 커뮤니티에 오신 것을 환영합니다! 코틀린은 자바 언어를 개선하기 위해 설계된 다양하고 현대적인 프로그래밍 언어입니다. 자바 라이브러리 및 프레임워크의 방대한 생태계를 활용할 수 있는 상호 운용성이 보장됩니다. 코틀린의 간결한 구문은 보일러플레이트 코드를 줄여 코드 작성 및 유지 관리를 쉽게합니다.

Hyperskill에서는 실습을 통해 학습하는 것을 중요시하며, 작은 문제라도 해결함으로써 코틀린을 숙달하는 데 한 걸음 더 나아가는 것이라고 믿습니다. 따라서 여러분에게는 지금 연습하고, 만약 막힌다면 커뮤니티에서 도움을 요청하고, 실수를 포용하며 실험하는 것을 권장합니다!

문제

환영 메시지와 발명 연도 삽입

최근에 Kotlin을 배우기 시작했는데 언어에 대한 기본적인 이해를 강화하기 위해 과제가 주어졌습니다. 제공된 Kotlin 코드의 주요 기능에서 공백을 채워야 합니다. 여기서 코드는 사용자에게 환영 메시지를 인쇄한 다음 Kotlin이 공식적으로 발명된 연도를 제공합니다. 출력은 두 정보를 결합하는 문자열 보간이어야 합니다.

20240109 143933 1

회색 빈칸에 아래에 있는 val Int print String을 각각 드래그 하여 넣으면 됩니다.

처음에 아무것도 모르는채로 맞출수는 없습니다. 앞에 Theory를 잘 읽어두면 됩니다.

val 은 불변(immutable)변수를 선언하는데 사용되는 키워드입니다. 한번 초기화되면 변경될 수 없습니다.

Int 는 정수를 사용할때 쓰고

print는 출력하는데 쓰이고

String은 문자를 사용할때 쓰입니다

그래서…

20240109 143933 2

답은 이렇게 됩니다.

val은 새로이 뭔가를 생성할때 쓰이므로 대부분 맨 앞에 나옵니다. val 다음 welcomeMessage라는 이름이 나오고 : 다음에 문자를 뜻하는 String이 나오고 그 값은 = 다음에 “Hello, kotlin learner!” 가 나옵니다. 이런 순서들이 문법인 것 같습니다. 아니 표현식이라고 해야할까요? 이런 표현식을 쓰면 컴퓨터가 알아듣더라…. 그렇게 되는겁니다

Int는 2011 을 받기 위해서 쓰였고(정수)

print는 괄호 안의 문자를 프린트 하라는 뜻입니다.

앞에 글을 잘 읽었다면 문제는 쉬웠을겁니다. 마구 찍어도 괜찮구요… ㅎㅎㅎ 원래 퍼즐놀이하듯이 이것저것 대입해보다가 맞아도 공부가 된다고 합니다. 어린 아기가 모양블럭을 이리저리 맞춰보듯이 말이죠. 처음에는 뭐가 뭔지 모르지만 계속 이리저리 시도해보다가 서서히 이건 이거구나 하면서 깨닳아 가는 것이죠. 무디 너무 돌아가진 않기를 바라지만…

한편 문제를 풀때 참고할것이 있습니다

20240109 143933 3

Send 옆에 Code snippets from theory가 있는데요, 이걸 누르면 참고할만한 글이 오른쪽에 나옵니다. 한번 눌러보세요. 그럼 문제를 풀기 위한 참고 글이 오른쪽에 나옵니다. 그걸 보고 참고하면서 문제를 풀어도 되요. 나름의 힌트인것이죠. 정말이지 ㅂㄷㅂㄷ… 왜 Hints 조차도 문제를 푼 다음에야만 볼 수 있게 해놨냐 hyperskill아….????

20240109 145729 4

그리고 한편 또… 이게 있습니다

20240109 143933 4

Postpone 즉 ‘미루다’ 버튼도 있는데요. 이걸 누르면

20240109 143933 5

왜 미루고 싶은가 묻습니다. Too hard 너무 어려워서, Just boring 너무 지루해서, Too easy 너무 쉬워서…. 가 있는데요.

그냥 아무거나 골른다음 postpone을 하시면 됩니다.

너무 쉬워도 문제를 그냥 넘길 수 있는데요. 이런식으로 문제를 ‘Send’하지 않고 postpone을 하면 문제를 계속 풀 수 있습니다. 다만 답이 맞는지 틀린지는 확인할수 없는거죠

이걸 잘 이용하면 하루에 10개만 풀수 있는것을 넘어서 문제를 풀 수 있을겁니당… 답 확인은 안되지만… ㅎㅎㅎ

그리고 다시 문제 나갑니다

너무 쉬운 문제는 넘어갔습니다

모르면 아무거나 찍어서 맞춰보세요 ㅎㅎㅎ

20240109 150453 1

20240109 150453 2

20240109 150453 3
20240109 150453 4

먼저 val로 불변변수를 시작하고, “Hello, “는 문자이니까 String으로 맞춰줍니다

아래 var는 가변(mutable)변수 선언하는데 쓰이는 키워드로 result는 변할 수 있도록 해줍니다.

println()는 괄호 안의 변수를 출력해줍니다.

20240109 150453 5

20240109 150453 6

20240109 150453 7