Skip to content

[πŸš€ 사이클1 - λ―Έμ…˜ (λΈ”λž™μž­ κ²Œμž„ μ‹€ν–‰)] 제이 λ―Έμ…˜ μ œμΆœν•©λ‹ˆλ‹€.#998

Merged
yenawee merged 73 commits intowoowacourse:jhk01007from
jhk01007:jhk01007
Mar 11, 2026
Merged

[πŸš€ 사이클1 - λ―Έμ…˜ (λΈ”λž™μž­ κ²Œμž„ μ‹€ν–‰)] 제이 λ―Έμ…˜ μ œμΆœν•©λ‹ˆλ‹€.#998
yenawee merged 73 commits intowoowacourse:jhk01007from
jhk01007:jhk01007

Conversation

@jhk01007
Copy link

@jhk01007 jhk01007 commented Mar 7, 2026

체크 리슀트

  • λ―Έμ…˜μ˜ ν•„μˆ˜ μš”κ΅¬μ‚¬ν•­μ„ λͺ¨λ‘ κ΅¬ν˜„ν–ˆλ‚˜μš”?
  • Gradle testλ₯Ό μ‹€ν–‰ν–ˆμ„ λ•Œ, λͺ¨λ“  ν…ŒμŠ€νŠΈκ°€ μ •μƒμ μœΌλ‘œ ν†΅κ³Όν–ˆλ‚˜μš”?
  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜λ‚˜μš”?

μ–΄λ–€ 뢀뢄에 μ§‘μ€‘ν•˜μ—¬ 리뷰해야 ν• κΉŒμš”?

TDD 개발 방식에 λŒ€ν•΄μ„œ

TDD둜 κ°œλ°œμ„ ν•˜λ‹€ λ³΄λ‹ˆ μ‹€μ œ 둜직이 μ•„λ‹ˆλΌ ν…ŒμŠ€νŠΈκ°€ λ¨Όμ € μž‘μ„±λ˜λŠ” ꡬ쑰가 쑰금 μ–΄μƒ‰ν•˜κ²Œ λŠκ»΄μ‘ŒμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ‹œκ°„μ΄ 더 였래 κ±Έλ¦¬λŠ” 것 κ°™λ‹€λŠ” 생각도 λ“€μ—ˆμŠ΅λ‹ˆλ‹€. 둜직이 κ·Έλ ‡κ²Œ λ³΅μž‘ν•˜μ§€ μ•Šμ€ κ²½μš°μ—λ„ TDDκ°€ κΌ­ ν•„μš”ν•œμ§€ 의문이 λ“€μ—ˆκ³ , 차라리 λ©”μ„œλ“œ κ΅¬ν˜„μ„ λ¨Όμ € 끝낸 λ’€ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜λŠ” 방식이 더 λ‚«μ§€ μ•Šμ„κΉŒ ν•˜λŠ” 생각도 λ“€μ—ˆμŠ΅λ‹ˆλ‹€.
κ·Έλž˜μ„œ μ‹€λ¬΄μ—μ„œλŠ” TDDλ₯Ό μ–΄λ–»κ²Œ μ μš©ν•˜κ³  μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ λ³΅μž‘ν•œ λ©”μ„œλ“œμ— ν•œν•΄μ„œλ§Œ TDDλ₯Ό μ μš©ν•˜λŠ”μ§€, μ•„λ‹ˆλ©΄ λͺ¨λ“  λ©”μ„œλ“œμ— λŒ€ν•΄ TDDλ₯Ό μ‹€μ²œν•˜λŠ”μ§€ λ“± μ‹€μ œλ‘œ μ–΄λ–€ λ°©μ‹μœΌλ‘œ ν™œμš©ν•˜κ³  계신지 μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€


랜덀 같은 ν†΅μ œ μ–΄λ €μš΄ 값에 λŒ€ν•œ ν…ŒμŠ€νŠΈ

