분류 전체보기

    2. Dagger로 DI 적용하기

    "hello world" 의존성 주입하기 (@Module, @Provides, @Componet) Hello world 문자열을 제공할 모듈 만들기 @Module은 의존성을 제공하는 클래스에 붙이고, @Provides는 의존성을 제공하는 메서드에 붙인다. Dagger는 컴파일타임에 @Module과 @Provides 어노테이션을 읽고 의존성 주입에 필요한 파일들을 생성한다. @Module class MyModule { @Provides fun provideHelloWorld: String{ return "Hello World" } } Hello world 문자열 제공받을 컴포넌트 만들기 @Componet는 참조된 모든 의존성을 제공받을 인터페이스에 붙인다. 이때 인터페이스 내에는 제공할 의존성들을 메서드로..

    1. Android에서 수동으로 DI 적용하기

    안드로이드 앱 아키텍처에 따라 수동으로 의존성 주입하기 Android 앱의 로그인 흐름을 다룰 때 LoginActivity는 LoginViewModel에 종속되고 LoginViewModel은 UserRepository에 종속됩니다. 그러면 UserRepository는 UserLocalDataSource와 UserRemoteDataSource에 종속되고 UserLocalDataSource와 UserRemoteDataSource는 Retrofit 서비스에 종속됩니다. 따라서 다음과 같이 구현해야 합니다. Repository.kt class UserRepository( private val localDataSource: UserLocalDataSource, private val remoteDataSource:..

    의존성 주입 (목차)

    의존성주입은 일반적인 프로그래밍 영역에서 널리 알려진 기술이고 안드로이드 개발에도 잘 적용이 되는 기술입니다. 이 의존성 주입 원칙을 따르면 훌륭한 앱 아키텍처를 만들 수 있게 됩니다. 널리 알려진 장점으로는 코드간의 종속성을 없애기 때문에 재사용성이 높아지고 리팩토링과 테스트 편의성이 높다는 장점이 있습니다. 그럼 이렇게 무서운 두 단어, '의존성'과 '주입' 이라는 단어로 되어있는 의존성 주입의 정의와 필요성, 그리고 실제 구현 방법에 대하여 간단하게 알아보려 합니다. 의존성 주입이란 먼저 의존성의 정의를 살펴봅시다. 보통 한 클래스(viewmodel)가 다른 클래스(datasource) 객체를 사용할 때, viewmodel클래스 내부에 사용하고자 하는 datasource클래스의 인스턴스를 생성해서 ..

    안드로이드를 위한 클린 아키텍처

    Clean Architecture에 대한 개념과 안드로이드에서 클린아키텍처를 적용한 구체적 사례를 통해 추상적인 개념으로만 알고있었던 개념을 더 자세히 알아보려고 합니다. Clean Architecture 란? 클린 아키텍처의 개념과 중요성에 대해서 알아보도록 합시다. 아키텍처는 복잡성을 관리해주기 때문에 특히 큰 프로젝트에서 중요합니다. 모든 아키텍처에는 애플리케이션의 복잡성을 관리한다는 하나의 공통 목표가 있습니다. 특히 대규모 프로젝트에서는 더욱 그렇습니다. 다음은 클린 아키텍처의 대표적인 그림입니다. 원은 앱의 다양한 수준의 소프트웨어를 나타냅니다. 주목해야 할 두 가지 주요 사항이 있습니다. 추상화 원칙 : 가운데 원이 가장 추상적이며 바깥쪽 원이 가장 구체적이여햐 합니다. 추상화 원칙은 내부 ..

    클린아키텍쳐

    클린 아키텍처 4개 계층 Entity (Domain) 비즈니스 규칙을 캡슐화 Enterprise Business Roles 가장 일반적이면서 고수준의 규칙으로, 가장 변경될 가능성이 적음 Use Case (Domain) 어플리케이션 고유 규칙을 캡슐화 Entity로부터의 데이터 흐름을 조합 Interface Adapters(presentor) (Presentation, Data) Entity 및 UseCase의 편리한 형식에서 DB나 Web에 적용할 수 있는 형식으로 변환(Repository) Mvp 패턴의 presenter, mvvm패턴의 viewmodel이 포함된다 즉, 순수한 비즈니스 로직만을 담당 Frameworks drivers, Web, Db (Presentation, Data) 프레임워크와 ..

    Computer Science 기본개념

    운영체제 스레드끼리의 통신과 프로세스끼리의 통신을 비교하여 설명하라 스레드와 프로세스 설명 교착상태? 프로세스와 스레드의 차이를 설명해주세요. 자료구조 HashTable(해시테이블) 어레이와 링크드리스트 설명 스텍과 큐 설명 메모리덤프를떴을때 힙영역에 대한 설명 필요 해시테이블과 해시맵 설명 Hash 알고리즘과 HashMap에서 Hash키값 중복에 따른 처리가 어떻게 되나요? **시간복잡도** 검색기능 구현 네트워크 tcp/udp 설명 3way hand shaking http get post 방식 비교 설명 GET과 POST 차이 GET은 데이터를 조회하기 위해 사용되는 방식으로 데이터를 헤더에 추가하여 전송하는 방식입니다. URL에 데이터가 노출되기 때문에 보안적으로 중요한 데이터를 포함해서는 안됩니다..