전체 글 85

Spring 본캠프 Day 052 - 4단계 키오스크 완료, 줄을 맞출 수 없다면 글자 수를 맞춘다!

"이럴 수가! 찐 광기 인정합니다!"오후 9시에 퇴실 버튼을 누른 후 꾸미기에 푹 빠졌다. 아직 객체 지향이 감이 잘 안 와서 여러 튜터님께 여쭤보았는데, '추상화'와 '구조화' 연습을 정말 많이 해야겠다는 생각이 들었다. 어떤 종류의 글을 쓰든 틀과 흐름을 잡고 쓰는데, 글쓰기와 같은 코딩을 할 땐 그게 될 듯 말 듯 한다. 이 와중에 연습용 패키지(package)와 제출용 패키지를 번갈아 사용하다가 어느 순간 오류가 나서 파일이 싹 지워졌다! 사실 파일은 노트북에 있으니까 그렇다 쳐도, 꼼꼼히 기록해둔 깃 커밋 메시지(Git commit message)가 통으로 날아간 줄 알고 냅다 튜터님께 달려갔다. 10분 동안 천국과 지옥을 오갔다.오늘은 점심 때 10분 운동만 하고 남은 시간은 오롯이 코딩에 쏟..

4단계: "get() 메서드에 가장 적절한 인덱스(index)는?"

[문제]package com.example.kiosk.level4;// 메인(main)import java.util.*;public class KioskLvFour { public static void main(String[] args) { System.out.println(); System.out.println("[MAIN MENU]"); List allMenus = new ArrayList(); Menu menuBurger = new Menu("Burgers", new ArrayList()); Menu menuDrink = new Menu("Drinks", new ArrayList()); Menu menuSide = ne..

Spring 본캠프 Day 051 - 리스트에 싹이 나서 잎이 나서 리스트! 무한 굴레!

4단계 키오스크는 마치 열어도 열어도 계속 나오는 마트료시카 인형 같았다.MenuItem 클래스에 도달할 때까지 계속 리스트(List)가 나오니까 정신이 혼미해졌다. 원래는 오늘 5단계 키오스크 과제까지 마치려고 했으나, 너무 헷갈려서 4단계 키오스크 과제에 시간을 더 쏟기로 했다. 딱 한 단계만 높아졌을 뿐인데 난도 차이가 얼마나 심한지는 깃허브(GitHub)만 봐도 알 수 있었다.오늘 4단계 키오스크를 만들면서 보낸 깃 커밋 메시지(Git commit message) 수가 어제보다 두 배 넘게 더 많았다. '일단 눌러보자'라는 심산으로 이런 메서드(method)도 써보고 저런 메서드도 써보면서 틈틈이 기록했더니 어제보다 잔디 빛깔이 짙었다. 장바구니 기능은 무슨, 필수 과제만이라도 잘 하자고 목표를 ..

Spring 본캠프 Day 050 - 3단계 키오스크 완료, 깃모지(Gitmoji) 🔧 vs 🎨, 깃모지(Gitmoji) 🚀 vs ✨, 내일은 꼭 4단계 키오스크 끝낸다!

[인용 및 참고 출처]1. 사전: "readability", " elegant", " clean up", "authentication", " fine-tuning ", "tooltip", 네이버 영어사전, 네이버 영어사전 (2024.11.25)2. 구글 검색: 네이버 블로그, "nice-to-have 의미", must-have vs nice-to-have, (2024.11.25) '키오스크에 장바구니 기능을 넣고 싶다.' '메뉴판이 줄 맞춰져서 출력되면 좋겠다.' '뒤로 가기 기능도 할 수 있으면 해볼까?' 자바(Java) 공부가 절대 쉽지 않지만, 과제를 하는 내내 왜 해야 하는지 이해가 간다. 어떤 기능을 넣고 싶으면 방법을 알아야 하니까 자연스레 공부한다. 오늘은 3단계 키오스크 만들기를 마쳐서 목..