ν˜„μž¬ μΉ΄λ“œλ₯Ό λ½‘λŠ” λ©”μ„œλ“œλ‚΄μ—λŠ” 랜덀 둜직이 μ‘΄μž¬ν•˜μ—¬ 맀번 λ°˜ν™˜ν•˜λŠ” 값이 달라지기 λ•Œλ¬Έμ— ν…ŒμŠ€νŠΈκ°€ μ–΄λ €μ› μŠ΅λ‹ˆλ‹€.
ν˜„μž¬λŠ” λ‹¨μˆœνžˆ λ²”μœ„λ‘œ κ²€μ¦ν•˜κ³  μžˆλŠ”λ° 리턴값이 맀번 달라지기 λ•Œλ¬Έμ— μ–Έμ  κ°€ ν…ŒμŠ€νŠΈκ°€ κΉ¨μ§ˆμ§€λ„ λͺ¨λ₯Έλ‹€λŠ” 생각이 λ“€μ—ˆμŠ΅λ‹ˆλ‹€.
μ‹€λ¬΄μ—μ„œλŠ” μ΄λŸ¬ν•œ ν†΅μ œκ°€ μ–΄λ €μš΄ λ‘œμ§μ€ μ–΄λ–»κ²Œ ν…ŒμŠ€νŠΈν•˜λŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.


νŒ¨ν‚€μ§€ ꡬ쑰λ₯Ό μ–΄λ–»κ²Œ μ •λ¦¬ν•˜λŠ” 것이 쒋을지

ν˜„μž¬ νŒ¨ν‚€μ§€ κ΅¬μ‘°λŠ” 컨트둀러/μ„œλΉ„μŠ€/도메인/뷰와 같이 λ ˆμ΄μ–΄ κΈ°μ€€μœΌλ‘œ λ‚˜λˆ„μ—ˆλŠ”λ°μš”. λ‹€λ§Œ domain νŒ¨ν‚€μ§€ 내뢀에 Card, CardDeck, HandCards, Participant λ“± μ—¬λŸ¬ 객체가 μžˆμ–΄ ν•œλˆˆμ— 보기엔 μ’‹μ§€ μ•Šμ€ 것 κ°™λ‹€κ³  λŠκΌˆμŠ΅λ‹ˆλ‹€. κ·Έ 외에도 νŒ¨ν‚€μ§€ 깊이 λ©΄μ—μ„œ μ–΄λ–€ ꡬ쑰가 쒋은지 μ˜κ²¬μ„ κ΅¬ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

  • domain 내뢀에 Card κ΄€λ ¨ 객체 / Participant κ΄€λ ¨ 객체 λ“±μœΌλ‘œ ν•œ 번 더 νŒ¨ν‚€μ§€λ‘œ λ‚˜λˆ„λŠ” 것이 쒋은지
  • constant, exception 같은 νŒ¨ν‚€μ§€λ“€μ€ commonκ³Ό 같은 μƒμœ„ νŒ¨ν‚€μ§€λ‘œ λ¬Άμ–΄ κ΄€λ¦¬ν•˜λŠ” 것이 더 λ‚˜μ€μ§€
  • μ§€κΈˆμ²˜λŸΌ νŒ¨ν‚€μ§€ 깊이λ₯Ό μ΅œμ†Œν™”ν•˜λŠ” ꡬ쑰가 더 가독성이 쒋은지

Dealer와 Player의 관계에 λŒ€ν•΄

일단 λ”œλŸ¬λ„ κ²°κ΅­ λΈ”λž™μž­μ— μ°Έμ—¬ν•˜λŠ” ν•œ λͺ…μ˜ ν”Œλ ˆμ΄μ–΄λΌκ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 상속을 μ μš©ν•˜κΈ° λ³΄λ‹€λŠ” isDealer λΆˆλ¦¬μ–Έ ν•„λ“œλ‘œ κ΅¬λ³„ν•˜λ„λ‘ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. 곡뢀λ₯Ό ν•˜λ©΄μ„œ 상속을 ν†΅ν•œ κ΅¬μ‘°λ³΄λ‹€λŠ” μ‘°ν•©μ΄λ‚˜ λ‹¨μˆœν•œ λͺ¨λΈμ„ μš°μ„  κ³ λ €ν•΄μ•Όν•œλ‹€κ³  듣기도 ν–ˆκ³ , 상속을 무쑰건 μ§€μ–‘ν•΄μ•Ό ν•˜λŠ”μ§€λ„ κ³ λ―Όλ©λ‹ˆλ‹€. κ·Έλž˜μ„œ λ§Œμ•½, λ¦¬λ·°μ–΄λ‹˜μ΄ λΈ”λž™μž­μ„ κ΅¬ν˜„ν•œλ‹€κ³  ν–ˆλ‹€λ©΄ Dealer와 Playerλ₯Ό μ–΄λ–»κ²Œ λͺ¨λΈλ§ν–ˆμ„μ§€ μ˜κ²¬μ„ λ“£κ³  μ‹ΆμŠ΅λ‹ˆλ‹€!


