프로그래밍 언어(21)
-
[Android] Java에서 UTC와 TimeZone 완전 정복하기
1. UTC 기준으로 저장된 문자열 → Date 객체로 파싱String utcString = "2025-03-31 01:10:30";// 1. SimpleDateFormat 설정 (UTC 기준)SimpleDateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));// 2. 문자열 → Date 객체Date parsedDate = null;try { parsedDate = utcFormat.parse(utcString);} catch (ParseException e) { e.printStackTrace();} ..
2025.03.31 -
Kotlin에서 == vs === 차이
주말마다 진행하는 프로그래머스 스터디에서는 다양한 언어가 공존한다.Kotlin, C#, Swift, JavaScript.여기서 JavaScript 소스코드를 보는데 “===” 연산자가 나왔다.Kotlin에도 해당 연산자가 있는지 찾아보았다. 1. == (Structural Equality - 구조적 동등성)두 객체의 값이 같은지 확인할 때 사용한다.내부적으로 equals() 함수를 호출한다.즉, 내용만 같으면 true가 나온다.예제data class Person(val name: String)fun main() { val person1 = Person("개발새발") val person2 = Person("개발새발") println(person1 == person2) // ✅ true ..
2025.03.18 -
Kotlin에서 유용한 고차 함수 정리
나는 C언어, Java로 코딩을 처음 배워서 그런가 함수형 언어에는 익숙해지지 않는다.Kotlin의 최대 장점인 고차 함수도 제대로 활용하지 못해 코딩테스트 공부를 할 때 애를 많이 먹었다.그래서 유용한 고차 함수들을 정리해봤다.1. map - 리스트 변환할 때 사용❌ Java 스타일List names = new ArrayList();for (User user : users) { names.add(user.getName());}✅ Kotlin 스타일 (고차 함수 사용)val names = users.map { it.name }2. filter - 특정 조건의 요소만 선택❌ Java 스타일List adults = new ArrayList();for (User user : users) { if (..
2025.02.27 -
Kotlin 코딩테스트의 Kick! 우선순위큐 (Priority Queue)
알고리즘 공부를 하면서 은근 자주 쓰게 되는 기능. 우선순위 큐 ~!어떤 것일까?우선순위 큐 (Priority Queue)우선순위가 높은 요소부터 꺼내는 자료 구조기본적으로 힙(Heap) 구조를 사용하여 내부적으로 요소들을 정렬✅ 특징자동 정렬요소를 add()하면 우선순위가 높은 순서로 정렬됨.하지만 poll()을 호출할 때까지 정렬된 상태는 아니며, 꺼낼 때 우선순위에 따라 자동으로 정렬됨.우선순위 기반우선순위가 높은 요소를 먼저 처리하며, 기본적으로 최소 힙(Min-Heap)을 사용.즉, 가장 작은 값을 우선적으로 꺼냄.최대 힙(Max-Heap)을 사용하려면 Comparator를 설정해야함삽입 시간add() 또는 offer()는 O(log n) 시간 복잡도꺼내는 시간poll()은 O(log n) 시간..
2025.02.15 -
Kotlin inline 함수, 진짜 성능 최적화에 도움이 될까?
나는 Kotlin에서 함수를 만들 때 inline 함수를 자주 쓰는가?솔직히 말하면 그냥 일반 함수로도 충분한데 굳이 사용할 필요성을 느끼지 못했다. 그런데 inline 함수가 성능 최적화에 도움이 된다는 말을 들었다.사실일까?1. inline 함수란?inline 키워드는 고차 함수(high-order function)를 사용할 때 함수 호출을 제거하고,함수 본문을 직접 호출 위치에 삽입하는 기능이다. 즉, 컴파일러가 해당 함수를 호출하는 대신 코드를 직접 복사하셔 삽입(inlining)한다.일반 함수와 inline 함수를 비교한 예제를 확인해보자 ! 일반 함수 vs inline 함수 예제fun executeLambda(lambda: () -> Unit) { println("Before lambda..
2025.02.07 -
Kotlin 상태 관리 | Sealed Class vs Enum Class 차이점
개발을 하나보면 상태 관리가 중요하다.그럴 때 자주 등장하는 Sealed Class와 Enum Class.이 두개의 차이점에 대해 확인해보자. 1. Sealed Class vs Enum Class 차이점!✅ 언제 사용하면 좋을까?sealed class → 상태 관리, API 응답 처리, 다양한 타입을 표현할 때// Sealed Class 사용 예시sealed class NetworkResult { data class Success(val data: String) : NetworkResult() data class Error(val message: String) : NetworkResult() object Loading : NetworkResult()} enum class → 변하지 않는 ..
2025.02.06