본문 바로가기
[Kotlin Tutorial] DSL construction - Chap 11. [Kotlin Tutorial] DSL construction - Chap 11. 참조 : Kotlin in action 11.1. From APIs to DSLs -DSL 을 작성하기 전에 생각해봐야 할 것이 있다. 우리의 (Kotlin?) 궁극적 목표는 가독성과 유지보수성을 최대로 늘리는 것.그것은 곧 좋은 API 를 설계하는 것으로 이어진다. 그렇다면 API 가 clean 하다는 것은 무슨 의미일까?1. 사용자가 읽기 좋은 것. 그것은 name 과 concept 을 잘 잡는 것이다.2. 의미없는 syntax 는 빼고, 최소한의 코드로 code 가 읽기 좋은 것. -Kotlin 에서는 clean API 를 위해서 extension function, infix calls, lambda syntax sh.. 2017. 9. 14.
[Kotlin Tutorial] 클래스, objects, 그리고 인터페이스 #1 - Chap4. Classes, objects, and interfaces [Kotlin Tutorial] 클래스, objects, 그리고 인터페이스 #1 - Chap4. Classes, objects, and interfaces 참조 : Kotlin in Action 4.1. Defining class hierarchies 4.1.1. Interface in Kotlin -Kotlin 의 interface 는 Java8 과 비슷하다.abstract method 를 가질수도 있고, Java8의 default method 도 가질 수 있다. ( Java8 과는 다르게 default keyword 는 필요없다 )단, state 는 여전히 가질 수 없다. ( 실제 variable ) -Kotlin 에서 interface 정의는 아래와 같다.interface Clickable{ fun.. 2017. 8. 11.
[Kotlin Tutorial] 함수 정의하고 호출하기 #1 - Chap 3. Defining and calling functions [Kotlin Tutorial] 함수 정의하고 호출하기 #1 - Chap 3. Defining and calling functions 참조 : Kotlin in Action 3.1. Creating collections in Kotlin -아래와 같이 쉽게 collection 을 만들 수 있다."type”Of 의 form 이다.val hashSet = hashSetOf(1, 7, 53) // mutableval set = setOf(“Gamza”, “Goguma”) // immutable val list = arrayListOf(1, 7, 53) // mutable val map = hashMapOf(1 to “one”, 7 to “seven”, 53 to “fifty-three”) // mutable/.. 2017. 8. 3.
[Java Concurrency] 객체공유 [Java Concurrency] 객체공유 3.1. 가시성 - 일반적으로 특정 변수의 값을 가져갈 때 다른 스레드가 작성한 값을 가져갈 수 있다는 보장도 없고, 심지어는 값을 읽지 못 할 수도 있다. 메모리상의 공유된 변수를 여러 스레드에서 서로 사용할 수 있게 하려면 반드시 동기화 기능을 구현해야 한다. - 재배치(reordering) 현상을 조심해야 한다. 재배치 현상은 특정 메소드의 소스코드가 100% 코딩된 순서로 동작한다는 점을 보장할 수 없다는 점에 기인하는 문제이다. 단일 스레드로 동작할 때는 차이점을 전혀 알아챌 수 없지만 여러 스레드가 동시에 동작하는 경우에는 확연하게 나타날 수 있다. - 동기화 기능을 지정하지 않으면 컴파일러나 프로세서, JVM 등이 프로그램 코드가 실행되는 순서를 임.. 2017. 4. 17.
[Effective Java] static 맴버 클래스를 많이 사용하자. [Effective Java] static 맴버 클래스를 많이 사용하자. - 중첩 클래스(nested class) 혹은 내부 클래스(inner class)는 외곽 클래스(enclosing class)를 지원하는 목적으로만 존재해야 한다. 만일 어떤 중첩 클래스가 일부 다른 분야나 클래스에서도 유용하게 사용된다면 그 클래스는 독립적인 최상위 클래스가 되어야 한다. - 중첩 클래스는 다음 4가지 종류가 있다. static 맴버 클래스 static 이 아닌 맴버 클래스 익명 ( anonymous ) 클래스 지역 ( local ) 클래스 - static 맴버 클래스는 가장 간단한 종류의 중첩 클래스로, 어떤 클래스의 내부에 선언되어 있으며, 그 외곽 클래스의 모든 static 맴버들( private 으로 선언된.. 2016. 11. 17.
병렬 프로그램을 위한 어노테이션 병렬 프로그램을 위한 어노테이션 클래스 어노테이션 - @Immutable, @ThreadSafe, @NotThreadSafe. - @Immutable 어노테이션은 해당 클래스가 불변(immutable) 클래스임을 나타낸다. 자동적으로 @ThreadSafe 이기도 하다. - @NotThreadSafe 어노테이션은 해당 클래스가 스레드 안전성을 확보하지 못하고 있다는 의미이다. 스레드 안전성을 확보했다는 어노테이션을 달지 않은 모든 클래스는 당연하게 @NotThreadSafe 이기 때문에 꼭 사용해야만 하는 것은 아니다. 다만 한눈에 알아볼 수 있도록 하려면 @NotThreadSafe 어노테이션을 달아두는 편이 좋다. - 어노테이션은 상대적으로 방해되는 부분이 적으면서 클래스 사용자나 유지보수 담당자 모두에.. 2015. 7. 20.
[JavaScript/Tutorial] Closure 와 Function.bind 의 사용. Closure와 Function.bind 의 사용 [이전강좌] Scope. var 없이 변수 정의하면? Global variable 접근방법은? Closure Closure 는 Scope 의 확장판으로 이해할 수 있다. Function 에 Parameter 형태로 Variable 을 전달하여, 해당 변수를 Local 화 시키는 것도 Closure이고, Outer scope 접속을 위해 임의의 variable 에 this 를 저장한 후, sub procedure 를 실행하는 형태도 Closure 하고 한다. // 변수 로컬화 closure var localizeFunction = function( localizedIndex ){ return function(){ alert( localizedIndex );.. 2013. 5. 26.
[JavaScript/Tutorial] this 란 무엇인가? this 가 가르키는 건 무엇인가? 주의사항은? this 란 무엇인가? this 가 가르키는 건 무엇인가? 주의사항은? [이전강좌] typeof 사용시의 주의사항, array type 판별코드. this 란 무엇인가? this 키워드는, 해당 function 을 invoke 한 object 를 가르키는 데 사용된다. this 가 가르키는 것은 어떻게 판별하는가? 1. Function.call 이나 Function.apply 를 통해 function call 을 하게 되면, call() 이나 apply() 의 첫번쨰 argument 가 this 가 된다. 만약 Function.call 이나 Function,apply 의 첫번째 argument 로 null 이나 undefined 가 들어왔다면 this는 global object 를 참조한다. 2. 만약 .. 2013. 5. 24.
반응형