λ©”μ„œλ“œ 길이 10라인 이내 κ·œμΉ™

νŽ˜μ–΄μ™€ κ³ λ―Όν•˜λ©΄μ„œ μ΅œλŒ€ν•œ 10라인 λ‚΄μ™Έλ‘œ μ΄λ€„μ§€κ²Œ λ©”μ„œλ“œλ₯Ό μΆ”μΆœν•˜λ©° λ…Έλ ₯ν–ˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³ , 10라인을 λ„˜λŠ” λ©”μ„œλ“œκ°€ 아직 μ‘΄μž¬ν•˜λŠ”λ°μš”.

κ·ΈλŸ¬λ‹€λ³΄λ‹ˆ μ‹€λ¬΄μ—μ„œλ„ λ©”μ„œλ“œ 길이λ₯Ό 10라인 μ΄λ‚΄λ‘œ μž‘μ„±ν•˜λŠ”μ§€λ„ κΆκΈˆν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. 그리고 μ§€λ‚˜μΉ˜κ²Œ λ©”μ„œλ“œλ₯Ό 잘게 λ‚˜λˆˆ 것은 μ•„λ‹Œμ§€, 였히렀 흐름을 따라가기 μ–΄λ €μ›Œμ§€μ§„ μ•Šμ•˜λŠ”μ§€ κ³ λ―Όν•˜κ²Œ λμŠ΅λ‹ˆλ‹€..


랜덀 둜직의 μœ„μΉ˜

μ €λŠ” νŠΈλŸΌν”„ μΉ΄λ“œλ₯Ό μ„žλŠ” 랜덀(shuffle) λ‘œμ§μ„ CardDeck 도메인 객체 내뢀에 λ‘˜μ§€, μ•„λ‹ˆλ©΄ infra 계측에 λ³„λ„μ˜ 클래슀둜 λ‘˜μ§€ κ³ λ―Όν–ˆμ—ˆμŠ΅λ‹ˆλ‹€.

  • 도메인 객체 내뢀에 λ‘˜ 경우
    • μΉ΄λ“œ 덱을 μ„žλŠ” ν–‰μœ„ μžμ²΄λŠ” CardDeck의 μ±…μž„μ²˜λŸΌ 보이기 λ•Œλ¬Έμ— λͺ¨λΈλ§ μΈ‘λ©΄μ—μ„œλŠ” μžμ—°μŠ€λŸ¬μ›€.
    • ν•˜μ§€λ§Œ 랜덀 둜직이 도메인 λ‚΄λΆ€λ‘œ λ“€μ–΄μ˜€λ©΄ κ²°κ³Όκ°€ 맀번 달라지기 λ•Œλ¬Έμ— λ„λ©”μΈμ˜ μˆœμˆ˜μ„±μ΄ 흐렀지고 ν…ŒμŠ€νŠΈκ°€ μ–΄λ €μ›Œμ§.
  • 인프라 계측에 λ‘˜ 경우
    • 랜덀 생성 λ‘œμ§μ„ μΈν„°νŽ˜μ΄μŠ€λ‘œ μΆ”μƒν™”ν•˜μ—¬ κ΅¬ν˜„μ²΄λ₯Ό ꡐ체할 수 있음
    • ν…ŒμŠ€νŠΈμ—μ„œλŠ” 랜덀 λŒ€μ‹  κ³ μ •λœ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λŠ” κ΅¬ν˜„μ²΄λ₯Ό μ‚¬μš©ν•  수 μžˆμ–΄ ν…ŒμŠ€νŠΈ μž‘μ„±μ΄ 훨씬 μˆ˜μ›”ν•΄μ§

