전체 글 (11) 썸네일형 리스트형 JAVA Stream map().collect() vs map().toList()의 차이 팀원들과 코드리뷰를 하던 도중, stream().map 이후에 .collect해 list로 변환하고 있는것을 발견했다. 나는 평소에 toList()를 사용하고 있었는데, 두 방식 사이에 성능 차이가 있다고 알고 있었기 때문에 리뷰를 진행했다. 하지만 진짜 차이는 toList()는 immutable(불변)객체를 리턴하는것이고, collect()는 mutable 객체를 리턴하는 것이다. 비즈니스 로직 관점에서, repository에서 select한 데이터 리스트를 add하거나 sort해서 변경을 추가하는 것을 막기 위해(다른 팀원들이 해당 서비스를 사용할 때) 사용해볼 수 있을 것 같다. * immutable 객체에 데이터를 넣거나 변경하려고 하면 UnsupportedOperationException이 발생.. FetchType.EAGER, FetchType.LAZY 기존에 알고있듯이 @OneToMany와 같은 어노테이션이 붙어있는 필드 엔티티는 FetchType.LAZY가 기본값이고, @ManyToOne과 같은 어노테이션은 FetchType.EAGER가 기본값이다. FetchType.EAGER가 붙어있는 필드 엔티티는, 해당 필드를 포함한 엔티티를 조회하는 순간 해당 필드 엔티티도 조회하게 된다. @xxToOne 연관관계인 필드 엔티티에는 FetchType.LAZY를 붙이는게 대부분 좋다는 것을 김영한님 강의에서도 들어서 알고는 있었는데, 붙이지 않고 구현한 경우가 생겨 트러블 슈팅을 하게 되었다. 지금 개발중인 비즈니스 로직에는 ChatRoom(채팅방 정보), UserChatRoom(채팅방에 참여하고있는 사용자 정보), Chat(채팅 메세지 정보) 총 세개의 엔티.. 이전 1 2 3 4 다음