키오스크 만들기 구현 중 어려웠던 부분

김현찬·2025년 5월 1일

자잘자잘한 문제는 있었으나, 곧바로 해결 할 수 있는 문제들이었어서, 크게 트러블슈팅이라 할만한 내용이 아니라 판단되어 따로 이미지나 내용에 관하여 정리해두지 않았다.

그 중 기억에 남는 부분을 추려서 작성해보고자 한다.

1단계의 경우 본래 의도했던대로 손쉽게 구현하여 따로 애로사항이 존재하지 않았다.

기억에 남는 첫 번째 문제

2단계의 경우 기억에 남는 부분은 메뉴를 리스트에 담아서 관리해야 했는데, 메뉴 리스트를 출력할 때, 출력문을 직접 작성해야하는 번거로움이 있었다. 지금이야 메뉴가 네 가지 뿐이라 큰 문제는 아니었지만, 만약 메뉴의 수가 기하급수적으로 늘어날경우 일일이 작성해야 한다는 번거로움을 감수하기는 쉽지 않다. 이 부분을 개선하고 싶었고, 다음과 같이 개선할 수 있었다.

반복문을 리스트의 크기만큼 반복시키고, .get의 인덱스 값으로 i를 주어 리스트에 담긴 모든 메뉴를 출력할 수 있게끔 수정하여 해결했다.

두 번째

3단계의 경우 Kiosk클래스를 생성하여 프로그램을 관리하는것이 목적이었다. 분명 Thread에 관해 학습하며 관련해 사용할 수있는 인터페이스가 있다는것을 알고 있었는데, 그 인터페이스의 명칭이 기억나지 않아서, 강의 내용을 다시 찾아보아서 해결했다.

해당 인터페이스의 이름은 Runnable이었다.

세 번째

도전 기능 부분에서 장바구니 기능을 추가하기 위해, userSelect클래스를 생성하고, MenuItem클래스에서 인스턴스화 한 뒤, 마찬가지로 userSelect클래스에서 MenuItem클래스를 인스턴스화하여, 상호작용 할 수 있도록 작성하려 했었는데, 예상치 못 한 오류가 발생했다.
오류 문구는 NullPointException이었고, 이를 토대로 추론해보니 값이 비어있는 객체를 계속 호출하는것이 원인이었다.

이 때 문제 해결에 대해 도통 감이 오지 않아서, userSelect클래스를 없애고, MenuItem클래스에 장바구니 기능을 생성하는 것으로 일단 해결했다.

이 부분에 대해서는 추가적인 학습이 필요할 것 같다.

0개의 댓글