μ €λŠ” μ—¬κΈ°μ„œ ν…ŒμŠ€νŠΈ μš©μ΄μ„±κ³Ό 둜직의 ν†΅μ œ κ°€λŠ₯성을 더 μ€‘μš”ν•˜κ²Œ μƒκ°ν•˜μ—¬ 랜덀(shuffle) λ‘œμ§μ€ 인프라 계측에 λ‘λŠ” λ°©μ‹μœΌλ‘œ μ„ νƒν–ˆμŠ΅λ‹ˆλ‹€. 이와 κ΄€λ ¨ν•˜μ—¬ μ˜κ²¬μ„ λ“£κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

zzaekkii added 30 commits March 4, 2026 07:48
jhk01007 added 23 commits March 10, 2026 14:27
- CardShuffler μΈν„°νŽ˜μ΄μŠ€λ₯Ό 도메인 계측, κ΅¬ν˜„μ²΄λ₯Ό 인프라 κ³„μΈ΅μœΌλ‘œ 이동
- μ½”λ“œλ₯Ό κ°„λ‹¨ν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•΄ classλ₯Ό record둜 λ³€κ²½
HandλΌλŠ” 단어 μžμ²΄κ°€ λΈ”λž™μž­μ—μ„œ 'ν”Œλ ˆμ΄μ–΄κ°€ κ°€μ§€κ³  μžˆλŠ” μΉ΄λ“œ 묢음'을 μ˜λ―Έν•˜κΈ° λ•Œλ¬Έμ— λ³€κ²½
'μΉ΄λ“œ 묢음'μ΄λΌλŠ” 의미λ₯Ό Deck λ§ŒμœΌλ‘œλ„ μΆ©λΆ„νžˆ ν‘œν˜„ν•  수 있기 λ•Œλ¬Έμ— λ³€κ²½
λ³€κ²½μ΄μœ : isDealerλΌλŠ” Boolean κ΅¬λΆ„ν•˜κ²Œ 되면 if뢄기문이 λ§Žμ•„μ§€κ³ 
  μΆ”ν›„ λ”œλŸ¬μ™€ ν”Œλ ˆμ΄μ–΄κ°„μ˜ μ„œλ‘œ λ‹€λ₯Έ 행동이 생기면 ν•˜λ‚˜μ˜ ν΄λž˜μŠ€κ°€ λ„ˆλ¬΄ μ—¬λŸ¬ μ±…μž„μ„ λ§‘κ²Œλ˜λŠ” λ¬Έμ œκ°€ 생김
- ν•˜μœ„ 객체인 ν”Œλ ˆμ΄μ–΄μ™€ λ”œλŸ¬μ—μ„œ 반볡적으둜 μ‚¬μš©λ˜λŠ” 둜직이라 뢄리
@jhk01007
Copy link
Author

jhk01007 commented Mar 11, 2026

ν”Όλ“œλ°± μ£Όμ…¨λ˜ λΆ€λΆ„λ“€ λ°˜μ˜ν–ˆμŠ΅λ‹ˆλ‹€! μ€‘μ μ μœΌλ‘œ 리뷰받고 싢은 λΆ€λΆ„, 질문 λͺ‡κ°€μ§€λ₯Ό μ •λ¦¬ν•΄λ΄€μŠ΅λ‹ˆλ‹€.

1. Dealer와 Player 처리

