전체 글 231

Kotlin(코틀린) 에서 fragment 를 써보자

자바에서는 fragment를 만드는게 아주 귀찮았던거 같은 기억이 있다. 특히 fragment 안에 fragment 를 넣는건 좀 더 신경 써줄 코드가 있었던걸로 기억하는데 코틀린에서는 Activity 에서 fragment 를 만들때 xml 에 fragment가 띄워질 공간을 framelayout 으로 만들어주고 액티비티에서 supportFragmentManager.beginTransaction() .replace(R.id.fragment_view , AccountBookFragment()).commit() supportFragmentManager 를 사용하고 replace 안에 fragment 가 띄워질 공간 id 와 그곳에 띄워질 fragment의 이름을 적고 commit 그리고 프라그먼트안에 프라그..

Android 2021.04.04

ListView(리스트뷰) 자동 높이, 크기 조절

리스트뷰안에 들어간 데이터의 수 만큼 자동으로 높이를 조절해주는 코드. public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST); for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = list..

Android 2021.03.29

prototype 이란?

프로토타입은 아주 쉽게 말해서 함수에 속성이나 기능을 공통적으로 추가하는 객체를 이야기 한다. 엄청간단하게 말하면 그렇다. function User(name,age){ this.name = name; this.age = age; } 예를 들면 위에서 만든 User 함수에 User.prototype.emailDomain = "@google.co.kr"; 이라고 설정해주면 User 로 만든 모든 객체들이 예를들면 user1....user5000까지 emailDomain 속성을 가지게 되고 그 값으로 @google.co.kr 을 가진다. user50000.emailDomain; 이라고 쳐보자 위에서 대입한 이메일 값이 나올것이다. 이렇게 속성 값을 공통으로 지정해 줄 수 있을 뿐 아니라 기능도 추가해 줄 수 ..

Javascript 2021.03.27

MVVM 패턴 설명 - 2(view Model)

정말 오랜만에 MVVM 패턴의 두번째 글을 쓴다. 그동안 이것저것 바빴는데 다 핑계처럼 들릴거 같아서 그냥 포스팅이나 하겠다. 사실 핑계 맞다. 저번 포스팅은 View에 대해 다뤘는데 오늘은 ViewModel 에 대해서 적으려고 한다. ViewModel은 MVP 패턴에 프레젠터랑 비슷한 느낌이다. 중간에서 데이터를 받고 전달해주는 우편부 역할. 그러나 다른점이 있으니 패턴이름도 달라졌을터 의존성의 문제가 달라졌다. MVP 패턴의 프레젠터는 모델과 뷰에 각각 의존성을 가지고 있었는데 MVVM 은 data Binding 이라는 개념을 통해 Model 파트와의 의존성만 가지고 view와의 의존성은 가지지 않는 구조를 갖게 되었다. 이해가 되지 않는다면 인터넷에 MVVM 패턴이라고만 쳐도 그림으로 그려져 있는것..

Android 2021.03.27

GSON 과 JSON

이게 자바 카테고리에 들어가는게 맞는지는 모르겠지만 GSON 은 관련이 있다고 생각하니까 그냥 여기에 포스팅 하기로 했다. 둘다 많이 쓰는것들이지만 사용할때마다 그때그때 사용하기만 했을뿐 제대로 정리를 한 적은 없는 것 같아서 이번 기회에 정리해보려고한다. JSON 에 대해 알아보자. JSON 은 JavaScript Object Notation 의 축약어로 '데이터를 저장, 전송할때 사용되는 경량의 데이터 교환 형식' 이라고 할 수 있겠다. JSON 자체가 뭔가를 한다기 보다는 하나의 양식, 또는 데이터 표시의 방법중 하나라고 생각하면 편하다. JSON 은 아주 많은 곳에서 쓰인다. 많이 쓰이는 장점중 내가 생각하는 장점을 꼽자면 가볍고, 여러 언어에서 사용가능하기 때문에 데이터교환의 플랫폼 제약이 적다..

Java 2021.03.07

FireStore 데이터 가져오기

