
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
'SOMEDAY > JAVA' 카테고리의 다른 글
[스프링 부트 3 백엔드 개발자 되기] p.77 dependencies - lombok 오류 (0) | 2024.08.05 |
---|---|
[SPRING BOOT] 즐겨찾기 추가/해제 코드 변천사 (0) | 2024.07.23 |
[SPRING BOOT] 즐겨찾기 추가 및 해제 (삭제) method 분리 (0) | 2024.07.19 |
[SPRING BOOT] 즐겨찾기 추가 및 해제 (삭제) method 하나로 작성 (0) | 2024.07.18 |
[Thymeleaf] config에 설정된 url 패턴을 타임리프 src 경로로 설정 (0) | 2024.07.10 |