우아한테크코스의 프리코스가 끝이났다... 😂
정말 길 것 같던 프리코스의 4주가 순식간에 흘러갔다.
항상 시작할 때와 끝 마침을 할 때에는 느낌이 정반대인 것 같다.
이번 4주차 과제는 사실 지금까지의 미션들의 연장선 같았다.
배운걸 다 써야한다는 느낌이었다.
과제의 방식은 E-Mail로 업무를 받아서 하는 느낌의 과제였는데
실무를 하는 느낌까지 들게해 특히 좋았다.
처음 위 방식의 과제를 딱 받았을 때의 느낌은 생각보다 해야할 일이 많다고 생각했다.
항상 회고에 썼던 내용이지만 이번엔 특히 기능 명세서에 많은 시간을 투자했다.
마지막 과제의 README.md
꼼꼼히 작성했다고 생각했지만, 클래스 다이어그램을 작성하지 못한게 조금 아쉽다.
이런 아쉬운 부분은 리뷰를 하면서 새롭게 추가해 볼 생각이다.
클래스를 나누는 부분이라던가, 가독성을 위한 네이밍 같은 많은 고민거리가 있었다.
여러모로 부족한 부분이 많지만 이번 과제에서 가장 많은 시간 고민한 부분은
메뉴에 enum을 사용할 때 가장 많이 고민했던 것 같다.
이벤트 뱃지에도 enum 클래스를 사용했지만 사실 이벤트 뱃지는 카테고리가 많지 않아
메뉴만큼 고민하지 않고 작성했던 것 같다.
처음에 메뉴를 enum 클래스로 작성할 때에도 이벤트 뱃지 처럼
그저 메뉴의 이름, 가격들만 enum으로 사용하면 된다고 생각했다.
하지만 메뉴의 타입이 에피타이저, 메인, 디저트, 드링크 4가지 타입으로 나누어져 있고,
위 타입들을 메뉴에 적용시키는 편이 메뉴를 조회할 때 더 간편하다고 생각되어
메뉴마다 메뉴 이름, 메뉴 타입, 메뉴 가격을 넣어 enum 클래스를 만들었다.
package christmas.domain.menu;
import static christmas.exception.constant.ExceptionConstant.INVALID_ORDER;
public enum Menu {
SOUP("양송이수프",MenuType.Appetizer,6_000),
TAPAS("타파스",MenuType.Appetizer,5_500),
SALAD("시저샐러드",MenuType.Appetizer,8_000),
CHOCO_CAKE("초코케이크",MenuType.Dessert,15_000),
ICE_CREAM("아이스크림",MenuType.Dessert,5_000),
ZERO_COKE("제로콜라",MenuType.Drink,3_000),
RED_WINE("레드와인",MenuType.Drink,60_000),
CHAMPAGNE("샴페인",MenuType.Drink,25_000),
T_BORN_STAKE("티본스테이크",MenuType.MainDish,55_000),
LIB("바비큐립",MenuType.MainDish,54_000),
SEA_FOOD_PASTA("해산물파스타",MenuType.MainDish,35_000),
CHRISTMAS_PASTA("크리스마스파스타",MenuType.MainDish,25_000);
private final String menuName;
private final MenuType menuType;
private final int price;
Menu(String menuName, MenuType menuType,int price) {
this.menuName = menuName;
this.menuType = menuType;
this.price = price;
}
}
public enum MenuType {
Appetizer,
MainDish,
Dessert,
Drink;
}
현재는 위 방식으로 제출한 코드를 보니 메뉴의 타입에 메뉴들을 전부 넣는 것이 어땠을까...
복습과정에서는 이런 부분을 고려해서 다시 만들어 봐야겠다는 생각이 든다.
이런 저런 아쉬움이 많이 남지만, 이렇게 또 배워간다고 생각해야지...
상수화 적용에 있어서의 실수...
애매한 부분이라고 생각된다. 어디까지 상수를 적용할지 감이 잡히지 않아
하나하나 전부 상수화를 진행한 부분이 없지 않아 있지만 나름 많은 고민을 했다.
enum에는 적용하지 말까 생각하다가 그래도 적용하는 편이 관리하기 편하지 않을까란 생각으로
마지막까지 고민하다가 이벤트 뱃지 enum 클래스에는 상수를 적용하고, 메뉴에는 적용하지 못한 부분이 너무 아쉽다.
이렇게 만들어 놓으니 하드코딩으로 적었을 때 보다 관리가 더 편해보인다.
public enum EventBadge {
STAR(STAR_BADGE,STAR_BADGE_PRICE),
TREE(TREE_BADGE,TREE_BADGE_PRICE),
SANTA(SANTA_BADGE,SANTA_BADGE_PRICE),
NONE(NONE_BADGE, NONE_BADGE_PRICE);
private final String badgeName;
private final int badgePrice;
EventBadge(String badgeName, int badgePrice) {
this.badgeName = badgeName;
this.badgePrice = badgePrice;
}
지금 생각해도 참 아쉽고 또 아쉬운 부분이 menu enum 클래스에 적용하지 못한 상수이다.
고민할 시간에 작성했다면... 하는 생각이 떨어지지 않지만 이러한 실수로 또 한 자국 나아가는 것 아니겠는가.. 다시 하나 더 배웠다고 생각하자
우테코에서 온 메일엔 "여기서 끝은 아니잖아요." 라고 적혀있었다.
열정적으로 무언가에 매달려 아둥바둥 거리니 정신이 없기도 했고
무언가를 마무리 했다는 생각에 어느정도 공허함이 생겼던 것 같다.
그런데 이러한 공허한 느낌은 채 하루도 가지 않았다.
맞다 이게 끝은 아니다. 하나의 큰 과제를 마무리 한 것이지 아직 끝난게 아니었다.
아쉽지만 후회는 없다. 최선을 다했다고 생각하자!
현재 프리코스를 마무리한 심정은 후련하다. 말 그대로 시원 섭섭하다.
자바에 익숙해지는 과정부터 정말 쉽지 않았고, 한 주씩 하는 미션은 정말 재밌기도 했으며,
뜻대로 프로그램이 돌아가지 않을 때는 눈물 짓게 만들었다.
처음 함께 과정을 진행하는 동료들과 코드리뷰를 진행했을 때
첫 과제를 받고, 과제의 요구사항 메일을 수십번을 읽었고,제출 방식을 몇 번씩이나 확인했다.
이런 긴장감은 마지막 과제를 제출하는 순간과 마지막 제출을 마무리 한 후에도 유지되었다.
무언가 잘못한 것은 아닌가 아쉬운 부분은 어쩔 수 없지만 다른 실수 때문에 제출이 안되었다면 그것만큼 견디기 힘든 일이 있을까? 정말 몇 번을 확인한 것 같다.
또 다른 해야할 일들을 찾아서 가는 길
한달간 과제를 진행하며 밀린 집안 일이라던가 도와드리지 못했던 본가의 일을 도와드렸다.
프리코스가 끝나면 정말 늘어지게 이틀 정도 늘어지게 쉬지 않을까 싶었는데
부족함을 뼈저리게 느낀 후여서 그런가... 현재까지 매일 프리코스를 진행한 느낌이 든다.
과제를 다시 풀어보는 지금의 나와 처음 과제를 접했을 때의 나를 비교 대상에 올린다면
엄청난 성장을 했다고 볼 수 있다. 익숙하지 않은 언어라 생각해 키보드에 손을 올려놓고
한참을 고민하던 한 달 전과는 다르게 지금은 어떠한 방식이 더 좋을지 많은 고민을 하며
여러 방법으로 과제를 만들어 보는 중이다.