Language/Kotlin (12) 썸네일형 리스트형 [Kotlin] Object를 이용한 싱글톤 패턴(Singleton Pattern) 📝 학습목표 : Object를 활용하여 Singleton Pattern을 구현해보자. Object 코틀린에서 Singleton Pattern을 object로 쉽게 구현할 수 있다. 이 패턴은 어플리케이션 내에서 특정 클래스의 인스턴스가 오직 한번만 생성되는 패턴으로, 여러 곳에서 이 인스턴스에 접근 가능하다. Singleton Pattern 어떤 클래스가 단 하나의 인스턴스만을 가지고 있도록 보장하는 패턴이다. 주로 어플리케이션 내에서 전역적으로 접근 가능한 상태나 동작을 제공하기 위해 사용된다. 주로 로깅, 캐싱, 설정 관리 등의 상태를 관리할 때 유용하다. ✔ 싱글톤 객체를 생성하기 위해 object를 사용하여 CarFactory를 정의한다. ✔ horsePower를 가진 Car 객체를 생성하고 이를.. [Kotlin] 동반 객체(Companion Object) 📝 학습목표 : Companion Object를 활용하여 객체를 생성해보자. Companion Object 코틀린은 자바의 static과 비슷한 역할을 하는 Companion Object(동반 객체)를 제공한다. Companion Object는 클래스 내부에 선언된 특별한 객체이다. 정적인 메서드나 변수를 선언하고 객체를 생성하는 기능을 구현할 수 있다. companion object를 사용하여 동반 객체를 정의하고 그 내부에 create() 메서드를 작성했다. 이 메서드는 새로운 Book 객체를 생성하고 반환한다. 따라서 book 변수는 새로운 Book 인스턴스를 참조하게 된다. Book.Companion.create()를 Book.create()로 생략 가능 프로퍼티 역시 써줄 수 있다. Compan.. [Kotlin] 데이터 클래스(Data Class) 📝 학습목표 : Data Class를 활용하여 객체를 생성해보자. 데이터 클래스(Data Class) 코틀린은 자바와 달리 불필요한 코드를 줄이고 객체를 좀 더 편리하게 만들어주는 기능을 제공하는데 그 중에서도 데이터 클래스(Data Class)는 객체를 생성할 때 많은 번거로움을 줄여주는 도구이다. 데이터 클래스는 주로 데이터를 담는 용도로 사용된다. 클래스를 만들 때 데이터를 명시하기만 하면 toString(), hashCode(), equals(), copy() 등의 메서드를 컴파일러가 자동으로 생성해주는 편리함이 있다. 일반클래스와의 차이를 통해 데이터 클래스가 어떻게 출력되는지 살펴보자. 먼저, 데이터 클래스의 예시코드이다. Ticket 데이터 클래스를 선언하고 객체를 생성하였다. 데이터 클래스.. [Kotlin] 람다식 활용법 📝 학습목표 : 람다식의 기본 구조와 활용 예시를 살펴보자. 람다식이란? 람다식은 코틀린에서 함수를 값처럼 다룰 수 있는 익명함수이다. 메소드의 파라미터로 넘겨주거나 리턴값으로 사용할 수 있다. * 익명함수: 함수처럼 동작하는 이름이 없는 함수 람다식의 기본 구조 람다식은 val lamdaName : Type = { argumentList -> codeBody } 구조이며 항상 마지막 코드가 리턴값이다. 예를 들어, 정수를 입력받아 제곱을 반환하는 함수를 람다식으로 표현해보자 아래 코드는 input Int를 output Int로 return한다. (Int) -> (Int)이기 때문에 namber가 Int라는 타입추론이 가능하다. (Int) -> (Int)를 생략하고 number에 타입을 지정하여 선언해줄.. [Kotlin] Class 사용법(+오버라이딩) 📝 학습목표 : Class의 사용법과 오버라이딩의 조건에 맞게 활용해보자. Class ✔ 가장 기본적인 class 구조이다. ✔ 코틀린은 파일명과 클래스명이 일치하지 않아도 되고 여러 클래스를 한 파일 안에 넣을 수 있다. ✔ property도 정의해줄 수 있다. ✔ 객체를 생성할 때 name을 정의하고 싶다면? → 생성자(constructor)를 이용한다. ✔ 이것이 바로 '기본 생성자'이다. ✔ 오른쪽 코드처럼 constructor은 생략 가능하고 val name = name을 val name: String으로 constructor에 쓸 수 있다. ✔ 디폴트값을 줄 수도 있다. init ✔ 생성자에서 코드블록을 넣기 위해서는 init을 사용한다. init도 주 생성자의 일부기 때문에 생성자와 동시에 .. [Kotlin] Nullable & NonNull 📝 학습목표 : Nullable과 NonNull의 사용법을 알아보자. 코틀린은 자바와 달리 변수를 선언할 때 Nullable과 NonNull로 지정할 수 있는 기능을 제공한다. 코드를 실행하기 전인 컴파일 시점에 null에 대한 여부를 미리 파악할 수 있어 코드의 안정성을 향상시킬 수 있다. 코틀린에서 사용되는 Nullable과 NonNull의 예시 코드를 통해 실제로 어떻게 사용되는지 살펴보자. NonNull 데이터가 null일 수 없는 기본적인 NonNull 타입이다. name은 NonNull이기 때문에 대문자 변환 함수인 toUpperCase()를 바로 사용할 수 있다. (함수를 사용하기 위해서는 null이면 안됨) Nullable 데이터가 null일 수 있는 String 타입 옆에 '?' 물음표.. [Kotlin] 반복문 for & while 📝 학습목표 : 반복문 if와 while의 사용법을 알아보자. for문 ✔ for문은 주어진 컬렉션을 반복할 때 사용됩니다. ✔ in을 이용해서 리스트나 배열 등의 컬렉션에서 요소에 접근하여 반복문을 수행하면 students 안의 원소를 반복하면서 각 학생의 이름을 출력한다. for문의 포함범위 * sum 변수는 각 반복에서 i값을 누적한다. 1. (..): 1부터 10까지 10번 반복 2. step: 특정 간격으로 반복 (1, 3, 5, 7, 9) 3. downTo: 10 ≥ downTo ≥ 1 (10, 9, 8, 7, ・・・ 거꾸로 반복) 4. until: 1 ≤ until < 100 (1~99까지 99번 for문을 돌며 100을 포함하지 않는다.) While문 ✔ while 반복문은 주어진 조건이 .. [Kotlin] Array & List 특징과 사용법 📝 학습목표 : 배열과 리스트의 특징 및 사용법을 알아보자. 배열(Array) ✔ 배열은 정해져 있는 사이즈가 있다. 메모리가 이미 할당되어 나오기 때문에 처음에 크기를 지정해줘야 한다. ✔ 코틀린에서 배열은 arrayOf 함수를 사용하여 초기화할 수 있다. 위 코드에서 array는 정수형 요소를 갖는 배열로 초기화되었다. 배열의 요소는 인덱스를 사용하여 접근할 수 있고 배열은 변경 가능한(mutabale) 구조이기 때문에 배열의 값은 변경할 수 있고 사이즈는 변경할 수 없다. //배열의 값 변경 가능 array[0] = 3 array와 list 둘 다 타입을 통일하지 않아도 된다. 타입도 가능하다. 리스트(List) ✔ 리스트는 배열과 달리 크기를 변경하고 요소를 추가하거나 제거할 수 있다. ✔ 코틀린.. [Kotlin] 조건문 if & when(+Expression과 Statement 차이, Unit) 📝 학습목표 1. if문과 when문을 예시를 통해 이해해보자. 2. Expression(표현식)과 Statement(명령문)의 차이를 알아보자. 3. Unit의 의미를 파악해보자. 조건문⎜if if문은 조건에 따라 여러 가지 상황에서 다른 동작을 수행할 수 있다. ✔ 코틀린에서는 삼항연산자를 쓸 수 없다. ✔ minBy처럼 한 줄의 형태로 작성 가능하다. 조건문⎜when when을 통해 다양한 상황에서 코드를 간결하고 명확하게 작성할 수 있다. ✔ 경우에 따라 다른 메시지를 출력할 수 있다. ✔ 2, 3처럼 복수 처리도 가능하다. ✔ 반환 유형이 Unit인 함수 내에서 when을 사용할 때 else를 생략할 수 있다. 함수가 어떤 값을 반환하지 않아도 되기 때문이다. ✔ 범위에 따라 다른 동작을 실행할.. [Kotlin] 변수와 상수(var, val) 📝 학습목표 : var와 val의 차이를 알아보자. ✔ var(variable, 변수) : var로 선언된 변수는 값을 변경할 수 있다. ✔ val(value, 상수) : val로 선언된 값은 변경할 수 없으며 다른 값으로 재할당할 수 없다. val 재할당을 시도할 경우 var로 바꾸라는 메시지가 뜬다. 값을 변경하지 않는 경우에는 val을 사용하는 것이 좋다. 코드가 더 안전하고 유지보수성을 높일 수 있다. 값이 한 번 초기화되면 그 값이 변경되지 않기 때문에 코드의 동작을 추론하기가 더 쉬워진다. 이전 1 2 다음