Java 8 Lambda를 이용한 Execute around pattern #2 - lock 관리 실행 어라운드 패턴(Execute around pattern)에 대한 두번째 예시 입니다. 먼저 1번글에서는 resource의 명시적인 해제시 해체할 수 있는 틀(try-catch-with-resource)를 만들어 넣고 내부에 인자로 실제 동작해야 할 구문을 넣는 형태를 얘기했었습니다.이때 인자는 당연히 functional interface 입니다. 같은 방법으로 이번에는 lock을 사용하는 방법을 알아봅니다.잠금(lock)의 관리lock은 왜 써야 할까요?저는 사실 synchronized만 쓴 터라 lock의 개념이 무척 궁금했더랍니다.Java5부터 추가된 개념으로 동기화를 좀더 디테일?? 하게 관리하기 위해서 사용합니다. 예를 들면 하나의 함수 블럭을 넘어간다던가, 무작정 lock을 대기하는게 아니.. 개발이야기/Java 7년 전
Java 8 Lambda를 이용한 Execute around pattern #1 - resource 관리 lambda를 접하고 나면 이를 활용하는 방법으로 execute around pattern이란 용어가 나옵니다. 이번에는 가장 기본이 되는 Execute around pattern에 대해서 얘기합니다. Execute Around Pattern 이란??어떤한 작업을 할 때 준비 -> 실행 -> 정리의 역할이 구분되어 있는 코드들이 있습니다. 준비와 정리는 틀처럼 정해져 있고 실행부분만 바뀌는 코드의 형태들을 실행 어라운드 패턴이라고 합니다 어떤 동작을 할지 코드내에서 구현하는것이 아니라, 공통적으로 사용되는 코드를 template처럼 만들어 두고, 변경되는 부분은 호출(caller)하는 곳에서 구현해서 넘겨줍니다. 아래 예제에서는 파일 IO로 설명합니다. 파일IO를 쓰려면 스트림이나 파일을 열고 원하는 내.. 개발이야기/Java 7년 전
[Kotlin] 코틀린이란? 이 글은 Kotlin In Action을 참고 하였습니다.더욱 자세한 설명이나 예제는 직접 책을 구매하여 확인 하시기 바랍니다1.2 코틀린의 주요 특성코틀린은 자바가 실행되는 환경에서 자바를 대체할 수 있도록 개발된 언어입니다. 코틀린이 어디서 사용될수 있는지 알아보겠습니다. 서버상의 코드 (특히 웹 어플리케이션의 백엔드)안드로이드의 어플리케이션 사실 이 이외에도 다른 환경에서도 잘 동작합니다.예를 들어 인텔의 멀티엔진을 이용해서 iOS에서도 실행 가능하며, 토네이토FX & 자바 FX를 이용하여 데스크탑 어플리케이션 개발도 가능합니다. 추가적으로 자바스크립트도 코틀린을 컴파일 할 수 있습니다. 1.2.2 정적타입 지정 언어코틀린은 정적 언어 입니다.따라서 컴파일 시점에 모든 객체나 메서드의 타입을 알 수.. 개발이야기/Kotlin 7년 전
Java 8 Lambda Expression - 람다식 #1 Java 8에 있어서 가장 두드러진 부분은 람다의 적용입니다. 따라서 완벽하지는 않지만 그래도 쓸만한 함수형 프로그래밍을 할수가 있게 되었습니다. 이번 포스팅에서는 람다에 대한 기본적인 설명 보다는 왜 람다가 필요한지와 어떤식으로 사용될 수 있는지에 대한 단편적인 예제를 먼저 봅니다. 람다에 대한 기본적인 설명은 #3에서 설명할 예정이며, 어렵지 않으니, 쭈욱 따라 오시면 됩니다. 동작 파라미터화 (Behavior parameterization) 람다를 이용하면 어떤 동작을 Parameter로 만들수가 있습니다. "함수의 인자로 어떤 동작을 하는 함수를 받을 수 있다" 라고 이해하는게더 편할 수 도 있습니다. 이 동작은 함수를 호출하기 전까지는 아직 정해지지 않은 상태이며, 함수를 호출할 때 전달해 준 .. 개발이야기/Java 8년 전