전체 글(27)
-
Git. fork한 내 원격저장소 최신으로 업데이트하기
1. Fork public으로 공개된 다른 사용자의 저장소를 나의 레포지토리로 가져오는 것을 의미한다. 상대방의 레포지토리에 들어간 후, 오른쪽 상단에서 fork라는 칸을 클릭해서 내 레포지토리로 가져오면 된다. 2. Pull Request pull request란, master branch에 새로운 commit을 merge하기 위해서 담당자에게 승인을 요청하는 것이라 생각하면 된다. 만약 주가 되는 branch가 master라면 별도의 branch를 파서 원격 레포지토리에 push하면 된다. 그러고서 다시 원격 레포지토리로 가면 qull request칸이 생성되는 것을 볼 수 있다. pull request를 클릭하고 추가정보를 기입하면 pull request이 완료되는 것이다. 3. update for..
2021.04.18 -
Glide란?
1. 개념 glide란 구글에서 밀고있는 이미지 로딩 라이브러리입니다. 2. 특징 - gif, video등을 로딩하는 것도 가능하다. - 빠른 로딩을 위해 내부적으로 cache를 갖는다. - httpUrlConnection 라이브러리를 기반으로 하지만, volley, okHttp 등의 라이브러리를 사용할 수 있는 플러그인도 지원한다. (때문에 url을 통해 웹서버에 접근하여 file등을 다운로드 받을 수 있고 이를 로딩할 수 있습니다.) 3. 구조 유저가 요청한 이미지를 불러오기 위해 Glide 내부에서 거치는 과정입니다. 1. 요청한 Data가 캐시에 저장되어 있는지 먼저 확인합니다. 만약 한번 이상 로딩했다면 이는 캐시에 저장되어 빠르게 이미지를 로딩할 수 있습니다. 2. 캐시에 저장되어 있지 않다면..
2021.01.18 -
리싸이클러뷰 멀티 뷰타입 사용해보기
뷰타입(view type)이란, 리싸이클러뷰를 구성하는 리스트들의 타입을 구분짓는 용도로 사용됩니다. 예를들면 카카오톡처럼 좌, 우 대화창이 나오는 구조는 각각의 뷰 타입을 갖는 뷰홀더를 생성하는 것이 편합니다. 따라서 오늘은 카카오톡과 비슷한(?) 채팅 기능을 만들어보겠습니다. 1. 기본 설정 저는 기본적으로 앱 개발을 할 때, dataBinding을 많이 사용합니다. 첫번째 이유는 안드로이드 최신 버전부터 'kotlin-extension'을 사용함으로써 발생하는 여러 문제들로 인해, gradle default setting에서 제외되었기 때문입니다. 사용하려면 이제 gradle에 직접 추가해줘서 사용해야합니다. 이렇게 구글이 배척하는 건 다 이유가 있다고 생각하기에..전 kotlin-extension..
2021.01.10 -
recyclerView와 dataBinding 같이 사용하기
1. dataBinding이란? 데이터 바인디이란, 레이아웃에서 선언한 구성요소를 데이터소스와 결합시켜 주는 객체를 자동으로 생성해주는 것을 의미합니다. 2. dataBinding을 사용하는 이유 xml에서 선언한 view들을(textView,editText,Button..etc..) 클래스에서 접근하려면, 기본적으로 view들에게는 모두 id값들을 적용하고, 이를 클래스에서 findViewById() 메서드를 통해서 일일히 연결시켜줘야 했습니다. 하지만 이는 공부용으로 간단한 프로젝트를 할 때에는 큰 문제가 없을지 모르나, 협업을 하는 정도의 큰 규모의 프로젝트를 진행하게 되면 여간 귀찮은 일이 아닙니다.. 또한 연결시켜주는 것만으로도 onCreate()메서드가 매우 길어집니다. 또한 한가지라도 연결을..
2021.01.03 -
Observer pattern 구조 및 사용
1. observer 패턴이란? 영어로 "관찰하다"라는 뜻을 갖는 observe는 개발에서도 무언가를 관찰하는데 사용됩니다. 여기서 무언가는 변수를 의미하며, 변수의 type은 primitive type이든 reference type이든 상관없습니다. 쉽게 설명하기 위해 아래 그림을 예시로 들어보겠습니다. 2. Observer의 구조 A라는 변수에 10이 담겨져 있고 이를 옵저버가 관찰하고 있습니다. 여기서 관찰자의 역할은 A의 값이 변경되면 A의 변화를 그 즉시 알아채는 역할을 합니다. 때문에 A에 변화에 대한 적절한 행동을 취하도록 만드는 것을 "observer pattern"이라고 합니다. 그렇다면 "적절한 행동을 취하도록"하는 것을 코드상으로 만들어야합니다. 그리고 이를 상속받은 A,B 옵저버들을..
2020.12.27 -
SINGLE_TOP, CLEAR_TOP,NEW_TASK로 액티비티 task 관리하기
1. 액티비티 전환 인텐트(intent)를 통해 액티비티(activity)를 전환하면 기존에 있던 액티비티는 액티비티 스택에 push되고 새로운 화면이 가장 최상단으로 올라와 우리 눈에 보이게 된다. 기존 액티비티를 A라 가정하고 전환할 액티비티를 B라 한다면, A는 왼쪽 그림 1번 처럼 스택에 쌓이고, B가 최상단으로 노출되어, 사용자에게 보일 것이다. 이처럼 A는 메모리상에 적재되어 사라지는 것이 아니라 저장된다. 때문에 뒤로가기 버튼을 눌렀을 경우 2번->3번 과정을 거쳐 다시 A가 최상단으로 노출되어 사용자에게 보여지게 된다. 액티비티 스택은 단순히 액티비티를 차곡차곡 쌓는 역할을 하기에 동일한 액티비티가 기존의 스택에 존재하더라도 그대로 쌓이게 된다. 때문에 스택에 대한 관리가 제대로 이뤄지지 ..
2020.12.13