230530_ 개인 과제

hoy_·2023년 5월 30일
0

Today, I Learned

목록 보기
9/36


공포의 빨간 줄

1. 오늘의 일정

  1. 개인 과제(키오스크) 코드 작성

  2. 이렇게 무식하고 비효율적이게 만들라고 낸 과제가 아닐 텐데... 고개를 갸우뚱거리면서도 우선 기능적인 측면에 비중을 두고 코드를 짰다.




2. 배운 내용

  1. Collection을 배우면서도 언제 어느 때 어떤 자료구조를 사용해야 할지 감이 안 왔는데, 직접 사용해 보니 여기서 이런 게 가능하면 좋을 텐데... 하는 생각이 들었다. 메뉴와 가격을 key-value로 다루고 싶어 hashMap을 사용했다가 순서 유지를 위해 LinkedHashMap을 사용했다가... 결국 작업했던 걸 전부 버리고 List로 정착.

  2. 메뉴가 늘어날 때마다 리스트가 추가되면 너무 지저분해 보일 것 같아 처음엔 이름/가격/메뉴로 리스트를 세 개 만들었다. 다만 이 경우엔 반환할 값이 하나 이상이 되어 메서드에선 사용이 불가해졌다. 때문에 메뉴 당 리스트를 할당하는 것으로 변환, 어느 쪽이 정답에 가까울지 몰라서 구현해가며 조절해봐야겠다.




3. 발생한 오류

  1. 출력과 삭제에 용이하도록 주문 리스트를 따로 만드는 방법을 택했는데 상품을 장바구니에 담는 과정이 어려웠다.

해결

public ArrayList returnList(String orderNum) {
        int menuNum = Integer.parseInt(orderNum);
        switch (menuNum) {
            case 1 : return menu1;
            case 2 : return menu2;
            case 3 : return menu3;
            case 4 : return menu4;
            case 5 : return menu5;
            case 6 : return menu6;
        }
        return null;
    }

좋은 방법이 떠오르면 수정하겠다...

입력받은 주문 값을 가지고 조건문을 걸러 해당 리스트를 반환해 add하는 식으로 해결했다. 완벽한 방법이 아닌 걸 알고 있지만 전체 큰 틀부터 문제가 심한 것 같아 이게 한계다. 🤣




4. 앞으로의 나는

  1. Getter/Setter를 이용하면 더 효율적으로 짤 수 있을 것 같다. 제출 마감 시간 전까지 더 간략화할 방법을 찾아봐야겠다.
  2. 주문 목록을 담은 이중 List에서 자료를 꺼내오는 것에 난항을 겪는 중...
    .get()을 두 번 사용하면 될 것 같은데 이유 모를 오류가 난다. 내일 중점적으로 해결할 것!
profile
배우는 사람

0개의 댓글