전체 글 105

Repository

지난주 금요일부터 5일동안 강의를 듣고 자료를 찾아보고 직접 쳐봐도repository패턴이 이해되지 않아 글을 써서 정리해보기로 했다.인터페이스를 잘 모르니까 코드 동작원리가 전혀 와닿지 않았고 그나마 이해하고 있는 개념도 흔들렸다. repository뿐만 아니라 보다 근본적인 개념도 같이 잡는 걸 목표로 작성을 시작한다.    Repository Pattern데이터를 캡슐화하여 출처에 관계 없이 동일한 인터페이스로 데이터에 접근할 수 있도록 하는 패턴 출처에 관계 없이 내부에서 preference, room 등으로 저장한 cache data와 외부에서 api 등으로 끌어온 response data로 구분한다. ViewModel은 직접 Data에 접근해 데이터를 가져오는 것이 아니라 Repository에..

Retrofit 알려줘

Q. 어떻게 사용해?A.  data-model-데이터클래스data class ImageModel( @SerializedName("meta") val imageMeta: ImageMeta, @SerializedName("documents") val imageDocuments: MutableList) data-remote-인터페이스interface NetWorkInterface { //카카오 이미지 검색결과 받아오는 코루틴 전용 메소드 @Headers("Authorization: 키") @GET("v2/search/image") suspend fun searchImage( @Query("query") query: String ): ImageMode..

object

객체 object클래스를 정의하면서 인스턴스를 생성하는 키워드선언 : object {} 선언식Object declaration싱글톤Singleton패턴. 단일 인스턴스이므로 생성자 사용불가, 상속불가, 인스턴스 추가생성 불가Thread-safe : 멀티 스레드 환경에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램 실행에 문제가 없는 것lazy initialization : Object 키워드가 선언된 클래스는 외부에서 객체가 사용되는 시점에 초기화 표현식익명객체annonymous object. 호출할 때마다 새로운 인스턴스 생성여러 메소드를 오버라이드해야되는 경우 권장되고 하나의 메소드일 경우 람다식이 효율적리스너(object: 클래스() {} 형태로 많..