728x90
728x90
코틀린(Kotlin)은 무엇인가? 코틀린은 자바 플랫폼에서도 돌아가는 새로운 프로그래밍 언어다. 코틀린은 간결하고 실용적이며, 자바 코드와의 상호운용성을 중시한다. 현재 자바를 사용 중인 곳이라면 거의 대부분 코틀린을 활용할 수 있다. 코틀린을 사용하는 대표적인 분야는 서버 개발, 안드로이드 앱 개발 등의 분야에서 사용한다. 코틀린은 기존 자바 라이브러리나 프레임워크와 함께 잘 작동하며, 성능도 자바와 같은 수준이다. 코틀린 맛보기 data class Person(val name: String, val age: Int? = null) // 데이터 클래스, 널이 될 수 있는 타입(Int?)과 파라미터 디폴트 값 fun main(args: Array) { val persons = listOf(Person("..
배열이나 리스트에서 원소를 꺼낼 때 ordinal 메서드로 인덱스를 얻는 코드가 있다. 예를들어 다음과 같이 식물을 간단히 나타낸 다음 클래스를 보자 class Plant { enum LifeCycle { ANIMAL, PERENNIAL, BIENNIAL } final String name; final LifeCycle lifeCycle; Plant(String name, LifeCycle lifeCycle) { this.name = name; this.lifeCycle = lifeCycle; } @Override public String toString() { return name; } }정원에 심은 식물들을 배열 하나로 관리하고, 이들을 생애주기별로 묶어보자. 생애주기별로 총 3개의 집합을 만들고 정..
생각나는대로 일단 작성해본다. (해당 Todo list는 살아있는 todo list이다!) 가지고있는 얇은 책 읽어보기 엘레강트 오브젝트 (객체지향 강경파인 러시아 그녀석의 생각이 궁금하다) 코딩을 지탱하는 기술 (필독서인데 얇아서 빠르게 읽어보자!) 굵은 책 읽기 시작해보기... (고민 끝에, 방학동안 읽을 두 권을 선정했다!) 토비의 스프링 (상) (대체 이 녀석은 언제 읽지...? 입사하고 읽을려나 🥲 하다못해 Lv4 때는 조금씩이라도 읽어보자) 오브젝트 오브젝트 디자인 스타일 가이드 (아래에 두 권을 다 읽는다면 오브젝트 또는 이 책을 읽을 듯 하다! ) **코틀린 인 액션** (제작 근로의 퀄리티를 위해 이것부터!) **모두의 네트워크** (책 제목 자체가 10일만에 완성하는 네트워크이니까 취지..
열거한 값들이 주로 집합으로 사용될 경우, 예전에는 각 상수에 서로 다른 2의 거듭제곱 값을 할당한 정수 열거 패턴을 사용해왔다. public class Text { public static final int STYLE_BOLD = 1
대부분의 열거 타입 상수는 자연스럽게 하나의 정숫값에 대응된다. 그리고 모든 열거 타입은 해당 상수가 그 열거 타입에서 몇 번째 위치인지를 반환하는 ordinal이라는 메서드를 제공한다. 이런 이유로 열거 타입 상수와 연결된 정숫값이 필요하면 ordinal 메서드를 이용하고 싶은 유혹에 빠진다. 다음 코드는 합주단의 종류를 연주자가 1명인 솔로(solo)부터 10명인 디텍트(dectet)까지 정의한 열거 타입이다. public enum Ensemble { SOLO, DUET, TRIO, QUARTET, QUINTET, SEXTET, SEPTET, OCTET, NONET, DECTET; public int numberOfMusicians() { return ordinal() + 1; } } 동작은 하지만 ..
열거 타입은 일정 개수의 상수 값을 정의한 다음, 그 외의 값은 허용하지 않는 타입이다. 자바에서 열거 타입을 지원하기 전에는 정수, 상수를 한 묶음 선언해서 사용하곤 했다. 정수 열거 패턴(int enum pattern) 기법에는 단점이 많다. 타입 안전을 보장할 방법이 없으며 표현력도 좋지 않다. 정수 열거 패턴을 사용한 프로그램은 깨지기 쉽다. 평범한 상수를 나열한 것뿐이라 컴파일하면 그 값이 클라이언트 파일에 그대로 새겨진다. 따라서 상수의 값이 바뀌면 클라이언트도 반드시 다시 컴파일해야 한다. 다시 컴파일하지 않은 클라이언트는 실행이 되더라도 엉뚱하게 동작할 것이다. 정수 상수는 문자열로 출력하기가 다소 까다롭다. 그 값을 출력하거나 디버거로 살펴보면 단지 숫자로만 보여서 별 도움이 안된다. 같..