Skip to content

[๐Ÿš€ ์‚ฌ์ดํด2 - ๋ฏธ์…˜ (๋ธ”๋ž™์žญ ๊ฒŒ์ž„ ์‹คํ–‰)] ์•„๋ก  ๋ฏธ์…˜ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.#1109

Open
sun007021 wants to merge 29 commits intowoowacourse:sun007021from
sun007021:step2

Conversation

@sun007021
Copy link

์ฒดํฌ ๋ฆฌ์ŠคํŠธ

  • ๋ฏธ์…˜์˜ ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ–ˆ๋‚˜์š”?
  • Gradle test๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต๊ณผํ–ˆ๋‚˜์š”?
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋‚˜์š”?

์–ด๋–ค ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•˜์—ฌ ๋ฆฌ๋ทฐํ•ด์•ผ ํ• ๊นŒ์š”?

  • ์ด๋ฒˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ธฐ์กด ์ฝ”๋“œ๋“ค์˜ ๊ตฌ์กฐ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋ง ํ•œ ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฐ ๊ฐ์ฒด์˜ ์ฑ…์ž„์ด ์ž˜ ๋ถ„๋ฆฌ๋œ ๊ฒƒ์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
  • ENUM ์‚ฌ์šฉ์‹œ ์ฑ…์ž„ ๋ถ„๋ฆฌ
    • ํ˜„์žฌ push๋Š” ์•ˆํ•˜์˜€์ง€๋งŒ Rank์™€ Shape๋ฅผ Enum์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰์ค‘์ž…๋‹ˆ๋‹ค. ์ด๋•Œ,
      ๊ธฐ์กด์—๋Š” ACE์˜ ๊ฐ’์„ 11๋กœ ๊ณ ์ •ํ•˜์˜€๊ณ  ๋‚˜์ค‘์— Cards์—์„œ ์ดํ•ฉ ๊ณ„์‚ฐ์‹œ์— 10์”ฉ ๋บ„์…ˆ์„ ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰์„ ํ•˜์˜€๋Š”๋ฐ ์ด๊ฒŒ ์˜ฌ๋ฐ”๋ฅธ ์ฑ…์ž„ ๋ถ„๋ฆฌ๊ฐ€ ๋งž์„์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
      ๋งŒ์•ฝ ACE๊ฐ’ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ทœ์น™์ด ๋ฐ”๋€๋‹ค๋ฉด ENUM๋งŒ ์ˆ˜์ •ํ•ด์ฃผ๋„๋ก ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ํŽธ์ด ์ฑ…์ž„์ด ํ™•์‹คํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋Š”๋ฐ ํ˜„์žฌ ์ ์ˆ˜์— ๋”ฐ๋ฅธ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•ด์„œ Enum์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜์ง€๋Š” ๋ชป ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Copy link

@hyeonic hyeonic left a comment

Choose a reason for hiding this comment

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

์•ˆ๋…•ํ•˜์„ธ์š” ์•„๋ก ~ ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•ด์ฃผ์…จ๋„ค์š”! ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„ ๊ฐ„๋‹จํžˆ ์ฝ”๋ฉ˜ํŠธ ๋‚จ๊ฒผ์œผ๋‹ˆ ํ™•์ธํ•ด์ฃผ์„ธ์š”!

ํ˜„์žฌ push๋Š” ์•ˆํ•˜์˜€์ง€๋งŒ Rank์™€ Shape๋ฅผ Enum์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰์ค‘์ž…๋‹ˆ๋‹ค. ์ด๋•Œ,
๊ธฐ์กด์—๋Š” ACE์˜ ๊ฐ’์„ 11๋กœ ๊ณ ์ •ํ•˜์˜€๊ณ  ๋‚˜์ค‘์— Cards์—์„œ ์ดํ•ฉ ๊ณ„์‚ฐ์‹œ์— 10์”ฉ ๋บ„์…ˆ์„ ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰์„ ํ•˜์˜€๋Š”๋ฐ ์ด๊ฒŒ ์˜ฌ๋ฐ”๋ฅธ ์ฑ…์ž„ ๋ถ„๋ฆฌ๊ฐ€ ๋งž์„์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ ACE๊ฐ’ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ทœ์น™์ด ๋ฐ”๋€๋‹ค๋ฉด ENUM๋งŒ ์ˆ˜์ •ํ•ด์ฃผ๋„๋ก ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ํŽธ์ด ์ฑ…์ž„์ด ํ™•์‹คํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋Š”๋ฐ ํ˜„์žฌ ์ ์ˆ˜์— ๋”ฐ๋ฅธ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•ด์„œ Enum์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜์ง€๋Š” ๋ชป ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

