전체 글(27)
-
[DI] 수동 종속항목 삽입 방법
종속 항목이란? 클래스를 구성할 때 주로 다른 클래스의 오브젝트를 참조하게 됩니다. 예로 Car class가 Engine Class가 필요한 것처럼 하나의 클래스에서 필요한 다른 클래스를 종속 항목이라 합니다. (또는 의존성 주입이라고도 하지만 저는 종속 항목이란 말이 조금 더 와닿아서 해당 개념을 사용하는 걸 선호합니다.) 종속 항목 삽입이란? 말 드래도 종속 항목을 삽입하는 것을 의미합니다. 예로 특정 클래스가 필요한 객체를 얻는 방법 중 2가지를 알아보겠습니다. 1. 특정 클래스 내부에서 다른 클래스 객체를 생성하는 방법 2. 객체를 매개변수로 제공받는 법 이 두가지 중 종속 항목 삽입은 2번에 해당합니다. 1번은 car 클래스 내부에 Engine class를 생성하는 것과 같은 예입니다. 물론 하..
2021.11.14 -
LiveData 구조 및 원리
LiveData란? LiveData는 Activity나 Fragment의 생명주기를 관찰하여 Observe하고 있는 값의 변화를 감지할 수 있는 AAC 중 하나입니다. 그럼 어떻게 View(Activity/Fragment)의 LifeCycle을 관찰할 수가 있는 것일까요? LiveData를 알아보기 전에 그 과정을 먼저 알아보려고 합니다. LifeCycle AAC 여기서 이야기하는 라이프싸이클은 Activity나 Fragment의 onCreate~ onDestroy를 하나하나 이야기 하는 것이 아니라, onCreate~OnDestroy를 관찰할 수 있는 Event 및 States를 제공하는 AAC 중 하나를 의미합니다. 또한 Observer들을 lifeCycle에 맞게 관찰하여 변화를 감지하는 Obser..
2021.11.09 -
[Android] Coroutine을 공부하며..
1. 코루틴은 Callback을 제거하여 sequential 한 코드를 작성할 수 있도록 도와준다. // retrofit에서 이용하는 KAPIService interface KAPIService { @GET("problem/class") suspend fun getProblemsOfClass(): List } ... fun getClass() { viewModelScope.launch { try { _classList.value = KAPIGenerator.getInstance().getProblemsOfClass() } catch (e: Exception) { Timber.e(e.message.toString()) } } } 1. KAPIGenerator는 retrofit 객체를 생성하여 APIServ..
2021.10.31 -
디자인 패턴의 차이점
MVC 디자인 패턴 1. 개념 -> MVC는 View - Model - Controller의 구조로서 View(Activity/Fragment)가 UI갱신 및 Controller 역할까지 모두 담당하는 패턴을 의미합니다. 안드로이드에서 사용하는 기본적인 패턴이며, view에서 리스너를 셋팅하여 이벤트 발생시 처리하는 가장 단순한 구조입니다. 2. MVC의 장점 1) 코드를 이해하기 쉽다. 2) 구조가 단순하기 때문에 빠르게 짧은 개발기간 안에 완성 가능하다. 3. MVC의 단점 1) 프로젝트 규모가 커질 수록 복잡한 구조를 갖게 된다. 2) 기능별 구현이 제대로 되어있지 않기 때문에 실수할 가능성이 높아진다. 3) 모든 컴포넌트들 간의 의존성이 강하다. 4. 구조 통상적인 MVC 패턴은 아래사진 왼쪽처럼..
2021.10.11 -
2021 네이버웍스 인턴 후기
처음 블로그에 쓰는 일기이자 첫 인턴 후기다. 학생에서 인턴 시작까지 학부생 동안 어떤 프로젝트를 진행해 본 적 없는 나는 막연하게 졸업만을 기다렸다. 누군가처럼 뭘 해야겠다라는 욕심이 적었던 탓인지, 아니면 첫 시작이 그냥 무서워서인지 그냥 하루하루 학교를 다녔다. 그렇게 4학년 끝 무렵, 학교 동기가 재밌어 보이는 프로젝트를 같이 하자고 했고, 그렇게 내 첫 개발이 시작됐다. 팀에서 맡은 포지션은 안드로이드 어플리케이션 개발이었다. 처음 접하는 FrameWork, lifeCycle, Asynchronous 통신 등 모든 개념들이 새로웠다. 그래도 내가 노력해서 만든 부산물이 눈에 보이는 재미에 계속 개발을 할 수 있었고 성공적으로 앱을 출시할 수 있었다. 프론트, 백앤드 등에 지식이 매우 적었던 내가..
2021.09.13 -
코루틴이란?
1. 개념 요약하자면, 코틀린에서 코루틴이란 비동기적인 방법으로 콜백 대신 long-running tasks들을 효율적이고 우아하게(?) 처리 할 수 있는 방법입니다. 또한 callback code를 sequential code로 작성이 가능하기 때문에 가독성이 높아지는 효과가 있습니다. 2. 특징 1) 코루틴은 비동기적이다!! : 비동기적이란, 여러개의 일을 하나하나 끝내면서 진행하는 것이 아니라 동시에 병렬적인 일을 수행하여 리턴 값을 받는 것을 의미합니다. 하지만 병렬적으로 일이 처리되는 것 만큼 순서에 대한 보장이 없으며 해당 작업이 언제 끝나는지를 모르기 때문에 result 값을 즉시 사용할 수 있는지 보장되지 않습니다. 2) 코루틴은 non-Blocking이다!! : non-blocking이란..
2021.04.29