최신 글
- [Android] Dalvik & ART 1. Compiler vs Interpreter Compiler 언어(대표적으로 C, C++ 등) Runtime 전에 미리 하드웨어 플랫폼 별로 적합한 Machine Code로 해석해 두었다고, Runtime시 별도 처리 없이 실행 Interpreter 언어(대표적으로 Script 언어) Runtime에 해석과 실행을 동시에 한다. Compiler 언어는 빠른 실행 속도라는 이점을 얻는 대신, Machine Code의 플랫폼 종속성과 디스크 공간 활용이 단점이자 비용이 된다. Interpreter 언어는 플랫.. 더보기
- [Algorithms] FizzBuzz Problem 1 ~ n까지의 숫자 중 3의 배수이면 Fizz 5의 배수이면 Buzz 15의 배수이면 FizzBuzz 나머지는 해당 숫자 Input : Int Output : String Solution(kotlin 기준) Solution 1 1234567891011121314151617181920212223 fun fizzBuzz(n: Int): String { var result = "" for(i in 1..n) { var fizzBuzz = "" if(i % 3 == 0) { fizzBuzz += "fizz" } if(i % 5 == 0) { fizzBuzz += "buzz" } if(fizzBuzz.isEmpty()) { fizzBuzz =.. 더보기
-
[OS] Process VS Thread [OS] Process VS Thread 프로세스(Process) 운영체제(OS)로부터 자원을 할당 받는 작업의 단위 Code, Data, Stack, Heap의 구조로 되어있는 독립된 메모리 영역을 할당 받음 리소스(Resource)와 쓰레드(Thread)로 구성 모든 프로세스는 하나 이상의 쓰레드(메인 쓰레드)를 가지고 있음 프로세스 상태 생성(Create) : 프로세스가 생성되는 중 실행(Running) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있음 준비(Ready) :.. 더보기
-
[OS] DeadLock What is DeadLock? 교착상태라고 하는 DeadLock은 두 개 이상의 프로세스(혹은 쓰레드)가 서로 끝나기를 기다리는 상태, 보충하자면 대기 상태로 들어간 프로세스들이 실행 상태로 변경 될 수 없을 경우 선생님이 철수랑 영희한테 청소를 시켰다. 철수는 청소도구함에서 빗자루를 챙기고, 영희는 쓰레받기를 챙겼다. 이제 청소를 시작하자. 철수가 빗자루질을 하고 그걸 담으려고 하는데 쓰레받기가 없다. 영희가 다 쓰길 기다려.. 더보기
Android
[Android] Dalvik & ART
1. Compiler vs Interpreter Compiler 언어(대표적으로 C, C++ 등) Runtime 전에 미리 하드웨어 플랫폼 별로 적합한 Machine Code로 해석해 두었다고, Runtime시 별도 처리 없이 실행 Interpreter 언어(대표적으로 Script 언어) Runtime에 해석과 실행을 동시에 한다. Compiler 언어는 빠른 실행 속도라는 이점을 얻는 대신, Machine Code의 플랫폼 종속성과 디스크 공간 활용이 단점이자 비용이 된다. Interpreter 언어는 플랫..
더보기
Android
[Android] Context
[Android] Context What is Context? Application 환경에 대한 전역 정보를 접근하기 위한 인터페이스 추상 클래스이며 실제 구현은 Android 시스템에 의해 제공됨 Context를 통해 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있음 Activity 실행, Intent Broadcasting, Intent수신 등과 같은 응용 프로그램 수준의 작업을 수행하기 위한 API를 호출 What is Role of Context? 어플리케이션과 관련된 정보에 접근하거나..
더보기-
안드로이드 프로그래밍 Next Step(일부 공개) [안드로이드 프로그래밍 Next Step] Chapter 8. Broadcast Receiver Chapter 8. Broadcast Receiver Broadcast Receiver는 Observer Pattern을 안드로이드에서 구현한 방식이다. Observer Pattern에서는 일대다 관계에서 직접 호출하지 않고, 인터페이스를 통한 느슨한 결합을 통해 옵저버를 register/unregister하는 방법을 제공한다. 이 방식은 BroadcastReceiver에서도 마찬가지이다. BroadcastReceiver는 바로 Observer이고, 이벤트는 sendBroadcast()에 전달되는 Intent이다. Context에는 reg.. 더보기
-
안드로이드 프로그래밍 Next Step(일부 공개) [안드로이드 프로그래밍 Next Step] Chapter 5. Activity Chapter 5. Activity Activity는 앱에서 화면의 기본 단위가 되고 가장 많이 쓰이는 컴포넌트이다. Activity는 필요한 만큼만 유지 Activity는 다른 컴포넌트와 마찬가지로 AndroidManifest.xml에 쉽게 선언할 수 있지만 Activity 개수가 많아지면 유지하기도 어려우므로, 불필요하게 많이 만들지 말 것을 권장한다. 내부에 UI 액션이 많고 로직이 많다면 우선 액티비티를 고려하고, 다른 액티비티 위에 팝업 형식으로 뜬다면 cu.. 더보기
Error Notes
- [Android] java.lang.IllegalStateException: Main thread not allowed to quit. [Error]java.lang.IllegalStateException: Main thread not allowed to quit. 1234567891011121314151617181920212223242526272829 09-17 19:09:28.921 6296-6296/com.tistory.gpark.nextstep E/AndroidRuntime: FATAL EXCEPTION: main Process: com.tistory.gpark.nextstep, PID: 6296 java.lang.RuntimeException: Unable to destroy activity {com.tistory.gpark.nextstep/com.tistory.gpark.nextstep.JavaActivity}: java.la.. 더보기
- [Android] java.lang.IllegalStateException: This message is already in use. [Error] java.lang.IllegalStateException: This message is already in use. 12345678910111213141516 09-17 19:01:27.286 5673-5673/com.tistory.gpark.nextstep E/AndroidRuntime: FATAL EXCEPTION: main Process: com.tistory.gpark.nextstep, PID: 5673 java.lang.IllegalStateException: { when=0 what=1 obj=메시지입니다.^^ target=android.os.Handler } This message is already in use. at android.os.MessageQueue.en.. 더보기
- [Android] android.os.FileUriExposedException [Error] android.os.FileUriExposedException: file:///… targetSdkVersion을 24이상으로 했을 때 File 경로를 Uri로 변경하고자 할 때 Uri.parse(File 경로) 를 사용하게 되면 발생하는 에러 FileProvider를 사용하면 해결 Solution [Android] How To APK Install Programmatically :: Gpark's Blog 더보기
- [Android] java.lang.IllegalMonitorStateException: object not locked by thread before notify() [Android] java.lang.IllegalMonitorStateException: object not locked by thread before notify() Problem : lock을 걸지 않았을 때 발생하는 에러(wait도 마찬가지로 발생) java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.foodfly.viewtest/kr.co.foodfly.viewtest.BlogActivity}: java.lang.IllegalMonitorStateException: object not locked by thread before notify() at android.app.Activit.. 더보기