본문 바로가기
[Java8 In Action] #16 결론 그리고 자바의 미래 [Java8 In Action] #16 결론 그리고 자바의 미래 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 16.1. 자바 8의 기능 리뷰 -자바 8에 큰 변화가 생긴 이유는 두 가지 추세 때문이다. 한 가지 추세는 멀티코어 프로세서의 파워를 충분히 활용해야 한다는 것. 무어의 법칙에 따라 실리콘 기술이 발전하면서 개별 CPU 코어의 속도가 빨라지고 있다. 즉, 코드를 병렬로 실행해야 더 빠르게 코드를 실행할 수 있다. 데이터 소스를 이용.. 2019. 1. 5.
[Java8 In Action] #13 함수형 관점으로 생각하기 [Java8 In Action] #13 함수형 관점으로 생각하기 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 13.1. 시스템 구현과 유지보수 13.1.1. 공유된 가변 데이터 -변수가 예상하지 못한 값을 갖는 이유는 결국 우리가 유지보수하는 시스템의 여러 메서드에서 공유된 가변 데이터 구조를 읽고 갱신하기 때문이다. -자신을 포함하는 클래스의 상태 그리고 다른 객체의 상태를 바꾸지 않으며 return 문을 통해서만 자신의 결과를 반환하는 .. 2019. 1. 2.
[Java8 In Action] #10 null 대신 Optional [Java8 In Action] #10 null 대신 Optional Java8 In Action 내용을 보며 정리한 내용입니다. 정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다. 위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 10.1. 값이 없는 상황을 어떻게 처리할까? 10.1.1. 보수적인 자세로 NullPointerException 줄이기 10.1.2. null 때문에 발생하는 문제 - 에러의 근원이다. : NullPointerException 은 자바에서 가장 흔히 발생하는 에러다. 코드를 어지럽힌다 : 중첩된 null 확인 코드. 아무 .. 2018. 12. 30.
[Java8 In Action] #6 스트림으로 데이터 수집 [Java8 In Action] #6 스트림으로 데이터 수집 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 6.1. 컬렉터란 무엇인가? -Collector 인터페이스 구현은 스트림 요소를 어떤 식으로 도출할지 지정한다. -다수준(multilevel)로 그룹화를 수행할 때 명령형 프로그래밍과 함수형 프로그래밍의 차이점이 더욱 두드러진다. 6.1.1. 고급 리듀싱 기능을 수행하는 컬렉터 -스트림에 collect 를 호출하면 스트림의 요소에(컬렉터.. 2018. 12. 26.
[Java8 In Action] #5 스트림 활용 [Java8 In Action] #5 스트림 활용 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 5.1. 필터링과 슬라이싱 5.1.1. 프리디케이트로 필터링 -filter 메서드는 프레디케이트(불린을 반환하는 함수)를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환한다. 5.1.2. 고유 요소 필터링 -고유 요소로 이루어진 스트림을 반환하는 distinct 라는 메서드가 있다.고유 여부는 스트림에서 만든 객체의 has.. 2018. 12. 25.
[Effective Objective-C] #28 프로토콜을 이용해 익명 객체를 제공하라. [Effective Objective-C] #28 프로토콜을 이용해 익명 객체를 제공하라. 출처 : Effective Objective-C -프로토콜은 프로토콜을 따르는 객체가 구현할(또는 선택(optional)이 아니라면 반드시 구현해야 할) 메서드들을 정의한다.프로토콜은 API 의 자세한 구현 내용을 숨기기 위해 사용할 수 있는데, 그 방법은 반환하는 객체를 프로토콜을 따르는 평범한 id 타입으로 반환하는 것이다.이 방법을 쓰면 특정 클래스 이름이 API 에 노출되지 않는다.이는 인터페이스 뒤편에 수많은 종류의 클래스가 있고 그 모든 클래스를 명시하고 싶지 않을 때 유용하다.다른 말로 하면 하나의 공통 기초 클래스(common base class) 타입으로 반환해야 하는 API 에서 반환해야 할 클래.. 2017. 9. 12.
[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.
[Effective Objective-C] #23 객체 간 통신에 델리게이트와 데이터 소스 프로토콜을 사용하라 [Effective Objective-C] #23 객체 간 통신에 델리게이트와 데이터 소스 프로토콜을 사용하라 출처 : Effective Objective-C -프로토콜은 자바의 인터페이스와 비슷한 기능이다.오브젝티브-C 는 다중 상속을 지원하지 않는다.그래서 프로토콜이 클래스가 구현해야 할 메서드 집합을 정의할 방법을 제공한다.프로토콜은 대부분 델리게이트 패턴을 구현하기 위해 사용한다. -프로토콜을 배워서 사용하면 코드에 사용 방법을 훌륭하게 문서화 할 수 있어 유지 보수하기 훨씬 쉬운 코드를 만들 수 있다. -카테고리 역시 오브젝티브-C 의 핵심 기능 중 하나다.카테고리는 상속을 사용해야 하는 다른 언어와는 달리 클래스를 상속받지 않고 메서드를 추가할 수 있게 하는 기능이다.이 기능은 오브젝티브-C .. 2017. 9. 3.
[Kotlin Tutorial] Kotlin 의 Type system - Chap6. The Kotlin type system [Kotlin Tutorial] Kotlin 의 Type system - Chap6. The Kotlin type system 출처 : Kotlin in action 6.1. Nullability 6.1.1. Nullable types -Kotlin 은 nullable types 를 지원한다.nullable type 이라는 것은 어떤 variable 이 null 을 가질 수 있는지를 명시하는 것이다. -nullable 하지 않은 곳에 null 을 넣으면 compile error 가 난다.기본 type 은 nullable 하지 않으며, nullable 을 만드려면 type 뒤에 ? 를 붙여주면 된다.어떤 타입이든 뒤에 ? 를 붙여줄 수 있다.fun strLenSafe(s: String?) = … 6.1.2.. 2017. 8. 18.
반응형