목록Kotlin (46)
밤빵's 개발일지
자바에서 열거형을 사용해 본 경험이 있었지만, 코틀린에서는 sealed class라는 또 다른 개념이 있다는 것을 알게 되었다. 이 두 개념은 모두 고정된(제한된) 범위의 값을 정의하는 데 사용되지만, 각각의 목적과 사용법에는 차이가 있다. ▶sealed class란?sealed class는 계층 구조에서 클래스의 상속을 제한하기 위해 사용된다. sealed class를 상속받는 하위 클래스는 같은 파일 내에서만 정의할 수 있다. 이를 통해 클래스 계층을 제한적으로 관리할 수 있고, 코드의 안정성과 유지보수성을 높일 수 있다. 예를 들어, 특정 상태(State)를 나타내는 sealed class를 사용하면, 예상치 못한 새로운 상태가 추가되는 것을 방지할 수 있다. 이는 코드 작성 시 미리 정의된 상태..
apply, with, run 이 스코프 함수들은 객체에 대한 여러 작업을 간결하게 처리할 수 있도록 도와주고, 가독성을 높여주는 유용한 도구들이다. 처음 배우는 개념이지만, 코드를 보다 읽기 쉽고 효율적으로 작성하기 위해 알아두면 좋을 것 같아, 자세히 기록하기로 했다. ▶스코프 함수란?코틀린의 스코프 함수는 객체에 대한 작업을 간결하고 일관되게 수행하기 위해 제공되는 함수들이다. 스코프 함수들은 객체의 컨텍스트 내에서 블록을 실행할 수 있게 해주고, 객체를 특정 범위 내에서 사용하도록 도와준다. 코틀린에서 자주 사용하는 스코프 함수로는 apply, with, run이 있다. 각각의 스코프 함수는 목적과 반환 값, 그리고 this나 it을 어떻게 사용하느냐에 따라 차이가 있다. ▶applyapply 함..
코틀린을 학습하면서 자바에서 접했던 오버로딩(Overloading)과 오버라이딩(Overriding) 개념을 다시 이해하게 되었다. 이 두 개념은 코틀린에서도 함수와 메서드의 재사용 및 확장성을 높이는 데 매우 중요한 역할을 한다. 이번 개발일지에서는 코틀린에서 오버로딩과 오버라이딩을 어떻게 활용하는지, 그리고 자바와는 어떤 차이가 있는지 알아보았다. ▶함수 오버로딩 (Function Overloading)함수 오버로딩이란 같은 이름을 가진 함수가 매개변수의 타입이나 개수에 따라 다르게 동작하도록 만드는 것을 의미한다. 함수의 이름은 같지만, 서로 다른 매개변수 구성을 가지는 여러 함수를 정의할 수 있다. 이를 통해 동일한 기능을 여러 상황에 맞게 다양하게 처리할 수 있다.fun printMessage(..
타입 안전한 빌더(Type-Safe Builder)는 코틀린에서 HTML DSL이나 Kotlin DSL 같은 구조를 만들 때 유용한 기능이다. 이 패턴을 사용하면 코드의 가독성과 유지보수성이 높아지고, 컴파일 시점에 타입 오류를 감지할 수 있어 안정성을 강화할 수 있다. 타입 안전한 빌더를 통해 직관적이고 안전한 코드를 작성하는 방법을 정리해보았다. ▶타입 안전한 빌더 (Type-Safe Builder) 란?타입 안전한 빌더는 객체를 구성하거나 계층 구조를 생성할 때 타입 오류를 방지하기 위해 사용되는 패턴이다. 일반적인 빌더 패턴과 유사하지만, 빌더 과정에서 타입 안정성을 보장하여 잘못된 타입을 사용하지 못하도록 한다. 이를 통해 컴파일 시점에서 오류를 미리 발견할 수 있어 코드의 안정성을 높일 수 있..
중위 함수(Infix Function)는 코틀린에서 코드의 가독성을 높여주는 기능으로, 함수 호출을 더 간결하고 직관적으로 작성할 수 있게 해준다. 이 기능을 통해 일반적인 함수 호출보다 코드가 더 쉽게 읽히고 이해될 수 있다. ▶중위 함수란?중위 함수(Infix Function)란 두 객체 사이에서 마치 연산자처럼 사용할 수 있는 함수이다. 일반적인 함수 호출에서 사용하는 점(.) 연산자와 괄호를 생략하고 함수명을 객체와 객체 사이에 배치하여 호출할 수 있다. 이로 인해 함수 호출이 자연어처럼 읽히는 형태로 변환되어 가독성을 높이는 효과가 있다. ▶중위 함수 선언 방법중위 함수는 다음 세 가지 조건을 만족해야 한다.멤버 함수이거나 확장 함수여야 한다.매개변수가 하나만 있어야 한다.infix 키워드를 사..
코틀린은 함수 작성 방식이 자바와는 다른 점이 많다. 그 중 하나가 단일 표현식 함수(Single-Expression Function)로, 단일 표현식 함수는 함수의 본문을 단 한 줄로 간결하게 작성할 수 있어 코드의 가독성을 높이고, 중복을 줄일 수 있는 코틀린의 중요한 기능이다. ▶단일 표현식 함수란?단일 표현식 함수는 이름 그대로 함수의 본문이 하나의 표현식(expression)으로 구성된 함수를 말한다. 코틀린에서는 return 키워드를 생략하고 등호(=)를 사용하여 바로 반환 값을 지정할 수 있다. 이를 통해 함수의 길이가 짧아지고, 불필요한 코드를 줄일 수 있다. ▶단일 표현식 함수 작성법기본적인 함수는 블록({})을 사용하여 작성되지만, 단일 표현식 함수는 다음과 같은 형태로 작성할 수 있다..
코틀린을 학습하는 과정에서 문자열을 다루는 다양한 방법을 접하게 되었다. 그중에서도 문자열을 분리하거나(split, substring) 합치는(joinToString) 함수들은 매우 유용하게 사용되는 기능들이다. 오늘은 코틀린에서 제공하는 문자열 조작 함수들의 사용법을 학습하고, 예시를 만들어서 이해하려고 했다. 이러한 함수들은 실무에서 데이터 처리와 변환 작업을 더욱 효율적으로 수행할 수 있게 도와준다. ▶문자열 자르기: split 함수split 함수는 문자열을 특정 구분자를 기준으로 나누어 리스트 형태로 반환하는 함수이다. 예를 들어, 문장에서 단어를 분리하거나 특정 구분자를 기준으로 여러 값을 나누어 처리할 때 유용하다. ▷사용법val sentence = "Kotlin is a fun languag..
타입 별칭(Type Alias) 은 긴 타입이나 복잡한 타입을 간결하게 표현하기 위해 코틀린에서 제공하는 기능이다. 예를 들어, 특정 타입을 간결하게 정의하고, 이후에 해당 별칭을 사용하여 가독성 높은 코드를 작성할 수 있게 한다. ▶타입 별칭(Type Alias) 이란?타입 별칭(Type Alias)은 복잡하거나 긴 타입을 간결하게 표현하기 위해 새로운 이름을 부여하는 기능이다. 주로 함수 타입, 제네릭 타입, 중첩된 타입 등을 간결하게 표현할 때 유용하다. 별칭을 사용함으로써 코드를 좀 더 읽기 쉽고 유지보수하기 쉽게 만들 수 있다. 타입 별칭을 선언하는 방법은 typealias 키워드를 사용한다.typealias MyString = String→ String 타입에 MyString이라는 별칭을 부여..
코틀린은 기본적인 산술 연산자뿐만 아니라 비트 연산자도 자주 사용된다. 비트 연산자는 주로 성능 최적화나 하드웨어 제어, 데이터 처리에서 중요한 역할을 한다. 특히 코틀린에서는 비트 연산이 간단하게 표현되며, 코드를 통해 비트 수준에서 데이터를 다룰 수 있다. ▶비트 연산이란?비트 연산은 데이터의 각 비트 단위로 수행되는 연산이다. 숫자를 이진수로 변환한 후, 각 비트 간에 논리적인 연산을 수행하는 것이다. 비트 연산은 보통 숫자를 빠르게 처리하거나, 하드웨어 제어 및 최적화를 위해 사용된다. 특히, 비트 연산은 낮은 레벨의 데이터를 다루는 작업에 매우 유용하다. 코틀린에서 제공하는 주요 비트 연산자는 다음과 같다:and: 두 비트가 모두 1일 때만 1을 반환한다.or: 두 비트 중 하나라도 1이면 1을..
코틀린에서 변수를 선언할 때 불변성을 보장하는 두 가지 방식이 있다. const 와 val. 이 두 방식은 변수의 값을 한 번 설정한 후 변경할 수 없다는 공통점을 가지고 있지만, 그 동작 시점과 사용 방식에는 큰 차이가 있다. ▶val의 특징val은 런타임에서 한 번 값이 할당된 후 변경할 수 없는 런타임 상수를 의미한다. val로 선언된 변수는 프로그램이 실행된 이후 값이 결정되며, 그 이후에는 값을 변경할 수 없다. 이는 자바의 final 변수와 비슷한 개념이다.하지만 중요한 점은 val은 런타임에 값을 할당할 수 있다는 점이다. 예를 들어 함수 호출 결과나 외부 데이터베이스에서 값을 가져와 val 변수에 할당하는 것이 가능하다. 프로그램 실행 중에 동적으로 값이 할당될 수 있다. ▷예시: valv..