κ°€μž₯ 였래 κ³ λ―Όν–ˆλ˜ 뢀뢄은 Dealer와 Playerλ₯Ό μ–΄λ–»κ²Œ μ²˜λ¦¬ν• κΉŒμ˜€λŠ”λ°μš”. 기쑴처럼 isDealerλ₯Ό λ‘κ²Œλ˜λ©΄ λ§μ”€ν•΄μ£Όμ‹ λŒ€λ‘œ μ™ΈλΆ€μ—μ„œ 뢄기문을 μž‘μ„±ν•΄μ•Ό ν•˜κ³  μΆ”ν›„ Dealerλ‚˜ Playerμ—κ²Œλ§Œ μœ νš¨ν•œ κΈ°λŠ₯이 μΆ”κ°€λ˜λ©΄ ν•˜λ‚˜μ˜ ν΄λž˜μŠ€κ°€ λ„ˆλ¬΄ λ§Žμ€ μ±…μž„μ„ κ°€μ§„λ‹€κ³  μƒκ°ν•΄μ„œ μ’‹μ§€ μ•Šλ‹€κ³  νŒλ‹¨ν–ˆμŠ΅λ‹ˆλ‹€.
λ”°λΌμ„œ μ €λŠ” 이λ₯Ό ν•΄κ²°ν•˜κΈ°μœ„ν•΄ PariticipantλΌλŠ” 좔상 클래슀λ₯Ό 두고 Dealer, Playerκ°€ 이λ₯Ό 상속받도둝 ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 Dealer, Player의 κ³΅ν†΅λœ κΈ°λŠ₯은 Participant에 μž‘μ„±ν•˜κ³  Dealer, Player 각각이 ν•„μš”ν•œ κΈ°λŠ₯은 각 ν΄λž˜μŠ€μ—μ„œ μž‘μ„±ν•˜λ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이 λΆ€λΆ„ μ€‘μ μ μœΌλ‘œ λ΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€!

2. Service ν΄λž˜μŠ€μ— λŒ€ν•΄

λ˜ν•œ 좔가적인 ν”Όλ“œλ°±μ„ λ°˜μ˜ν•˜λŠ” κ³Όμ •μ—μ„œ Service 클래슀의 ν•„μš”μ„±μ„ 크게 λŠλΌμ§€ λͺ»ν•΄ μ œκ±°ν•˜κ³ , Service에 있던 κΈ°λŠ₯을 각 λ„λ©”μΈμœΌλ‘œ λΆ„μ‚° λ°°μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.ν•˜μ§€λ§Œ μ΄λ ‡κ²Œ λ³€κ²½ν•˜λ‹ˆ 도메인 κ°„ μ˜μ‘΄μ„±μ΄ μƒκΈ°λŠ” λ¬Έμ œκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. (예: Participant의 drawCard() λ©”μ„œλ“œ)
이와 κ΄€λ ¨ν•΄ μ œλ‚˜μ˜ μ˜κ²¬μ„ λ“£κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή λ‘œμ§μ„ 기쑴처럼 Service 클래슀둜 λΆ„λ¦¬ν•˜λŠ” 것이 더 μ μ ˆν• μ§€, μ•„λ‹ˆλ©΄ 도메인에 λ‘λŠ” 것이 더 λ‚˜μ€ 선택일지 κΆκΈˆν•©λ‹ˆλ‹€. λ˜ν•œ Service 클래슀의 μ—­ν• μ΄λ‚˜ μ •μ˜, 그리고 μ–΄λ–€ μƒν™©μ—μ„œ μ‚¬μš©ν•˜λŠ” 것이 쒋은지도 ν•¨κ»˜ μ‘°μ–Έν•΄ μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€!

int dealerWinCount = 0;
int dealerDrawCount = 0;
int dealerLoseCount = 0;
Map<Player, MatchCase> playerMatchResult = new HashMap<>();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ν”Œλ ˆμ΄μ–΄λŠ” μž…λ ₯받은 μˆœμ„œλŒ€λ‘œ 좜λ ₯ν•œλ‹€"λŠ” μš”κ΅¬μ‚¬ν•­μ΄ μžˆλŠ”λ° HashMap 이 μ μ ˆν• μ§€ λ‹€μ‹œ ν™•μΈν•΄μ£Όμ„Έμš”!

