분류 전체보기

예제 링크 : https://github.com/seyoungcho2/KoinExample 예제 브랜치명 : example/example2 *브랜치 필수 확인 seyoungcho2/KoinExample Koin Usage Example. Contribute to seyoungcho2/KoinExample development by creating an account on GitHub. github.com 같은 Type의 객체 여러개 주입 시 문제점 같은 타입의 객체가 두개이 이상이면 어떤 객체를 주입해야 할지 구분하는데 문제가 생긴다. 예를 들어 아래와 같은 주입을 한다고 해보자 class MainActivity : AppCompatActivity() { override fun onCreate(saved..
이 글을 이해하기 위해서는 의존성 주입에 대한 이해가 필수적이다. 의존성주입에 관해 모른다면 아래 글을 읽고 오도록 하자. 의존성 주입이란 무엇이며 왜 필요한가? 목표 의존성 주입이 무엇인지 이해한다. 의존성 주입이 왜 필요한지 이해한다. 의존성 주입이란? 의존성 주입이란 클래스간 의존성을 클래스 외부에서 주입하는 것을 뜻한다. 더 자세하게는 kotlinworld.com Koin과 의존성 주입의 구성요소 의존성 주입에는 주입할 객체를 저장하는 Container, 주입할 객체가 필요하다. Koin에서는 여기에 하나를 더해 주입할 객체를 모아놓은 모듈을 만들어내었다. 따라서 Network를 위한 객체들은 Network Module에 모아지고, Database를 위한 객체들을 Database Module에 모..
Koin이란 Kotlin으로 DI를 공부하면서 가장 먼저 접하는 라이브러리는 Kotlin DSL로 만들어진 Koin이다. Kotlin DSL로 만들어졌다보니 Kotlin에 익숙한 개발자라면 사용하기 어렵지 않으며, Koin은 Dagger에 비해 구성요소가 복잡하지 않아서 Koin을 배우는 것은 러닝 커브가 낮다고 한다. 하지만 Koin은 리플렉션을 이용해 런타임에 오브젝트 그래프를 그려주다보니(=의존성 주입을 하다보니) 앱 성능이 저하된다는 단점이 있다. 따라서, 큰 규모의 프로젝트에서 Koin을 사용할 경우 Application이 시작될 때 의존성 그래프가 그려지다 보니 화면이 멈춘것처럼 될 수 있다. 따라서 큰 규모의 프로젝트에서는 컴파일 타임에 의존성 그래프를 그려주는 Dagger-Hilt을 이용해..
익숙하지 않은 Groovy언어로 BuildScript를 작성하는 것에 한계를 느껴 언젠가는 Kotlin DSL로 Migration해야 겠다고 생각했는데, 이번에 시간이 생겨 Migration을 진행하였다. Migration을 진행하면서 달라진 문법 구조로 인해 대형 프로젝트에서는 Migration을 진행하기 조금 어려울 수도 있겠다는 생각이 들어 정리를 할 필요성을 느끼게 되어 정리를 하게 되었다. 프로젝트 예제: https://github.com/seyoungcho2/GradleKotlinDSL seyoungcho2/GradleKotlinDSL Contribute to seyoungcho2/GradleKotlinDSL development by creating an account on GitHub. g..
· Network
직렬화와 역직렬화 통신에서는 객체 그 자체를 통신에 사용하기가 어렵다. 때문에 컴퓨터에서는 파일을 다른 컴퓨터로 보내기 전 통신이 가능하면서 나중에 재구성할 수 있는 포맷으로 변환해주어야 한다. 우리는 이러한 과정을 직렬화라고 한다. 이렇게 변환된 포멧의 일종이 바로 JSON이다. 직렬화된 파일은 다시 객체 형태로 변환되어야 하는데 이러한 과정을 바로 역직렬화라고 한다. Moshi란? Moshi란 JSON과 객체 사이의 직렬화와 역직렬화를 쉽고 안전하게 할 수 있도록 돕는 라이브러리이다. Moshi의 특징으로는 리플랙션과 Codegen 방식의 변환을 모두 지원한다는 점이다. 이러한 방식으로 자 이제 Moshi를 이용해 JSON을 어떻게 역직렬화 하는지 살펴보자 Moshi Annotation에 JSON 구..
Dev.Cho
'분류 전체보기' 카테고리의 글 목록 (79 Page)