2025. 1. 13. 23:41ㆍ개발 회고/TIL
😊오늘 배운 내용
오늘은 계산기 과제 해설 세션 level2까지 공부, 자바 문법강의 4주차, 키오스크 과제 level 2까지 해결했다.
[어떤 문제가 있었는지 + 어떻게 해결하였는지]
1. 키오스크 과제 입출력 형식 지정
키오스크 과제는 콘솔기반 인터페이스로 설계하는 과제이다. 처음에 메뉴를 사용자에게 보여줄 시 다음과 같이 콘솔에 찍히도록 해야한다.
[ SHAKESHACK MENU ]
1. ShackBurger | W 6.9 | 토마토, 양상추, 쉑소스가 토핑된 치즈버거
2. SmokeShack | W 8.9 | 베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거
3. Cheeseburger | W 6.9 | 포테이토 번과 비프패티, 치즈가 토핑된 치즈버거
4. Hamburger | W 5.4 | 비프패티를 기반으로 야채가 들어간 기본버거
0. 종료 | 종료
0 <- // 0을 입력
프로그램을 종료합니다.
버거 이름의 길이가 어떻든 간에 길이별로 공백을 달리하여 정렬해서 출력해주어야 한다.
그럴땐 printf()를 사용해서 출력 형식을 지정해주어야 한다. 나는 아직 println()밖에 사용할 줄 몰랐고 그 외에 출력형식을 지정하는 방법을 몰랐다.
따라서 다음 블로그 글을 참고하였다.
https://bibi6666667.tistory.com/136
[Java] .printf() 사용법 익히기 - 콘솔창 출력 왼쪽정렬, 오른쪽정렬, 간격 맞추기
keep-cool.tistory.com/15 https://althathatha.tistory.com/12 https://three-pleasure.tistory.com/251 세 분의 글을 참고하여 공부했습니다. 감사합니다🙇♀️ System.out.printf() 사용법 익히기 .print();, .println(); 이 아닌 .pr
bibi6666667.tistory.com
//기본 메뉴출력
int index = 1;
System.out.println("[ SHAKESHACK MENU ]");
for (MenuItem item : menuItems) {
System.out.print(index + ". ");
System.out.printf("%-14s |",item.getName());
System.out.printf(" W %-3s | ",item.getPrice());
System.out.print(item.getDescription()+"\n");
index ++;
}
System.out.println("0. 종료 | 종료");
[ SHAKESHACK MENU ]
1. ShackBurger | W 6.9 | 토마토, 양상추, 쉑소스가 토핑된 치즈버거
2. SmokeShack | W 8.9 | 베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거
3. Cheeseburger | W 6.9 | 포테이토 번과 비프패티, 치즈가 토핑된 치즈버거
4. Hamburger | W 5.4 | 비프패티를 기반으로 야채가 들어간 기본버거
0. 종료 | 종료
나는 String 형식으로 출력하고 왼쪽 정렬을 해야했기에 %-숫자s 와 같은 형식으로 출력하였다.
오른쪽 정렬을 하고 싶다면 -기호를 빼고 바로 숫자부터 시작하고
그리고 향상된 for문 말고 직접 인덱스로 접근하는 for문이었다면 굳이 index변수를 선언하지 않고 할 수 있을 것 같다는 생각이 들기는 하다.
2. 계산기 과제 해설 세션에서 얻은 인사이트
계산기 과제 해설 세션을 들으며 생각보다 내가 짠 코드와 많은 부분이 달랐다. 틀렸다...?라고는 말을 못하겠는 부분이지만(어쨌든 기능은 구현했기에) 클린 코드도 아닐 뿐더러 오히려 더 복잡한 내 코드였음을 깨닫게 되는 순간 이었다. 오늘은 시간이 부족해서 다시 못고쳤지만 내일은 다시 해설을 들으며 고쳐보는 시간을 가져야겠다.
3. Generic...?
오늘 자바문법강의 4주차에서는 예외처리와 Generic에 대해서 배웠다.
예외처리는 throws를 이용해 해당 메서드에서 이러한 예외가 발생할 수 있음을 알리고, throw를 이용해 예외를 던진다. 그 후 인스턴스화를 하게 되고 해당 메서드를 사용할 시 try catch finally 구문을 이용해서 예외를 처리해준다.
예외처리는 위처럼 머릿속으로 개념이 이해가 되고 정리가 되었지만 Generic 문법은 타입지정을 안하기 위해서 쓰는 거라면 왜 굳이 이렇게 해야하지...?라는 생각이 먼저 들었다. 물론 지금 드는 이 생각이 틀렸을 것이다. 분명 이유가 있기에 쓰는 것이고 우리가 ArrayList를 선언할때도 너무 자연스럽게 <>를 쓰니 내가 아직 Generic에 대해서 잘 이해하지 못한 것 같다.
3. 개발자 세션에서 얻은 인사이트
해당 세션에서 가장 기억에 남은 부분은 '내가 왜 앞으로 개발자를 해야하는 것인가에 대한 질문을 끊임없이 던져라' 였다. 단순히 돈을 더 벌 수 있는 직장이라서, 편한 곳에서 근무할 수 있는 직장이라서 와 같은 이유가 질문의 답이 된다면 나는 그저 개발자가 되고 싶어하는 '아무나'가 될것이다. 그래서 끊임없이 나에게 질문해보고 그 답을 생각해보라고 조언해주셨다. 그리고 나라는 사람에 대해서 내가 살아온 인생을 정리해보고 내가 그동안 어떻게 살아왔는지 그 속에서 역경이 있을 때 어떻게 대처하였는지에 정리해본다면 충분히 답을 만들 수 있을 것이라했다.
너무 어렵게 생각하지 말고 그냥 나라는 사람이 지금까지 어떻게 살아왔는지만 일단 가볍게라도 정리해보아야겠다.
또한 내가 원하는 기업의 자소서를 일단 얼토당토 않은 답변이라도 써보고 내가 어떠한 부분은 쓰지 못하겠다면 그 부분을 쓸 수 있도록 하기 위해 해야할 노력에 대해서 계획을 세울 수 있다는 팁도 주셨다.
그리고 가슴에 꽃힌 말!
오늘 할 일을 내일로 미루지 말자. 아 나 오늘 진짜 열심히했다. 그러니까 오늘은 이만 쉬고 여기부턴 내일해야겠다~ 가 아닌 오늘 하기로 마음 먹은 일들은 오늘 반드시 끝내고 갈 것!
독기가 있어야 번아웃이 안오고 개발자로 성공할 수 있다고 한다 ㅎㅎ..
내일 해야할 일에 대해서 적어보고 마무리하겠다.
- 과제 해설 세션 다시 돌려보며 계산기 과제 코드 다시 작성해보기
- 자바 문법 강의 5-5까지 수강
- 키오스크 과제 level4까지 구현(노션에 클래스 별로 기능이 어떻게 되고 실행 시에 실행흐름이 어떻게 되는 지 정리하면서 구현하기)
- TIL 적기
'개발 회고 > TIL' 카테고리의 다른 글
[1/15] TIL - 키오스크 프로그램 구현, 엉덩이 아프다 (1) | 2025.01.15 |
---|---|
[1/14] TIL - 🌟 객체지향 연습하기 - 클래스, 상속, 가변인자 (1) | 2025.01.14 |
[1/7] TIL - 다형성, 상속, 추상클래스, 인터페이스, 형변환의 필요성 정리 (0) | 2025.01.07 |
[1/6] TIL - 클래스변수 문제 해결, 객체와 클래스, 생성자, 오버로딩, 접근제어자, getter와 setter, this, super, 상속, 오버라이딩 (0) | 2025.01.06 |
[1/2] TIL - 📚 오늘의 학습 정리: 연산자, 제어문, 배열, 콜렉션 자료구조, 객체와 생성자 (0) | 2025.01.02 |