개발(38)
-
[libs.version.toml] Gradle Version Catalogs를 사용하여 gradle 개선하기
안드로이드 프로젝트 세팅에서 가장 중요한 부분은 아무래도 gradle 관리가 아닐까?gradle 파일은 두가지 언어로 작성할 수 있다. Groovy와 Kotlin 예전엔 전부 Groovy만 써왔으면 이젠 확실히 Kotlin으로 많이 넘어간 추세이다.그러면서 유의미한 변화가 있다. 바로 libs.version.toml의 도입이다. libs.version.toml은 Version Catalogs 기능을 활용하여 의존성을 효율적으로 관리하는 파일이다.Gradle의 Version Catalogs는 Gradle 7.0 이상부터 지원되며, libs.version.toml을 사용하면 의존성 버전과 라이브러리를 한 곳에서 선언하고 관리할 수 있다.📌 libs.version.toml의 역할1. 의존성 버전 관리여러 모..
2025.02.12 -
KMP vs CMP
🌟 들어가기 전지난 번에는 Android와 iOS 모두 개발 가능한 KMP를 알아보았다.그런데 이건 UI를 각각 네이티브에 맞춰 따로 개발해야 하는 이슈 !!! 그럼 내가 SwiftUI를 다시 배워야 하냐구우~?!?!?!?!!! 그래서 그럴 필요가 없는 CMP를 체크 ✅ 🔍 세부 내용KMP (Kotlin Multiplatform)정의: Kotlin을 사용하여 여러 플랫폼(Android, iOS, JVM, JS 등)에서 동작하는 코드를 작성할 수 있도록 하는 기술.주요 특징:공유 코드: 비즈니스 로직, 네트워크, 데이터 레이어 등을 공통 모듈에서 구현 가능.각 플랫폼별 구현 가능: expect/actual 키워드를 사용해 플랫폼별 코드 작성 가능.UI 분리: 각각의 플랫폼에 맞춰 UI 제작CMP (Co..
2025.01.25 -
Kotlin Multiplatform (KMP)
🌟 들어가기 전하이브리드 앱 하면 흔히들 떠올리는 게 RN과 플러터일까?하지만 안드로이드에는 KMP가 있다 ~!! 심지어 KMP로는 android, ios 뿐만 아니라 서버까지 가능하다구!!!!!!그러면 대체 KMP는 무엇이란 말인가. 🔍 세부 내용Kotlin Multiplatform (KMP)Kotlin Multiplatform (KMP)는 JetBrains가 개발한 Kotlin 언어를 기반으로여러 플랫폼(Android, iOS, 웹, 데스크톱 등)에서 공통 코드를 작성하고 재사용 할 수 있도록 지원하는 기능이다.이를 통해 중복된 코드를 줄이고 생산성을 높이면서도 각 플랫폼의 고유한 기능을 활용할 수 있다.코드 공유: 비즈니스 로직, 데이터 처리, API 호출 등 플랫폼 간 중복된 코드를 통합.플랫..
2025.01.24 -
JVM이란?
1. JVM이란?JVM은 자바 프로그램 실행의 핵심 엔진이며, 바이트코드를 기계어로 번역하고 실행한다. (1) 바이트 코드 실행자바 소스 코드(.java)는 컴파일러(javac)에 의해 바이트코드(.class)로 변환된다.JVM은 이 바이트코드를 실행 가능한 기계어로 번역하여 실행한다.플랫폼 독립성을 보장하는 이유가 바로 이 바이트 코드 때문!!(2) 플랫폼 독립성 제공자바 프로그램은 특정 운영체제에 의존하지 않는다.JVM이 설치되어 있다면 어떤 환경에서든 동일하게 실행할 수 있다.(3) 메모리 관리JVM은 프로그램 실행 시 필요한 메모리를 자동으로 관리한다.주요 메모리 영역:Heap: 객체와 인스턴스 변수가 저장됨 (GC에 의해 관리)Stack: 메서드 호출과 지역 변수가 저장됨 (힙보다 빠른 접근)M..
2025.01.23 -
싱글톤(Singleton) 패턴과 Kotlin에서 object 객체
🌟 들어가기 전요즘 메모리 최적화 이슈에 대해 관심이 많다.그렇게 메모리에 대해서 보다가 유독 눈에 띄는 게 있었다. 바로 Kotlin에서 Object 객체 !! 늘 그냥 쓰라니까 써왔던.익숙하지만 낯선. 그 존재에 대해 파헤쳐봤다. 🔍 세부 내용1. 싱글톤 패턴(Singleton Pattern)싱글톤 패턴은 객체의 전역적 유일성을 보장하는 디자인 패턴이다.이를 통해 하나의 인스턴스만 사용하며, 여러 곳에서 동일한 객체를 공유하거나 관리할 수 있다.전역상태 관리: 애플리케이션에서 하나의 상태를 유지하고 여러 곳에서 공유할 때 사용 (ex. 로그인 세션, 앱 설정, DB 연결)자원 절약: 객체가 여러번 생성되지 않도록 보장하여 메모리 사용 절감일관된 상태 유지: 하나의 인스턴스를 통해 상태를 일관되게 ..
2025.01.22 -
완전탐색과 이진탐색
🌟 들어가기 전알고리즘 공부를 하면서 가장 많이 쓰는 탐색 기술!!레벨이 오르면 가장 많이 쓰는게 BFS와 DFS이다.하지만 가장 간단하고 기본적인 탐색 기술은 아무래도 완전탐색이 아닌가 싶다. 기본이 되면서도 가벼운 완전탐색과 이진탐색을 알아보기로 하였다. 🔍 세부 내용완전 탐색모든 경우의 수를 탐색하여 답을 찾는 방식이다.예를 들어 [1,2,3,4,5]의 배열이 있으면 5라는 숫자를 찾으려면 배열을 모두 돌아야만 찾을 수가 있다. 이렇게 모든 배열을 탐색하는 방법도 완전 탐색에 들어간다.완전 탐색은 모든 원소를 순회해야 하므로 O(N)이라는 시간 복잡도를 가지고 있다. 그래서 코딩테스트 문제를 풀 때 완전탐색을 하는 경우에는 시간 초과 이슈가 발생할 수도 있다. 예시)/* 배열에서 특정 숫자 찾기..
2025.01.18