[ TIL ] 키오스크 feedback

정순관·2025년 11월 10일
post-thumbnail

피드백 내용

1.첫번째

스스로 한 자가평가?중에
코드작성한 내가봐도 가독성이 너어어어무 떨어지는 걸 느낀다고 작성하였는데

전공을 했더라도 가독성 좋은 코드는 많이 구현해봐야 실력이 늘어난다.현재 하나의 메소드가 너무 긴 경향이 있다.
최대한 의미를 드러낼 수 있는 메소드로 분리해보려는 노력을 해보면 좋을 거 같다.

보고 무슨 말씀이신지 알아들었다. 왜냐! 나도 고려해보지 않은 것은 아니다.완성하고보니 너무 길다고 느껴 이거를 분리해야하나?
라는 생각을 하긴했으나 처음 짤 때는 그정도로 길게 만들어 질 줄은 예상을 못한 점과 후에는 남은 요구사항들이 아직있으니
먼저 구현을 하고 나중에 시간이 남을 때 리팩토링 과정 중에나 해야겠다. 라고 생각은했지만 사실 그냥 넘긴 느낌이
없지않아 있다..다시 하려니 머리가 아팠고 또 또 어김없이 흐름!! 이래서 흐름이 중요하구나 생각했다. 결국은 흐름!흐름!

2.두번째

Cart 클래스와 Menu클래스에 선언된 객체 중

private MenuItem menuItem;      카트클래스


 private String name; 		메뉴클래스
 private List<MenuItem> menuItems; 

객체화 된 이후에는 변경될 것이 없기때문에 final 처리하면 더 좋을 거 같다

변경될 일 없고 후에 다른 개발자가보더라도 변경하지마! 라고 알려주기 위해 final처리 한다고 생각은 하고있지만
정작 적용하지 못한 걸 피드백보고 깨달았다..!
앞으로는 습관이 되도록 하면 더 좋을 거 같다.
차라리 객체화는 무조건 final처리 한다고 생각하고 일단 그렇게 선언해놓은 다음 필요하면 final를 지우는 방법도 나쁘지않을 거 같다. 습관이 안된다면

3.세번째

MenuItme choiceOrder = 선택한 메뉴 딱 하나