10์”ฉ ๋บ„์…ˆํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ฑ…์ž„์„ ๋ˆ„๊ตฌ์—๊ฒŒ ๋‘๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€์ง€ ์•Š์„๊นŒ ์‹ถ๋„ค์š” ใ…Žใ…Ž ์•„๋ก ์ด ์ƒ๊ฐํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ฑ…์ž„ ๋ถ„๋ฆฌ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”??

Comment on lines -34 to -45
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Card card)) {
return false;
}
return rank.equals(card.rank) &&
shape.equals(card.shape);
}

Copy link

Choose a reason for hiding this comment

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

equals ๊ตฌํ˜„์€ ์™œ ์ œ๊ฑฐํ•˜์˜€๋‚˜์š”?

Copy link
Author

Choose a reason for hiding this comment

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

๊ธฐ์กด์— Card๊ฐ€ ์ผ๋ฐ˜ ํด๋ž˜์Šค์˜€๋Š”๋ฐ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด์ธ๊ฒƒ ๊ฐ™์•„ Record๋กœ ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์ด๋•Œ, Record ์‚ฌ์šฉ์‹œ equals, hashCode ๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๊ธฐ์— ๋ถˆํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜์–ด ์ œ๊ฑฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

}
}
return count;
return (int) cards.stream().filter(card -> card.rank().equals("A")).count();
Copy link

Choose a reason for hiding this comment

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

card์—๊ฒŒ ace ์—ฌ๋ถ€๋ฅผ ๋ฌผ์–ด๋ณด๋Š” ๊ฑด ์–ด๋–ป๊นŒ์š”?

Copy link
Author

Choose a reason for hiding this comment

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

์™ธ๋ถ€์—์„œ ์ง์ ‘ ๋น„๊ตํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค card์ž์ฒด์—์„œ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด ํ›จ์”ฌ ๊น”๋”ํ•ด์ง€๊ฒ ๋„ค์š”!

Comment on lines +41 to +48
for (Map.Entry<Player, ScoreCompareResult> entry : playerResults.entrySet()) {
Player player = entry.getKey();
ScoreCompareResult result = entry.getValue();

double profit = player.calculateProfit(result);
dealerProfit += profit * -1.0;
playerProfits.put(player, profit);
}
Copy link

Choose a reason for hiding this comment

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

double์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์‹ค์ˆ˜ ์—ฐ์‚ฐ์€ ์•ˆ์ „ํ• ๊นŒ์š”? ๊ฐ’์ด ํฐ ๊ฒฝ์šฐ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Copy link
Author

Choose a reason for hiding this comment

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

์ •๋ฐ€๋„ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•œ ๊ณ„์‚ฐ์ด ์–ด๋ ต๊ณ  == ๊ฐ™์€ ์—ฐ์‚ฐ์ด ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!
์ด๋ฒˆ์— ์ฐพ์•„๋ณด๋‹ˆ BigDecimal์„ ์‚ฌ์šฉํ•ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋„ค์š”. ์ด ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊ฟ”๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

