inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Lập trình web với Spring Boot: Website làm như thế này đấy!

Thay đổi quyền quản trị - I: Hiện thực danh sách quản trị viên

코드 질문

35

peoplelog212469

1 câu hỏi đã được viết

0

AdminService.java에서

List<MemberDto> admins = memberEntities.stream()
                .map(MemberEntity::toDto)
                .collect(Collectors.toUnmodifiableList());Collectors.toList();

이 코드에서 Collercotrs.toList(); 가 의미가 있는 코드일까요? 줄바꿈도 안되어 있고, 약간 이해가 안되는 문장 같아서 질문드립니다.

rest-api spring-boot jpa spring-security mybatis

Câu trả lời 2

0

blogstudy0222

좋은 질문입니다.

해당 코드의 'Collectors.toList();' 는 사실상 의미가 없는 코드입니다.

원래는 아래와 같이 작성되어 있었을 가능성이 높습니다.

.collect(Collectors.toList());

이후 'Collectors.toUnmodifiableList()'로 변경하는 과정에서 실수로 'Collectors.toList();'가 남아버린 것 같습니다.

죄송합니다.

참고로,

.collect(Collectors.toList())

는 수정 가능한(Mutable) List를 반환하고,

.collect(Collectors.toUnmodifiableList())

는 수정 불가능한(Unmodifiable) List를 반환합니다.

즉, 'toUnmodifiableList()'로 생성된 List는 요소를 추가하거나 삭제하려고 하면 예외가 발생합니다.

해당 예제는 조회 결과를 반환하는 용도이므로 외부에서 실수로 데이터를 변경하지 못하도록 'Collectors.toUnmodifiableList()'를 사용하는 것이 더 적절하다고 판단하여 변경했던 것으로 기억합니다.

질문해주셔서 감사합니다. 강의 코드 작성 과정에서 남아있는 불필요한 코드였습니다.
학습 과정에서 혼동을 드리게 된 점 양해 부탁드립니다.


0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
피플로마님, 질문해주신 코드에 대해 설명드리겠습니다.

코드에서

List<MemberDto> admins = memberEntities.stream()
                .map(MemberEntity::toDto)
                .collect(Collectors.toUnmodifiableList());Collectors.toList();

부분을 보면, Collectors.toUnmodifiableList() 다음에 쓰여진 Collectors.toList();는 의미가 없는 코드입니다. 이미 Collectors.toUnmodifiableList()를 사용하여 Stream 결과를 변경 불가능한 리스트로 수집하고 있습니다. Collectors.toList();는 그 뒤에 독립적으로 사용될 수 없는 상태입니다.

이는 자바 구문 오류를 발생시키며, 원하지 않는 결과를 초래할 수 있습니다. 단지 코드 가독성을 떨어뜨릴 뿐만 아니라 실행 시 에러를 유발할 가능성이 큽니다. 따라서 Collectors.toList(); 부분은 제거하시는 것이 좋습니다.

추가적으로 Spring Boot 관련하여 궁금하신 점이 있다면, 공식 문서를 참조하시거나, 관련 태그로 Stack Overflow에 질문을 남겨보시는 것도 좋은 방법입니다.

도움이 되셨길 바랍니다! 👍

3,4장 이후 미션 제출 질문

0

10

1

setter 사용하지 않기

0

14

1

윈도우에서 Node js를 설치하고 싶어요

0

22

0

안녕하세요 토비님 혹시 완성된 코드의 repository 주소는 없을까요?

0

26

2

자막 오타 제보

0

29

1

rabbitmq에 configservice 연결에 대해 질문있습니다.

0

30

1

Dto와 Entity 사용 관련 질문

0

64

2

application.properties 작성 관련 질문

0

73

2

IDE를 Eclipse로 설지해서 수업을 진행해도 되나요

0

92

2

일정 삭제 시 예외 발생 질문과 이전 질문에 대한 추가질문드립니다.

0

93

2

일정 등록 및 조회 부분 강의 질문입니다.

0

93

2

JWT 기반 인증

1

95

2

properties 파일 질문입니다

0

91

1

인터셉터

0

106

2

DTO 관련

0

117

2

추가 강의 해주실수 있나요?

0

129

1

데이터베이스 테이블이 중복 생성 되는 오류

0

142

3

mysql 설치파일

0

95

2

dto 타입

0

93

1

로그인 후 (인증완료) /member/modify 접근불가

0

108

2

메일 보내는 메서드에서

0

88

1

인터셉터 질문

0

123

2

AOP에 대한 설명

0

195

2

코드

0

170

1