{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":154407696,"defaultBranch":"master","name":"java-lotto","ownerLogin":"next-step","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-10-23T23:02:25.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/25274995?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1712924547.0","currentOid":""},"activityList":{"items":[{"before":"64a6b4d7bea623c8b3af39af47c7aef99d01b428","after":"a1736844858b19539cac18e9f514504be7fb6f8e","ref":"refs/heads/kgi912","pushedAt":"2024-05-21T00:31:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step2 - 로또(자동) (#3790)\n\n* refactor : step1 문자열 계산기 기능 리팩토링\r\n\r\n* docs : step2 로또(자동) 요구사항 정리\r\n\r\n* refactor : 필요 없는 import 정리\r\n\r\n* feat : 사용자로부터 로또 구매금액 입력 기능\r\n\r\n* feat : 1 부터 45까지 random 값 만드는 유틸 생성\r\n\r\n* feat : 입력된 금액으로 구매할 로또 갯수 계산\r\n\r\n* feat : 6자리 random 값으로 구성된 로또 생성 및 출력\r\n\r\n* test : 6자리 random 값으로 구성된 로또 생성 확인\r\n\r\n* test : 구입한 금액으로 계산된 갯수 만큼 생성 확인\r\n\r\n* feat : 지난주 당첨 번호 입력\r\n\r\n* refactor : 메소드 명 변경\r\n\r\n* refactor : 클래스 명 변경\r\n\r\n* refactor : inputAmount 수정\r\n\r\n* temp\r\n\r\n* feat : 일치된 번호 갯수 계산\r\n\r\n* feat : 수익률 계산\r\n\r\n* refactor : WinningLottoTest\r\n\r\n* feat : 당첨통계 출력\r\n\r\n* refactor : 금액 천단위 구분\r\n\r\n* refactor : 테스트 코드 리팩토링\r\n\r\n* refactor : LottoNumbers 클래스 생성자 추가\r\n\r\n* refactor : 상금 금액 enum 으로 분리\r\n\r\n* refactor : lotto 값 꺼내와서 처리하던 로직 lotto 객체가 실행값 반환하도록 변경\r\n\r\n* refactor : lottoNumbers 값 꺼내와서 처리하던 로직 lottoNumbers 객체가 실행값 반환하도록 변경\r\n\r\n* refactor : lottoResult 클래스 분리","shortMessageHtmlLink":"Step2 - 로또(자동) (#3790)"}},{"before":"fa489c9ea2899607e9a15503cbcb03829f58bedd","after":"9873ca2cae802ab445235a76766bf1c969fc1ac8","ref":"refs/heads/jaejeong1","pushedAt":"2024-05-21T00:30:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step3 (#3789)\n\n* refactor : Operator를 Map 대신 Enum으로 구현\r\n\r\n* feat : 입력 뷰 로직\r\n\r\n* feat : 요구사항 정의\r\n\r\n* feat : 로또를 구매할 수 있다\r\n\r\n* feat : 당첨통계를 낸다\r\n\r\n* feat : 로또 어플리케이션 구현\r\n\r\n* feat : step 1 피드백 적용\r\n\r\n* feat : 로또(2등)\r\n\r\n* refactor: 피드백 반영","shortMessageHtmlLink":"Step3 (#3789)"}},{"before":"b181131525a575f3c56e17ff53d99d005477f04b","after":"fa489c9ea2899607e9a15503cbcb03829f58bedd","ref":"refs/heads/jaejeong1","pushedAt":"2024-05-10T08:54:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step2 (#3788)\n\n* refactor : Operator를 Map 대신 Enum으로 구현\r\n\r\n* feat : 입력 뷰 로직\r\n\r\n* feat : 요구사항 정의\r\n\r\n* feat : 로또를 구매할 수 있다\r\n\r\n* feat : 당첨통계를 낸다\r\n\r\n* feat : 로또 어플리케이션 구현","shortMessageHtmlLink":"Step2 (#3788)"}},{"before":"471f91b8b365a4115c7b0f3f1ef6268576993b0d","after":"b181131525a575f3c56e17ff53d99d005477f04b","ref":"refs/heads/jaejeong1","pushedAt":"2024-05-07T21:32:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step1 (#3787)\n\n* feat: 요구사항 정의\r\n\r\n* feat: 테스트 작성\r\n\r\n* feat: 리팩토링","shortMessageHtmlLink":"Step1 (#3787)"}},{"before":"feb1eeb5a41f3382e2482eb4211b4dd44dad81ca","after":"75cdff40162d75b6aa2afec2be43884dc48b4b3c","ref":"refs/heads/movingone","pushedAt":"2024-04-18T14:33:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ksy90101","name":"Seyun(Marco) / 김세윤","path":"/ksy90101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/53366407?s=80&v=4"},"commit":{"message":"4단계 - 로또(수동) (#3775)\n\n* refactor : enum bonus price add\r\n\r\n* refactor : LottoBall cash use Lotto, LottoMachine\r\n\r\n* refactor : bonus ball print add\r\n\r\n* refactor : output address print -> number print\r\n\r\n* fix : myball winnerball compare function\r\n\r\n* test : LottoBall test\r\n\r\n* test : Lotto number compare\r\n\r\n* tset : winStatus\r\n\r\n* machine test\r\n\r\n* refactor : method name fix\r\n\r\n* refactor : lottoMachine method combine\r\n\r\n* refactor : method name rename\r\n\r\n* refactor : bonusMatch location move\r\n\r\n* refactor : use RankReward.valueOf() method\r\n\r\n* feat : totalTryCount create\r\n\r\n* feat : manual input LottoBalls and myLotto class change static method\r\n\r\n* feat : manual Lotto print\r\n\r\n* fix : manual input balls\r\n\r\n* feat : LottoBalls sort\r\n\r\n* feat : balls error check\r\n\r\n* test : total try test\r\n\r\n* test : controller total lottos count\r\n\r\n* refactor : for size reduce\r\n\r\n* refactor : naming constant\r\n\r\n* refactor : error condition add\r\n\r\n* test : winball compare myball\r\n\r\n* refactor : delete error case\r\n\r\n* method combine","shortMessageHtmlLink":"4단계 - 로또(수동) (#3775)"}},{"before":"f4efdb0fb97663ffcc9bfea6de9ff8a8b07cddf7","after":"20200931b5fb3473d6dddd063dc9622000e89875","ref":"refs/heads/sunheejo","pushedAt":"2024-04-17T13:16:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Hyeon9mak","name":null,"path":"/Hyeon9mak","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37354145?s=80&v=4"},"commit":{"message":"Step4 (#3782)\n\n* feat: [4단계-로또(수동)] 코드리뷰 반영\r\n\r\n* docs: [4단계-로또(수동)] README_Lotto.md 수정\r\n\r\n* refactor: [4단계-로또(수동)] Lotto 생성자 수정\r\n\r\n* test: [4단계-로또(수동)] LottoTest 잘못된 Lotto 생성에 대한 예외처리 확인 테스트 구현\r\n\r\n* refactor, feat: [4단계-로또(수동)] InputView에 수동 구매 기능 구현\r\n\r\n* refactor: [4단계-로또(수동)] WinningNumberAndBonusBall 의 멤버변수 winningNumber를 Set 에서 Lotto 자료형으로 수정\r\n\r\n* refactor: [4단계-로또(수동)] LottoBall과 Lotto를 분리\r\n\r\n* feat: [4단계-로또(수동)] InputView에 수동 구매 구현\r\n\r\n* feat: [4단계-로또(수동)] LottoGroup에 수동 구매 구현\r\n\r\n* feat: [4단계-로또(수동)] LottoMachine(Controller)로 기능 구현 완료\r\n\r\n* feat: [4단계-로또(수동)] README_Lotto.md 수정 완료\r\n\r\n* feat: [4단계-로또(수동)] WinningNumberAndBonusBall 기본 접근제한자 수정\r\n\r\n* refactor: [4단계-로또(수동)] 수동 로또 개수 입력을 vo로 포장\r\n\r\n* test: [4단계-로또(수동)] VO들의 단위테스트 구현 완료\r\n\r\n---------\r\n\r\nCo-authored-by: SunheeJo ","shortMessageHtmlLink":"Step4 (#3782)"}},{"before":"3ce037525e4d5f3d201215cd8b6f5d8c4cdead86","after":"dfbb6dad7f87ddb18c3b1f18f69ecd1558e982ea","ref":"refs/heads/leejaek","pushedAt":"2024-04-17T04:48:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"catsbi","name":"Catsbi","path":"/catsbi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43158866?s=80&v=4"},"commit":{"message":"4단계 구현사항입니다. (#3785)\n\n* [feat] 수동입력 기능 추가\r\n\r\n* [test] Shop 메서드 변경에 따른 기존 테스트 케이스 수정\r\n\r\n* [test] Purchase 메서드 변경에 따른 기존 테스트 케이스 수정\r\n\r\n* [test] 수동구매 로또 번호 입력 테스트\r\n\r\n* [refactor] 컨트롤러의 비즈니스 로직 영역 삭제\r\n\r\n* [refactor] Lotto 클래스에서 parser 분리\r\n\r\n* [refactor] Lotto 클래스에서 getter를 통해 lottoNumbers를 외부에 바로 반환하지 않도록 수정\r\n\r\n* [fix] 구매 금액으로 0이 입력되었을 경우에 대한 예외 처리 및 테스트 케이스 추가\r\n\r\n* [refactor] Purchase -> SingleOrder 클래스로 이름 변경","shortMessageHtmlLink":"4단계 구현사항입니다. (#3785)"}},{"before":"3cf92c614e041652c63751a6142fc21849df6506","after":"23ee254158489b1e184bb67eecf5f958386549df","ref":"refs/heads/duyankim","pushedAt":"2024-04-16T16:35:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"testrace","name":null,"path":"/testrace","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8064743?s=80&v=4"},"commit":{"message":"[step4] 로또(수동) (#3783)\n\n* refactor: `WinningLotto` 생성자에서 6개의 숫자와 보너스 볼의 중복 여부 검증\r\n\r\n* feat: 수동 로또 입력 받기\r\n\r\n* feat: 수동로또 + 자동로또 합쳐서 하나의 Lottos로 반환\r\n\r\n* refactor: null check를 Optional로 변경\r\n\r\n* fix : LottoFactory 수동구매, 자동구매 분리\r\n\r\n* fix : Bonus 객체 삭제\r\n\r\n* fix : null check시 Optional 삭제","shortMessageHtmlLink":"[step4] 로또(수동) (#3783)"}},{"before":"6393993393acb6175e94675ea330cfbab78d1305","after":"dece6c7957130f36e88b805260de2b142c0b36fd","ref":"refs/heads/jioome","pushedAt":"2024-04-15T08:58:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mskangg","name":"Minsu Kang","path":"/mskangg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27044096?s=80&v=4"},"commit":{"message":"🚀 4단계 - 로또(수동) (#3784)\n\n* fix: 리뷰 수정 사항 반영\r\n\r\n* fix: 리뷰 수정 사항 반영\r\n\r\n* docs: step4 todo\r\n\r\n* feat: 수동 로또 개수 입력\r\n\r\n* feat: 수동 로또 번호 입력\r\n\r\n* feat: 수동 로또 구현\r\n\r\n* fix: 리팩토링","shortMessageHtmlLink":"🚀 4단계 - 로또(수동) (#3784)"}},{"before":"9a5dfad97091b507d26a7e59d0418f7947120bf3","after":"2420f7221f3fb871f061c5c34ed9ff67d2ea2b5e","ref":"refs/heads/jinnie-j","pushedAt":"2024-04-15T08:52:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mskangg","name":"Minsu Kang","path":"/mskangg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27044096?s=80&v=4"},"commit":{"message":"3단계 - 로또(2등) (#3779)\n\n* docs: 기능 요구 사항 작성\r\n\r\n* feat: 사칙연산 enum 생성, 연산 기능 추가\r\n\r\n* feat: 계산 기능 구현\r\n\r\n* feat: 빈 값, 사칙연산 기호 검증\r\n\r\n* feat: 테스트코드 작성\r\n\r\n* feat: 로또 클래스 생성\r\n\r\n* feat: 로또번호 클래스로 생성\r\n\r\n* feat: 로또 당첨 금액 enum 클래스 생성\r\n\r\n* feat: 로또 랜덤 번호 생성 기능 구현\r\n\r\n* feat: Rank 결과 구하기 위한 기능 구현\r\n\r\n* feat: 당첨 통계, 수익률 결과 반환\r\n\r\n* feat: InPutView, ResultView 코드 작성\r\n\r\n* feat: Lotto main 함수 구현\r\n\r\n* feat: 테스트 코드 작성\r\n\r\n* feat: Set -> List 변경\r\n\r\n* feat: Rank 금액 수정\r\n\r\n* docs: 기능 요구사항 체크\r\n\r\n* docs: 보너스넘버 입력받도록 수정\r\n\r\n* docs: 기능 요구사항 추가\r\n\r\n* feat: 보너스번호 확인하도록 수정\r\n\r\n* feat: 로또, 당첨로또 분리\r\n\r\n* feat: 보너스번호 확인하도록 수정\r\n\r\n* refactor: 디렉토리 변경\r\n\r\n* feat: 보너스번호 반영\r\n\r\n* feat: 깨진 테스트코드 수정\r\n\r\n* docs: STEP3 요구사항 추가\r\n\r\n* refactor: LottoNumbers -> Lotto 리뷰 반영\r\n\r\n* refactor: LottoGame, LottoFactory 역할 분리\r\n\r\n* refactor: match 메소드 활용\r\n\r\n* feat: LottoGame 추가\r\n\r\n* feat: 2등 확인 기능 추가\r\n\r\n* feat: 테스트 코드 수정","shortMessageHtmlLink":"3단계 - 로또(2등) (#3779)"}},{"before":"69fdae35030cad76cc6efdcc222826bc7793f95b","after":"6393993393acb6175e94675ea330cfbab78d1305","ref":"refs/heads/jioome","pushedAt":"2024-04-14T10:45:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mskangg","name":"Minsu Kang","path":"/mskangg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27044096?s=80&v=4"},"commit":{"message":"🚀 3단계 - 로또(2등) (#3781)\n\n* docs: todo list\r\n\r\n* feat: 보너스 볼 일치 비교 기능\r\n\r\n* fix: 리팩토링\r\n\r\n* fix: 리뷰 수정 사항 반영","shortMessageHtmlLink":"🚀 3단계 - 로또(2등) (#3781)"}},{"before":"7b30554be82581cf16a32f2a8e0a771d0801c81e","after":"426db34e1bf2aae4bdc457d220845e4de703abd5","ref":"refs/heads/kbzz17","pushedAt":"2024-04-14T07:20:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wooobo","name":"wooobo","path":"/wooobo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12059592?s=80&v=4"},"commit":{"message":"🚀 4단계 - 로또(수동) 미션 완료 (#3773)\n\n* [refactor] 정적팩토리 메소드 적용\r\n\r\n* [feat] 정적팩토리 적용 및 로또별 LottoType(auto,manual) 적용\r\n\r\n* [feat] 로또 구매 현황 PurchaseAmount 클래스 개발\r\n\r\n* [feat] 로또 타입 적용\r\n\r\n* [fix] Lottorank마다 모두 1이 올라가는 현상 개선\r\n\r\n* [fix] 수동 구매 갯수 및 번호 입력\r\n\r\n* [feat] random 번호 생성 시 type AUTO 설정\r\n\r\n* [refactor] LottoProgram 리팩토링\r\n\r\n* [refactor] 수익률 출력 리팩토링\r\n\r\n* [refactor] 의존성 줄이기 리팩토링\r\n\r\n* [refactor] NumberGenerator 클래스 생성 및 불필요 클래스 제거\r\n\r\n* [refactor] 비교를 위한 equals hashcode 추가\r\n\r\n* [refactor] NumberGenrator 생성으로 인한 리팩토링\r\n\r\n* [feat] bonus 번호는 당첨번호와 중복될 수 없다.\r\n\r\n* [feat] Lotto와 amount 같이 관리하는 Customer 객체 생성","shortMessageHtmlLink":"🚀 4단계 - 로또(수동) 미션 완료 (#3773)"}},{"before":"df2da730eae65a6b354e247f4667ebbc58461b7a","after":"689052df2b1baeece3267df91f99b617c8f711a6","ref":"refs/heads/pado0","pushedAt":"2024-04-12T17:11:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"csh0034","name":"SeungHun Choi","path":"/csh0034","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44543456?s=80&v=4"},"commit":{"message":"feat:[step4] 수동로또 구현 (#3758)\n\n* refact:[step3] LottoNumber를 wrapping함으로 45 범위에 대한 책임이 위임됨\r\n\r\n* refact:[step3] 자릿수에 대한 검증을 6이 아닐때로 변경\r\n\r\n* refact:[step3] 로또 당첨번호와 2등 보너스볼이 중복되지 않도록 validation\r\n\r\n* refact:[step3] List.of 사용으로 수정\r\n\r\n* refact:[step3] 당첨 통계에 대한 네이밍 변경, LottoResult를 winningResult에서 명시적으로 리턴\r\n\r\n* refact:[step3] 기본형은 원시타입을 사용하도록 - 성능상 이유와 캐스팅 가독성 측면\r\n\r\n* refact:[step3] validation method 추출\r\n\r\n* feat:[step4] 수동로또 입력\r\n\r\n* feat:[step4] 입력받은 수동로또로 자동로또 + 수동로또 구매하기\r\n\r\n* refact:[step4] 강의 내용 적용하기 - 인스턴스 캐싱, 정적 팩토리 메서드\r\n\r\n* refact:[step4] ide 정렬 적용\r\n\r\n* refact:[step4] main 메서드 추출 (15라인 제약), 일부 메서드명 변경\r\n\r\n* refact:[step4] 방어적 복사를 통해, get으로 반환한 list에 값이 변경되어도 원래 객체는 유지되도록 처리\r\n\r\n* refact:[step4] set을 사용하여 로또 중복처리를 할 필요 없도록 만든다\r\n\r\n* refact:[step4] 트리셋 적용\r\n\r\n* fix:[step4] cache를 사용하지 않고있어 반환값 수정, 이에 대한 테스트코드 수정","shortMessageHtmlLink":"feat:[step4] 수동로또 구현 (#3758)"}},{"before":"aa617179b91d08d9defe78bc5258cf4b38815263","after":"f4efdb0fb97663ffcc9bfea6de9ff8a8b07cddf7","ref":"refs/heads/sunheejo","pushedAt":"2024-04-12T16:58:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Hyeon9mak","name":null,"path":"/Hyeon9mak","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37354145?s=80&v=4"},"commit":{"message":"Step3 (#3780)\n\n* feat: [3단계-로또(2등)] InputView에서 보너스 번호 입력받음\r\n\r\n* test, feat: [3단계-로또(2등)] 보너스 볼 입력 받기 구현 완료\r\n\r\n* feat: [3단계-로또(2등)] OutputView 2등 출력 수정\r\n\r\n* style: [3단계-로또(2등)] code convention에 맞춰 수정\r\n\r\n* style: [3단계-로또(2등)] 함수명 코드 컨벤션에 맞춰 수정 (리턴값이 boolean이 아닌데 is@@@로 네이밍한 경우\r\n\r\n* style: [3단계-로또(2등)] 스트림 .마다 개행\r\n\r\n* refactor: [3단계-로또(2등)] winningNumber 구현\r\n\r\n* refactor: [3단계-로또(2등)] winningNumber 구현2\r\n\r\n* style: [3단계-로또(2등)] code convention 만족\r\n\r\n---------\r\n\r\nCo-authored-by: SunheeJo ","shortMessageHtmlLink":"Step3 (#3780)"}},{"before":null,"after":"471f91b8b365a4115c7b0f3f1ef6268576993b0d","ref":"refs/heads/jaejeong1","pushedAt":"2024-04-12T12:22:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"chore: upgrade java8 -> java11, gradle, junit version","shortMessageHtmlLink":"chore: upgrade java8 -> java11, gradle, junit version"}},{"before":"471f91b8b365a4115c7b0f3f1ef6268576993b0d","after":"a7aef10dd03c3a2c65b05ee0fa3426c15bd3b5d9","ref":"refs/heads/giraffeb","pushedAt":"2024-04-11T20:21:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ksy90101","name":"Seyun(Marco) / 김세윤","path":"/ksy90101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/53366407?s=80&v=4"},"commit":{"message":"[Step1] 문자열 계산기 (#3740)\n\n* docs: 문자열 게산기 요구사항\r\n\r\n* feat: 입력 view\r\n\r\n* feat: 계산식 요소 반환\r\n\r\n* feat: 덧셈 계산\r\n\r\n* feat: 곱셈 계산\r\n\r\n* feat: 뺄셈 계산\r\n\r\n* feat: 나눗셈 계산\r\n\r\n* feat: 문자열 계산기\r\n\r\n* fix: scanner 생성 시점 변경\r\n\r\n* fix: 축약 이름 변경\r\n\r\n* fix: 의미있는 변수명 사용\r\n\r\n* refact: 전략패턴 도입해보기","shortMessageHtmlLink":"[Step1] 문자열 계산기 (#3740)"}},{"before":"a42e54b88ce206cde9aace91bba56f545ce3fd70","after":"69fdae35030cad76cc6efdcc222826bc7793f95b","ref":"refs/heads/jioome","pushedAt":"2024-04-11T06:52:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mskangg","name":"Minsu Kang","path":"/mskangg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27044096?s=80&v=4"},"commit":{"message":"🚀 2단계 - 로또(자동) (#3777)\n\n* feat: 로또 생성 기능 구현\r\n\r\n* feat: 로또 발행 기능\r\n\r\n* feat: 지난 주 당첨 번호 입\r\n\r\n* feat: 로또 비교 기능 구현\r\n\r\n* feat: 당청 통계 기능\r\n\r\n* fix: refactoring","shortMessageHtmlLink":"🚀 2단계 - 로또(자동) (#3777)"}},{"before":"471f91b8b365a4115c7b0f3f1ef6268576993b0d","after":"a7e4469b01ef3f3f1cbb965440ab81bb4eeb935a","ref":"refs/heads/develiberta","pushedAt":"2024-04-10T23:56:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"neojjc2","name":null,"path":"/neojjc2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68527004?s=80&v=4"},"commit":{"message":"Step1 (#3778)\n\n* feat: 단위테스트 틀 추가\r\n\r\n* feat: 실패하는 테스트 작성\r\n\r\n* fix: 테스트 클래스명 수정\r\n\r\n* fix: 테스트가 정상 수행하도록 만듦\r\n\r\n* fix: 혼합 연산 포함해서 테스트 정상 수행되도록 함\r\n\r\n* fix: indent 최소를 위해 메서드 분리\r\n\r\n* README.md 추가\r\n\r\n---------\r\n\r\nCo-authored-by: develiberta ","shortMessageHtmlLink":"Step1 (#3778)"}},{"before":"38196f0554ee17fc6740bc24da4fe996cc151f88","after":"aa617179b91d08d9defe78bc5258cf4b38815263","ref":"refs/heads/sunheejo","pushedAt":"2024-04-10T16:04:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Hyeon9mak","name":null,"path":"/Hyeon9mak","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37354145?s=80&v=4"},"commit":{"message":"Step2 (#3770)\n\n* docs: [2단계-로또(자동)] 요구사항 정리\r\n\r\n* test: [2단계-로또(자동)] lottoTest 작성\r\n\r\n* test: [2단계-로또(자동)] lottoGroupTest 작성\r\n\r\n* feat: [2단계-로또(자동)] Lotto 구현\r\n\r\n* feat: [2단계-로또(자동)] InputView 구현\r\n\r\n* feat: [2단계-로또(자동)] LottoGroup 구현\r\n\r\n* feat: [2단계-로또(자동)] LottoGroup 구현\r\n\r\n* feat: [2단계-로또(자동)] OutputView 구현\r\n\r\n* refactor: [2단계-로또(자동)] InputView 수정\r\n\r\n* refactor: [2단계-로또(자동)] InputView 수정\r\n\r\n* refactor: [2단계-로또(자동)] LottoMachine 구현\r\n\r\n* refactor: [2단계-로또(자동)] LottoMachine 구현2\r\n\r\n* refactor: [2단계-로또(자동)] 예외처리 구현 완료\r\n\r\n* refactor: [2단계-로또(자동)] LottoMain 수정\r\n\r\n* refactor: [2단계-로또(자동)] lotto 등수가 몇인지 판단하는 로직을 Lotto 클래스에서 Prize 클래스로 옮김\r\n\r\n* refactor: [2단계-로또(자동)] Prize 클래스 정리\r\n\r\n* refactor: [2단계-로또(자동)] Prize 클래스 정리\r\n\r\n* test: [2단계-로또(자동)] PrizeTest 구현\r\n\r\n* feat: [2단계-로또(2등)] 최소 구매 금액 확인에 대한 책임을 LottoMachine에서 Lotto로 옮김\r\n\r\n* refactor: [2단계-로또(2등)] View 메소드들을 모두 static으로 변경\r\n\r\n* refactor: [2단계-로또(2등)] 로또 구매한 갯수 출력에 관한 책임을 LottoMachine에서 OutputView로 옮김\r\n\r\n* refactor: [2단계-로또(2등)] 간단한 refactoring\r\n\r\n* refactor: [2단계-로또(2등)] Test 코드 가독성 올림\r\n\r\n* refactor: [2단계-로또(자동)] 가독성을 위해서 메서드 정렬 순서 변경 및 접근제어자 수정\r\n\r\n* refactor: [2단계-로또(자동)] 집합으로 lotto 수정\r\n\r\n* refactor: [2단계-로또(자동)] lotto를 VO로 만듦\r\n\r\n* refactor: [2단계-로또(자동)] LottoBall(로또 숫자)를 원시값 포장\r\n\r\n* fix: [2단계-로또(자동)] LottoBall 추가에 맞게 Test 코드 수정\r\n\r\n* style: [2단계-로또(자동)] Code Convention에 맞춤\r\n\r\n* refactor: [2단계-로또(자동)] Lotto, LottoBall에 toString 오버라이딩\r\n\r\n* refactor: [2단계-로또(자동)]\r\n\r\n---------\r\n\r\nCo-authored-by: SunheeJo ","shortMessageHtmlLink":"Step2 (#3770)"}},{"before":"471f91b8b365a4115c7b0f3f1ef6268576993b0d","after":"d072283b057adf1863630403f7a4480404b560b6","ref":"refs/heads/sojournre","pushedAt":"2024-04-10T04:39:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"csh0034","name":"SeungHun Choi","path":"/csh0034","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44543456?s=80&v=4"},"commit":{"message":"Step1 - 문자열 계산기 (#3769)\n\n* feat: StringCalculator test 및 class 구현\r\n\r\n* feat: StringCalculator 테스트 모두 성공\r\n\r\n* refactor: 입력 값 검증, indent 줄이기 완료\r\n\r\n* refactor: 리뷰 요청사항 반영\r\n\r\n- switch/case 대신 람다 사용\r\n- 매직 리터럴 및 넘버 상수로 정의","shortMessageHtmlLink":"Step1 - 문자열 계산기 (#3769)"}},{"before":"669b4b922906ea16d694e85fbe956c0f946931b3","after":"f245cd136387854feaee00764715c2f199bb5bbd","ref":"refs/heads/naayoungkwon","pushedAt":"2024-04-09T14:39:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Hyeon9mak","name":null,"path":"/Hyeon9mak","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37354145?s=80&v=4"},"commit":{"message":"[Step4] 로또(수동) (#3757)\n\n* refactor: LottoNumber static 변수를 Map으로 저장\r\n\r\n* docs: step4 기능 요구사항 작성\r\n\r\n* feat: Lotto 한줄 당 6개 제한\r\n\r\n* test: 수동 로또에 대한 테스트 추가\r\n\r\n* feat: 수동 로또 생성기능 추가\r\n\r\n* feat: 보너스 번호와 당첨 번호 중복 확인 검증 추가\r\n\r\n* refactor: 로또 한 줄당 갯수 체크 시, set의 크기 체크로 수정\r\n\r\n* refactor: 변수명 typo 수정","shortMessageHtmlLink":"[Step4] 로또(수동) (#3757)"}},{"before":"c1495abe6a615be371e1f753348ea0434c9e47b5","after":"50557c28ec6d13ff511b8368aaa3412b5ff86a5f","ref":"refs/heads/gibumgo","pushedAt":"2024-04-09T08:04:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wooobo","name":"wooobo","path":"/wooobo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12059592?s=80&v=4"},"commit":{"message":"4단계 - 로또(수동) (#3761)\n\n* rrefactor : 피드백 반영\r\n\r\n* docs : 수동 로또 기능 구현 목록 작성\r\n\r\n* feat : 수동 로또 개수 입력 기능 구현\r\n\r\n* feat : 수동 로또 번호 입력 기능 구현\r\n\r\n* feat : 수동 로또 생성 기능\r\n\r\n* refactor : 피드백 반영\r\n\r\n- InputView 캡슐화 및 입력 값 예외처리\r\n- Lottos.java 의 match() 메서드 이동 -> LottoGame.java\r\n\r\n* refactor : 등수 비교 기능 메소드 리펙토링\r\n\r\n* refactor : 2차 피드백 반영\r\n\r\n- 수동 로또 개수 입력 예외 처리\r\n- 함수명 변경 : Lottos.java .getLottos() -> .lottos\r\n\r\n* refactor : 로또 비교 메소드 리펙토링\r\n\r\n- Lottos.java : 생성자 추가\r\n- LottoGame.java : 메소드 로직 변경","shortMessageHtmlLink":"4단계 - 로또(수동) (#3761)"}},{"before":"36513a8f9fdefead3d31661d788bf93143a27aa7","after":"3cf92c614e041652c63751a6142fc21849df6506","ref":"refs/heads/duyankim","pushedAt":"2024-04-08T22:57:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"testrace","name":null,"path":"/testrace","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8064743?s=80&v=4"},"commit":{"message":"[step3] 로또(2등) (#3767)\n\n* fix: LottoFactory 불필요한 인스턴스 변수 제거\r\n\r\n* fix: 유효성 검증 메서드는 검증만 수행하도록, 불필요한 인스턴스 변수 제거\r\n\r\n* fix: 상수 변수명 대문자로\r\n\r\n* fix: Rank 삭제, Results에서 로또 결과를 EnumMap으로 관리\r\n\r\n* fix: LottoFactory에서 로또에서 사용되는 숫자들을 관리하도록 변경\r\n\r\n* fix: LottoNumbers -> NumbersGenerator로 변경, test 수정\r\n\r\n* fix: 당첨번호도 로또번호와 동일한 제약 사항 적용\r\n\r\n* refactor: Rank 객체 미사용하므로 삭제\r\n\r\n* feat: 보너스 볼 입력 받기\r\n\r\n* feat: Reward -> Rank enum으로 대체, 2등 판별 로직 수정\r\n\r\n* fix: bouns 원시값 포장, 범위 및 중복 검증 추가\r\n\r\n* fix: Lotto 주 생성자를 호출하여 중복 줄이기\r\n\r\n* refactor: `LottoNumber` 로또 번호 객체 생성\r\n\r\n* refactor: `Rank` indent 줄이기\r\n\r\n* refactor: `Results` enum 클래스 사용하여 Map 생성부 수정\r\n\r\n* chore: `RankTest` DisplayName을 도메인 용어로 수정\r\n\r\n* refactor: `WinningLotto` 6개의 숫자와 보너스볼을 상태로 가지는 객체 도출","shortMessageHtmlLink":"[step3] 로또(2등) (#3767)"}},{"before":"b8d5767b1fa4c2201560ad53d30ff805484fd202","after":"3ce037525e4d5f3d201215cd8b6f5d8c4cdead86","ref":"refs/heads/leejaek","pushedAt":"2024-04-08T13:28:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"catsbi","name":"Catsbi","path":"/catsbi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43158866?s=80&v=4"},"commit":{"message":"Step3 (#3771)\n\n* [feat] 보너스볼 입력 로직 추가\r\n\r\n* [test] WinningLotto 보너스 숫자 테스트 추가\r\n\r\n* [feat] 2등 산출 로직 추가\r\n\r\n* [feat] Lotto 숫자 길이, 범위 검증 로직 분리\r\n\r\n* [feat] 당첨 번호 검증 로직을 WinningLotto 생성자에서 분리, 보너스 번호 검증 로직을 추가\r\n\r\n* [test] WinningLotto 생성자 로직 변경에 따른 테스트 수정\r\n\r\n* [refactor] ErrorMessage 클래스 enum으로 변경\r\n\r\n* [refactor] 상금 계산 서비스 클래스 추가 및 로직 이동\r\n\r\n* [add] OutputView 에서 추가된 2등을 출력할 수 있도록 수정\r\n\r\n* [refactor] Lotto 객체 lotto 인스턴스 변수명 수정\r\n\r\n* [test] Test 오류 수정\r\n\r\n* [refactor] LottoRank 결과 찾아오는 로직 수정\r\n\r\n* [refactor] LottoRank 결과 출력 문구 LottoRank enum -> OutputView로 변경\r\n\r\n* [refactor] Lotto Class에 로또 숫자에 특정 숫자가 포함되는지 여부를 반환하는 메서드 추가\r\n\r\n* [refactor] 유틸리티 클래스에 대해서 생성자 제한\r\n\r\n* [refactor] PrizeCalculator getPrize 함수 수정","shortMessageHtmlLink":"Step3 (#3771)"}},{"before":null,"after":"471f91b8b365a4115c7b0f3f1ef6268576993b0d","ref":"refs/heads/develiberta","pushedAt":"2024-04-08T12:54:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"chore: upgrade java8 -> java11, gradle, junit version","shortMessageHtmlLink":"chore: upgrade java8 -> java11, gradle, junit version"}},{"before":"471f91b8b365a4115c7b0f3f1ef6268576993b0d","after":"a42e54b88ce206cde9aace91bba56f545ce3fd70","ref":"refs/heads/jioome","pushedAt":"2024-04-08T08:27:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mskangg","name":"Minsu Kang","path":"/mskangg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27044096?s=80&v=4"},"commit":{"message":"feat: calculator (#3772)","shortMessageHtmlLink":"feat: calculator (#3772)"}},{"before":null,"after":"471f91b8b365a4115c7b0f3f1ef6268576993b0d","ref":"refs/heads/kimsangha617","pushedAt":"2024-04-08T02:49:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"chore: upgrade java8 -> java11, gradle, junit version","shortMessageHtmlLink":"chore: upgrade java8 -> java11, gradle, junit version"}},{"before":"022d1fd212deff0f86aef3dcf3d823a2e38cb7e4","after":"878892cd3d5b39ead87a2166869f8d37e69b2181","ref":"refs/heads/heoseungjun","pushedAt":"2024-04-08T00:45:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ksy90101","name":"Seyun(Marco) / 김세윤","path":"/ksy90101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/53366407?s=80&v=4"},"commit":{"message":"로또 4단계 구현 (#3755)\n\n* DOCS : 3단계 피드백 목록 작성\r\n\r\n* CHORE : practice branch와 동기화 작업\r\n\r\n* REFACTOR : isContainsUserLottoNumber 메소드 리턴 타입 int -> boolean으로 변경\r\n\r\n* REFACTOR : LottoRevenue static 제거(객체 생성)\r\n\r\n* REFACTOR : LottoNumber 필드 변수 final로 변경\r\n\r\n* CHORE : LottoRevenue 객체 생성 반영\r\n\r\n* CHORE : practice branch와 test 파일 동기화\r\n\r\n* DOCS : 로또 3단계 피드백 목록 All Done\r\n\r\n* REFACTOR : @MethodSource 활용하여 Lotto와 WinningLotto를 제시했을 때 일치 수에 알맞은 Rank를 반환하는 메소드 테스트\r\n\r\n* DOCS : 로또 4단계 기능 구현 목록 작성\r\n\r\n* REFACTOR : startLotto 메소드를 작은 메소드 단위로 분리\r\n\r\n* REFACTOR : String 배열을 인자로 갖는 생성자 추가\r\n\r\n* REFACTOR : 수동 로또와 자동 로또 생성 과정 분리. 두 가지로 로또를 통합하여 Lottos 생성\r\n\r\n* REFACTOR : 수동 로또 개수 예외 처리 추가\r\n\r\n* REFACTOR : 수동 로또 개수 및 수동 로또 번호 입력 추가\r\n\r\n* REFACTOR : 수동 로또/자동 로또 개수 출력 기능 추가\r\n\r\n* TEST : 기능 구현 수정에 따른 테스트 추가 및 수정\r\n\r\n* DOCS : 로또 4단계 기능구현 목록\r\n\r\n* REFACTOR : 로또 자동 구매 개수 변수 추가 및 로또 생성 책임 -> LottoGenerator\r\n\r\n* FEAT : 로또 최소 숫자와 최대 숫자 상수 관리하는 LottoBall 생성\r\n\r\n* REFACTOR : lottList 변수명 lottos로 변경\r\n\r\n* REFACTOR : HashMap 생성 시 stream 이용\r\n\r\n* CHORE : constants 패키지 삭제와 HashMap -> Map 변경으로 인한 수정","shortMessageHtmlLink":"로또 4단계 구현 (#3755)"}},{"before":"444cf758ca4575cc51791d3b0dc9e84e53047778","after":"38f6ee7964ac353e1f697865b4399787ef099891","ref":"refs/heads/m5s3","pushedAt":"2024-04-07T13:51:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wooobo","name":"wooobo","path":"/wooobo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12059592?s=80&v=4"},"commit":{"message":"[로또 TDD] 4단계 - 로또(수동) (#3753)\n\n* feat(InputView): 수동으로 구매할 로또 입력 구현, 수동으로 구매할 로도 개수 입력 구현\r\n\r\n* feat(LottoFactory): 수동으로 구매할 로또 개수와 자동으로 구매할 로또개수 구별하는 기능 구현\r\n\r\n* feat(LottoGame): 생성 갯수를 입력받는 자동로또 생성 기능 구현\r\n\r\n* feat(LottoFactory): 수동으로 입력 받은 수를 로또로 생성 기능 구현\r\n\r\n* feat(LottoGame): 자동으로 받은 로또와 수동으로 입력 받은 로또 합치는 기능 구현\r\n\r\n* feat(ResultView): 수동 로또 갯수와 자동 로또 갯수 출력하는 기능 구현\r\n\r\n* test(RankTest): 경계 테스트 케이스 추가\r\n\r\n* fix(LottoFactory): `toInt` 수정\r\n\r\n* refactor(LottoGame): `getPrize` -> `calculatePrize` 로 메세지를 형태를 띄는 함수명으로 수정\r\n\r\n* feat(WinningLottos): 멤버변수 타입을 수정\r\n\r\n- `List -> `Lottos`\r\n\r\n* feat(InputView): 예외처리 추가\r\n\r\n1. 숫자가 아닌값을 입력 했을때\r\n2. 수동 로또 숫자 6보다 더 입력하거나 덜 입력했을때\r\n3. 구입금액으로 살 수 있는 로또 수보다 수동 로또 수가 더 클때\r\n\r\n* 원시값 number 변환중\r\n\r\n* refactor: 모든 원시값을 포장하도록 수정\r\n\r\n* refactor(Lottos): 미사용 코드 삭제\r\n\r\n* feat(Numbers): `Numbers` 도메인 생성\r\n\r\n* fix(Numbers): `createRandomNumbers` 랜덤 6자리를 생성하지 않는 기능 수정\r\n\r\n* test(Numbers): `Numbers` 테스트케이스 추가\r\n\r\n* feat(LottosBundle): `List` -> `LottosBundle` 로 일급 컬렉션 생성\r\n\r\n* fix(Lottos): 로또 갯수 validation 를 로또를 생성할때 하도록 수정\r\n\r\n* feat(ReturnOfRate): `ReturnOfRate` 도메인 생성\r\n\r\n* refactor(LottsBundle): `LottsBundle` 에게 수익율 계산하는 기능 구현\r\n\r\n* refactor: 미사용 코드 삭제\r\n\r\n* refactor(Rate): `ReturnOfRate` -> `Rate` 로 함수명 수정\r\n\r\n* refactor: 미사용 코드 삭제\r\n\r\n* refactor: 테스트 코드 미사용 코드 삭제 및 `System.out.println` 삭제\r\n\r\n* refactor(LottoMain): 미사용 변수 삭제\r\n\r\n* refactor(ResultView): 미사용 변수 삭제\r\n\r\n* refactor(LottoFactory): `doubleToInt` 메소드를 생성해서 기차충돌 안티패턴 해결\r\n\r\n* refactor(LottoNumber): 멤버변수 타입 `int` -> `Number` 로 수정\r\n\r\n* refactor(LottosBundle): `LottoFactory`, `LottoGame` 삭제후 `LottosBundle` 에게 해당 책임을 위임\r\n\r\n* refactor(LottoMain): 띄어수기 수정\r\n\r\n* refactor(LottoMain): 미사용 코드 삭제\r\n\r\n* refactor(Money): `divideToDouble` 메소드 추가\r\n\r\n* fix: 로또 번호 중복 입력시 다시 입력 받도록 수정\r\n\r\n* feat(LottoMain): 1000미만으로 구입 가격을 입력시 예외처리","shortMessageHtmlLink":"[로또 TDD] 4단계 - 로또(수동) (#3753)"}},{"before":"77f9d09536e91c3f025a4bad3eb0b8fda212856e","after":"d1dac62741b49033f4d11db52be69cd07d28c6eb","ref":"refs/heads/park-cheonho","pushedAt":"2024-04-07T12:27:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"catsbi","name":"Catsbi","path":"/catsbi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43158866?s=80&v=4"},"commit":{"message":"Step4 로또(수동) 리뷰 요청 드립니다. (#3765)\n\n* docs: step4 내용 정리\r\n\r\ndocs: step4 내용 정리\r\n\r\n* style: step3-feedback 블럭 생략 x\r\n\r\nstyle: step3-feedback 블럭 생략 x\r\n\r\n* style: step3-feedback 불필요 주석 제거\r\n\r\nstyle: step3-feedback 불필요 주석 제거\r\n\r\n* refactor: step3-feedback ResultView 메소드 분리\r\n\r\nrefactor: step3-feedback ResultView 메소드 분리\r\n\r\n* feat: LottoNumber 객체 생성\r\n\r\nfeat: LottoNumber 객체 생성\r\n\r\n* test: LottoNumber 테스트 코드\r\n\r\ntest: LottoNumber 테스트 코드\r\n\r\n* docs: 원시값 포장\r\n\r\ndocs: 원시값 포장\r\n\r\n* feat: 원시값 포장 객체 LottoNumber\r\n\r\nfeat: 원시값 포장 객체 LottoNumber\r\n\r\n* refactor: 변수 선언후 메소드 호츌\r\n\r\nrefactor: 변수 선언후 메소드 호츌\r\n\r\n* refactor: 원시값 객체 이후 코드 수정\r\n\r\nrefactor: 원시값 객체 이후 코드 수정\r\n\r\n* feat: 수동 로또 구매 기능\r\n\r\nfeat: 수동 로또 구매 기능\r\n\r\n* feat: 로또 구매 갯수 출력\r\n\r\nfeat: 로또 구매 갯수 출력\r\n\r\n* test: 로또 생성 테스트\r\n\r\ntest: 로또 생성 테스트\r\n\r\n* test: 도메인 변경으로 테스트 코드 수정\r\n\r\ntest: 도메인 변경으로 테스트 코드 수정\r\n\r\n* feat: 입력값 Exception 처리 로직 보완\r\n\r\nfeat: 입력값 Exception 처리 로직 보완\r\n\r\n* refactor: step4-feedback 알맞은 Exception 지정\r\n\r\nrefactor: step4-feedback 알맞은 Exception 지정\r\n\r\n* refactor: step4-feedback LottoGenerator addAll 메소드명 수정\r\n\r\nrefactor: step4-feedback LottoGenerator addAll 메소드명 수정\r\n\r\n* refactor: step4-feedback StringBuilder 메서드 체이닝\r\n\r\nrefactor: step4-feedback StringBuilder 메서드 체이닝\r\n\r\n* refactor: step4-feeback LottoService 추가\r\n\r\nrefactor: step4-feeback LottoService 추가\r\n\r\n* test: step4-feeback LottoService test 코드 추가\r\n\r\ntest: step4-feeback LottoService test 코드 추가\r\n\r\n* refactor: step4-feedback LottoNumber 객체 캐싱 적용 재사용성\r\n\r\nrefactor: step4-feedback LottoNumber 객체 캐싱 적용 재사용성\r\n\r\n* chore: 미사용 import 삭제\r\n\r\nchore: 미사용 import 삭제\r\n\r\n* refactor: LottoShop 도메인 생성\r\n\r\nrefactor: LottoShop 도메인 생성","shortMessageHtmlLink":"Step4 로또(수동) 리뷰 요청 드립니다. (#3765)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAET0zB8wA","startCursor":null,"endCursor":null}},"title":"Activity · next-step/java-lotto"}