Comment on lines +23 to +31
- [x] ์ˆ˜์ต ๊ณ„์‚ฐ
- [x] ํ”Œ๋ ˆ์ด์–ด๋Š” ์Šน๋ฆฌ์‹œ ๋ฐฐํŒ…๊ธˆ์•ก ๋งŒํผ ์ˆ˜์ต์„ ์–ป๋Š”๋‹ค.
- [x] ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ธ”๋ž™์žญ์ธ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.
- ์ฒ˜์Œ ๋ฐ›์€ 2๊ฐœ์˜ ์นด๋“œ๊ฐ€ 21์ธ ๊ฒฝ์šฐ ๋ธ”๋ž™์žญ์œผ๋กœ ํŒ๋‹จ
- [x] ์ฐธ๊ฐ€์ž๊ฐ€ ๋ธ”๋ž™์žญ์ธ ๊ฒฝ์šฐ ๋ฐฐํŒ…๊ธˆ์•ก์˜ 1.5๋ฐฐ ์ˆ˜์ต์„ ์–ป๋Š”๋‹ค.
- [x] ํ”Œ๋ ˆ์ด์–ด๋Š” ํŒจ๋ฐฐ์‹œ ๋ฐฐํŒ…๊ธˆ์•ก ๋งŒํผ ์†ํ•ด๋ฅผ ๋ณธ๋‹ค
- [x] ํ”Œ๋ ˆ์ด์–ด๋Š” ๋ฌด์Šน๋ถ€์‹œ ๋ฐฐํŒ…๊ธˆ์•ก ๋งŒํผ ์ˆ˜์ต๋„ ์†ํ•ด๋„ ๋ณด์ง€ ์•Š๋Š”๋‹ค.
- [x] ๋”œ๋Ÿฌ๋Š” ํ”Œ๋ ˆ์ด์–ด๋“ค์ด ํŒจ๋ฐฐํ•œ ๊ธˆ์•ก ๋งŒํผ ์ˆ˜์ต์„ ์–ป๋Š”๋‹ค.
- [x] ๋”œ๋Ÿฌ๋Š” ํ”Œ๋ ˆ์ด์–ด๋“ค์ด ์Šน๋ฆฌํ•œ ๊ธˆ์•ก ๋งŒํผ ์†ํ•ด๋ฅผ ๋ณธ๋‹ค.
Copy link

Choose a reason for hiding this comment

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

์‹ ๊ทœ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ž˜ ์ •๋ฆฌํ•˜์˜€๋„ค์š” ๐Ÿ˜ƒ

Comment on lines +5 to +6
public record ProfitResults(Double dealerProfit, Map<Player, Double> playerProfit) {
}
Copy link

Choose a reason for hiding this comment

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

๋ณ„๋‹ค๋ฅธ ํ–‰์œ„๊ฐ€ ์—†์ง€๋งŒ domain ํŒจํ‚ค์ง€์— ์œ„์น˜ํ•˜์—ฌ ์žˆ๋„ค์š”! ์–ด๋–ค ์—ญํ• ์„ ํ•˜๊ฒŒ ๋˜๋‚˜์š”?

Copy link
Author

Choose a reason for hiding this comment

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

๊ธฐ์กด record๋“ค์ค‘ ์ด๊ฑธ ํฌํ•จํ•ด์„œ ๋‹จ์ˆœ ์ถœ๋ ฅ์„ ์œ„ํ•œ record๋“ค์ด ์žˆ์–ด์„œ ํŒจํ‚ค์ง€๋ฅผ ๋ถ„๋ฆฌํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‹จ์ˆœ view ์ „๋‹ฌ์šฉ record๋“ค์€ dto ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ถ„๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
์ด๋•Œ, ๊ณ ๋ฏผ์€ ProfitResults์™€ GameResults๋Š” ๋‹จ์ˆœ ์ถœ๋ ฅ์šฉ์ด ์•„๋‹ˆ๋ผ Game๋“ฑ ๋„๋ฉ”์ธ ๊ฐ์ฒด์—์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์ด๊ณ  ๋„๋ฉ”์ธ ๊ณ„์ธต๊ฐ„ ๊ฐ’์„ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š”๋ฐ ์ด ๊ฒฝ์šฐ์—๋„ dtoํŒจํ‚ค์ง€ ๋“ฑ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š”๊ฒŒ ๋งž๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

Comment on lines +3 to +8
public record PlayerProfitResultDto(String playerName, double profit) {

public static PlayerProfitResultDto from(Player player, Double profit) {
return new PlayerProfitResultDto(player.getName(), profit);
}
}
Copy link

Choose a reason for hiding this comment

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

