분류 전체보기

이 글을 이해하기 위해서는 의존성 주입에 대한 이해가 필수적이다. 의존성주입에 관해 모른다면 아래 글을 읽고 오도록 하자. 의존성 주입이란 무엇이며 왜 필요한가? 목표 의존성 주입이 무엇인지 이해한다. 의존성 주입이 왜 필요한지 이해한다. 의존성 주입이란? 의존성 주입이란 클래스간 의존성을 클래스 외부에서 주입하는 것을 뜻한다. 더 자세하게는 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 구..
JSON이란 JSON(JavaScript Object Notation) 은 데이터를 키(key)-값(value) 쌍으로 만들어 저장하기 위한 포멧의 일종이다. { "id": 1, "priority": 999 } JSON은 위와 같은 포멧으로 저장되는데 ':'을 기준으로 왼쪽 값이 key가 되며 오른쪽 값이 value가 된다. 즉, 위의 데이터를 해석하면 위 데이터값은 id가 1이고 priority가 999인 데이터라 볼 수 있다. JSON의 구성 JSON은 총 세가지로 구성되어 있다. Key-Value 쌍 JSON Object JSON Array Key-Value 쌍이 무엇인지는 방금 위에서 살펴보았다. JSON Object는 Key-Value 쌍을 여러개 가진 Object이며 JSON Array는 JS..
Dev.Cho
'분류 전체보기' 카테고리의 글 목록 (82 Page)