3단계: "Variable 'menuItems' initializer 'new ArrayList<>()' is redundant"

[인용 및 참고 자료 출처]1. 사전: "redundant", 네이버 영어사전, 네이버 영어사전, (2024.11.25) [문제] (링크: 첫 번째 노란 경고 해결 과정)package com.example.kiosk.level3;import java.util.*;// Kiosk 클래스public class Kiosk { Scanner sc = new Scanner(System.in); List menuItems = new ArrayList(); // [문제] 위의 코드 한 줄에서 노란 전구가 깜빡였다. public Kiosk(List menuItems) { this.menuItems = menuItems; } public void start() { ..

3단계: "Field can be converted to a local variable"

[문제]package com.example.kiosk.level3;// Kiosk 클래스import java.util.*;public class Kiosk { Scanner sc = new Scanner(System.in); List menuItems = new ArrayList(); private int index; // [문제] 위의 코드 두 줄에서 노란 전구가 깜빡였다. public Kiosk(List menuItems) { this.menuItems = menuItems; } public void start() { for (index = 0; index = 5 || index == 0) { System.out..

3단계: "아이고, 믿는 sout에 발등 찍힌다더니!"

[문제]package com.example.kiosk.level3;import java.util.*;public class Kiosk { Scanner sc = new Scanner(System.in); List menuItems; public Kiosk(List menuItems) { this.menuItems = menuItems; } public void start() { int index; for (index = 0; index = 5 || index == 0) { System.out.println("메뉴 번호 외에 다른 숫자를 입력했습니다. 프로그램을 종료합니다."); break..

Spring 본캠프 Day 049 - 밀린 트러블슈팅 완료, 3단계 키오스크와 씨름 중

오늘까지 문제를 풀어서 음양 더하기까지 매일매일 자바(Java) 문제를 푼 사람이 되긴 했지만, 그렇게 후련하진 않다. 문제의 출제 의도조차 파악하지 못해서 구글링 후 답안을 보고 따라 쓰기 일쑤였기 때문이다. 어제 친구를 만나기 전에 키오스크 2단계를 마쳐서 망정이었지, 하마터면 오늘도 속으로 통곡하면서 코드를 붙잡을 뻔했다.그냥 USB 들고 다니면 안 되냐며 좌절한 날이 무색하게 깃(Git)과 깃허브(GitHub)를 아주 요긴하게 쓰는 중이다. 오늘 static을 어떻게 사용했는지 적어야 했는데 커밋 메시지(commit message)를 틈틈이 올려둔 덕분에 그 당시에 남겨둔 주석까지 모두 확인할 수 있었다. 이게 바로 깃(git)며드는 건가?이런 얘기를 들을 때마다 사실 '내가 잘하고 있구나'라는 ..

24.11.22(금) "1111 말고 1234 출력하기 by 매개변수" (2단계 키오스크)

package com.example.kiosk.level2;// [1/2] MenuItem 클래스 수정하기public class MenuItem { private String name; private double price; private String description; // [수정 전] 변수 선언: public int menuNum; // [수정 후] 사용하지 않기 때문에 삭제 public MenuItem(String name, double price, String description) { this.name = name; this.price = price; this.description = description; } ..

24.11.22(금) "1111 말고 1234 출력하기 by static" (2단계 키오스크)

package com.example.kiosk.level2;public class MenuItem { /* [멤버 변수] [a] 객체로 생성될 때 메모리에 저장된다. [b] 객체마다 주솟값이 다르다. */ private String name; private double price; private String description; public int menuNUm; // [수정 전] public int menuNUm=1; // [수정 후] public int menuNum; /* [정적 변수] [a] 멤버 변수와 달리 무조건 한 군데에만 저장된다. [b] 코드가 실행될 때 메모리에 저장되고 프로그램이 종료될 때만 삭제된다...