코틀린 입문 스터디 (1) Introduction

mook2_y2
5 min readFeb 17, 2019

--

스터디파이 코틀린 입문 스터디 (https://studypie.co/ko/course/kotlin_beginner) 관련 자료입니다.

코틀린 입문반은 Kotlin을 직접 개발한 개발자가 진행하는 Coursera 강좌인 “Kotlin for Java Developers” (https://www.coursera.org/learn/kotlin-for-java-developers) 를 기반으로 진행되며 아래는 본 강좌 요약 및 관련 추가 자료 정리입니다.

목차

(1) Introduction

(2) From Java to Kotlin

(3) Basics

(4) Control Structures

(5) Extensions

(6) 실습 : Mastermind game

(7) Nullability

(8) Functional Programming

(9) 실습 : Mastermind in a functional style, Nice String, Taxi Park

(10) Properties

(11) Object-oriented Programming

(12) Conventions

(13) 실습 : Rationals, Board

(14) Inline functions

(15) Sequences

(16) Lambda with Receiver

(17) Types

(18) 실습 : Game 2048 & Game of Fifteen

0. 강의 및 스터디 개요

Kotlin 학습 목표와 의의

  • Kotlin은 어플리케이션 분야에서 폭넓게 활용될 수 있습니다. 가장 대중적인 언어 중 하나인 Java로 개발된 수많은 프로젝트 (Android, Spring 등)에 100% 상호운용이 가능하며, client-side JavaScript, Node.js, iOS 등 점진적으로 활용 분야를 확장시켜 나가고 있습니다.
  • Kotlin을 통해 보다 간결하고 안전한 코드를 작성할 수 있습니다. Kotlin은 프로그래밍 실무에서 주요하게 맞닥뜨리는 가독성, 생산성, 안전성을 개선하는 것을 목표로 설계되었습니다.
  • Kotlin을 배우며 프로그래밍에 대해 보다 깊게 이해할 수 있습니다. Kotlin은 OOP의 대표적인 언어 중 하나인 Java를 개선하기 위한 목표로 비교적 최근 (2010년 프로젝트 시작, 2011년 공개)에 개발된 언어입니다. 이러한 특징으로 인해 Kotlin을 배우는 과정에서 OOP, Nullability, Functional Programming, Type system 등 중요한 프로그래밍 개념들에 대해 깊게 생각해볼 수 있습니다.

1. Introduction to the course (2m)

  • Java에 대해 이해하고 있다는 전제 하에 달라진 점과 새롭게 도입된 점 위주로 진행합니다. 본 스터디에서는 Java를 배워보지 않으신 분들을 위해 추가 설명 및 자료를 제공합니다.
  • 강의와 함께 볼만한 참고 도서로 강의 진행자 중 한명인 Svetlana Isakova가 집필한 <Kotlin in Action>을 추천합니다. 강의 진행자가 집필한 책이어서 강의와 연관되는 내용이 많이 나옵니다. (관련 링크 : Kotlin in Action-YES24 >

2. What is Kotlin? (4m)

  • Kotlin은 함수형 프로그래밍 (functional programming)과 객체지향 프로그래밍 (object-oriented programming)을 동시에 지원하며 Java와 상호운용될 수 있으면서도 Java의 단점을 개선하는 실용적인 언어를 지향합니다. (관련 링크 : 1년동안 Server side를 Kotlin으로 개발하면서 느낀 점 — 여기에 언급되는 장점들은 추후 주차에 걸쳐 모두 설명됩니다.)
  • Kotlin의 디자인 철학 4가지는 1) 간결성 (Concise), 2) 안전성 (Safe), 3) 상호운용성 (Interoperable), 4) 툴 친화성 (Tool-friendly) 입니다. 추후 주차에 공부하는 Kotlin의 모든 기능들은 위 4가지 관점으로 설계되었습니다.

3. History of Kotlin (3m)

  • 프로그래밍 언어 생태계는 라이브러리, 교재와 문헌, 관련 툴, 사용자 그룹 등 다양한 요소에 의해 결정되며 언어를 아예 처음부터 만드는 것은 상당히 어렵습니다. Kotlin은 우선 JVM 생태계에 잘 녹아드는 것을 목표로 Java와의 상호운용성을 중시하여 설계되었으며, 점진적으로 다른 플랫폼 (ex: JS, Native 등)으로 확장해가고 있습니다.
  • Kotlin은 Java와의 상호운용성을 위한 설계, 기능 제공, 어노테이션 지원 등을 통해 Kotlin 코드에서 Java 코드와 라이브러리 재사용이 가능하며, Kotlin의 기능과 문법을 Java에서도 부분적으로 사용할 수 있습니다. 이에 따라 기존 Java 프로젝트에 Kotlin을 도입하는 전환비용이 낮고, 그에 비해 Kotlin을 도입하므로써 얻을 수 있는 이점이 많아 점차 많은 기업들이 Kotlin을 도입하고 있습니다. (관련 링크 : 똑똑, 프로젝트에 코틀린을 도입하려고 합니다. — 우아한 형제들, 레진코믹스가 코틀린으로 간 까닭은?, 카카오 T 택시 기사용 앱 Kotlin 적용기)

4. Developing Koltin (2m)

--

--