INPUT_EMPTY_ERROR("νŠΉμ • 값을 μž…λ ₯ν•΄μ£Όμ„Έμš”."),
INVALID_HIT_STAND_INPUT_ERROR("y λ˜λŠ” n만 μž…λ ₯ κ°€λŠ₯ν•©λ‹ˆλ‹€."),
DEALER_NOT_FOUND_ERROR("λ”œλŸ¬κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."),
PLAYER_COUNT_OUT_OF_RANGE(String.format(
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 μœ νš¨μ„± 검증 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”κ±°κ°™μ•„μš”!

validateIsBlank(input);
input = input.trim();

if (!input.matches("[y|n]")) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (!input.matches("[y|n]")) {
if (!input.matches("[yn]")) {

private final Set<Integer> scores = new HashSet<>();

public Hand(List<Card> hands) {
this.hands = hands;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

μ™ΈλΆ€μ—μ„œ 같은 Listλ₯Ό μˆ˜μ •ν•˜λ©΄ Hand의 μƒνƒœκ°€ μ˜€μ—Όλ©λ‹ˆλ‹€. 방어적 볡사 μ‚¬μš©ν•΄μ£Όμ„Έμš”!

Copy link

@yenawee yenawee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

μ•ˆλ…•ν•˜μ„Έμš” 제이!
ν”Όλ“œλ°± 반영 μž˜ν•΄μ£Όμ…”μ„œ λ¨Έμ§€ν•˜κ² μŠ΅λ‹ˆλ‹€. μΆ”κ°€λ‘œ 달아둔 μ½”λ©˜νŠΈλŠ” λ‹€μŒ λ‹¨κ³„μ—μ„œ λ°˜μ˜ν•΄μ£Όμ„Έμš” :D

  1. Participant 좔상 클래슀 λ„μž…
    잘 μ²˜λ¦¬ν•΄μ£Όμ‹  κ±° κ°™μ•„μš”! πŸ‘ 각 ν΄λž˜μŠ€κ°€ 보닀 μžμ‹ μ˜ μ±…μž„λ§Œ κ°€μ§€λŠ” κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.

  2. Service 클래슀의 μ—­ν• 
    μ—¬κΈ°μ„œ μ„œλΉ„μŠ€λŠ” μ œκ±°ν•΄μ£Όμ‹  BlackJackService λ₯Ό 말씀해주신거겠죠?
    핡심 νŒλ‹¨ 기쀀은 이 둜직이 νŠΉμ • 객체의 μ±…μž„μΈμ§€, μ•„λ‹ˆλ©΄ 객체듀 μ‚¬μ΄μ˜ κ΄€κ³„μ—μ„œ λ°œμƒν•˜λŠ” μ±…μž„μΈμ§€κ°€ 될 κ±° κ°™μ•„μš”. 예λ₯Ό λ“€μ–΄μ„œ MatchResult λ₯Ό κ³„μ‚°ν•˜λŠ” λ‘œμ§μ€ λ”œλŸ¬, μ°Έκ°€μž μ–΄λŠ 곳에 둬도 μ’€ μ–΄μƒ‰ν–ˆμ£ .
    ν˜„μž¬λŠ” 이걸 Participants에 λ‘μ—ˆλŠ”λ° ParticipantsλŠ” λ”œλŸ¬ + ν”Œλ ˆμ΄μ–΄ 전체λ₯Ό 묢은 κ°œλ…μ΄κ³ , κ²°κ³Όλ₯Ό κ³„μ‚°ν•˜λŠ” 것은 "이 κ·Έλ£Ή μ „μ²΄μ˜ μƒνƒœμ—μ„œ λ‚˜μ˜€λŠ” 정보" 이기에 Participants 에 μžˆμ–΄λ„ μ–΄μƒ‰ν•˜μ§€ μ•Šλ‹€κ³  λ΄μš”. ν•˜μ§€λ§Œ 점수 κ³„μ‚°ν•˜λŠ” κ³Όμ •μ—μ„œ Participants 와 μ—°κ΄€λ˜μ§€ μ•ŠλŠ” λ‹€λ₯Έ μš”μ†Œ (e.g μ μˆ˜λ³„ λ°°λ‹Ή) 이 λ“€μ–΄κ°„λ‹€λ©΄ λ„μž…μ„ κ³ λ €ν•΄λ³΄λŠ”κ²Œ μ’‹λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€ :)

+) Deckκ³Ό CardShufflerλŠ” 동일 λ„λ©”μΈμ˜ ν˜‘λ ₯ κ°μ²΄μž…λ‹ˆλ‹€. μ°Έμ—¬μžκ°€ μžμ‹ μ΄ μΉ΄λ“œλ₯Ό λ½‘λŠ” 방법을 μ•Œκ³  μžˆλŠ” 것은 μžμ—°μŠ€λŸ¬μ›Œλ³΄μ—¬μš”.

@yenawee yenawee merged commit dc0b2ba into woowacourse:jhk01007 Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants