람다
-
JAVA 8 핵심만 정리했다JAVA 2019. 2. 22. 22:27
들어가며 JAVA 12 가 나오는 마당에 아직도 어쩔수 없이(?) JAVA 8을 사용하지 못하는 사람들을 위해 JAVA 8 의 기본 사항만 짧게 정리해 봤다. 이런 강좌(?) 같은 글을 처음 써 보기 때문에 확신할 수 는 없지만, 대략, 자바 초보부터 전문가 까지 두루두루 읽고 이해할 수 있게 작성하는 것이 목표다. 새로운 기능 JAVA 8 은 JAVA 의 중요한 릴리즈 버전 중 하나를 말한다. 2014년에 최초 릴리즈 되었으며, 다음의 기능을 지원한다. Lambda expression - 자바에서 Functional 프로그래밍이 일정 부분 가능해졌다. Method reference - 함수를 파라메터로 사용할 수 있다. Default method - 인터페이스에서 기본 메소드를 구현할 수 있다. New..
-
람다 표현식을 사용한 잠금(lock) 관리JAVA 2017. 3. 17. 18:52
잠금(lock)은 병렬로 실행되는 자바 애플리케이션에서 중요한 역할 을 한다. synchronized 는 상호 배재(mutual exclusion)를 제공하기 위해 사용되어온 오래된 키워드이지만, 두가지 단점을 가지고 있다. 메서드가 호출되는 시간을 제어하기 어렵다. - 이것은 데드록(deadlock) 과 라이브록(livelock) 이 발생할 가능성을 증가시킨다.synchronized 를 실제 적용하는 것이 어렵다. - 코드가 thread safety에 있는지를 체크하기 위한 unit test를 어렵게 만든다. synchronized 의 문제를 해결하기 위해 자바5 에서 Lock 인터페이스와 ReentrantLock 등의 구현이 추가 되었다. Lock 인터페이스는 lock, unlock, check 등에..