# 4.3.17 컬렉션 프로젝션 by ks

Projection은 컬렉션이 하위 표현식의 평가를 유도하고 결과가 새로운 컬렉션이되도록 한다. 프로젝션을 위한 신택스는 .!\[projectionExpression]이다. 예를 들어서 inventor의 리스트를 가졌지만 태어난 도시 리스트를 원한다. 효과적으로 우리는 inventor 리스트에서 모든 엔트리에 'plcaseOfBirth.city'를 평가하기를 원한다. 아래는 프로젝션을 어떻게 사용하는지 보여주는 예제이다.



```java
// returns ['Smiljan', 'Idvor' ]
List placesOfBirth = (List)parser.parseExpression("Members.![placeOfBirth.city]");
```

프로젝션을 드라이브하기 위해 맵을 사용할 수 있고 이 경우에 프로젝션 표현은 맵에(Java의 map.Entiry로서 대표되는) 각 엔트리에 대하여 평가된다. 맵 전체에 프로젝션한 결과는 각 맵 항목에 대한 프로젝션 표현식의 평가로 구성된 목록이다.
