Today's Dev Notes(2018-10-31) 안녕하세요, Brad입니다. 오늘은 step3 피드백 받았던 것 마무리했었는데요. 어제 반영한 피드백 내용과 함께 오늘 반영한 DIP 적용(?!) 시도도 기록해볼게요! 우선 어제 받았던 피드백은 다음과 같습니다. Main클래스의 업무 과다 rank.getWinningMoney() 사용을 피하기 → getter()사용 피하기 Lotto번호를 Integer대신 LottoNum처럼 추상화하기 → VO만들어 적용해보기 LottoGame에 DIP원칙 적용해보기 하나씩 살펴보죠. Main 클래스의 업무 과다 Main 클래스에 많은 코드가 담기게 된 이유는 Domain 로직 내 예외를 던져 Main에서 예외처리를 하기 때문입니다. 그래서 control 패키지 내에..
Today's Dev Notes(2018-10-30) 안녕하세요, Brad입니다! 오늘은 '로또' 미션 step3를 진행하고 알고리즘 문제를 하나 풀면서 하루를 보냈네요. 우선 피드백 받은 내용부터 정리해볼게요. Main클래스의 업무 과다 rank.getWinningMoney() 사용 피하기 → getter()사용 피하기 Lotto번호를 Integer대신 LottoNum처럼 추상화하기 → VO만들어 적용해보기 LottoGame에 DIP원칙 적용해보기 피드백은 위와 같이 받았구요. 위 과정을 진행하면서 잔잔한 수정사항이 있었습니다. 예외처리, 상수들을 한 클래스로 몰아서 처리하는 것 분리하기 이전에 구현할 때는 이게 몰아서 있는데 좋다고 생각했었습니다. 왜냐하면 뭔가 변경사항이 있을 때 모여있는 곳에서 찾..
Today's Dev Notes(2018-10-28) 안녕하세요, Brad입니다. 오늘은 '로또' 미션 step3를 짧게 진행해봤는데요. 비록 짧은 시간이긴 하였지만 배우고 느낀 것들을 정리해보도록 하겠습니다. step3에서의 요구사항들은 다음과 같습니다. 산 로또 개수(제거) 수동으로 살 로또 개수 입력(추가) 수동으로 구매할 로또 번호들 입력(추가) 수동, 자동으로 살 로또 개수 출력(추가) 모든 예외상황 처리!! 추가되는 항목들이 좀 있지만 사실 기존 클래스를 재활용(로또로 만드는 부분, String값 파싱하는 부분, 예외처리한 부분 등) 할 것들이 많아 크게 힘든 부분은 없었습니다. 다만 로또를 수동으로 입력받을 때 제대로 값을 입력받지 않는 상황이 발생하였습니다. 처음 입력 받을 때는 제대로 입..
Today's Dev Notes(2018-10-25) 안녕하세요, Brad입니다. 오늘의 목표는 '로또' 미션 2단계 피드백을 적용하는 것이었습니다. 몇 가지 피드백이 있었는데요. 하나씩 살펴보도록 하겠습니다. 피드백1. 불필요한 DTO 제거 설계를 할 때 LottoChecker라는 클래스를 만들고 이 안에서 로또를 확인하는 작업을 이관하였습니다. 그곳에서 각 로또를 확인하고 그 결과를 넘겨줄 때 StrikeDto 를 별도로 만들었는데요. 이것의 필요성에 대한 의문이었습니다. 결국은 로또 확인을 LottoChecker로 이관했기 때문에 StrikeDto가 생긴거라 LottoChecker의 필요성과 밀접하게 관련이 있는 것이죠. 이와 관련된 처리는 피드백2에서 이어서 하겠습니다. 피드백2. LottoChe..
Today's Dev Notes(2018-10-24) 어제 설계가 잘 안되어 많이 힘들었는데요. 다행히 오늘은 어제보다 진전이 좀 있었네요. 정리해볼게요. 어제 막혔던 부분 보너스로 뽑는 2등을 어떻게 담아야 할까 LottoChecker의 역할 enum의 활용 여기에서 LottoChecker라는 클래스의 역할은 2등을 담는 방법에 대한 고민과 무관하지 않은 것 같아요. 왜냐하면 LottoChecker에서 로또 체크에서 나오는 값들을 토대로 등수를 정해서 2등을 담아야할 부분이 나오게 될테니까요. enum의 활용 먼저 'enum의 활용'과 관련된 부분부터 시작하겠습니다. 어제 같은 과정 멤버들이 가르쳐준 자료에서 큰 힌트를 얻을 수 있었는데요. 자료 내용은 다음과 같습니다. public enum Rank ..
Today's Dev Notes(2018-10-23) 오늘 '로또 미션' 2단계를 진행하였는데요. 너무 안 풀리는 하루였습니다. 음.. 어떻게 설계하면 좋을지 잘 모르겠더라구요. 오늘 진행한 부분과 막혔던 부분을 기록해두려 합니다. 우선 로또 2단계에서 구현할 부분은 다음과 같았습니다. 2등을 위한 보너스볼 하나 더 추첨, 당첨 통계에 2등 추가(기능 요구사항) enum 적용(프로그래밍 요구사항) 이외 제가 좀 더 구현해보고 싶었던 부분은 아래와 같습니다. 예외처리 입력개수 6개 값이 범위(1 ~ 45) 안에 들도록 할 것 → Lotto, 보너스 번호 모두 해당 같은 값이 있는지 조사 보너스 번호가 로또 번호 6개랑 중복되지 않도록 할 것 상속 관계 적용 Lotto 클래스 만들어 List 구조 벗어나기 ..