Kotlin

예제파일 : https://github.com/seyoungcho2/GradleKotlinDSL Gradle with Kotlin DSL Groovy로 빌드 파일을 작성하는 것은 불편하다. 다른 곳에서 선언된 변수에 대해 자동완성이 지원되지 않고 문서 찾기가 어렵다. 실행시점 전까지 오류가 검출되지 않는다. IDE에서 제공하는 리펙터링 기능을 사용할 수 없다. (Intellij 기준 Shift+F6 을 눌러서 리펙토링 불가) 코드 작성이 제약이 약해 빌드 스크립트가 자유 분방해진다. Groovy는 같은 코드를 여러 방식으로 쓰는 것을 허용한다. 대표적 예로 문자열을 쓸 때 ' 를 쓰는 것과 "를 쓰는 것이 모두 허용되는 점이다. 왜 Kotlin DSL로 이전해야 하는가? 코드 자동완성과 참조 오류코드 강..
익숙하지 않은 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..
Dagger2의 IOC Container 구성 앞의 글에서 Dagger2의 3가지 구성요소 Container, Module, Provider에 대해 배웠다. Component : 클래스의 인스턴스를 모아놓는 저장소(Container) 역할. 각 인스턴스들은 Module 단위로 제공된다. Module : Module 단위로 클래스의 인스턴스를 모아놓는 역할 Provider : 클래스의 인스턴스를 제공(Provide)해주는 역할 이제 각 부분이 어떤 역할을 하는지 알았으므로 더욱 상세히 정리해보고자 한다. Dagger2을 이용해 의존성 주입 구현하기 앞의 글에서 다음과 같은 그림을 본 적이 있다. 는 의존성을 약화시키기 위한 인터페이스의 역할에 대해 설명하면서 나온 그림이다. CPU Time을 구하기 위해 ..
목표 ArrayList의 특징을 이해한다. 접근, 검색, 추가, 삭제를 위한 시간 복잡도가 어떻게 도출되는지 이해한다. ArrayList ArrayList는 내부가 배열(Array)형태로 된 List이다. ArrayList는 List인데 연속된 메모리 공간을 차지하는 Array의 형태를 가지고 있다. 따라서 특정원소에 Index를 이용해 접근이 가능하다. ArrayList는 List의 성질인 가변성을 위해서 ArrayList는 과 같이 처음부터 일정량의 메모리 공간을 잡고 들어간다. 만약 같이 List에 인스턴스가 더해져 메모리 공간이 모두 찬다면 다시 해당 메모리 공간보다 더 큰 메모리 공간을 잡아 기존 객체를 복사한 다음 연산을 이어간다. 예를 들면 하나의 메모리 공간만 필요한데 향후 값이 추가될 것..
목표 리스트의 특징을 이해한다. 코틀린에서 리스트가 구현된 방식을 안다. 리스트(List) 리스트(List)란 하나의 변수에 여러 값을 저장하기 위해 불연속적인 메모리 공간을 차지하는 동적(Dynamic)인 자료구조이다. 개요 리스트는 여러 값을 저장하기 위해 메모리의 불연속적인 공간을 차지하고 있다. 불연속적인 공간을 차지하고 있으므로, 다음 값을 넣기 위해서는 비어있는 메모리 공간 어느 곳에나 변수를 넣으면 된다. 해당 주소값을 리스트에 추가 함으로써 리스트에 값 인스턴스의 추가가 완료된다. Kotlin에서 사용하는 List는 두가지 관점에서 나눌 수 있다. 하나는 가변성이고 다른 하나는 자료구조이다. 가변성은 변화 가능(Mutable)한지 아니면, 불가능한지(Immutable)에 대한 성질이며, K..
Dev.Cho
'Kotlin' 태그의 글 목록 (23 Page)