분류 전체보기

· Kotlin
서론 변수를 정의할 때 자주 쓰이는 lateinit와 lazy는 모두 늦은 초기화 기법이다. 오늘은 이 둘의 차이점에 대해 정리해보려 한다. 늦은 초기화란? 늦은 초기화란, 말 그대로 객체를 늦게 초기화하는 것을 말한다. String java; //java 선언 var kotlin: String // kotlin 선언 java가 익숙한 사람에게 위 코드는 별 문제가 없어 보이지만, 초기화 없이 선언하면 변수에 기본으로 값이 들어갔던 java와는 다르게 Kotlin에서는 초기화가 필수이기 때문에 위 선언 코드에서 에러가 발생한다. var kotlin: String? = null 따라서 nullable 타입으로 만들고 null로 초기화하면 코드는 정상적으로 동작할 것이다. 하지만, null 사용을 주의하자는..
Hilt란? Hilt는 프로젝트에서 종속성 주입을 보다 간편하게 할 수 있도록 도와주는 Android용 종속성 주입 라이브러리다. 수동 종속성 주입을 수행하려면 모든 클래스와 해당 종속성을 직접 구성하고 컨테이너를 사용하여 종속성을 재사용하고 관리해야 한다. Hilt는 프로젝트의 모든 Android 클래스에 대한 컨테이너를 제공하고 수명 주기를 자동으로 관리함으로써 애플리케이션에서 DI를 사용하는 표준 방법을 제공한다. Hilt는 Dagger가 제공하는 컴파일 시간 정확성, 런타임 성능, 확장성 및 Dagger 라이브러리를 기반으로 구축되었다. 주요 기능 컴파일 타임 의존성 주입 : Hilt는 앱의 컴파일 타임에 의존성을 주입하여 앱의 성능을 향상시킨다. 이를 통해 앱의 크기를 줄이고 앱의 로딩 속도를 ..
· CS 지식
서론 최근 Android 개발을 진행하던 중 함수형 프로그래밍, 리액티브 프로그래밍 등 다양한 용어들을 접하게 되어 프로그래밍 패러다임에 대해 정리해보려 한다. 프로그래밍 패러다임이란? 프로그래밍 패러다임이란 개발자가 프로그래밍을 위해 어떤 관점을 가지고 개발을 할지에 대한 결정에 도움을 줄 수 있는 방법들을 의미한다. 패러다임은 일반적으로 프로그래밍 언어의 사용, 데이터 구조, 알고리즘, 설계 방법 등을 포함 패러다임은 다양한 분야에서 사용되며 각각의 패러다임은 특정한 목적과 문제 해결 방법을 지님 프로그래밍 패러다임은 크게 명령형 프로그래밍과 선언형 프로그래밍으로 나뉨 명령형 프로그래밍(Imperative Programming) 명령형 프로그래밍은 문제를 어떻게 해결할지에 관점을 두고 컴퓨터가 수행할..
서론 요즘 Android 개발자에게 요구하는 기본 stack 중 하나인 의존성 주입에 대해 정리해보려 한다. 의존성 주입에 Dagger, Hilt, Koin 같은 다양한 라이브러리를 활용하는 것으로 알고 있는데, 라이브러리를 사용하기 전에 의존성 주입에 대한 개념부터 차근차근 정리해보려 한다. 의존성 주입이란? 의존성 주입은 객체 지향 프로그래밍(OOP)에서 사용되는 디자인 패턴 중 하나이다. Android에서 의존성 주입(Dependency Injection)을 흔히 DI라고 부르는데, DI는 Class와 Class 간에 관계를 형성할 때 내부에서 생성하는 것이 아닌, 외부에서 주입하여 관계를 만드는 것을 의미한다. 인터페이스화를 통해 객체 변경에 대한 유연성을 증대시키며, 객체를 내부에서 생성하는 것..
서론 이전에 Retrofit에 대한 포스팅을 작성했었는데, Android project의 규모가 커질수록 API를 활용하는 경우가 잦아질 것이다. 인터페이스를 활용하여 API 응답 처리를 개인이 작성할 수도 있지만, Sandwich라는 간편한 라이브러리가 있어 간단하게 정리해보려고 한다. Sanwich 라이브러리란? Kotlin의 Retrofi 네트워크 응답에서 표준화된 인터페이스 생성을 간소화하기 위해 고안된 라이브러리 다중 아키텍처 내에서 기능 연산자를 활용하여 데이터, 오류 및 예외처리를 효율적으로 할 수 있음 Coroutine, Flow 등과 원활하게 통합되어 다양하게 활용 가능 사용법 build.gradle - 라이브러리 등록 dependencies { implementation "com.git..
서론 기존에 Android에서 DB를 활용하기 위해 SQLite를 사용했었다. Kotlin 공부를 하던 중 Room을 활용하면 SQLite를 보다 쉽게 활용할 수 있다고 하여 정리해 보았다. Room이란? Room은 스마트폰 내장(로컬) DB에 데이터를 저장하기 위해 사용되는 라이브러리다. 평소 사용자가 메모 저장, 일정 저장 등 사용자의 데이터를 내장 DB에 저장하는 경우가 있다. 이때, SQLite라는 DB를 이용해 데이터를 저장했는데 이를 효과적으로 사용하기 위해 등장한 것이 Room이다. SQLite의 단점에 대해서 developer에서 아래와 같이 언급했다. Room을 쉽게 설명하자면, SQLite의 뒤를 이을 새로운 DB가 등장한 게 아니라, SQLite를 보다 간단하게 처리할 수 있도록 도와..
서론 실제로 회사 업무, 프로젝트에서 Android 서비스 개발에 빠질 수 없는 API 호출에 대해 정리해보려고 한다. API 호출에는 비동기 통신의 가장 기본인 AsyncTask부터 라이브러리인 Volley, OkHttp, Retrofit2 등 다양한 방법들이 많다. 이 중 요즘 가장 많이 사용되는 Retrofit을 활용하여 API를 호출하고, 해당 데이터를 앱에서 사용하는 방법에 대해서 알아보자❗️ Retrofit2 Retofit2은 Android 애플리케이션에서 서버와 통신하기 위한 HTTP 클라이언트 라이브러리로, Square 사에서 개발하였다. Retrofit2는 RESTful API와 통신하기 위한 간단하고 강력한 도구를 제공하며, 개발자가 API 호출을 쉽게 관리하고 JSON 또는 XML과 ..
· JSON
서론 최근 Android 작업을 하다가, 오랜만에 신규 API 연동 작업을 진행했는데 JSON에 관한 개념이 부족한 것 같아 다시 정리해보려 한다😂 JSON 맨날 쓰는 건데, 구조가 조금만 바뀌어도 헷갈리니 개념부터 차근차근! JSON이란? JSON은 JavaScript Object Notation의 약어로, 데이터를 저장하고 교환하기 위한 경량의 데이터 형식이다. JSON은 텍스트 기반의 데이터 형식으로, 사람이 읽고 쓰기 쉽고, 기계가 파싱하고 생성하기 쉽다. 주로 애플리케이션에서 데이터 교환 형식으로 사용되고, 다양한 언어에서 지원된다. JSON의 주요 특징과 구조 1. key-value JSON은 key와 value의 쌍으로 이루어진 데이터를 표현한다. key와 value는 콜론(:)으로 구분되며..
문제 최근 회사에서 프로젝트를 진행하던 중 문의가 하나 들어왔다. "기존에 웹 브라우저에서 앱으로 연결하던 기능에서 앱 선택 화면이 노출되지 않고 바로 앱으로 연결시키도록 변경할 수 있는지" 위 문의에 대한 답변을 주기 위해 찾던 중 원인은 웹 브라우저에서 앱으로 연결할 때 기존에 사용했던 방식이 스키마 방식이었다는 점이었다. 스킴 방식으로 앱으로 연결할 때 앱 선택기가 나오는 이유는 여러 가지 앱이 같은 스킴을 사용할 수 있기 때문이다. 예를 들면, "openapp://" 라는 스킴을 사용했다면, 같은 스킴을 다른 앱에서 사용한다면 앱 선택기로 둘 중 어떤 앱으로 실행시키는지 묻는 앱 선택기가 노출된다. 스킴 방식이 설정이 간단하지만, 위와 같은 한계가 있기 때문에 앱 링크 방식으로 변경하기로 결정했다..
DataStore를 알아보기 전에 앱에 데이터를 저장하는 방법에 대해 먼저 정리해 보자 ❗ 앱에 데이터를 저장하는 방법은 크게 3가지로 나눌 수 있다. 파일 I/O (내부 또는 외부 저장소) : 접근 권한을 획득하고 파일을 열었다 닫았다 하는 수고가 필요하다는 단점이 있음 관계형 데이터 베이스 : SQLite, Room 등을 이용해 복잡한 관계형 데이터를 저장할 수 있음, 간단한 데이터를 저장할 거라면 구축과 관리에 많은 시간과 노력이 요구됨 SharedPreference : Key/Value 형태로 이용함, 내부적으로는 XML 파일로 저장되고 파일을 열고 닫을 필요 없이 핸들러를 만들어서 간편하게 사용가능기존에 앱의 데이터를 간단하게 저장하는 방법으로, SharedPreference를 자주 사용했다. ..
빡수수
'분류 전체보기' 카테고리의 글 목록 (3 Page)