본문 바로가기

책 정리/📌Practical 모던 자바3

3,4장 함수형 프로그래밍 & 람다, 인터페이스 🔥3장 함수형 프로그래밍 📌문제상황 - 여행 상품 개발 여행사에서 여행상품을 검색하는 application이 있다고 해보자.위 block은 data를 초기화하는 부분이고, 아랫부분은 도시의 이름에 따라 도시를 검색하는 내용이다. 요구사항이 추가로 들어와서 도시 이름이 아니라, 수도 이름으로 검색을 하고자 한다고 해보자. 그러면 다음과 같이 기능을 추가할 수 있다. 그런데 위와 같이 설계하면 다음과 같은 문제가 생긴다. 1. 조건에 따라 유사한 메서드가 계속해서 추가되는 구조다. - if() {~~~} else if () {~~~~} else if .... if 절이 조건 수에 따라 늘어난다. 2. 클래스의 API가 너무 자주 바뀐다. 그래서 해결책으로 아래와 같이 조건절에 인터페이스를 둘 수 있다. se.. 2021. 11. 1.
2장 인터페이스 📌 인터페이스에 대한 변화 자바 아키텍쳐들에 java 8에서 함수형 프로그래밍이나 람다 등과 같은 새로운 기능들이 들어오면서, 인터페이스에 대한 변화가 생겼다. 인터페이스에 대한 변경은 java 7에서 시작됐으며, java 8에서 대대적으로 바뀌었다. 인터페이스의 default 메서드는 java 8에서 추가됐다. 📌 interface 사용시 문제점 인터페이스는 명세의 역할을 하므로 해당 인터페이스를 상속받은 구현체는 해당 인터페이스의 모든 메서드를 구현해야 한다. 위의 사항은 인터페이스의 장점이자, 동시에 단점이기도 하다. 왜냐하면 한번 배포된 인터페이스는 수정이 어려워지기 때문이다. 만약 배포된 인터페이스에 기능을 추가해야 하는 상황이 있다고 해보자. 그러면 아래와 같은 문제가 생길 수 있다. 1. 해.. 2021. 10. 30.
1장 java 버전별 변화 📌 알아두면 좋은 점 Java 버전 6부터 JSE ( Java Standard Edition ) 이라는 이름을 사용한다 오라클은 버전 9부터 6개월에 한 번씩 신규 자바 버전을 발표하겠다고 밝혔다. 오라클은 해당 버전에 대해 새로운 버전이 나오기 전까지만 버그 패치 등을 지원한다. 버전에 대한 패치 기간이 6개월이므로, 사실상 6개월만 지원한다는 것이다. 특정 버전에 대해서는 LTS ( Long Term Support ) 버전으로 발표해서 장기간 패치를 지원한다. 현재의 LTS 버전은 java 11 이며, 다음 LTS 버전은 3년 뒤인 java 23이 될 예정이다. 📌 Java 5 가장 큰 변화가 있던 패치이다. 제네릭추가 - ClassCastException을 Compile time에 잡아낼 수 있다... 2021. 10. 27.