우아한테크코스

6기 프리코스가 끝난지 벌써 4주가 다 되어 간다. 프리코스 종료 이후 회고글을 제외하고 처음으로 쓰는 포스팅인데, 요즘 뭐 했는지 근황을 한번 얘기해보려 한다. 타임어택 스터디 운영 프리코스가 끝나자 마자 타임어택 스터디를 만들어서 최종 코딩 테스트를 대비하고 있다. 원래는 인원을 나 포함 4명까지만 받으려 했는데, 예상 보다 훨씬 많은 분들이 스터디 가입을 신청해주셔서 총 10명이서 시간대별로 두 팀으로 나눠 진행하게 됐다. 신청자 모두를 받아서 3팀으로 운영할까 고민도 했는데, 나에게도, 스터디원들에게도 부담이 될 것 같아서 죄송하게도 모두를 받진 못했다 🥲 매주 월요일, 수요일의 정해진 시간에 게더타운에 모여 스터디를 진행했고, 아래와 같은 순서로 진행했다. 시작 시간이 되면 스터디 과제(이전 프..
프리코스 종료 4주간의 프리코스가 11월 15일자로 종료됐다. 내게는 정말 짧은 프리코스였다. 시간이 정말 빠르게 흘러갔고, 당장 지금도 새로운 과제를 받아 해야할 것 같은 기분이 든다. 프리코스가 끝나고 6일 뒤인 오늘 이 회고글을 쓰는데, 마음이 좀 허전하다. 열심히 어떤 것에 몰두하다가 그것이 끝을 맺었을 때의 허탈감, 원래라면 과제를 해야 하는데, 하지 않고 있다는 약간의 불안감. 이런 감정들이 조금 있어서 마음이 허전하다. 프리코스 중독인가...? 프리코스가 끝나고 뭘 했나? 일단은 개인적인 일정들을 처리했다. 교회에서의 업무도 있고 해서 프리코스가 끝난 주는 잘 쉬지는 못했다. 그리고 밀린 잠을 많이 잤다. 매일 평균 4-5시간 밖에 못 자서. 프리코스 당시에는 저것만 자도 괜찮았는데, 이제 ..
이어서... 이번에도 6, 7일차를 같이 포스팅한다. 그 이유는 6-7일차의 일들을 딱딱 잘라서 말하기가 참 힘들기 때문이다. 6일차에 리팩토링한걸 7일차에 다시 리팩토링하고, 6일차에 완성되었다 생각했던 기능이 7일차에 버그가 발견되고... 이 이유 때문에 6, 7일차의 회고를 따로 작성할 수가 없었다. 커밋도 정말 기능 하나가 완성되었다 라는 판단을 하기 전에는 커밋 하기가 꺼려지는데, '어느 정도는' 완벽해지려는 내 성향이 영향을 미친 것 같다. 이번 회고록에도 모든 걸 담을 수 없으니, 고민하고 해결했던 대표적인 몇 가지만 적어보려고 한다. fix: 음료만 주문 시 금액 누적 버그 음료만 주문하여 에러 발생 시, 이후 주문에 에러가 난 음료 주문액이 누적되어 합산되는 버그가 발견됐다. 아래와 같이..
이어서... 오늘 4, 5일차를 한번에 쓰는 이유는, 계속된 고민과 고뇌와 수정으로 4일차에는 어떠한 한 기능을 완성했다- 고 말할 수 없었기 때문이다. 3주차 공통 피드백 중 객체를 객체스럽게 사용한다 라는 피드백에 정말 많은 찔림을 받았는데, 3주차 까지는 상태를 가지는 객체(Car, Lotto 등)가 스스로 일하기보다는 그저 값을 저장하는 저장소의 느낌이 강했다. 필드(인스턴스 변수)의 수를 줄이기 위해 노력한다 라는 피드백도 많이 찔렸는데, 도메인 객체가 하는 역할이 별로 없으니 컨트롤러와 서비스 클래스들이 많은 상태를 가지게 되었다. 그래서 객체가 객체스럽게 사용되기 위해 계속, 끊임없이 고민하고 수정을 거듭한 결과, 오늘 5일차에 한번에 기능들을 다 완성하게 되었다. 개선 vs 일단 돌아가게만..
이어서... OrderService 클래스 어제에 이어서, 주문에 필요한 모든 것들을 조립해 Order 클래스를 만드는 OrderService 클래스를 작성했다. import christmas.domain.order.Order; import christmas.domain.menu.strategy.AppetizerStrategy; import christmas.domain.menu.strategy.DessertStrategy; import christmas.domain.menu.strategy.DrinkStrategy; import christmas.domain.menu.strategy.MainDishStrategy; import christmas.domain.menu.strategy.MenuStrateg..
이어서... 오늘은 설계를 완료하고 조금의 코드를 작성했다. 양은 적지만 내 수준에서 추상화 퀄리티가 높은 코드를 작성한 것 같아 매우매우 뿌듯했다. 그리고 시간의 부담이 적으니 포스팅을 좀 더 정성들여 쓸 수 있게 됐다. 여전히 예쁘게 꾸미는 능력은 없지만, 내가 어떤 의문을 가졌고, 이를 해결하기 위해 어떤 고민을 했으며, 새로운 것을 학습했고 그 결과 이런 코드를 작성했다! 를 잘 보여주는 포스팅을 쓰려고 노력했다. 이게 매일매일의 내 성장 스토리니까. 설계 구현할 기능 목록 일단은 요구사항에 따라 구현할 기능 목록을 정리해 보았다. ## 구현할 기능 목록 * 입출력 * [사용자에게서 입력 받기] (서비스 로직) * [에러 메시지 출력] (서비스 로직) * [혜택 결과 출력] (서비스 로직) * 증..
1주차가 끝나고... 4주차의 시작도 어김없이 리뷰로 시작했다. 2주차 과제 리뷰때 너무 많은 리뷰를 하는건 오히려 독이라는걸 깨닫고, 이번엔 상대적으로 적은 사람들과 리뷰를 진행했다. 처음 생각한 max 리뷰 횟수는 일곱 분이었는데, 리뷰 마감 이후에 이전에 리뷰했던 분들도 감사하게도 또 찾아와주셔서 지금까지 9명의 리뷰를 진행했다. | ⬆️ 저번 주 보다 훨씬 줄은 리뷰 알림 메일 이후에 달린 리뷰 요청들은 시간이 날때 기분전환으로 짬짬이 해야겠다! 리뷰 피드백 3주차 과제에서 작성 시점까지 받은 피드백들과 느낀 점들은 이렇다. 1. enum 으로 선언한 정규식들의 이름을 더 명확하게 설정할 것 PURCHASE_AMOUNT_REGEX("^[0-9]+$") 변경 후 PURCHASE_AMOUNT_REGE..
아래와 같은 Lotto 클래스가 있다. public class Lotto { private final List numbers; public Lotto(List numbers) { this.numbers = validate(numbers); } private void validate(List numbers) { if (numbers.size() != LOTTO_NUMBER_AMOUNT_MAX.getValue()) { throw new IllegalArgumentException(LOTTO_AMOUNT_MAX_ERROR_MESSAGE.getMessage()); } } } 애플리케이션의 목적은 로또 번호와 정답 번호를 비교해서 당첨 통계를 내는 것이다. 우리가 배운 바, 객체는 외부에서 메시지를 받아 스스로가..
3주차 과제를 돌아보며 | 로또 레포 시간 과제 소요 시간 : 일~수 4일간 약 30시간 + 회고글 n시간 wakatime 으로 봤을 때, 7일간 IDE에 커서가 머무른 시간이 약 24시간이다. (월요일 이전에 기록된 시간은 IDE를 켜놓고 설계해서 그렇다) 과제를 받은 목요일, 다음날인 금요일엔 병원 방문 이슈와 코드 리뷰로 인해 과제 확인도 못했고, 토요일과 일요일엔 뺄 수 없는 개인적인 일정으로 인해 일요일 밤에 한 조금의 설계를 빼곤 뭔가를 하지 못했다. 사진을 보면 알겠지만, 월요일 부터 코드 작성을 시작했다. 설계에 한 2시간 쓴 것 같고, 학습에 4시간 정도 사용한 것 같다. 구현할 시간이 부족했기에 새로운 뭔가를 많이 학습해서 적용해보지는 못했다. 최대한 1, 2주차 때 쌓은 경험과 지식으..
이어서... 오늘 한 것은 다음과 같다. 옵저버 패턴 적용 컨트롤러 작성 정답 로또 번호와 구매한 로또 번호 비교 로또 결과 출력 테스트 통과 사실상 구매한 로또 번호 검증 기능을 제외하고는 모든 기능을 구현했으며, 테스트도 통과했다. 구매한 로또 번호도 사실 검증이 딱히 필요는 없는게, 이미 RandomNumberGeneratorTest 에서 1부터 45까지의 숫자 6개를 리스트로 만들어 반환하는 것의 테스트를 완료했으며, 로또 번호를 구매하는 것에 사용자가 관여하는 것은 구매 금액 입력밖에 없는데 이 구매 금액 입력의 테스트는 이미 완료했기 때문이다. 그래도 확실한게 좋으니까, 후순위에 두고 작성을 고려해야겠다. 사진에서 보다시피 엄청 많은 클래스를 작성 했는데, 문제는 개별 구현이 쉬웠던 어제의 구..
이어서... 오늘은 드디어 많은 것들을 진행했다. TDD로 여러 기능들을 구현했는데, 양으로만 보면 전체 기능의 약 60%, 중요도로 보면 50% 정도의 기능들을 구현했다. | ⬆️ ✅ 표시가 있는 기능들이 구현 완료한 기능들이다. 3주차 과제때는 기능들을 만들다가 컨트롤러를 만들어서 필요한 기능들을 추가적으로 구현했는데, 이번에는 기능들을 다 만들고 컨트롤러와 서비스에서 사용하게 해보려 한다. ( ⬆️ 과제 끝내고 와서 여기 다시 적는다. 이건 실패했다. 메인 로직에 TDD? 엄청 빡세다..) 아무래도 기능 자체로만 보면 2주차 과제의 연장선인것 같다. 구현 자체는 (아직까지는) 그렇게 어렵지 않고, 기능을 구현하기 위한 방법이 막히지 않고 떠오른다. 그래서 기능 구현을 위해 검색하는 시간이 대폭 줄었..
이어서... 오늘은 특이하게 3, 4일차를 한 포스팅 안에 작성한다. 시간이 없거나 귀찮아서 그런건 아니고, 한게 별로 없었기 때문이다. 3일차에는 이전 회고에서 말한 것처럼 뺄 수 없는 개인적인 일정으로 인해 거의 아무것도 하지 못했다. 오늘인 4일차 저녁에 처음으로 요구사항을 정독하고 간단히 설계하고, 포크했다. ** 사실 오늘 4일차 때도 **일정 때문에 그리 많은걸 하지는 못했다. 아마 이번 3주차 과제가 통틀어서 가장 시간을 적게 쓴 과제가 될 것 같다. 그래도 다행인건, 1, 2주차 때부터 클래스 분리와 패턴 사용, 테스트를 해서 조금은 익숙해져 있었기 때문에 이번 요구사항이 그렇게 어렵게 느껴지지는 않았다. 2주차 과제인 자동차 경주의 형태에서 조금의 기능만 더 추가하면 될 것 같았다. 설계..
킹효준
'우아한테크코스' 카테고리의 글 목록