์–ด๋–ค ๊ฑด dto๊ฐ€ ๋ถ™์–ด ์žˆ๊ณ  ์–ด๋–ค ๊ฐ์ฒด๋Š” ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋ถ™์–ด ์žˆ๋Š”๋ฐ ์„ ํƒ์˜ ๊ธฐ์ค€์ด ๋ฌด์—‡์ธ๊ฐ€์š”?

Copy link
Author

Choose a reason for hiding this comment

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

์‚ฌ์ดํด2 ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ธฐ์กด๊ณผ ๊ธฐ์ค€์ด ์„ž์ด๋ฉฐ ํ†ต์ผ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
card๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ ๋ฐ์ด์ € ์ „๋‹ฌ์˜ ์—ญํ• ๋งŒ ํ•˜๊ธฐ์— dto๋ฅผ ๋ถ™์ด๋Š”๊ฒŒ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋งŒ, ์ด๋ฒˆ์— dtoํŒจํ‚ค์ง€๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉฐ dtoํŒจํ‚ค์ง€์— ์œ„์น˜ํ•˜๊ธฐ์— ํด๋ž˜์Šค๋ช…์—๋„ dto๋ฅผ ๋ถ™์ด๋Š”๊ฑด ์ค‘๋ณต๋˜์–ด ๋ถˆํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ชจ๋‘ ์ œ๊ฑฐํ•˜์˜€์Šต๋‹ˆ๋‹ค

private static final double BLACKJACK_PROFIT_RATE = 1.5;

private final String name;
private final int bettingAmount;
Copy link

Choose a reason for hiding this comment

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

๋ˆ์„ ๋‹ค๋ฃจ๋Š” ๋„๋ฉ”์ธ์—์„œ int๋ผ๋Š” ์ž๋ฃŒํ˜•์€ ์ ํ•ฉํ• ๊นŒ์š”?

Copy link
Author

Choose a reason for hiding this comment

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

int๋Š” ๋ฒ”์œ„๊ฐ€ 21์–ต์ •๋„๋กœ ๋ˆ์„ ๋‹ค๋ฃจ๋Š” ๋„๋ฉ”์ธ์—์„œ๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ์ ํ•ฉํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„๋“ค์„ ์ „ํ˜€ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•˜์˜€์—ˆ๋„ค์š”
์ด๋ถ€๋ถ„๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ BigDecimal ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

Comment on lines +23 to +38
public double calculateProfit(ScoreCompareResult compareResult) {
if (compareResult == ScoreCompareResult.PLAYER_WIN) {
return calculateProfitWhenPlayerWins();
}
if (compareResult == ScoreCompareResult.PLAYER_LOSE) {
return -bettingAmount;
}
return 0;
}

private double calculateProfitWhenPlayerWins() {
if (isBlackjack()) {
return (bettingAmount * BLACKJACK_PROFIT_RATE);
}
return bettingAmount;
}
Copy link

Choose a reason for hiding this comment

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

์ด๋ฒˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ธฐ์กด ์ฝ”๋“œ๋“ค์˜ ๊ตฌ์กฐ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋ง ํ•œ ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฐ ๊ฐ์ฒด์˜ ์ฑ…์ž„์ด ์ž˜ ๋ถ„๋ฆฌ๋œ ๊ฒƒ์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ€๋ถ„๋“ค์„ ๋ง์”€ ํ•˜์‹œ๋Š” ๊ฑธ๊นŒ์š”~? ๊ฐ๊ฐ์˜ ์ฑ…์ž„์€ ๊ฒฐ๊ตญ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ์ƒํƒœ๋ฅผ ์™ธ๋ถ€์˜ ์˜์กด ์—†์ด ๋ณธ์ธ์ด ์ œ์–ดํ•˜๊ณ  ํ•ด์†Œํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ์ ํ•ฉํ•œ ์œ„์น˜์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š” ใ…Žใ…Ž Player ๊ด€์ ์—์„œ ์ŠนํŒจ ์—ฌ๋ถ€ ๋“ฑ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์˜์กดํ•ด๋„ ๊ดœ์ฐฎ์„์ง€ ๊ณ ๋ฏผํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋„ค์š”!

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.

2 participants