본문 바로가기
[android] JobIntentService 소개 (tutorial) [android] JobIntentService 소개 (tutorial) https://medium.com/til-kotlin/jobintentservice-for-background-processing-on-android-o-39535460e060https://developer.android.com/reference/android/support/v4/app/JobIntentService -JobIntentService 는 SupportLib 에 들어있다. -JobIntentService 는 Android O 부터는 JobScheduler 를 사용하고, Android O 이전 단말에서는 background service 를 사용한다. -Android O 이전 단말에서는 background 서비스가 즉각적.. 2018. 11. 28.
[android] Secure Coding Guide [android] Secure Coding Guide -Android Secure Coding Guide 라는 간략한 세미나를 듣고 왔다.새로운 내용은 없지만, 그냥 Remind 하는 차원에서 정리해본다. 최소 권한 : 불필요한 퍼미션 사용하지 말자. 안드로이드 6.0(MOS) 부터 Runtime Permission 이 되면서 문제가 적어지지만, 이전에는 과도한 권한을 사용하는 문제가 있었다.꼭 필요한 권한만 정의해서 사용하라.위치정보를 사용할 때는 국내 위치정보법에 따라 필수 5대항목 고지 등의 의무사항이 있으니 확인해야 한다. (기획적인 내용) 소스코드 보안 : 난독화 여부 Proguard 난독화를 사용해라.기본 Proguard 말고도 난독화를 해주는 보안강화 솔루션 들도 있다. ( 옵션을 잘 확인하.. 2018. 5. 24.
[Kotlin] Kotlin 의 숨겨진 비용 #2 [Kotlin] Kotlin 의 숨겨진 비용 #2 https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-2-324a4a50b70 Local functions -local function 의 limit 은 inline 으로 정의될 수 없다는 것 ( 글 쓴 당시까지는, 현재버전에서 꼭 체크해보라 ).그리고 local function 을 가지고 있는 녀석도 inline 이 될 수 없다.fun someMth(a: Int): Int { fun sumSquare(b: Int) = (a+b) * (a+b) return sumSquare(1) + sumSqaure(2)} local function 은 Function object 로 바뀐다.public .. 2018. 1. 17.
[Kotlin Tutorial] Annotation 과 Reflection #2 [Kotlin Tutorial] Annotation 과 Reflection #2 참조 : Kotlin in action 10.2. Reflection: introspecting Kotlin objects at runtime -Kotlin 에서의 reflection 은 java.lang.reflect package 의 API 들과 kotlin.reflect package 의 API 들을 사용한다.Kotlin 의 reflection 은 Java 에 없는 nullable type 이나 properties 들의 접근을 가능하게 한다. -runtime lib 의 size 를 줄이기 위해, kotlin 의 reflection API 는 kotlin-reflect.jar 라는 별개의 jar 로 pakcage 되어 있.. 2017. 9. 12.
[Effective Java] 표준 예외를 사용하자 [Effective Java] 표준 예외를 사용하자 - 기본 예외를 재사용하면 여러 가지 장점이 있다. 프로그래머들이 이미 익숙해진 내용과 일치하기 때문에 우리 API 를 배우고 사용하기 쉽게 해준다. 생소한 예외를 사용하지 않으므로 코드를 이해하기 쉽다. 메모리 사용도 적게하고 클래스를 메모리로 로딩하는 시간도 줄어든다. - 자주 재사용되는 형태의 exception 은 IllegalArgumentException, IllegalStateException, NullPointerException, UnSupportedOperationException 등이 있다. API, Effective JAVA, IllegalArgumentException, illegalstateexception, NullPointer.. 2017. 2. 24.
[Effective Java] 매개 변수가 유효한지 검사하기. [Effective Java] 매개 변수가 유효한지 검사하기. - 대부분의 메소드와 생성자는 자신들의 매개 변수로 전달될 수 있는 값에 제한을 둔다. 그런 모든 제약은 명확하게 문서화해야 하며, 메소드 몸체 코드의 맨 앞에서 검사하도록 해야 한다. 이것은 에러가 발생한 후 가능한 빨리 검출해야 한다는 일반적 원칙의 특별한 경우이다. 만일 사전 검사에 실패하면 에러의 검출이 불확실하게 되고, 에러가 생긴 소스 코드를 찾기가 더욱 어려워진다. - public 메소드의 경우는 javadoc 의 @throws 태그를 사용해서 매개 변수 값의 제약을 위반했을 때 발생되는 예외를 문서화한다. 일반적으로 IllegalArgumentException, IndexOutOfBoundsException, NullPointe.. 2017. 1. 9.
Long 을 Int 로 casting 할 때 다음을 고려하자. Long 을 Int 로 casting 할 때 다음을 고려하자. -casting 하려는 long 값이 양수, 음수를 모두 사용한다면, 그리고 충분히 큰 값을 사용한다면함부로 int 로 casting 해서는 안된다. - 안전한 down casting 다음과 같이 하면 좋다. public static int safeLongToInt(long l) {if (l Integer.MAX_VALUE) {throw new IllegalArgumentException(l + " cannot be cast to int without changing its value.");}return (int) l;} -값 손실을 고려한다면 IllegalArgumentException 대신 .. 2015. 12. 28.
[java] IllegalArgumentException @ Random.nextInt( int n ) java - IllegalArgumentException @ Random.nextInt( int n ) Random.nextInt( int n ) 는 n 값이 음수일 경우 IllegalArgumentException 을 던진다. Doc 에 제대로 잘 명시가 안 되서 인터넷 검색을 해야 하다니.. ㅠ IllegalArgumentException, Java, negative, negative number, nextint, random, [java] IllegalArgumentException @ Random.nextInt( int n ), 음수 2014. 7. 4.
반응형