강의

멘토링

로드맵

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

Imking님의 프로필 이미지
Imking

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

상품 도메인 개발

테스트 코드 save 함수의 반환값

작성

·

28

0

itemRepository 클래스에서 save() 함수 반환 타입을 item 으로 만들었는데 테스트 코드에서

 

itemRepository.save(item1)
itemRepository.save(item2)

에서 에러가 왜 안나오는 건가요?

Item saveItem1 = itemRepository.save(item1);

이라고 해야 되는거 아닌가요 ?

 

GPT한테 물어봐도
save() 메서드가 원본 인스턴스를 그대로 변형 후 반환하도록 구현돼 있기 때문에, 반환값을 무시해도 되는 것입니다
이라고 하는데 인스턴스를 반환하도록 구현했으면 반환값이 있어야 오류가 안 생긴다고 생각하는데 왜 무시해도 된다는지 잘 모르겠습니다..

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. Imking님.

질문해주신 내용에 대해 설명드리겠습니다.

itemRepository.save(item)와 같은 메서드는 반환값을 제공하지만, 그렇다고 해서 항상 그 반환값을 변수에 저장해야만 하는 것은 아닙니다. 자바에서 반환값을 가진 메서드를 호출할 때, 그 반환값을 사용하지 않더라도 문법적으로 오류가 발생하지 않습니다. 이는 많은 프로그래밍 언어에서 지원하는 일반적인 관행입니다.

itemRepository.save(item) 메서드는 내부적으로 아이템을 저장하고, 저장된 객체를 반환하는 역할을 합니다. 그러나 메서드의 반환값을 반드시 사용해야 할 필요는 없습니다. 객체의 상태를 업데이트하거나 저장하는 작업을 단순히 수행하려는 경우, 반환값을 무시해도 됩니다. 단, 반환값을 무시하면 이후에 저장된 객체의 상태를 확인하거나 수정사항을 가져올 수 없으므로, 이 경우엔 반환값을 잘 활용하는 것이 좋습니다.

비슷한 질문이 아래 링크에 잘 설명되어 있으니 참고하시면 도움이 될 것 같습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Imking님의 프로필 이미지
Imking

작성한 질문수

질문하기