<aside> 💡 ***이 장의 내용

도메인 전용 언어(DSL)란 무엇이며 어떤 형식으로 구성되는가? DSL을 API에 추가할 때의 장단점 JVM에서 활용할 수 있는 자바 기반 DSL을 깔끔하게 만드는 대안 최신 자바 인터페이스와 클래스에 적용된 DSL에서 배움 효과적인 자바 기반 DSL을 구현하는 패턴과 기법 이들 패턴을 자바 라이브러리와 도구에서 얼마나 흔히 사용하는가?***

</aside>

도메인 전용 언어(DSL)로 애플리케이션의 비즈니스 로직을 표현함으로, 버그와 오해를 미리 방지할 수 있다.

while (block != null) {
    read(block, buffer)
    for (every record in buffer) {
        if (record.calorie < 400) {
            System.out.println (record.name);
        }
    }
    block = buffer.next();
  }
menu.stream()
     .filter(d -> d.getCalories() < 400)
     .map(Dish::getName)
     .forEach(System.out::println)

플루언트 스타일