본문 바로가기
[Java8 In Action] #15 OOP 와 FP 의 조합 : 자바8과 스칼라 비교 [Java8 In Action] #15 OOP 와 FP 의 조합 : 자바8과 스칼라 비교 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! -스칼라는 객체지향과 함수형 프로그래밍을 혼합한 언어다.스칼라는 자바에 비해 많은 기능을 제공한다.스칼라는 복잡한 형식 시스템, 형식 추론, 패턴 매칭, 도메인 전용 언어를 단순하게 정의할 수 있는 구조 등을 제공한다.스칼라 코드에서는 모든 자바 라이브러리를 사용할 수 있다. 자바8과 마찬가지로 스칼라는 컬렉.. 2019. 1. 4.
[Java8 In Action] #7 병렬 데이터 처리와 성능 [Java8 In Action] #7 병렬 데이터 처리와 성능 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 7.1. 병렬 스트림 -병렬 스트림이란 각각의 스레드에서 처리할 수 있도록 스트림 요소를 여러 청크로 분할한 스트림이다. 7.1.1. 순차 스트림을 병렬 스트림으로 변환하기 -순차 스트림에 parallel 메서드를 호출하면 병렬로 처리된다.parallelStream 에 sequential 을 호출하면 순차 스트림이 된다. -병렬 스트림.. 2018. 12. 27.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24 #17 : description 메서드를 구현하라 인스턴스를 설명하는 유용한 문자열을 제공하려면 description 메서드를 구현하라. 객체가 출력하는 내용을 디버깅할 때 좀 더 자세해지길 원한다면 debugDescription 을 구현하라. #18 : 가변 객체보다는 불변 객체를 사용하라 가능하다면 객체를 불변(immutable)으로 만들라. 프로퍼티를 내부에서 설정할 수 있게 하려면 클래스 확장 카테고리로 읽기 전용 속성을 읽기-쓰기로 확장하라. 가변 컬렉션을 프로퍼티로 노출하기보다는 컬렉션에 포함된 객체를 조작할 수 있는 메서드를 제공하라. #19 : 명확하고 .. 2017. 9. 8.
[Kotlin Tutorial] Generics - Chap9. Generics 참조 : Kotlin in action 9.1. Generic type parameters -Java 와 기본적으로 generic 사용법은 동일하다. -Type Inference 는 가능하지만 명시적으로 써야 하는 케이스도 있다.val authors = listOf(“Dmitry”, “Svetlana”) // type inference 가능 val readers : MutableList = mutableListOf() // type inference 불가능, 명시적 선언val readers = mutableListOf() -Kotlin 에서는 raw type generic 을 사용할 수 없다. ( Java 로 치자면 그냥 List ) 9.1.1. Generic functions and properties.. 2017. 9. 5.
[Kotlin Tutorial] Operator overload 와 convention #1 - Chap7. Operator overloading and other conventions [Kotlin Tutorial] Operator overload 와 convention #1 - Chap7. Operator overloading and other conventions 참조 : Kotlin in action -Java 에는 특정 class 에 결속되어 있는 언어적 기능이 있다.예를 들어 Iterable 를 구현하면 for loop 에서 쓸 수 있고, AutoCloseable 을 구현하면 try-with-resources 에서 사용할 수 있다. Kotlin 도 비슷한 것들이 있다.그러나 specific type 에 결속된 것이 아니라 specific name 에 결속되는 기능들이 있다.예를 들어 plus 라는 이름으로 class 에 function 을 추가하면, + operator 를 해.. 2017. 8. 24.
[Kotlin Tutorial] 클래스, objects, 그리고 인터페이스 #2 [Kotlin Tutorial] 클래스, objects, 그리고 인터페이스 #2 참조 : Kotlin in Action 4.3. Compiler-generated methods: Data classes and Class delegation 4.3.1. Universal object methods -Java 에서 == 는 primitive 나 object 의 reference 를 비교하는 것.Kotlin 에서는 == 가 기본비교이다. equals 를 호출해서 비교한다.그럼 Java 에서의 == 는? === 로 대체된다. 4.3.2. Data classes: autogenerated implementations of universal methods -data class Client(val name: Stri.. 2017. 8. 14.
[iOS Study] 연락처 프로그래밍 가이드 in iOS - BaseObjects [iOS Study] 연락처 프로그래밍 가이드 in iOS - BaseObjects https://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/BasicObjects.html#//apple_ref/doc/uid/TP40007744-CH3-SW1 -Address Book database 를 확실히 이용하기 위해서는 4가지 요소를 잘 알아두어야 한다. 1. Address books2. Records3. Single-value properties4. Multi-value properties Address Books -ABAddressBookRef in.. 2017. 6. 19.
[Java Concurrency] 성능, 확장성 #2 [Java Concurrency] 성능, 확장성 #2 11.4. 락 경쟁 줄이기- 작업을 순차적으로 처리하면 확장성(scalability)을 놓치고, 작업을 병렬로 처리하면 컨텍스트 스위칭에서 성능에 악영향을 줄 수 있다. 따라서 락을 놓고 경쟁하는 상황이 벌어지면 순차적으로 처리함과 동시에 컨텍스트 스위칭도 많이 일어나므로 확장성과 성능을 동시에 떨어뜨리는 원인이 된다. 즉 락 경쟁을 줄이면 줄일수록 확장성과 성능을 함께 높일 수 있다. - 병렬 앱에서 확장성에 가장 큰 위협이 되는 존재는 바로 특정 자원을 독점적으로 사용하도록 제한하는 락이다. - 락을 두고 발생하는 경쟁 상황에는 크게 두 가지를 생각해 볼 수 있다. 락을 얼마나 빈번하게 확보하려고 하는지, 한 번 확보하고 나면 해제할 때까지 얼마나.. 2017. 5. 4.
[Java Concurrency] 객체공유 [Java Concurrency] 객체공유 3.1. 가시성 - 일반적으로 특정 변수의 값을 가져갈 때 다른 스레드가 작성한 값을 가져갈 수 있다는 보장도 없고, 심지어는 값을 읽지 못 할 수도 있다. 메모리상의 공유된 변수를 여러 스레드에서 서로 사용할 수 있게 하려면 반드시 동기화 기능을 구현해야 한다. - 재배치(reordering) 현상을 조심해야 한다. 재배치 현상은 특정 메소드의 소스코드가 100% 코딩된 순서로 동작한다는 점을 보장할 수 없다는 점에 기인하는 문제이다. 단일 스레드로 동작할 때는 차이점을 전혀 알아챌 수 없지만 여러 스레드가 동시에 동작하는 경우에는 확연하게 나타날 수 있다. - 동기화 기능을 지정하지 않으면 컴파일러나 프로세서, JVM 등이 프로그램 코드가 실행되는 순서를 임.. 2017. 4. 17.
반응형