목록분류 전체보기 (385)
만족
위의 Object를 read한 후, 그것을 write하고 다시 read하려고 할 때 발생한 예외이다. 신기한 것은 처음 read했을 때는 문제가 발생하지 않고, 그 데이터를 write한 다음, 다시 read했을때만 오류가 발생한다. W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.math.RoundingMode.ordinal()' on a null object reference at java.text.DecimalFormat.convertRoundingMode(DecimalFormat.java:4129) at java.text.DecimalFormat.readObject(DecimalFormat..
https://support.google.com/googleplay/android-developer/answer/10632485 2021년에 적용되는 Google Play 서비스 수수료 변경사항 - Play Console 고객센터 도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요 support.google.com 위 링크에서 자세히 볼 수 있다. 위 내용을 요약할 것이다. 등록방법 15%의 서비스 수수료 등급에 공식적으로 등록하려면 다음 요건을 충족해야 합니다. 결제 프로필이 있어야 합니다. 현재 사용 중인 개발자 계정이 기본 개발자 계정인 계정 그룹을 만들고 연결된 개발자 계정(ADA)이 있는지 Google에 알립니다. 15% 서비스 수수료 등급에 관한 서비스 약관을 수락합니다. 15% 서비..
어떤 이미지의 색상을 변경해서 여러가지로 사용하고 싶을 때, 직접 각각의 색상들로 변경해서 여러 개의 drawable 파일로 만들 수도 있지만, 이는 매우 번거롭고, 변경사항에 유연하지 못하다. 따라서 tint라는 것을 사용해 여러 색상을 덧씌울 수 있는데, 이에 대해 알아보자. xml에서 tint 적용하기 android:tint로 적용할 수 있다. 요즘은 app:tint로 변경하라는 문구가 뜨는데, 아직은 둘 중 뭘로 해도 빌드는 잘 된다. 주의할 점은 이 방법으로는 벡터 이미지만 가능하다는 것이다. Java/Kotlin에서 tint적용하기 벡터 이미지와 비트맵 이미지에 색상을 입하는 방법이 다르다. 먼저 벡터 이미지에 색상을 덧씌워보자. imageView.setColorFilter(resources...
데이터베이스의 성능을 좌우하는 주요 요소인 인덱스에 대해 알아보자. 데이터베이스의 크기가 충분히 크지 않을 때(테이블 하나에 10000개정도?)는 인덱스를 걸지 않아도 딱히 눈에 띌만한 성능 저하가 나타나지는 않지만 10만개, 100만개처럼 늘어나다보면 문제가 두드러진다. 예를 들어, 위 쿼리 결과는 800만개의 행이 저장된 테이블에 대해 무지성 쿼리를 날린 결과인데, 실행 시간이 5초나 걸렸다. 엥? 5초면 괜찮은거 아니냐? 할 수도 있는데, 우리가 데이터베이스를 주로 사용하는 환경은 단일 사용자가 아닌 다중 사용자 대상이므로 여러 명의 사용자가 저런 쿼리를 날리게 되면 걸리는 시간은 더욱 늘어난다. 게다가, 느리기만 하면 그나마 다행이지... 컴퓨팅 자원도 엄청나게 소모한다. https://satis..
Real-Time Scheduling 정해진 시간 안에 주어진 기능이 제대로 동작하게 하는 스케쥴링 방식. Real-Time이 Super-Fast를 의미하는 것은 아니다. Real-Time Scheduling: Types Hard Real-Time 실행 시간이 정해진 Deadline을 넘어서면 치명적인 문제가 발생한다. 예를 들어 자동차 자율 주행 시스템이나, 원자로 감시 시스템 처럼 감지와 대응이 늦어질 경우 큰 사고로 이어질 수 있는 분야에 적용되는 기법이다. Soft Real-Time 실행 시간이 정해진 Deadline을 넘어서면 시스템의 품질이 하락하는 경우. (치명적인 사고를 발생시키지는 않음) 예를 들어, 축구 실시간 중계 방송에서 실행 시간이 Deadline을 넘어서면 buffering이나 ..
인터럽트가 발생할 경우 다른 프로세스들을 정지시킨 채로 인터럽트 핸들러가 우선적으로 실행되며 이 인터럽트 핸들러는 non-preemptive(다른 프로세스가 선점할 수 없음)하며, 다른 프로세스, 심지어 다른 인터럽트 핸들러들 까지도 현재 인터럽트 핸들러가 끝나기 전까지는 실행되지 않는다. 인터럽트 핸들러에서 실행하는 작업 중, 중요성이 비교적 낮고 시간이 오래 걸리는 작업에 대해 시스템 반응성을 최대한 보전하면서 진행하려면 어떻게 해야 할까? 중요도가 높은 것은 Top Half(즉시 한번에 처리), 그렇지 않은 것은 Bottom Half(여유가 될 때 까지 연기)로 이관하여 Interrupt Handler의 동작을 쪼갤 수 있다. Kinds of Bottom Halves Bottom Half와 관련된 ..
요즘 대부분의 컴퓨터가 멀티코어 환경인 만큼 프로그램 개발 시 발생하는 동기화 문제에 대해 얼마나 성능 감소를 완화시킬 수 있을지가 매우 중요하다. 실제로 우리가 동일한 성능을 가진 코어가 있을 때, 1코어 CPU와 2코어 CPU를 비교하면 2코어 CPU의 성능이 2배 빠를 것으로 기대하지만, 실제로 차이는 그보다 훨씬 적다. 코어 갯수가 늘어날 수록 동기화 문제가 점점 복잡해지고 그에 따라 Overhead가 커지기 때문인데, 오늘은 이런 동기화 성능 감소치를 비약적으로 낮춘 RCU에 대해 알아볼 것이다. 문제 어떤 문자열 포인터가 있다고 해 보자. 이 문자열 포인터에 N개의 스레드가 접근해 Read하려고 하고 M개의 스레드가 접근해 Write하려고 하는 상황이다. N개의 스레드가 Read하는 도중 1개..
Interrupt란? 비동기적으로 하드웨어 신호를 발생시켜 장치가 프로세서의 주목을 요청하는 것 I/O 장치와 프로세서 간의 속도 차이로 인해 프로세서가 I/O 작업을 요청하고, I/O 디바이스가 작업이 완료되었을 때 그것을 프로세서에게 알리는 것 역시 인터럽트이다. 이러한 인터럽트는 모든 종류에 대해 핸들링되는 것은 아니다. 실제로 인터럽트가 발생하더라도, 인터럽트 핸들러가 없는 인터럽트는 아무런 일도 일어나지 않는다. IRQ (Interrupt ReQuest) 그렇다면 OS는 인터럽트의 종류를 어떻게 구별할 수 있을까? (HDD가 발생시킨 인터럽트와 cpu timer가 발생시킨 인터럽트를 어떻게 구분하는가?) ubuntu에서는 /proc/interrupts에 인터럽트 정보를 기술한 파일이 존재하는데,..