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

조승섭님의 프로필 이미지
조승섭

작성한 질문수

김영한의 실전 자바 - 기본편

문제와 풀이

접근제어자 2번 문제 질문

작성

·

34

·

수정됨

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

image.png

전체 가격 합을 출력하는 부분(26~28번째 줄)에 대한 질문입니다.

강의에서는 해당 부분을 내부에서만 사용되는 메서드를 만들어 호출했는데, 저는 메서드 대신 위 사진에 sum이라는 변수를 private로 선언하여 작성하였습니다.

코드 동작에는 문제가 없는 것으로 확인되는데 이렇게 작성하는 건 지양하는 방법인지 궁금해서 질문합니다!


답변 1

0

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

조승섭님께서 질문하신, displayItems() 메서드 내에서 전체 가격 합을 계산하여 출력하는 것에 대한 방법에 대한 질문이군요.

메서드 내부에서 단순히 sum이라는 변수를 이용하여 합계를 계산하고 출력하는 것은 코드 작성의 관점에서 문제는 아닙니다. 다만, 강의에서 calculateTotalPrice()라는 별도의 메서드를 사용하여 합계를 계산하도록 한 이유는 코드의 가독성과 재사용성을 높이기 위한 설계 원칙에 기반한 것입니다.


  1. 가독성: 메서드를 분리하면 코드의 가독성이 높아집니다. displayItems() 메서드는 출력에만 집중하고 있고, 계산은 별도의 calculateTotalPrice() 메서드가 담당하기에 코드의 명확성이 상승합니다.

  2. 재사용성: 합계를 계산하는 로직을 별도의 메서드로 분리하면, 필요에 따라 다양한 상황에서도 이 메서드를 재사용할 수 있습니다. 예를 들어, 장바구니의 UI를 업데이트하거나 로그를 남길 때 사용하거나 할 수 있습니다.

  3. 유지보수성: 만약 합계 계산 로직이 변경되어야 한다면, 한 곳에서만 수정하면 되기 때문에 유지보수하기가 더 간편합니다.


조승섭님의 방법도 기능상의 문제는 없으나, 위의 사항을 고려하여 설계를 개선하는 것이 코드 품질 향상에 도움이 된다고 생각하시면 좋을 것 같습니다.

관련 내용에 대해 더 살펴보시려면 아래 유사한 질문들을 참고해 보세요:
- 접근제어자 쇼핑카트 문제 질문드립니다.
- 문제와 풀이2 질문이요. (분리-고치는 방법에대해서)

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

조승섭님의 프로필 이미지
조승섭

작성한 질문수

질문하기