FireStroe 는 클라우드 방식의 데이터베이스를 사용하기 쉽게 제공되는 DB 다. 소유한 서버, DB가 없다면 저렴한 가격으로 대여할 수 있는 좋은 서비스다. FireStore 에는 크게 컬렉션 , 문서 , 필드로 이루어져있는데 컬렉션 아래에 문서 여러개 또 문서 아래에 필드 여러개로 계층적인 구조를 가지고 있다. 직접 파이어스토어를 만들어보면 바로 이해가 될 것이다. 웹, 안드로이드 , ios 등 여러 플랫폼에서 제공되고 있는 각각 설치하는 방법은 공식문서나 많은 블로그에 다루고 있으니 따라하면 바로 적용된다. 나는 안드로이드 환경을 기준으로 사용하는 방법에 대해 코드 위주로 정리 해볼까한다. 먼저 가장 상위 계층인 컬렉션(문서 아래의 필드 구간에서도 컬렉션을 만들 수 있다. 뒤쪽에 이게 무슨말인지..

카테고리 없음 2021.03.06

프로그래머가 되다.

최근 취직을 해서 안드로이드 프로그래머로 일하고 있다. 점점 같이 일하는 사람들과도 익숙해지고 적응해가고 있는거 같다. 좋은 동료들과 내가 하고 싶은 일을 할 수 있는 환경에서 멋진 일들을 해나가는 하루하루가 즐겁다. 일을 하면서 느끼는거지만 아직도 정말 배울게 많고 나는 부족한 점이 많다. 포스팅 할 것도 엄청나게 밀렸는데.. 주말에 각잡고 일하면서 생겼던 궁금증이나 새로 알게 된 것들 그리고 공부해봐야겠다고 생각든 것들을 정리하는 시간을 가져야겠다. 그럼 꼭 이번 주말에는 내가 포스팅을 하길 바라며..

잡담 2021.03.04

MVVM 패턴 - 설명(1) (View)

MVVM 패턴은 사용하는 사람들마다 조금씩 만드는 방식이 달랐다. 여러 방식들을 보고 그 중에서 가장 개인적으로 마음에 드는 방식의 예제를 보고 따라하며 이해했다. 이번 공부에는 LiveData , RxJava , Retrofit2, Databinding 이 사용되었다. 사전 지식이 없다면 이해하기 힘들 수 있다. 먼저 View 파트부터 설명 해보겠다. View 는 전에도 말했듯 유저가 클라이언트랑 소통하는 화면을 의미한다. 안드로이드에서는 Activity 를 말하겠다. MVVM 패턴에서의 View는 ViewModel에서 변경되는 값들을 Observer 패턴으로 관찰하며(이 프로젝트에서는 LiveData가 이를 쉽게 해결한다.) 변경되는 값들을 그대로 바꿔서 보여준다. 일단 나의 경우는 모든 Activi..

Android 2021.02.11

말그대로 잡담.

가고 싶다고 생각한 회사에 취업하게 되어서 타지에 방을 구하고 왔다. 이것저것 많이 찾아도보고 하면서 고르고 골라서 나름 괜찮다고 생각하는 방을 찾았다. 여기저기 돌아다니는게 피곤하긴 했지만 제대로 보는게 앞으로도 나한테 좋을테니까 어쩔 수 없지 뭐.. 군대를 다녀온거 말곤 타지생활이 처음이다. 딱히 사는거에 대해선 걱정은 안되는데 일에 빨리 적응하고 싶은게 지금 제일 큰 고민거리다. 나를 좋게 평가해준 회사에 잘 적응하고 일을 빨리 습득해서 의미있는 역할을 하고 싶다. 직접 가보기전까진 정확히 어떤걸 만들게 될지는 모르겠지만 대충 예상되는것들을 찾아보고 공부해보며 입사전까지 시간을 보내고 있다. MVVM 패턴에 대해서도 자세하게 블로그에 포스팅하고 싶은데 머릿속에 아직 완전히 정리된게 아니라 글로 풀어..

잡담 2021.02.06

자바 generic

generic 에 대해서 개념만 알고 실제 프로젝트에 적용해보지는 않았는데 좀 더 확실하게 개념을 공부하고 상세한 예를 통해서 어떻게 사용되는지 찾아보았다. generic 은 뭘까 - 제네릭은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법, 또는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 라고 하는데 나의 경우는 후자의 표현이 더 와닿았다. 제너릭을 그럼 왜 사용할까? 모든 기술들이 그런거 처럼 꼭 사용할 필요는 없다. 그러나 만약 배열에 값을 추가하고 가져오는 함수를 포함한 클래스가 있다고 치자. 이 배열은 integer 형으로 쓰일수도 있고 string 형으로 쓰일수도 있는데 제너릭을 배제하고 생각한다면 두가지 형을 가진 클래스를 각..

Java 2021.01.30