public String getPrintChoicMenu() { // 게터에서 변경(맞는 코드는 아닌 거 같음)
        return name + " | " + "W " + price + " | " + info;

사소한 실수이지만 오타발생

getPrintChoicMenu <-- 이부분 choice 위에코드는 잘 적어놓고 choic라니..
와...이거 보기 전까지만해도 아무생각 없었고 아무런 이상함도 느끼지 못했었음
다른 건 몰라도 오타같은 실수를 하다니..심지어 인텔리제이에서는 초록밑줄로 알려주는데도 몰랐었음
이거는 그냥 잘생각하고 쳐야 나아질 거 같다.
초록밑줄은 = 인텔리제이가 알려주는 오타! 확실히 알았다 이번에

4.네번째

System.out.println(String.format("W " + "%.1f",itemTotal)); // 소수점 1자리 뒤부턴 자르기

%.1f 와 같이 format을 사용한 문자열을 출력하고 싶다면 System.out.printf() 메소드를 쓰면 됩니다

이렇게 간단한 게 있다니..! 이걸 보고 따로 함 알아봤는데
내가 쓴 코드를 말씀해주신 걸로 사용하면

System.out.println(String.format("W " + "%.1f", itemTotal));

이거인데 둘의 차이가 내가 사용한 System.out.println(String.format("W " + "%.1f",itemTotal)); 는 W에 itemTotal 값을 소수점 1자리까지만
저장을 하고 출력을 해주는 과정이고, 말씀해주신 코드는
System.out.printf("W %.1f%n", itemTotal); 직접 포맷한 결과를 바로 출력해줌
즉, 문자열 객체를 따로 만들어서 출력하는 내 방식보다 메모리사용이 조금 더 효율적이라 한다.
printf는 보통 화면 출력용이고
내가 쓴 코드는 보통 로그용에 사용한다고 한다.
이렇게 하나 또 배웠다.

5.다섯번째

이거는 내용을 다 떠와야하기때문에 그리고 코드의 아무부분이나 봐도 느껴지기 때문에 바로 피드백내용

while() 루프 안에 break; continue가 너무 많고 코드 자체도 너무 길어서 흐름을 분석하기가 굉장히 어렵습니다.

맨위에 적었듯이 너무 길고 break; continue문이 너무 많아 분석하기 어렵다고 한다.
100000000% 공감하는 내용이다.
내가 작성한 코드들이지만 너무 힘들었다. 수정하려는 부분을 찾기도 힘들었고 그냥 읽기도 힘들었고 보고있으면
답~답~했다. 이거는 계속 코드작성해보고, 메소드로 분리해보려하고 즉 노력이 필요하기때문에 앞으로는 더 나아져보겠다.

6.여섯번째

 System.out.print(cartList.get(i).getMenuItem().getName() + " | ");
                        System.out.print("W " + cartList.get(i).getMenuItem().getPrice() + " | ");
                        System.out.print(cartList.get(i).getMenuItem().getInfo());
                        System.out.println("    담은 수량 : " + cartList.get(i).getQuantity());
                        itemTotal += cartList.get(i).getMenuItem().getPrice() * cartList.get(i).getQuantity();

이런 코드를 적어놓은 부분이 있는데

cartList.get(i) 라는 항목이 반복적으로 나온다.이런 경우엔 별도 변수에 담아서 사용하는 게 좋다.

이 부분 피드백도 보자마자 오! 그렇겠다! 라고 느꼈다.cartList.get(i)가 나올때마다 값이 바뀌는 게 아니기때문에
어느 변수에 넣어놓고 사용했으면 가독성도 오르고 더 깔끔해보일 거 같다.

7.일곱번째

내가 만들어놓고 사용안하던 메소드가 하나 있는데

  public void printcategories() { // 카테고리출력
        System.out.println(name);
    }

미사용 메소드는 삭제해주세요. 또한 메소드 이름이 자바 명명법을 위반, 카멜케이스로 만들 수 있도록 신경 써주세요.

이거는 보고 아차싶었다.정확히 저거대신 뭘 대용했는지 기억은 안나지만
원래 저걸로 구현하려고 만들었다가 다른 걸로 대체했는데 그 대체하는 코드가 안될수도있잖아? 하는 생각에
일단 냅두고 대체코드가 잘 구현되는지 테스트해보고 지우려했던건데 순수히 그냥 까먹었다.!!!!
그리고 카멜케이스로 하는 거 이건 옛날부터 알고있었지만 저것도 순전히 실수다.심지어 저 메소드를 사용을 안하니 더더욱 몰랐다.
리팩토링과정 거친다고 몇개 수정하고 불필요한 거 지우고 한다했는데도 저걸 놓쳤다니 당연한 얘기지만 난 아직 부족하다..그것도 많이

8.여덟번째

~전체 대부분의 코드 작성 문제점~~~

불필요한 줄 바꿈은 제거해주세요.
들여쓰기가 안 맞습니다.

이 부분이 상당히 많다. 심지어 키오스크 전의 피드백도 저 문장이 상당히 많았다..

이거는 안할라면 안 할 수 있는 지적사항인데 이거를 또 했다..
뭔가 맞춘다고 하면서 하는데 나도모르게 지우고 쓰고 하는 과정에 생기나 보다..
그리고 기능적으로?논리적으로? 다른 코드라서 일부러 5~6줄 내가 보기편하려고 띄워놓은 게 있는데 내가 보기편하려고
그것도 지적됐다.
그래서 하나 더 배웠다. 다르든 뭐든 보통은 한 줄만 줄바꿈 하는것이 흐름파악에 더 좋다고한다..
많아야 2줄이라나..
이건 확실히 배웠습니다.


느낀 점 총평

일단 상당히 뭐가 많았다.
그리고 안할 수 있는 사항이 반이였다는 점..
8번째는 저렇게 써놓아서 그렇지 사실상 반은 저 내용인 거 같다.
신경쓰도록 하겠습니다.
앞으로는..!
오답노트 쓰는 거 마냥 해보니 아~! 이렇게 하면되는구나 하고 느끼는 것도 있고 아..! 이걸 놓쳤네.. 하는 부분도 있고
여러모로 꼭 필요한 시간이였던 거 같다.
처음에는 그냥 내가 혼자 보고 느끼면 될 거 같고 굳이 이렇게 글로 적은 건 시간 아깝지 않나?
라고 생각했는데 확실히 적는 게 더 도움 되는 거 같다고 느꼈다.
기억이 오래 간달까? 읽기만 했으면 그랬군 그랬군 하고 넘어갈 거 같은데
느낀 점?깨달은 점? 쓰면서 한 번 더 생각하게되니까 아깝단 생각은 들지 않는다.
하루쯤은 필요한 시간인 거 같다.사실 하루종일도 아닌데

profile
으앙 ㅠ

0개의 댓글