본문 바로가기

전체 글

Commit 아카이브 Commit 읽기 어려운 커밋 메시지 예 $ git log --oneline -5 --author cbeams --before "Fri Mar 26 2009" e5f4b49 Re-adding ConfigurationPostProcessorTests after its brief removal in r814. @Ignore-ing the testCglibClassesAreLoadedJustInTimeForEnhancement() method as it turns out this was one of the culprits in the recent build breakage. The classloader hacking causes subtle downstream effects, breaking unrelated.. 더보기
Room의 모든 것. Room DB Room의 모든 것. Introduction to Room Persistent Library in Android Data Access Objects - DAO in Room [You are here] Entity Relationship in Room How does Room work internally? Room Database Migrations Using Room with LiveData and other third-party libraries SQL, No-SQL 차이는 알 것이라고 생각하고 따로 설명은 안 하겠다. 💡 SQL은 정부나 은행 등에서 아주 많이 사용한다고 한다. 어떤 풀스택 개발자는 단 1줄의 SQL 코드도 써보지 않았다고 한다. 이유가 뭘까? SQL이란? Structu.. 더보기
GDG Korea Android AAC-ViewModel 토론 저장용 아무래도 최근 viewmodel 관련해서 공부를 했어서 관심이 많이가는 토론을 지켜봤습니다. 실력은 부족하지만 비교적 최근에 공부한 덕분에 조금이라도 이해가 더 잘 되는 느낌이었습니다. 해당 토론을 통해 최근 트렌드를 알 수 있음과 동시에 많은 지식들을 알 수 있게 되었습니다. 정리를 최대한 다 하고 싶었지만, 편의점 알바를 하며 토론을 들어 제대로 듣지 못했기 때문에 정리가 뭔가 맞지 않을 것입니다... 혹시 이 글을 보시는 분이 있다면, 잘못된 내용들 지적 부탁드립니다. 그리고 Q&A 질문들 답변 가능하신 분들도 답변 부탁드립니다! 토론 참가자들 왜 aac-viewmodel을 뷰모델이라고 정했을까? 💡 AAC-ViewModel의 비하인드 스토리: 만든 구글러들과 이야기를 해봤는데, 뷰모델이라는건 문.. 더보기
MVVM ViewModel vs AAC-ViewModel에 대해서 MVVM ViewModel vs AAC-ViewModel 이름만 같고 동작하는 방식이 전혀 다르다, AAC-ViewModel은 아키텍처적인 VM과는 완전 상관없다고 한다. 초기화 방식이 비슷해보이지만 그렇지 않다. MVVM 패턴의 ViewModel MVVM 패턴은 마틴 파울러의 Presentation 모델 패턴에서 파생된 디자인 패턴. View와 Model 사이의 매개체 역할을 하고 View에 보여지게 되는 데이터를 바인딩하고 가공하는 역할을 한다 비즈니스 로직과 프레젠테이션 로직을 UI로부터 분리하는 것을 목표로 하고 있음. 프리젠테이션 로직 : 말 그대로 보여주기 위한 로직을 말한다. 즉 화면상의 디자인 구성을 위한 로직을 일컫는 말로써, 게시판에서의 표시하기 위한 for(or while)문 등의 사.. 더보기
아키텍처 관점에서 LiveData에 대해서. (StateFlow) LiveData란? 💡 LiveData란 데이터를 관찰할 수 있는 data holder class 입니다. LifeCycle에 결합되며, 결합된 컴포넌트의 생명주기 상태가 active(STARTED, RESUME)활성화 상태일 때만 data에 대한 update를 제공 Observer 객체와 함께 사용한다. LiveData는 변화를 옵저버에게 알려주고 Observer의 onChanged() 메소드를 실행한다. LiveData 특징 UI가 데이터 상태와 일치하는 것을 보장합니다. LiveData는 Observer 패턴을 따릅니다. LiveData는 생명주기에 변경이 일어날 때마다 Observer 객체에 알려줍니다. 그리고 이 Observer 객체를 사용하면 데이터의 변화가 일어나는 곳마다 일일이 UI를 변경.. 더보기
안드로이드 프래그먼트에 대해서 LifeCycle, Manager Fragment란 한 화면에 유기적으로 동작하는 UI가 2개 이상인 경우에 사용할 수 있는 서브액티비티 전체 화면에서 일부만 수정해야하는 경우 많이 사용 모듈화, Adaptability(변경성, 적응성) 제공 Activity에서 추가 혹은 제거 가능 Activity의 생명주기와도 연관이 있음 재사용 가능, Lifecycle 존재 모듈화란 다음과 같이 한 화면에서 좌측 네이게이션바, 메일 목록, 세부 목록이 있다. 각각 단일 활동으로 실행되며, 자체 수명주기를 가지고 있다 Adaptability란 프래그먼트를 사용하면 Tab의 이동으로 화면 이동 없이 화면(?)을 변환 시켜줄 수 있다. → viewPager에 대한 이야기 💡 프래그먼트 수명 주기는 호스트 액티비티의 수명 주기와 밀접하게 관련되어 있다. 즉.. 더보기
안드로이드 Coil 라이브러리란?! Coil Coil : Coroutine Image Loader의 약자이며 Kotlin Coroutines(코루틴) 으로 만들어진 가벼운 Android 백앤드 이미지 로딩 라이브러리이다. 미국의 농작물 배송 서비스 업체에서 관리중 Colin White Coil-ko Readme https://github.com/coil-kt/coil/blob/main/README-ko.md 요구사항 Android X Min SDK 14+ Compile SDK: 29+ Java 8+ 사용하는 방법들 종속성 추가 implementation("io.coil-kt:coil:0.10.0") //load 메소드 사용 imageView.load(R.drawable.image) imageView.load(File("/path/to/im.. 더보기
안드로이드 Glide란? Glide Glide란 무엇인가 구글에서 밀고있는 이미지 로딩 라이브러리, Bump에서 만든건데 구글이 인수 빠른 로딩을 위해 내부적으로 cache를 가짐 Glide 특징 Glide는 비디오 스틸, 이미지 및 애니메이션 GIF 가져오기, 디코딩 및 표시를 지원. Glide에는 개발자가 거의 모든 네트워크 스택에 연결할 수 있는 유연한 API가 포함. 기본적으로 Glide는 사용자 지정 HttpUrlConnection 기반 스택을 사용, Google의 Volley 프로젝트 또는 Square의 OkHttp 라이브러리에 플러그인하는 유틸리티 라이브러리도 포함. Glide의 주요 초점은 모든 종류의 이미지 목록을 가능한 한 부드럽고 빠르게 스크롤하는 것 Glide는 원격 이미지를 가져오고, 크기를 조정하고, 표.. 더보기