🔖 Kotlin
-
👾 MockK와 Mockito🔖 Kotlin 2025. 1. 9. 17:16
📌 Mockito@Testfun `mockito 테스트 예제`() { // given val username = "beomsic" val user = User(username) given(userRepository.save(any())).willReturn(user) // when userService.save(user) // then then(userRepository).should().save(any())}Mockito를 사용하면 BDDMockito를 통해서 BDD 형태로 작성할 수 있다.when은 given으로 verify는 then으로 사용 📌 MockK코틀린에서 테스트 시 Mock 객체를 생성하는 것을 도와주는 라이브러리@Testfun `mockk ..
-
😎 Infix Function🔖 Kotlin 2024. 12. 30. 15:43
🤔 Infix Function코틀린은 가독성 좋은 코드를 위한 언어로 이를 통해 코드를 더 쉽게 유지 관리할 수 있다.infix 표기법도 이런 기능 중 하나이다.💡Infix 표기법코틀린은 마침표와 괄호를 사용하지 않고도 일부 함수를 호출할 수 있게 해주며 이를 Infix 메서드라고 한다. 🎯 Infix Function의 목표 가독성 향상 Infix 함수는 코드를 자연어처럼 보이게 해 가독성을 향상 도메인별 언어(DSL)이나 사람이 읽을 수 있는 형식으로 작업을 표현할때 유용보일러 플레이트 줄이기Infix 표기법을 사용해 보일러 플레이트 코드의 양을 줄일 수 있다. 📌 Standard library infix function to()Pair 인스턴스 생성and(), or(), xor()두 피연..
-
널 안정성🔖 Kotlin 2024. 12. 29. 22:09
🤔 Kotlin에서 Null 안정성을 보장하는 이유Java의 NPE(null pointer exception) 문제자바는 모든 객체가 기본적으로 null을 허용해, 개발자가 별도로 null 체크를 해주어야 한다.따라서 NPE이 발생하는 코드가 흔하며 이는 자바 개발자가 가장 많이 마주치는 오류중 하나이다.이를 방지하기 위해 많은 양의 보일러플레이트 코드(명시적 null 체크)가 필요Kotlin 설계 철학코틀린은 안전하고 간결한 코드 작성을 목표로 설계null 안정성을 언어차원에서 지원해 개발자의 실수를 방지하고 코드의 신뢰성을 높인다.개발자가 명시적으로 null 가능성을 처리해 런타임 오류를 최소화생산성과 가독성 향상null 체크를 자동화하고 코드 가독성을 높임으로써 개발 생산성 향상명시적인 nulla..
-
🦥 lateinit 과 lazy🔖 Kotlin 2024. 12. 29. 15:33
💡 지연초기화초기화를 미뤘다 실제 사용하는 시점에 초기화하는 기법초기화 과정에서 자원을 많이 사용하거나 오버헤드가 발생하는 경우 지연초기화를 사용하는 것이 유리❗ 코틀린에서는 두 가지의 다른 방식의 지연초기화를 제공lateinit, lazy변수를 초기화하는 시점을 제어해 성능 최적화와 코드 가독성을 높인다. 📌 lazyclass HelloBot { var greeting: String? = null fun sayHello() = println(greeting)}fun getHello() = "안녕하세요"fun main() { val helloBot = HelloBot() helloBot.greeting = getHello() helloBot.sayHello()} ⚠️ 위 코..
-
Kotlin Coroutines🔖 Kotlin 2024. 12. 28. 00:44
🤔 Kotlin CoroutinesCoroutine 이란?co(함께) + routine (특정 일을 수행하는 명령의 모음)코틀린에서 제공하는 기능으로 비동기 작업을 효율적으로 처리하기 위해 설계된 경량화된 동시성 처리 방식📍 특징suspend(중단)와 resume(재개)가 가능비 선점형 멀티태스킹 (Non-preemptive multitasking)협력형 멀티태스킹 (Cooperative multitasking) ❗ 왜 코루틴을 사용해야 할까요?📖 비동기 처리네트워크 요청, DB 작업, 파일 I/O 처럼 오랜 시간이 걸리는 작업을 비동기로 처리하는 것이 중요코루틴은 Kotlin 에서 동시성을 간단하게 처리할 수 있는 기능 중 하나.비동기 코드를 동기적으로 작성하는 것처럼 보이게해 코드의 가독성을 높..
-
Unit / Nothing🔖 Kotlin 2024. 11. 25. 12:20
🎯 목표코틀린에는 return 하지 않아도 되는 반환 유형이 Unit 과 Nothing 두 가지가 존재한다.이 두 가지의 차이점을 알아보고 언제 어떤 반환 유형을 사용해야 할지 공부해보려고 한다.1️⃣ UnitKotlin 에서 반환 유형을 지정하지 않은 경우 기본적으로 반환 유형이 Unit이 된다.Java의 void와 비슷하지만, Kotlin에서는 Unit도 실제로 객체로 존재 특징Unit은 타입이면서 싱글톤 인스턴스로 매번 객체를 생성하지 않는다.함수의 반환값이 없더라도 Unit을 명시적으로 반환할 수 있다.기본적으로 반환값이 없는 함수는 Unit을 암시적으로 반환fun printMessage(message: String): Unit { println(message)}// 아래는 동일fun pr..
-
Gradle Kotlin DSL🔖 Kotlin 2024. 11. 21. 12:47
🔨 빌드 도구빌드 도구는 소스 코드를 실행 가능한 애플리케이션으로 자동으로 만드는 프로그램.빌드는 소스 코드를 컴파일, 연결 및 사용 가능하거나 실행 가능한 형태로 패키징(가공)한다.빌드 자동화의존성 라이브러리 다운소스 코드를 바이너리 코드로 컴파일테스트 실행바이너리 코드 패키징운영 시스템 배포 🚗 빌드 자동화 툴 개발자가 빌드해야 할 코드, 종속성, 순서 등을 직접 추적해서 빌드하고 테스트, 배포하는 작업은 실용적이지 않기 때문에 빌드 자동화 도구를 이용해서 반복적인 작업을 자동화하여 개발 효율성을 높이고 오류 발생 가능성을 줄이며, 일관되게 빌드 프로세스가 진행되도록 한다.Java 에서 사용되고 있는 빌드 도구로는 Maven, Gradle 등이 존재한다. 💡 Gradle Kotlin DSLGro..