전체 글 241

Android studio Java library : unmappable character for encoding ms949 (한글오류)

unmappable character for encoding ms949 RxJava를 공부해야해서 Android Studio에 자바 라이브러리 생성 후(어느 순간 스튜디오 안드로이드 모듈에서 main()함수가 안돼서 생성), 한글 주석을 남겼더니 위와 같은 에러가 나타난다. 원인) 소스파일과 컴파일러의 인코딩 불일치로 인해 발생 해결법) project build.gradle에 아래와 같이 소스코드 인코딩 방식을 지정해준다. allprojects { tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } } gradle groovy도 조만간 꼭 공부하고야 만다!!

Android/MyError 2020.05.28

RxJava_5.6. Observable.from() vs Observable.just()

Observable 생성 팩토리 메소드 중 닮은 듯 다른 from(), just() 비교 1. Observable.just() - 최대 10개까지의 아이템을 전달받고 변형과 꺼냄 없이 아이템을 있는 그대로 모두 모아 배열같이 하나로 만들어 1번만 emit한다. - Observable.just(null); 인 경우, null을 배열 아이템으로 가지는 아이템을 1번 emit한다, ※ 이는 empty Observable이 아님!! - Ex) Observable.just(new Integer[]{1, 2, 3}) makes one emission with Observer callback as onNext(Integer[] integers) - just() 함수 정의를 보면, just() 함수에서 아이템들을 모아..

RxJava_5.5 Observable 언제 누가 만드는지

Observable 팩토리 함수들 복습하다 몇가지 관점에서 혼란이 와서 재정리! Observable stream생성 시점 - Observable stream은 Observable 생성과 같이 생성되는 것인지, 나중에 Observer가 subscribe한 시점에 생성되는 것인지 구분 알아보고자 하는 이유 - 자주 변경되는 데이터를 아이템으로 전달 시 주의하기 위해 알아보는 것이 필요 - Observable 아이템을 얻어오는 로직이 오래 걸리거나 무거운 경우 메인 쓰레드가 지연되는 것 주의 필요 Test 방법 - 예제 : Observable 생성 전 "Android10"값을 가진 변수 생성 후, onNext()에서 이 변수를 전달하고, subscribe 전에 "Android11"값으로 수정함 확인 결과 - ..

RxJava_3. Observer

RxJava의 구성요소 중 하나인 Observer Observer이란? : Observable에서 전달되는 이벤트를 받는 주체. - Observable이 데이터나 이벤트를 배출(=push=emit)하기 위해서는 이를 수신할 '구독(=subscribe)한 Observer'가 필요!! - Observer는 Observable체인의 맨 마지막 방출물(=emission)을 수신하며 여기서 emission을 소비한다. cf) Operator가 연산 처리 후 반환한 Observable은 Observer이다, Operator도 내부적으로는 Observer를 구현하는데 보통, Observer라 할 때는 'Observable 체인의 제일 끝에서 내보낸(=push=emit)을 소비하는 최종 Observer'를 지칭한다. ..

RxJava_2. Observable

RxJava의 구성요소 중 하나인 Observable. Observable이란? : 이벤트를 만들어 '이벤트 스트림(=Stream)'을 통해 이벤트를 내보내는(=push =emit) 주체. ↪ 이벤트란? 리액티브에서는 '데이터'와 '이벤트'를 동일하게 취급하므로 '일종의 데이터'를 보낸다고 봐도됨 >> 관련 포스팅 더보기 #Stream 이란? : 시간에 따른 데이터 값들의 일련의 시퀀스 (=일종의 시간순으로 전달되지는 값들의 collection ) 'Observable이 만든 시간순으로 전달되는 데이터들의 강'으로 비유된다. (Subscriber가 이 강에서 데이터를 건짐) Reactive Programing은 이벤트, ajax call, 등 모든 "데이터의 흐름"을 시간순으로 전달되어지는 Stream이..

[TIL] Studying MVVM

MVVM을 공부 중이다. 목표는 MVVM-C까지!! 수많은 블로그들이 설명을 잘 써놓아 주셔서 너무 감사하지만, 많은 만큼 의견도 많아서 헷갈린다;; 대략적으로 한 프로젝트에선 아래와 같이 구성되는데, 어떤 라이브러리를 쓸지 AAC 사용할지 등등에 따라 또 다르다. Kotlin + MVVM + AAC(Databinding, ViewModel, LiveData) + ReactiveX + DI library + Http Library + TDD Library 나는 일단 스터디 프로젝트에 적용할 대상을 찾고 있으므로, FP개념 + Kotlin + MVVM + AAC(Databinding, ViewModel, LiveData) + RxKotlin + Koin + Retrofit2 + (TDD Lib고민 중)로 ..

일상메모(Diary) 2020.05.04

보일러 플레이트 코드란? (Boilerplate Code?)

MVC의 단점은 '보일러 플레이트 코드가 늘어난다'고 한다. 그래서 보일러 플레이트 코드란? 보일러 플레이트 코드 (=Boilerplate Code =상용구 코드) : 어디서쓰나 거의 또는 전혀 변경도 없이 똑같이 쓰는데 여기저기서 필요로 하여 재사용되는 코드 섹션 문제점 Problem) 이렇다보니, 작은 기능에도 많은 코드를 양산해내게 되는 문제점이 있다. 대표적인 예 Example) Ex1) Java의 Getter/Setter (이래서 Kotlin에서는 자동화로 없어졌나보다) public class Pet { private PetName name; public Pet(PetName name, Person owner) { this.name = name; } public PetName getName() ..

회사와 발맞춰 성장하는 안드로이드 개발자? 안돼..

'회사와 발맞춰 성장하는 안드로이드 개발자'라고 입사 후 포부에 많이 썼었다. 지금 와서 느끼지만 이러면 안 된다!! 나는 반대다!!! 정확히는 '회사에만' 발맞춰 성장하는 것에 반대한다. 대학교 때 교수님이 그랬다. "너희가 배우는 공학은 건축, 기계 공학들과 달라. 거긴 몇천 년을 연구한 기술이잖니 거기에 비해 우린 만들어진지 얼마 안 됐지, 그래서 자꾸 바뀌고 계속 배워야 하며 그러다 없어지기도 할 거다." 맞는 말이었다, 안드로이드는 여기서도 더 어리다 그래서 그런지 변동이 많은 편이다. (심지어 IDE랑 공식 언어도 바뀌었다;) 그렇지만 모든 회사가 이를 빠르게 반영할 수 없다. 규모가 크고 오래된 서비스일수록 작업은 점점 더 힘들다. (케바케지만 갑사의 서비스라면 더더더 힘들다.) 우리 회사 ..

일상메모(Diary) 2020.05.02