분류 전체보기
-
[개인프로젝트] 키오스크 만들기 피드백스파르타코딩클럽/자바 개인프로젝트 - Kiosk 2023. 10. 23. 22:39
질문리스트 토핑메뉴 처리의 올바른 방식 주문목록에서 다른 숫자 입력 시 try-catch가 똑바로 되어있는지 0번을 눌렀을때 받아오는 총 판매목록이 HashSet이라 가끔 순서가 바뀐다. 이걸 List로 하면 해결할 수 있을 것 같은데 List로 바꾼다면? 0번을 눌렀을 때 판매된 메뉴를 출력할때 Iterator를 사용했지만 더 좋은 선택지는 없었을까 메뉴를 List에 add할때 메인메뉴에서 했는데 이것을 각 메뉴클래스에서 할 수는 없었나 (첫날 막힌부분) 고쳐야 할점 1. 토핑메뉴 처리의 올바른 방식 private void addOrderMainMenu(ArrayList
-
23/10/23 TIL오늘/Today I.. 2023. 10. 23. 20:44
WHAT I DID TODAY 프로젝트 제출 java.lang 패키지 정리 코드 리뷰 DETAILS 예외처리 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는것 목적 : 프로그램의 비정상 종료를 막고 정상적인 실행상태를 유지하는것 TMI 자바 소스파일에 포함된 모든 문자열 리터럴은 컴파일시에 클래스 파일에 저장되고, 같은 내용은 한번만 저장된다. 클래스파일이 ClassLoader에 의해 메모리에 올라갈 때 클래스파일의 리터럴들이 JVM내에 있는 상수 저장소(Constant Pool)에 저장된다. ANYTHING toString에 대해 저번에는 제대로 이해를 못했었는데 다시 보니 완벽하게는 아니지만 이해가 잘 되었다. 코드 리뷰를 여기 쓸지 프로젝트에 새 글로 쓸지 애매한걸?..
-
[개인프로젝트] 키오스크 만들기 최종스파르타코딩클럽/자바 개인프로젝트 - Kiosk 2023. 10. 23. 14:30
switch (choice) { case 0: System.out.println(menuList.get(choice)); System.out.println(" 주문목록에 담으시겠습니까?"); System.out.println(" 1.네 2.아니오"); int pick = sc.nextInt(); sc.nextLine(); if (pick == 1) { System.out.println("주문목록에 담았습니다."); addOrder(menuList.get(choice), 1); } else { System.out.println("취소되었습니다."); } break; case 1: System.out.println(menuList.get(choice)); System.out.println(" 주문목록에 담으..
-
[개인프로젝트] 키오스크 만들기 2스파르타코딩클럽/자바 개인프로젝트 - Kiosk 2023. 10. 22. 23:36
키오스크 만들기 두번째 기록 1. static 메소드 적절히 변경 2. 총 주문 금액과 판매목록 결산 구현 3. 이에 관한 오류 해결 및 아쉬운 점 4. 중복되는 코드를 제거해보자 이전글에서 이어지는 남은 애로사항 모든 메소드를 static 메소드로 구현했던 것 생각보다 해결은 쉬웠다. 다만 처음에는 main 메소드의 while문 안에 new 생성자를 넣는 바람에 첫 수정 후 실행했을때 주문을 하고 주문목록을 보는데 저장이 되지 않아서 당혹스러웠다. 하지만 반복문 밖으로 new 생성자를 빼냄으로써 해결. 선택사항 3, 4번째 총 주문금액과 판매리스트 결산 총 주문금액은 list가 아닌 int를 사용하여 단순히 합산하는 것으로 구현했다. 판매목록은 Map에 key값으로 저장되어 있으므로 get을 통해 키 ..
-
[개인프로젝트] 키오스크 만들기 1스파르타코딩클럽/자바 개인프로젝트 - Kiosk 2023. 10. 20. 20:53
6일의 기한을 둔 개인프로젝트 첫번째 키오스크 만들기 이다. 프로젝트 시작 첫날 기본적인 내용을 블로그에 기록하지 않아서 어느정도 만들어진 상태부터 시작하게 되었다. 그래서 완성까지 특이사항에 대한 기록, 의문점과 해결방식 위주로 기록을 하려 한다. 첫번째 의문 (해결) 메뉴판이 계속 나타난다? while문으로 무한루프를 돌면서 메뉴를 선택하게 했다. 메뉴 구성방식은 이렇게 구성되어있고 메뉴에 맞는 인덱스를 콘솔창에 입력하면 해당 하위메뉴를 출력해주는 형식으로 구성하였다. 그런데 1을 입력해서 메인메뉴 하위 리스트를 출력하면 위의 메뉴들이 선택한 메뉴 밑에 다시 나타나는 것이다. 원인은 상위메뉴를 표시하는 printMenu() 메소드가 while문의 무한반복 안에 있었기 때문에 계속 무한반복이 되는 것이..
-
23/10/20 Map 그리고 알고리즘오늘/Today I.. 2023. 10. 20. 15:42
WHAT I DID TODAY 개인프로젝트 필수구현 완성! 컬렉션 프레임워크 Map 학습 알고리즘 특강 DETAILS 알고리즘 특강에서 배운 개념 pseude code (슈도 코드) : 사람이 이해하기 쉽도록 프로그래밍 로직, 알고리즘을 자연어나 간단한 기호로 표현한 것 특징 - 인간친화적 : 쉽게 이해가능 - 실제코드와 비슷함 - 로직 설명이 용이 - 프로그래밍 언어가 아님 : 프로그래밍 언어와 자연어의 중간지점이라 비개발자도 이해가능 좋은 프로그램이란? 1. 버그가 없는 프로그램 2. 유지보수, 협업하기 좋은 프로그램 3. 적은 자원을 이용해서 빠른 속도로 수행되는 프로그램 big-O notation : 알고리즘의 효율성을 표기해주는 표기법이다. 빅오 표기법은 알고리즘의 시간복잡도와 공간복잡도를 나타..
-
23/10/19 개인프로젝트 + MVC패턴이란?오늘/Today I.. 2023. 10. 19. 20:52
WHAT I DID TODAY 프로젝트 첫 삽 뜨기 MVC 패턴 간단한 공부 DETAILS 개인 프로젝트 1일차같은 2일차. 간략히 클래스 및 기본 메소드만 작성하였다. MVC패턴에 대해 한마디로 정의해 보자면 관심사의 분리라고 할 수 있다. Separation of Concerens 분리에는 관심사의 분리 변하는 것과 변하지 않는 것의 분리 (Common, Uncommon) 공통 코드 (중복코드)의 분리 세가지가 있다 공통 코드의 분리 - 입력의 분리 컨트롤러는 대부분 입력, 처리, 출력으로 이루어져 있다. 처리와 출력부는 분리되면 중간 객체가 필요하며, 이를 모델 객체라고 한다. 모델객체를 생성하고 결과를 출력하는데 필요한 값들을 여기 저장하고 모델을 출력부에 전달하면 모델에 담긴 값을 읽어서 출력결..
-
23/10/17 객체지향 마무리오늘/Today I.. 2023. 10. 17. 21:10
WHAT I DID TODAY 자바의 정석 7장 DETAILS 왜 print메소드에서 문자열 변수와 문자열을 함께 출력하는 것이 문자열변수.toString과 문자열을 함께 출력하는 것과 같은가? class end{ public String toString() { return "오늘은 이제 끝!"; } } public class dd { public static void main(String[] args) { end e = new end(); System.out.println(e+" 진짜로 끝"); System.out.println(e.toString()+" 정말로?"); } } 실제로 같은 결과가 나온다. "참조변수와 문자열을 결합할 때는 참조변수에 toString을 호출해서 붙임" 이렇다는 것만 알면 ..