2020/09 14

Java Generic, 자바 제네릭

더 자세한 것은 출처를 참고 하시면 됩니다. 아래는 제가 이해하기에 도움 되는 수준으로 정리 한 것입니다. 제네릭 클래스 public class 클래스 { ... } // 가장 기본적인 형태의 제네릭 클래스 class GenericClass{ private T t; T getValue(){ // 제네릭 class 내 에서는 제네릭 타입에 대한 리턴 정의가 편하다. return t; } } // Generic class를 상속 받으면 제네릭 타입도 같이 받아야 한다. class extendedClass extends GenericClass{ } // Generic class를 상속받고, 제네릭 타입 K 도 받는 형태 class extendedClass2 extends GenericClass{ private..

iMacros for Chrome

미국에서 DMV 예약할 때, 예약이 기본으로 1달은 기다려야 해서 취소된 예약을 획득하려면 자주 들어가서 예약 상태를 확인 해야 한다. 그 때 마다 생년 월일, 이름, 전화번호, 예약 하려는 dmv 장소 등을 매번 넣어줘야 한다. 이럴 때 iMacros for Chrome를 쓰면 편하다. 나는 대충 사용할 줄만 안다. 그런데 엄청 나게 편하다.. 클릭 한번만 해주면 모든게 자동이다.. 사용 방법은 여기를 참고 하기 바란다.(ohdong312.tistory.com/132) 검색 하다보니.. 웹 테스트 자동화까지 검색 되네..ㅎ 출처 : ohdong312.tistory.com/132 www.maketecheasier.com/extensions-automating-repetitive-browsing-tasks..

컴퓨터 Tip 2020.09.29

rxJava2 vs rxKotlin vs rxAndroid(What is the difference between them?)

결론 부터 말하면, rxJava2, rxKotlin, rxAndroid는 Reactive Extensions(혹은 ReactiveX) 를 확장해 놓은 라이브러리이다. 쉽게 말해, 다 같은 놈이란 것이다. 이름이 여러개인 이유는, 다른 목적으로 생성 되었기 때문이다. 안드로이드에서 Kotlin을 사용해도 rxJava2를 그냥 써도 된다. 아무 이상 없다. 하지만 rxKotlin을 쓰면 보일러 플레이트 같은게 개선 되었다고 한다. 참고로, 안드로이드에서 Kotlin을 사용할 때, RX를 쓰려면 한 줄 implementation "io.reactivex:rxkotlin:2.0.2" rxjava2를 쓰려면 두 줄이 필요하다. implementation 'io.reactivex.rxjava2:rxjava:2.2...

Kotlin for 문

kotlin은 java와 for 문법이 다르다.(하긴.. 다른 것도 다 다르다..) for(i in 1..10) { sum += i } for(i in 1..10){} // 1 ~ 10까지 for(i in 1 until 10){} // 1 ~ 9 까지 for(i in 1..10 step 2){} // 1부터 2씩 증가 하며 10까지 반복 for(i in 10 downTo 1){} // 10부터 1씩 감소 하여 1까지 반복 for(i in 10 downTo 1 step 2){} // 10부터 2씩 감소 하여 1까지 반복 for(str in list) { sb.append(str) } val list = listOf("Hello", "World", "!") for (i in list.indices) { pr..

Kotlin constructor 정리(코틀린 생성자 정리)

코드를 작성하다보니 아래와 같이 변수 선언에 관한것은 이해가 갔다. var class1 = A()// instance 선언 var class2 : A// 그냥 변수 선언(초기화 안됨) 근데.. 코드를 보다 보면 아래와 같은 코드가 나온다.. 이게 무슨 차일까...?? class A의 input를 받아서 class C로 넘겨 주는것 같은데.. input의 타입도 없고.. 뭐야.. 시부렁.. class C(var input: Int) : A(input) {} class D(var input: Int) : A() {} 여러가지 포스팅과 삽질을 하다가 모든게 코틀린의 복잡한 constructor에서 비롯된다는 것을 알게 되었다. 일단 코틀린은 아래와 같은 규칙(문법)이 존재한다.(근데 잘 안 알려줌-_-) 1...

코틀린 + 코루틴(Coroutines)

코틀린의 코루틴을 인터넷으로 검색해보면, 예제 소스가 대부분이 모두 MainActivity.kt에 있다. 실제 개발자 분들은 MainActivity.kt에서 코루틴을 안 쓸거다.(그렇게 쓰는 걸 봤다고?? 그 회사에서 당장 도망쳐라..) 근데 이론에만 그치는 포스팅에서는 모두 MainActivity.kt에 적고 있다.(이미 그런 포스팅은 넘치니 제발 쓰지 말자..) 아래 acaroom.net/ 의 링크에서는 Adapter에서 코루틴을 사용하고 있다. 그나마 참고 할 만하다. 개념은(여기 말고도 많이 있음..) codechacha.com/ko/android-coroutine/ 코루틴으로 데이터를 가져오는 실제 코드 예제는 acaroom.net/ko/blog/youngdeok/%EC%97%B0%EC%9E%A..

if(variable == null) on Kotlin

Kotlin에서 null 체크는 어떻게 할 지 궁금해졌다. 아마.. if(variable === null) 이 맞는것이겠지..? 그래서 찾아 보니.. if(variable == null) 을 쓰면 자동으로 if(variable === null) 변환해준다고 한다. Note that there's no point in optimizing your code when comparing to null explicitly: a == null will be automatically translated to a === null. 결론, if(variable == null) 과 if(variable === null) 둘 다 null 체크하는 것이다. 출처 : kotlinlang.org/docs/reference/equ..

운전 면허를 따봅시다.

필기는.. dmvtest.cf/index.html 이 사이트 가셔서 실전 예상문제시험을 모든 캘리포니아주 운전면허 필기시험 예상문제를 90% - 100% 될때까지 무제한 반복하시면 됩니다. 이제 실기는... 아래를 보고 공부 하시면 됩니다. 일단.. 가장 많이 떨어지는 비보호 좌회전 공부 하시고, 실기 시험관이 체크하는 사항 훑어 보신 후, 시험치시는 곳의 route 좀 보고 가시면 됩니다. 비보호 좌회전 영상 www.youtube.com/watch?v=IpKYeDRE5aQ 4분 34초 부터 수신호 및 실기 시험 체크 사항 m.blog.naver.com/PostView.nhn?blogId=sol_test&logNo=220805769283&proxyReferer=https:%2F%2Fwww.google.c..

미국 생활 2020.09.17

사파리 탭 보호하기(일정 개수 닫기 금지) : Preventing closing a tab on safari

사파리는 크롬 보다 extension이 몇개 없다. 대신에.. applescript를 제공하는데...(이딴거 필요 없고 그냥 extension을 풀라고...ㅅㅂ) 그것을 이용하면 tab을 원하는 개수보다 적을 경우 닫지 않게 할 수 있다. _preventing_count 뒤에 숫자를 변경하면 탭 개수를 제한할 수 있다. (난 6개나 쓴다...) 그리고 탭이 6개 이하이면 hide 되도록 했습니다.(최소화와 비슷한 기능... 보통 command + H) 주석을 제거하면 팝업을 통해서 탭을 닫을지 선택하게 할 수 있는데.. 맥 내부적으로 방지코드가 있는지 팝업이 뜨고 선택지를 하는데 딜레이 있다. 그래서 저는 그냥 주석으로 해놨습니다. 그리고 저는 BetterTouchTool 을 통해서 commend + w..

컴퓨터 Tip 2020.09.15