기존 scala로 된 프로젝트를 파악하던 중 다음과 같은 코드를 보고 with 키워드가 헷갈리기 시작했다. val mapper = new ObjectMapper() with ScalaObjectMapper 그래서 필자와 같이 scala와 친숙해 지려고 노력하는 분들을 위해 짧게 with 키워드를 짧게 정리해 보고자 한다. scala 책을 살펴보면 with 키워드가 처음 나오는 부분은 trait가 아닐까 싶다. trait는 캡슐화된 메소드와 필드 정의를 재사용하는데 사용된다. 클래스 상속도 재사용이 가능하지만 하나의 부모 클래스만 가져야 한다는 부분이 다르다. trait는 믹스인을 통해 여러개의 trait를 조합할 수 있다. 믹스인을 할 때 사용하는 키워드가 with이다. 그럼 실제 사례를 들어보자. 먼저..