최근 포스트

Deadlock

6 분 소요

데드락이란, 둘 이상의 쓰레드가 lock 을 획득하기 위해 기다리는데, 이 lock 을 잡고 있는 쓰레드도 똑같이 다른 lock 을 기다리며 서로 블록 상태에 놓이는 것을 말한다. 데드락은 다수의 쓰레드가 같은 lock 을, 동시에, 다른 명령에 의해, 획득하려 할 때 발생할 수 ...

ConcurrentModificationException

1 분 소요

Concurrent는 동시의 라는 뜻이고, Modification은 수정 이란 뜻이다. 즉, 객체의 상태를 동시에 변경하는 것을 허용되지 않는데 변경이 발생하여 상태가 깨지는 경우에 발생하는 예외이다. 1. Multi thread 문제만은 아니다. 동시에 수정이 발생한다라고 ...

자바 Concurrent 패키지

1 분 소요

java.util.concurrent 패키지에 속한 클래스들로 동시성(concurrency) 작업을 위한 클래스들이다. 동시성이란 말에서 알 수 있듯 멀티 쓰레딩 환경에서 유용한 클래스들이다. 대표적으로 Executor, Callable, Future와 같이 비동기 작업을 위...

Callback과 Listener

최대 1 분 소요

Callback은 Listener과 비슷하다. Callback이나 Listener모두 이벤트 처리에 사용하기 때문이다. 하지만 정확히 이 두 가지는 디자인 패턴이 다르다. Callback은 Command Pattern을 따르고 Listener는 Observer Pattern을...

Singleton 패턴

2 분 소요

1. Singleton Pattern 이란 클래스에 대해서 오직 하나의 instance만을 가지는 클래스이다. 설정과 같이 전역변수를 관리하거나 유틸성 기능을 가지는 클래스의 경우 쓸때마다 새로운 instance를 생성할 필요없이 하나의 instance만을 가지고 사용하는 것이...

Iterator 패턴

최대 1 분 소요

1. Iterator 패턴이란 List와 같은 집합 객체들의 내부 표현 구조들을 노출시키지 않고 원소들을 반복자(Iterator)를 이용하여 접근하는 패턴이다.

함수형 프로그래밍

4 분 소요

절차지향, 객체지향처럼 프로그래밍 패러다임의 하나이다.

프레임워크로써의 안드로이드

3 분 소요

목표 OS, Framework, Library 의 차이에 대해서 구분하고 안드로이드 환경에서 앱이 동작하는 기본적인 원리에 대해서 이해한다. 프레임워크와 라이브러리 차이를 설명할 수 있다. new Activity() 코드가 왜 없는지에 대해 설명할 수 있다. Life...

안드로이드 Task

16 분 소요

안드로이드에서 Activity는 서로 다른 앱에서도 사용이 가능하다. 예를 들어 A앱의 A1 Activity는 A앱에서 실행이 가능하지만 B앱에서도 실행이 가능하다. 만약 A앱에서 A1 Activity를 실행하였다면 사용자 입장에서는 이 Activity가 A의 앱인것으로 ...