-
단위 테스트
- 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것
- 단위 테스트를 작성하면 애플리케이션의 유지보수력이 높아진다.
- 기능의 단위 테스트가 작성되어 있는 경우 리팩토링하기 좋고, 애플리케이션에 문제가 생기는 경우 빠르게 확인할 수 있다.
-
MVC 패턴
- MVC 패턴은 Model, View Controller의 구조로 이루어져있다.
- Model은 도메인이라고 부르는 객체를 의미하며 도메인 로직을 가진다.
- View는 사용자에게 보여지는 영역으로 입력, 출력을 하는 책임을 가진다.
- Controller는 Model와 View의 중재자 역할을 한다. View로 부터 요청을 받아와 Model에게 전달하며, 처리된 요청을 View에게 응답한다.
- 각 컴포넌트의 관심사가 분리되어 있기 때문에, 결합도가 낮다. 그러므로 유지보수가 쉽고 가독성이 좋다.
-
람다
- 람다식이란 메서드를 하나의 식으로 표현한 것이다.
- 람다식은 메서드의 매개변수로 전달될 수 있고, 메서드의 결과로 반환될 수도 있다.
- 람다식을 사용하면 코드를 간결하게 나타낼 수 있고, 함수를 만드는 과정없이 한 번에 처리할 수 있어 생산성이 높아진다.
- 람다식은 익명 클래스와 동등하기 때문에 익명 객체라고도 한다.
-
스트림
- 스트림은 자바 8에서 등장한 컬렉션 처리를 위한 새로운 API 이다.
- 초기 데이터 → 중간 연산 → 최종 연산의 구조로 구성되어 있다.
- 스트림은 간결하고 직관적인 코드를 제공한다.
- 스트림은 원본 객체의 값을 사용하기만 할 뿐 변경하지 않는다. 최종 연산를 통해 원본과 무관한 새로운 객체를 생성한다.
- 스트림의 최종 연산은 지연 연산을 한다. 즉, 스트림 파이프라인에서 최종 연산이 시작될 때서야 비로소 해당 연산이 평가되며 내부에서 최적화가 이루어진다.
-
함수형 인터페이스
- 람다식을 다루기 위한 인터페이스를 함수형 인터페이스라고 한다.
- 함수형 인터페이스에는 단 1개의 추상 메서드만 정의 해야한다. 왜냐하면 람다식과 인터페이스가 1:1로 대응 되어야 하기 때문이다.
- 람다와 동작 파라미터화로 유연하고 간결한 코드를 구현할 수 있다.
-
getter를 왜 사용하지 않아야 할까?
- 자바는 객체지향 프로그래밍 언어이고, 객체지향 프로그래밍은 객체끼리 메세지를 주고 받으며 서로 협력한다.
- getter를 이용해 객체 내부의 값을 꺼내 비즈니스 로직을 수행하는 것은 객체지향 프로그래밍의 목적과 적합하지 않다.
- 다만, getter를 무조건 사용하지 말라는 뜻이 아니다. 순수한 값을 보여주거나 출력하는 경우에는 getter를 사용해야 한다.