본문 바로가기

IT

[코틀린] kapt 안녕하세요 남갯입니다. https://pluu.github.io/blog/kotlin/2017/07/23/kotlin-generatestubs/ kapt란? kapt Annotation Processing for kotlin 는 코틀린이 자바파일의 Annotation 처리시 Kotlin 파일의 Annotation 처리를 포함합니다.1. javac 보다 먼저 kotlinc가 동작합니다.2. kotlin 바이너리 파일은 javac 컴파일 대상이 됩니다.3.그러나 javac는 Annotation이 부여된 Kotlin 파일까지 자동으로 포함시키는 기구는 없습니다. 데이터 바인딩을 이용할때 BindingAdapter라는 annotation을 작성하게 되는데 kotlin의 annotation을 동작시키기 위해서는 ..
Enum을 통한 개선경험 안녕하세요 남갯입니다 오늘은 Enum을 통해 소스를 개선한 경험을 작성해보려고 합니다. http://woowabros.github.io/tools/2017/07/10/java-enum-uses.html 우아한 형제들의 Enum 활용기를 읽으며 참고를 했습니다. 이번에 온 회사에서 기존코드를 리뉴얼하여 서비스를 제공하는 앱을 개발하라는 임무를 맡았습니다. 많은 변경점 중 결제 타입을 설정하는 코드를 변경한 내용을 공유 해보려고합니다. 기존의 코드의 경우 StringArray를 xml을 통해 스피너를 생산하고 그 스피너의 입력값을 가져와서 해당하는 값의 코드를 가져와서 서버로 전송하는 화면이었습니다. 이전코드 1 int position = 0; switch (payment_type) { case "1": p..
[안드로이드] 안드로이드 리소스 네이밍 컨벤션 안드로이드 네이밍 리소스 컨벤션 https://jeroenmols.com/blog/2016/03/07/resourcenaming/
[JAVA] GC(가비지 컬렉터)의 동작원리 안녕하세요 남갯입니다 오늘은 네이버 D2에서 읽은 GC 의 내용을 옮겨서 정리해보려고합니다. 출처: https://d2.naver.com/helloworld/1329 가비지 컬렉터(GC) GC의 동작원리GC는 가비지 콜렉터로 힙영역에 동적할당된 메모리를 회수해가는 역할을한다.Stop The World를 통해 GC를 실행시킨다. Stop The World란 GC를 실행시키기 위해 JVM이 어플리케이션 실행을 멈추는것 이다.GC스레드를 제외한 나머지 스레드는 작업을 멈춘다. GC가 끝나야 중단한 작업을 시작한다.GC의 튜닝은 Stop the world의 시간을 줄이는것 GC의 생성 가설1. 대부분의 객체는 금방 접근불가능 상태가된다.2. 오래된 객체의 젊은 객체로의 참조는 아주 적게 존재한다.이 가설의 이름..
[Java] String, StringBuilder, StringBuffer 란? 안녕하세요 남갯입니다. 오늘은 String과 StringBuffer와 StringBuilder에 대해 알아보려고 합니다. 세 클래스의 비교String , StringBuffer , StringBuilder문자열을 관리하고 저장하는 클래스 String 은 immutable, StringBuffer,StringBuilder는 mutable하다는점 String 의 동작String a = "aa"일 경우 heap영역의 String pool에 들어가게 되고String b = new String("aa")일때는 heap에 객체를 생성하게 된다. 즉 a == b 는 다르게 되지만즉 String a = "aa"는 내부적으로 b.intern()이라는 함수를 통해 String pool에 등록된다.b.intern()을 통해..
[코틀린] let, with, run, also, apply 정리 안녕하세요 남갯입니다. run과 let 등등 대충의 쓰임새만 알고 있고 따로 물어보면 사용처에 대한 정리가 되어 있지 않아 정리를 못했던거같은데 에서 다시 정리해서 포스팅해보려고 작성했습니다. with run 둘다 this1. with는 입력하는 객체가 따로 필요없을때2. run은 nullable일때 ex ) with(person){ this?.name this?.age } person?.run{ this.name this.age } let run let은 it run은 this다중문을 사용했을때 혹은 this가 모호할때let을 사용 it말고 이름을 지정함으로써let{ a1 -> a1.let { a2-> //todo } } also letalso 객체 자체의 동일한 내용 이용하고 싶을때 "abc".let..
[코틀린]의 위임 발표자료 공유 안녕하세요 남갯입니다. 이번 11월 30일에 매쉬업 안드로이드 발표에서 코틀린의 위임을 발표하게된 자료를 올려보려고합니다. 급하게 준비하고 만들어서 좀 이상하지만 올립니다. 1. 자바의 위임2. 코틀린의 위임 - 3가지-클래스위임-by lazy-delegation.Observable 감사합니다.
[스테이트패턴] 스테이트패턴 적용기 안녕하세요 남갯입니다. 오늘은 디자인 패턴을 공부하던 중 스테이트 패턴을 통해 코드를 개선한 내용을 정리해보려고 합니다. 스테이트 패턴이란 스테이트패턴의 정의 스테이트 패턴을 이용하면 객체의 내부상태가 바뀜에 따라서 객체의 행동을 바꿀수 있습니다. 마치 객체의 클래스를 바뀌는것과 같은 결과를 얻을수있습니다.* 상태를 별도의 클래스로 캡슐화하고 현재상태를 나타내는 객체한테 행동을 위임하기 때문에 내부상태가 바뀜에 따라 행동이 달라지는것을 알 수 있습니다. 스테이트 패턴의 정의에 따라 현재 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀수 있다고 합니다. 요구사항 제가 필요했던 요구사항에서는 자동차는 도로를 따라 일정 속도와 1. 정체, 지연, 원할 세가지의 도로의 타입이 존재합니다.원할 - 지연 - ..