안드로이드 프로젝트를 하면서 API 통신이 필요할 때 일반적으로 Retrofit 라이브러리를 사용하는데, 그 이유는 Retrofit의 응답 속도가 빠르고 구현 방법이 간단하기 때문이다. 이번 포스팅에서는 이렇게 많이 사용되는 Retrofit의 장점과 사용법에 대해 알아보려고 한다. Retrofit2 특징 Retrofit2는 Square사에서 만든 네트워킹 라이브러리로, 오래 전에 Retrofit이라는 라이브러리를 출시한 뒤 기존 라이브러리의 문제점을 개선해 현재의 Retrofit2가 만들어졌다. Retrofit2는 Retrofit의 업그레이드 된 버전이기 때문에 일반적으로 1과 2를 구분짓지 않고 Retrofit이라고 통용된다. 그렇기 때문에 포스팅 중에 Retrofit이라고 하는 것은 모두 Retrof..
이전 2개의 포스팅에서 Covariance/Contravariance와 PECS 원칙에 대해 다루었다. 이번 포스팅에서는 마지막으로 Java와 Kotlin의 Covariance의 차이를 알아보려고 한다. 그러기 위해 먼저 Kotlin의 Collection과 MutableCollection을 알아보자. Kotlin에서는 List, Set, Map과 같이 앞에 “Mutable”로 시작하지 않는 Collection은 immutable하다. 즉, read-only라는 의미이다. 그렇기 때문에 각 인터페이스를 확인해 보면 immutable 자료형은 제네릭 타입 파라미터에 out 키워드가 붙어있는 것을 확인할 수 있다. public interface Collection : Iterable public interfa..
이전 포스팅에서 Covariance와 Contravariance에 대해 알아보았다. 이 포스팅을 읽기 전에 [Kotlin] Covariance & Contravariance을 먼저 보고 오면 이 글을 이해하는 데 도움이 될 것이다. 이번에는 이전 포스팅에서 언급했던 PECS 원칙과 read-only & write-only 제한에 대해 자세히 알아보자. 여기서 가장 중요한 부분은 자식 객체는 부모 객체로 바로 대입(치환, 변환)할 수 있지만, 부모 객체는 자식 객체로 바로 대입(치환, 변환)할 수 없다는 것이다. 바로 대입한다의 의미는 다음과 같다. Child 클래스란 Parent 클래스에서 더 나아가 구체화 되었다고 볼 수 있다. 그렇기 때문에 Parent 클래스에 있는 변수나 메서드는 Child 클래스..
Generic하면 빠질 수 없는게 Covariance와 Contravariance의 개념이다. 처음 이 개념을 Java의 Generic을 공부하면서 접했었는데, 그 때는 분명 다 이해했다고 생각하고 넘어갔지만 Kotlin을 공부하면서 다시 보니 헷갈리기 시작했다. 그래서 앞으로 몇 개의 포스팅에 걸쳐서 Covariance와 Contravariance의 개념에 대해 다시 공부해서 이해한 내용을 정리해 보려고 한다. Covariance는 간단하게 “a more derived type”이라고 표현하고, Contravariance는 “a less derived type”이라고 표현할 수 있다. more derived type이란, Parent Class와 Child Class가 있을 때 Child Class를 ..
Kotlin에서 지원하는 기능 중에서 Kotlin 코드에서 XML 인스턴스로 바로 접근이 가능하도록 도와주는 Android Extension이라는 기능이 있다. XML 인스턴스를 Kotlin으로 가져와서 사용할 수 있도록 만든 프로퍼티를 합성 프로퍼티(Synthetic Property)라고 한다. 이 프로퍼티는 클래스 내에 뷰 ID 이름으로 생성된다. 예를 들어 xml 코드에서 아래와 같은 Button을 하나 정의했다고 가정하자. 이 Button은 Android Extension에 의해 Kotlin의 합성 프로퍼티가 만들어진다. 이 프로퍼티는 아래 예제 코드처럼 Button의 id인 ‘btn_save’를 통해 접근할 수 있다. override fun onCreate(savedInstanceState: B..
Kotlin 표준 라이브러리는 다양하고 편리한 기능으로 함수형 프로그래밍을 쉽게 적용할 수 있도록 도와준다. 그 중에서 apply, with, also, let, run가 있는데 이는 서로 비슷하면서 다르기 때문에 적절한 상황에 잘 사용해야 한다. 어떤 상황에서 어느 함수를 사용하면 좋은지 구분하기 위해 정리를 해 보았다. 먼저, 아래와 같이 Kotlin의 함수를 구분하는 유명한 표가 있다. 처음 위의 표를 봤을 때는 이해가 잘 되지 않았지만 아래 5가지 함수의 정의를 보고 의미를 이해할 수 있었다. // with - 호출 시 수신 객체 T가 parameter로 명시적 전달 // 코드 블럭으로 수신 객체 T가 receiver로 암시적 전달 & 코드 수행 결과 반환 inline fun with(receiv..
- Total
- Today
- Yesterday
- 위험권한
- MSSQL
- SQLiteOpenHelper
- SQL
- pecs
- RecyclerView
- 프로그래머스
- AsyncListDiffer
- 알고리즘
- kotlin
- SQL Server
- 부스트코스
- RuntimeException
- 안드로이드
- Android
- personal access token
- 파이썬
- python3
- Algorithm
- Python
- covariance
- ViewHolder
- AndroidStudio
- DiffUtil
- Java
- GitHub
- SOCKET
- SQLD
- 내용제공자
- gson
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |