Application

    [모던 자바 인 액션 정리] 3장. 람다 표현식

    람다란? 메소드로 전달할 수 있는 익명 함수를 단순화한 것. 람다의 키 포인트 익명 함수 람다는 메소드처럼 특정 클래스에 종속되지 않으므로 함수로가 부른다. 전달 람다 표현식을 메소드 인수로 전달하거나 변수로 저장할 수 있다. 간결성 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. // 기존의 익명 클래스을 이용한 코드 Comparator byWeight = new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()); } } // 람다를 이용한 코드 Comparator byWeight = (a1, a2) -> a1.getWeight().compareTo(a2...

    [모던 자바 인 액션 정리] 2장. 동작 파라미터화 코드

    "소프트웨어의 모든 것은 변한다. 요구사항은 변한다. 설계도 변한다. 비지니스도 변한다. 기술도 변한다. 팀도 변한다. 팀 구성원도 변한다. 변화는 반드시 일어나기 때문에, 문제가 되는 것은 변화가 아니다. 변화를 극복하지 못하는 우리의 무능력이 문제다." - 켄트백 좋은 코드란 "변경하는 요구사항에 효율적으로 대응하는 코드" 임을 되뇌이며 들어갑시당 1. 동작 파라미터화란 (behavior parameterization) 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록 동작 파라미터화를 통해 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다. 도대체 무슨 소리지?? 🙄 다음 예제를 통해 이해해봅시다~ 2. 변화하는 요구사항에 효과적으로 대응하기 사과 리스트에서 녹색 사과만 필터링하는 기능을 추가한..

    [Spring] 생성자 주입을 사용해야 하는 이유

    의존성 주입 방법의 종류 먼저 스프링에서 의존성을 주입하는 방법은 다음과 같이 3가지 방법이 있습니다. 생성자 주입 (Constructor-based dependency injection) Setter 주입 (Setter-based dependency injection) 필드 주입 (Field-based dependency injection) 이 중에서, 생성자 주입 사용이 가장 추천 되는 이유 1. final 선언이 가능합니다 (immutable) 생성자 주입 시, 의존성 주입이 클래스 인스턴스화 중에 시작되므로 final 선언을 할 수 있다. 따라서 객체를 변경이 불가능한 immutable(불변) 하게 할 수 있습니다. 반면에, 필드 주입 혹은 Setter 주입의 경우 final 선언을 할 수 없어,..