본문 바로가기
Language/JAVA

[JAVA] return 시, 중간 변수 사용에 대한 궁금증

by 아이엠제니 2024. 7. 23.

 


 

 

 

1. 중간 변수 사용


    public List<Image> imageStory(int principleId) {
        List<Image> images = imageRepository.mStory(principleId);
        return images;
    }

클론코딩을 하던 중, 이런 `imageStory` 메소드에 위와 같은 코드를 작성했다.

문득 코드를 작성하다가, `imageRepository.mStory(principleId);`를 List에 담을 필요가 있나?라는 의문이 들었다.

 

 

 

2. 중간 변수 사용 X


    public List<Image> imageStory(int principleId) {
        return imageRepository.mStory(principleId);
    }

어차피 리턴값이 List<Image> 이니, 그냥 그대로 return을 하면 되는 게 아닌가?

왜 List<Image>에 담는 거지?라는 작은 의문.

 

 

 

G 선생님의 도움을 받았다.

위 두 방식은 성능이나 기능적인 차이점은 없다고 한다.

다만 약간의 차이와 코드 스타일상의 고려 사항이 있다고 한다.

 

 

1번의 경우처럼 List<Image>에 담아서, 중간 변수를 사용하면 디버깅 시, 중간 변수 `images`를 확인할 수 있다.

그래서 값이 올바르게 반환되는지 확인하기가 쉽다.

 

@Transactional
public List<Image> imageStory(int principleId) {
    List<Image> images = imageRepository.mStory(principleId);
    // 디버깅 목적으로 중간 변수를 출력
    System.out.println(images);
    return images;
}

위와 같이 System.out.println을 사용해서 확인할 수 있다.

보통은 `log.info`를 사용해서 확인할 수 있을 것 같다.

 

또한 중간 변수를 사용하기 때문에, 이후에 해당 변수에 대한 추가적인 작업을 하거나 로직을 추가할 때 작업하기가 쉽다고 한다.

 

2번의 경우는 코드가 짧고 단순해지기 때문에, 가독성을 높일 수 있다.

한 줄로 리턴하면 확실히 코드가 간결해져서, 깔끔하기는 한 것 같다.

 

 

기능적으로 차이가 없으니, 무엇을 사용해도 크게 상관은 없을 것 같다.

정말 단순히 리턴값만 받아도 된다면, 2번을 사용해도 될 것 같다.

하지만 메소드 안에 작성하는 코드가 많은 경우라면, 1번이 오히려 추후에 유지보수를 위해서 더 낫지 않을까 싶다.

로직 작성하고, 변수명만 교체해 주면 되니, 훨씬 나을 듯.

 

 

 

참고 OpenAi. (2024) ChatGPT (version 3.5)[Large Language model]. https://chat.openai.com

 

 

 

 

 

300x250