목록분류 전체보기 (198)
밤빵's 개발일지

코틀린의 use 함수는 파일이나 네트워크 자원처럼 외부 자원을 다룰 때, 자원을 자동으로 해제할 수 있게 돕는 기능이다. 자바에서는 try-with-resources 구문을 통해 자원 해제를 관리하지만, 코틀린에서는 use 함수를 사용해 이를 더 간결하고 직관적으로 처리할 수 있다. 자원을 올바르게 해제하지 않으면 메모리 누수 등의 문제가 발생할 수 있으므로, use 함수를 통해 안전하게 자원을 해제하는 것이 유리하다. ▶ use 함수란?use 함수는 코틀린에서 제공하는 확장 함수로, Closeable 인터페이스를 구현한 객체에서만 사용할 수 있다. 이 함수는 자원을 사용하는 코드 블록을 안전하게 실행하고, 블록이 끝나면 자원을 자동으로 닫아준다. use 함수는 예외가 발생하더라도 자원을 자동으로 닫아주..

코틀린에서는 함수 안에 또 다른 함수를 선언할 수 있는데, 이를 통해 코드 구조를 개선하고 특정 기능을 캡슐화하여 가독성을 높이는 데 도움이 된다. 중첩된 함수는 특정 함수 내에서만 사용되는 보조 기능을 정의할 때 유용하고, 자바와 비교했을 때 더 간결하고 유연한 코드를 작성할 수 있다. 이번 개발일지에서는 코틀린에서 중첩된 함수를 사용하는 방법과 그 장점에 대해 정리해보았다. ▶중첩된 함수(Nested Functions)란?중첩된 함수(Nested Functions)는 함수 내부에 선언된 또 다른 함수를 의미한다. 중첩된 함수는 해당 함수 외부에서 접근할 수 없고, 주로 해당 함수 내에서 반복적으로 사용되는 로직이나 보조 기능을 분리할 때 유용하다. 중첩된 함수를 사용하면 코드의 가독성이 향상되고, ..

코틀린을 공부하면서 by 키워드와 위임 패턴(Delegation)이라는 새로운 개념을 알게 되었다. 위임 패턴은 객체지향 프로그래밍에서 자주 사용되는 디자인 패턴으로, 객체가 특정 기능을 다른 객체에게 위임(Delegation)하는 방식이다. 코틀린에서는 이 패턴을 지원하기 위해 by 키워드를 제공하며, 이를 사용하면 인터페이스 구현을 간결하고 효율적으로 처리할 수 있다. 이번 개발일지에서는 코틀린의 by 키워드를 활용한 위임 방법과 이로 인해 얻을 수 있는 장점을 정리해 보았다. ▶위임 패턴위임 패턴(Delegation Pattern)은 객체가 특정 작업을 수행하기 위해 그 작업을 다른 객체에게 위임하는 디자인 패턴이다. 이 패턴을 사용하면 코드의 재사용성과 유연성이 높아지고, 복잡한 상속 구조를 피할..

자바에서 열거형을 사용해 본 경험이 있었지만, 코틀린에서는 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..