인프런 커뮤니티 질문&답변

박수환님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문, 주문상품 엔티티 개발

주문 생성 메서드 createOrder() 질문

23.03.07 14:42 작성

·

545

0

==
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
주문 생성 메서드인 createOrder()의 파라미터로 가변인자인 OrderItem...을 사용하셨는데 List를 사용하지 않고 특별히 가변인자를 사용하신 이유가 있을까요?

답변 1

1

David님의 프로필 이미지

2023. 03. 07. 16:28

안녕하세요. 박수환님, 공식 서포터즈 David입니다.

해당 메서드 내에서는 List에서 지원하는 기능을 쓰지 않고 단순히 넘어온 OderItem(들)을 order에 넣는 작업만 합니다. 따라서, 굳이 List를 사용할 필요가 없습니다.

여러 개의 객체를 넘기는 옵션으로 List 대신 Array를 고려할 수 있습니다.

다만, Array 타입으로 고정하게 되면 1개의 OrderItem을 넘길 때에도 Array를 사용해야 합니다. 가변인자의 경우 이런 부분을 해소시켜 줍니다. 1개를 넘길 때는 Array로 넘기지 않아도 되며, 2개를 넘길 때에는 OrderItem1, OrderItem2로 넘길 수 있고, n개를 넘길 때에는 Array에 n개를 담아서, Array 자체를 넘길 수도 있습니다.

이런 맥락에서 List 대신 가변인자를 사용했다고 볼 수 있습니다.

감사합니다.