본문 바로가기

전체 글

(67)
공식 문서로 배우는 코틀린 - 8. Basic Types - Strings 여덟 번째, 문자열입니다. Kotlin에서 문자열은 String 타입으로 표현합니다. JVM에서 UTF-16으로 인코딩된 문자열을 담고 있는 String 객체는 글자당 대략 2 바이트를 사용합니다. 일반적으로 문자열은 큰따옴표로 묶은 (0개 이상의) 문자의 연속체입니다. val str = "abcd 123" 문자열의 요소들은 인덱스 연산자로 s[i] 식으로 접근할 수 있는 문자들입니다. 이 문자들은 다음과 같이 for 반복문으로 열거할 수 있습니다. fun main() { val str = "abcd" for (c in str) { println(c) } } /* 결과 a b c d */ 문자열은 불변입니다. 문자열을 한 번 초기화하면 값을 변경하거나 새로운 값을 할당할 수 없습니다. 문자열을 변경화는 ..
공식 문서로 배우는 Kotlin - 7. Basic Types - Characters 일곱 번째, 문자입니다. 문자는 Char 타입으로 나타냅니다. 문자 타입은 말 그대로 하나의 문자를 나타내며, 문자 리터럴은 '1' 같이 작은 따옴표로 묶습니다. JVM에서 문자는 16비트 유니코드로 표현되는 char 원시 타입에 저장됩니다. 특수 문자는 이스케이프 시키는 역슬래시로 시작합니다. 다음과 같은 특수 문자를 위한 이스케이스 시퀀스를 지원합니다. \t - 탭 \b - 백스페이스 \n - 새로운 줄(new line. LF) \r - 캐리지 리턴 (CR) \' - 작은 따옴표 \" - 큰 따옴표 \\ - 역슬래시 \$ - 달러 기호 이 외에 다른 문자를 인코딩하기 위해서는, ' \uFF00' 같은 유니코드 이스케이스 시퀀스 형태를 사용합니다. fun main() { val aChar: Char =..
공식 문서로 배우는 Kotlin - 6. Basic Types - Booleans 여섯 번째, 이러한 동작은 효율성을 위해 어떻게 보면 당연한 얘기이고 많은 프로그래밍 언어들이 이렇게 동작합니다만, Kotlin이 이렇게 동작한다는 것을 꼭 기억해 둬야 합니다. 프로그래밍 언어를 이해할 때 정확한 동작 방식을 이해하고 있어야 코딩할 때 정확하고 효율적인 코드를 작성할 수 있습니다. JVM에서 널 가능한 Boolean은 숫자 타입들과 마찬가지로 래퍼 클래스(java.lang.Boolean) 객체로 박스화(box)됩니다. 타입입니다. Boolean 타입은 true와 false 둘 중 하나의 진리값을 갖는 객체를 나타냅니다. 널 가능한 형태는 Boolean? 입니다. JVM에서 Boolean 타입은 전형적으로 8bit를 사용하는 boolean 원시 타입에 저장됩니다. 불리언 타입에 대한 내장..
공식 문서로 배우는 Kotlin - 5. Basic Types - Unsigned integer types 다섯 번째, 부호 없는 정수 타입입니다. 정수 타입에 더하여, Kotlin은 부호 없는 정수를 위한 타입을 다음과 같이 제공합니다. 타입 사이즈(bits) 최솟값 최댓값 UByte 8 0 255 UShort 16 0 65,535 UInt 32 0 4,294,967,295 (2^32 - 1) ULong 64 0 18,446,744,073,709,551,615 (2^64 - 1) 부호 없는 정수 타입들은 그에 대응하는 부호 있는 타입들이 제공하는 연산들 대부분을 지원합니다. 부호 없는 정수 타입은 해당 타입에 대응하는 같은 길이의 부호 있는 타입을 단일 저장 프로퍼티로 갖는 인라인 클래스로 구현됩니다. 부호 없는 타입과 부호 있는 타입 상호 간에 변환해야 한다면, (두 타입은 서로 다르므로) 모든 함수 호출..
공식 문서로 배우는 Kotlin - 4. Basic Types - Numbers 네번째는 Concepts 부분으로 넘어와서 기본 타입 - 숫자입니다. Kotlin에서는 어떤 변수든 멤버 함수와 프로퍼티를 호출할 수 있다는 면에서 모든 것이 객체입니다. 특정 타입들은 실행시에 내부적으로 원시 타입(숫자, 문자, 불리언 등)으로 최적화 되기는 하지만, 외형이난 사용면에서는 일반적인 클래스와 같습니다. 자연스러운 개념일 수도 있으나 언어 차원에서 원시 타입이 없이 모든 것을 객체로 본다는 개념은 기억하는 것이 좋습니다. 이 개념을 기본적으로 염두에 두고 있으면 추후 동반 객체 등을 이해할 때 도움이 됩니다. 꼭, 기억해 두시기 바랍니다. 타입(type) vs 형(形) 타입과 형(形) 모두 같은 말이지만, OOP에서 객체의 유형을 얘기할 때 보통 형보다는 타입이라는 말을 많이 쓰고, Kot..
공식 문서로 배우는 Kotlin - 3. Basics - Coding conventions 세번째, 코딩 규칙입니다. 프로그래밍을 할 때 일관되고 쉬운 코딩 규칙을 따르는 것은 여러모로 중요합니다. 예전에는 같이 협업하는 개발자들끼리 서로 상의하여 정해 놓고 쓰기도 했지만, (대표적으로 Python의 PEP-8처럼) 요즘 언어들은 코딩 규칙을 공식 문서에서 제공하기 때문에 비교적 쉽게 공통적인 코딩 규칙을 따를 수 있습니다. 코딩 규칙을 따르게 되면 일관된 규칙으로 가독성을 높이고 인적 실수를 줄일 수 있기 때문에 특정 언어를 처음 배우는 경우라면 반드시 코딩 규칙을 (적어도 한 번 이상) 읽어 보는 것이 좋습니다. 소스 코드 구성(organization) 디렉토리 구조 순수한 Kotlin 프로젝트에서 권고되는 디렉토리 구조는 공통 루트 패키지를 생략한 패키지 구조를 따르는 것입니다. 예를 들..
공식 문서로 배우는 Kotlin - 2. Basics - Idioms 두번째, Idioms입니다. Kotlin에서 자주 사용되는 관용어구 모음입니다. 코틀린 코딩 패턴이라고도 볼 수 있는 내용입니다. 일반적으로, 따라주시면 좋습니다. 공식 문서 내용에는 좋은 idiom이 있는 경우 PR(Pull Request)을 달라고 적혀 있기도 합니다. 이 부분은 이런 경우 이런 식으로 쓴다는 관용적 표현을 설명하고 있기 때문에 문법에 대한 상세 설명은 나오지 않는 편입니다. 언어가 지향하는 관용적 표현(패턴)을 습득하는 것은 해당 언어에 빠르게 익숙해지는 한 방법이라고 할 수 있습니다. 그러므로, 이 부분에서는 상세 내용보다는 패턴에 초점을 맞추어서 보시면 될 거 같습니다. DTO (POJOs/POCOs) 만들기 data class Customer(val name: String, v..
공식 문서로 배우는 Kotlin - 1. Basics - Basic syntax Kotlin을 공식 문서를 통해 배우는 글 연재를 시작합니다. 공식 문서의 Basics와 Concepts 부분을 다루려고 합니다. 기본적으로 공식 문서의 내용과 순서대로 1대 1 번역 수준으로 진행되며, 필요에 따라 내용이 첨삭될 예정입니다. Basics와 Concepts 부분은 Kotlin의 기본 내용이기도 하고, JVM하에서 Kotlin을 사용하는 경우라면 필수로 읽어 봐야 하는 내용이기도 합니다. Kotlin 기본 문서는 묵시적이지만 어느 정도 Java와 프로그래밍에 익숙한 사람이 보는 것을 전제 하는 듯 합니다. 그래서, 처음 프로그래밍을 시작하는 분들에게는 적합하지 않습니다. 이 연재도 공식 문서를 1대 1 번역하는 식으로 진행되기 때문에 프로그래밍을 시작하시는 분들에게는 적합하지 않을 수 있습..