728x90
728x90
스트림이란 무엇인가? 스트림stream은 자바 8 API에 새로 추가된 기능이다. 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있다. 또한 스트림을 이용하면 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다(단순히 stream()을 paralleStream() 로 변경하면..). 스트림의 새로운 기능은 다음과 같은 다양한 이득을 준다는 사실을 기억하자. 선언형으로 코드를 구현할 수 있다. 즉, 선언형 코드와 동작 파라미터화를 활용하면 변하는 요구사항에 쉽게 대응할 수 있다. filter, sorted, map, collect 같은 여러 빌등 블록 연산을 연결해서 복잡한 데이터 처리 파이프라인을 만들 수 있다. 여러 연산을 파이프라인으로 연결해도 여전히 가독성과 명확성이..
익명 클래스로 다양한 동작을 구현할 수 있지만 만족할 만큼 코드가 깔끔하지는 않았다. 깔끔하지 않은 코드는 동작 파라미터를 실전에 적용하는 것을 막는 요소다. 3장에서는 더 깔끔한 코드로 동작을 구현하고 전달하는 자바 8의 새로운 기능인 람다 표현식을 설명한다. 람다 표현식은 익명 클래스처럼 이름이 없는 함수이고 메서드를 인수로 전달할 수 있으므로 일.단.은 익명 클래스와 비슷하다고 생각하자(람다 표현식은 정확히는 조금 특수한 익명클래스이다). 람다란 무엇인가? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 표현할 수 있다. 람다 표현식에는 이름은 없지만 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징을 하나씩 자세히 살펴보자. 익명..
모던 자바 인 액션 책을 작년 이맘때쯤에 우형 없는 우테코에서 진행했었는데, 아이러니하게도 우형 있는 우테코(라임을 맞추고 싶은 욕구가 들끓었다)에서 다시 진행하고있다. 스터디를 할지말지 고민을 했는데 다시 공부하게 된 원인은 아무래도 처음 공부할 때 어려운 챕터들은 스킵했었고, 이해가 안됨에도 억지로 읽고 지나갔던 내용들도 꽤 많았기 때문에 이번 2회차는 확실하게 이해하고 넘어가겠다는 전제를 깔고 스터디에 임하려고한다. 동작 파라미터화 코드 전달하기 시시각각 변하는 사용자 요구사항에 어떻게 대응해야 할까? 엔지니어링적인 비용이 가장 최소화되어야 한다. 새로 추가한 기능은 쉽게 구현할 수 있어야 한다. 장기적인 관점에서 유지보수가 쉬어야 한다. 동작 파라미터화(behavior parameterizatio..