작성
·
52
·
수정됨
답변 2
0
안녕하세요. 노력모아개발자님, 공식 서포터즈 OMG입니다.
강의 코드와의 차이점이 2가지가 보이네요
1) 인덱스 기반의 for문이 아닌 향상된 for문 방식 사용
2) totalCost변수를 메서드 내부가 아닌 외부에 선언
우선 1번의 경우는 문제 없이 잘 동작할 것 같고, 향상된 for문을 사용하신 것도 좋은 선택입니다.
2번의 totalCost변수가 외부에 선언하지 않고 메서드 내부에서
선언하여 현재 출력하는 상품의 전체 가격을 출력하는 것을 고려하시면 좋습니다.
totalCost를 메서드 외부 필드 영역에 선언하셨는데, 이럴 경우 totalCost의 값이 변경될 여지가 있어 의도치 않은 값이 출력될 수 있기 때문입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
노력모아개발자님께서 작성하신 displayItems
메서드에 대한 질문을 주셨네요. 코드를 작성하신 방식은 기본적인 기능에 문제가 없으며, 아이템의 정보를 출력하고 총합을 계산하는 로직으로 구성되어 있습니다.
하지만 몇 가지 고려할 점이 있습니다:
Null 체크: 현재 코드는 items
컬렉션에서 null
이 발견되면 루프를 중단합니다. 만약 null
이 중간에 있을 경우, 이후의 아이템들은 처리되지 않을 수 있습니다. 따라서 null
을 발견하더라도 루프를 이어가도록 수정하거나, null
을 허용하지 않도록 컬렉션을 관리하는 방법이 있습니다.
가독성 및 유지보수:
동시성 문제: items
가 멀티스레드 환경에서 접근될 수 있다면, 동시 접근에 대한 주의가 필요합니다. 이 상황에서는 동기화를 고려해야 합니다.
위의 참고 사항들은 코드의 현재 상태에서는 문제가 아니지만 이후 확장성을 고려할 때 중요한 부분입니다. 코드의 기능이 올바르더라도, 더 쉽고 안전하게 수정할 수 있도록 하는 방법을 찾는 것이 좋습니다.
추가적인 논의와 관련하여, 다른 학습자분들이 아래 질문 게시물에서 비슷한 상황에 대해 논의했던 내용을 참조해 보시는 것도 좋습니다:
- 접근제어자 파트 문제풀이질문 displayItem메서드
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.