From 75e5b9af3bb8ee80cc3cfe98ff18aef78afe9c45 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 09:34:57 +0900 Subject: [PATCH 01/45] =?UTF-8?q?docs:=20=EA=B5=AC=ED=98=84=ED=95=A0=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EB=AA=A9=EB=A1=9D=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..a41ab2f --- /dev/null +++ b/docs/README.md @@ -0,0 +1,74 @@ +# Leets ๋ฏธ์…˜ 1์ฃผ์ฐจ + +## ๐Ÿ‘ฅ ๋ฏธ์…˜ - ์˜ค๋Š˜์˜ ์ง๊ฟ์€? + +### โœ… ํ•ต์‹ฌ ๊ธฐ๋Šฅ + +**๋ชฉํ‘œ** + +๋‚˜์˜ ์ง๊ฟ์„ ์ •ํ•ด์ค„ ๋žœ๋ค ์ง๊ฟ ๋งค์นญ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑ + +### โœ… 1์ฃผ์ฐจ ๋ฏธ์…˜ ๋ชฉํ‘œ + +#### ๊ณผ์ œ๋ฅผ ํ†ตํ•ด ์ƒ๊ฐํ•ด๋ณด๊ธฐ +- ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์งค ์ˆ˜ ์žˆ๋Š”์ง€ +- ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š”์ง€ +- ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋ชฉํ‘œํ•˜๋Š” ๋ฐ”๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ + +### โœ… ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก +**[ Domain ]** +- + +- [ ] **Member** + +- ์ฐธ๊ฐ€์ž์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ด€๋ จ ๋กœ์ง์„ ๋‹ด๋‹น +- ๋ฌธ์ž์—ด๋กœ๋œ ๋ฉค๋ฒ„๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ์ด ๋ฉค๋ฒ„์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. + + +- [ ] **Group** +- ์ฐธ๊ฐ€์ž๋“ค์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋กœ์ง์„ ๋‹ด๋‹น +- ๋žœ๋ค ์ง๊ฟ์„ ์ถ”์ฒจํ•ฉ๋‹ˆ๋‹ค. + +**[ View ]** +- + +- [ ] **InputView** + +- ๋ฉค๋ฒ„ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์Œ (,๋กœ ๊ตฌ๋ถ„) +- ์ตœ๋Œ€ ์ง ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ +- ๋‹ค์‹œ ๊ตฌ์„ฑํ• ์ง€ ๋ง์ง€ ์ž…๋ ฅ๋ฐ›์Œ(y,n) + +- [ ] **OutputView** +- ์ง ์ถ”์ฒœ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์คŒ(default, y) +- ์ธ์‚ฌ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์คŒ(n) + +**[ Controller ]** +- + +- [ ] **MatchingController** + +์ง๊ถ ์ถ”์ฒœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ + +### โœ… ์˜ˆ์™ธ ์ฒ˜๋ฆฌ - IllegalArgumentException + +********๊ณตํ†ต******** + +- [ ] ์˜ˆ์™ธ ์ƒํ™ฉ ์‹œ ์—๋Ÿฌ ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅ. ๋‹จ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๋Š” "[ERROR]"๋กœ ์‹œ์ž‘ + +--- + +**์ด๋ฆ„ ์ž…๋ ฅ** + +- [ ] ์ด๋ฆ„์ด ํ•œ๊ธ€์ด ์•„๋‹ˆ๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ + +--- + +**์ตœ๋Œ€ ์ง์ˆ˜ ์ž…๋ ฅ** + +- [ ] ์ตœ๋Œ€ ์ง ์ˆ˜๊ฐ€ ์ด๋ฆ„์˜ ๊ฐฏ์ˆ˜๋ณด๋‹ค ํฌ๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ +--- + +**retry ์ž…๋ ฅ** +- [x] y์™€ n ์ด์™ธ์˜ ์ˆซ์ž๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ + + From c4c7968724be49ebc2bbffcfb6996d2d2b9f23fc Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 09:41:53 +0900 Subject: [PATCH 02/45] =?UTF-8?q?refactor(LeetsMateApplication):=20?= =?UTF-8?q?=EC=84=A0=EC=96=B8=EB=90=9C=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets_mate/LeetsMateApplication.java | 38 ++----------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/src/main/java/leets/leets_mate/LeetsMateApplication.java b/src/main/java/leets/leets_mate/LeetsMateApplication.java index e48ce2b..ad84041 100644 --- a/src/main/java/leets/leets_mate/LeetsMateApplication.java +++ b/src/main/java/leets/leets_mate/LeetsMateApplication.java @@ -1,42 +1,12 @@ package leets.leets_mate; +import leets.leets_mate.controller.MatchingController; + import java.util.*; public class LeetsMateApplication { - - // ๋™์ž‘ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. - public void run() { - } - - // ๋ฌธ์ž์—ด๋กœ๋œ ๋ฉค๋ฒ„๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. - public List parseMembers(String members) { - return new ArrayList<>(); - } - - // ์ด ๋ฉค๋ฒ„์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. - public int memberNumber(List members) { - return 0; - } - - // ๋ฉค๋ฒ„ ๋ฌธ์ž์—ด์— ์˜์–ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ - public void checkHasNoEnglish(String members) { - } - - // ๋ฉค๋ฒ„์ˆ˜์™€ ์ตœ๋Œ€ ์ง์ˆ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•˜์ง€ ์•Š๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ - public void checkDataValidity(int memberCount, int maximumGroupSize) { - } - - // ๋žœ๋ค ์ง๊ฟ ์ถ”์ฒจํ•˜๋Š” ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. - public List> generateRandomGroups(List memberList, int maximumGroupSize) { - return new ArrayList<>(); - } - - // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. - public void printResult(List> result) { - } - public static void main(String[] args) { - LeetsMateApplication app = new LeetsMateApplication(); - app.run(); + MatchingController controller = new MatchingController(); + controller.run(); } } \ No newline at end of file From 2babb5ee130f43f40d67fd8623cc95246124e11d Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 09:43:09 +0900 Subject: [PATCH 03/45] =?UTF-8?q?feat(Member):=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4=EB=A1=9C=EB=90=9C=20=EB=A9=A4=EB=B2=84=EB=93=A4?= =?UTF-8?q?=EC=9D=84=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=EB=A1=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=ED=95=98=EA=B3=A0,=20=EC=B4=9D=20=EB=A9=A4=EB=B2=84?= =?UTF-8?q?=EC=88=98=EB=A5=BC=20=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EB=8F=84=EB=A9=94=EC=9D=B8=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/leets/leets_mate/domain/Member.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/leets/leets_mate/domain/Member.java diff --git a/src/main/java/leets/leets_mate/domain/Member.java b/src/main/java/leets/leets_mate/domain/Member.java new file mode 100644 index 0000000..96e8274 --- /dev/null +++ b/src/main/java/leets/leets_mate/domain/Member.java @@ -0,0 +1,16 @@ +package leets.leets_mate.domain; + +import java.util.ArrayList; +import java.util.List; + +public class Member { + // ๋ฌธ์ž์—ด๋กœ๋œ ๋ฉค๋ฒ„๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. + public List parseMembers(String members) { + return new ArrayList<>(); + } + + // ์ด ๋ฉค๋ฒ„์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. + public int memberNumber(List members) { + return 0; + } +} From d13717846a2b4890b4865caf3ee89401adf81e14 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 09:44:27 +0900 Subject: [PATCH 04/45] =?UTF-8?q?feat(Group):=20=EB=9E=9C=EB=8D=A4=20?= =?UTF-8?q?=EC=A7=9D=EA=BF=8D=20=EC=B6=94=EC=B2=9C=EC=9D=84=20=EB=8B=B4?= =?UTF-8?q?=EB=8B=B9=ED=95=98=EB=8A=94=20=EB=8F=84=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/domain/Group.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/java/leets/leets_mate/domain/Group.java diff --git a/src/main/java/leets/leets_mate/domain/Group.java b/src/main/java/leets/leets_mate/domain/Group.java new file mode 100644 index 0000000..c6c8571 --- /dev/null +++ b/src/main/java/leets/leets_mate/domain/Group.java @@ -0,0 +1,11 @@ +package leets.leets_mate.domain; + +import java.util.ArrayList; +import java.util.List; + +public class Group { + // ๋žœ๋ค ์ง๊ฟ ์ถ”์ฒจํ•˜๋Š” ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. + public List> generateRandomGroups(List memberList, int maximumGroupSize) { + return new ArrayList<>(); + } +} From 4cf6b38e6a6c433d71943b21ea7c574cd59ab879 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 09:45:27 +0900 Subject: [PATCH 05/45] =?UTF-8?q?feat(InputVIew):=20=EB=A9=A4=EB=B2=84=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84,=20=EC=B5=9C=EB=8C=80=20=EC=A7=9D=20?= =?UTF-8?q?=EC=88=98=EB=A5=BC=20=EC=9E=85=EB=A0=A5=EB=B0=9B=EB=8A=94=20?= =?UTF-8?q?=EB=B7=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/InputVIew.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/leets/leets_mate/view/InputVIew.java diff --git a/src/main/java/leets/leets_mate/view/InputVIew.java b/src/main/java/leets/leets_mate/view/InputVIew.java new file mode 100644 index 0000000..5b20490 --- /dev/null +++ b/src/main/java/leets/leets_mate/view/InputVIew.java @@ -0,0 +1,12 @@ +package leets.leets_mate.view; + +public class InputVIew { + + // ๋ฉค๋ฒ„ ๋ฌธ์ž์—ด์— ์˜์–ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ + public void checkHasNoEnglish(String members) { + } + + // ๋ฉค๋ฒ„์ˆ˜์™€ ์ตœ๋Œ€ ์ง์ˆ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•˜์ง€ ์•Š๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ + public void checkDataValidity(int memberCount, int maximumGroupSize) { + } +} From 1a91a77a98898ab3315f9588dcc2a4f773085d55 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 09:45:41 +0900 Subject: [PATCH 06/45] =?UTF-8?q?feat(OutputVIew):=20=EA=B2=B0=EA=B3=BC?= =?UTF-8?q?=EB=A5=BC=20=ED=94=84=EB=A6=B0=ED=8A=B8=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EB=B7=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/OutputVIew.java | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/main/java/leets/leets_mate/view/OutputVIew.java diff --git a/src/main/java/leets/leets_mate/view/OutputVIew.java b/src/main/java/leets/leets_mate/view/OutputVIew.java new file mode 100644 index 0000000..1d72177 --- /dev/null +++ b/src/main/java/leets/leets_mate/view/OutputVIew.java @@ -0,0 +1,10 @@ +package leets.leets_mate.view; + +import java.util.List; + +public class OutputVIew { + // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. + public void printResult(List> result) { + } + +} From a9efde8acfacf464bf1bb7f8a231e53276352fff Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 09:46:25 +0900 Subject: [PATCH 07/45] =?UTF-8?q?feat(MatchingController):=20=EC=A7=9D?= =?UTF-8?q?=EA=B6=81=20=EC=B6=94=EC=B2=9C=20=EC=9A=94=EC=B2=AD=EC=9D=84=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=ED=95=98=EB=8A=94=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=EC=9D=84=20=EB=8B=B4=EB=8B=B9=ED=95=98=EB=8A=94=20=EC=BB=A8?= =?UTF-8?q?=ED=8A=B8=EB=A1=A4=EB=9F=AC=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets/leets_mate/controller/MatchingController.java | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/main/java/leets/leets_mate/controller/MatchingController.java diff --git a/src/main/java/leets/leets_mate/controller/MatchingController.java b/src/main/java/leets/leets_mate/controller/MatchingController.java new file mode 100644 index 0000000..c602927 --- /dev/null +++ b/src/main/java/leets/leets_mate/controller/MatchingController.java @@ -0,0 +1,8 @@ +package leets.leets_mate.controller; + +public class MatchingController { + public void run() { + } + + +} From 7f4274b382da780b81af0426f6094317f157965c Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 10:24:23 +0900 Subject: [PATCH 08/45] =?UTF-8?q?test(LeetsMateApplicationTests):=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets_mate/LeetsMateApplicationTests.java | 28 ------------------- 1 file changed, 28 deletions(-) diff --git a/src/test/java/leets/leets_mate/LeetsMateApplicationTests.java b/src/test/java/leets/leets_mate/LeetsMateApplicationTests.java index 706e295..db1924b 100644 --- a/src/test/java/leets/leets_mate/LeetsMateApplicationTests.java +++ b/src/test/java/leets/leets_mate/LeetsMateApplicationTests.java @@ -16,32 +16,4 @@ class LeetsMateApplicationTests { void setUp() { app = new LeetsMateApplication(); } - - @Test - void ์ž…๋ ฅ๋ฐ›์€_๋ฌธ์ž์—ด์„_ํŒŒ์‹ฑํ•˜์—ฌ_๋ฆฌ์ŠคํŠธ๋กœ_๋งŒ๋“ ๋‹ค() { - String members = "๋ฆฌ์ธ ์—,์˜ค์‹ ,๊ฑธ,ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"; - List actual = app.parseMembers(members); - assertThat(actual).containsExactly("๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"); - } - - @Test - void ๋ฉค๋ฒ„์ˆ˜๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { - List members = Arrays.asList("๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"); - int actual = app.memberNumber(members); - assertThat(actual).isEqualTo(4); - } - - @Test - void ๋ฉค๋ฒ„์ˆ˜์™€_์ตœ๋Œ€_๋ฉค๋ฒ„์ˆ˜๋ฅผ_์ž˜๋ชป_์ž…๋ ฅํ•œ_๊ฒฝ์šฐ_์˜ˆ์™ธ๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { - assertThrows(Exception.class, () -> { - app.checkDataValidity(3, 4); - }); - } - - @Test - void ๋ฉค๋ฒ„_๋ฌธ์ž์—ด์—_์˜์–ด๋ฅผ_์ž…๋ ฅํ•œ_๊ฒฝ์šฐ_์˜ˆ์™ธ๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { - assertThrows(Exception.class, () -> { - app.checkHasNoEnglish("welcome,to,leets"); - }); - } } \ No newline at end of file From 79a2f14d495ddc93a6bbc19d3fd8ee1964fc044d Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 10:25:01 +0900 Subject: [PATCH 09/45] =?UTF-8?q?feat(InputView):=20=EC=A0=95=EC=A0=81=20?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A6=AC=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/{InputVIew.java => InputView.java} | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) rename src/main/java/leets/leets_mate/view/{InputVIew.java => InputView.java} (58%) diff --git a/src/main/java/leets/leets_mate/view/InputVIew.java b/src/main/java/leets/leets_mate/view/InputView.java similarity index 58% rename from src/main/java/leets/leets_mate/view/InputVIew.java rename to src/main/java/leets/leets_mate/view/InputView.java index 5b20490..51e955e 100644 --- a/src/main/java/leets/leets_mate/view/InputVIew.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -1,6 +1,20 @@ package leets.leets_mate.view; -public class InputVIew { +import java.util.Scanner; + +public class InputView { + private static final Scanner kb = new Scanner(System.in); + + private InputView() { + } + + public static InputView create() { + return new InputView(); + } + + public String readMember() { + return ""; + } // ๋ฉค๋ฒ„ ๋ฌธ์ž์—ด์— ์˜์–ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ public void checkHasNoEnglish(String members) { From a10611d0a23b26f38ceaa00e646d9df43a84e3fe Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 10:25:23 +0900 Subject: [PATCH 10/45] =?UTF-8?q?test(InputViewTests):=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets/leets_mate/view/InputViewTests.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/test/java/leets/leets_mate/view/InputViewTests.java diff --git a/src/test/java/leets/leets_mate/view/InputViewTests.java b/src/test/java/leets/leets_mate/view/InputViewTests.java new file mode 100644 index 0000000..a8c8fd5 --- /dev/null +++ b/src/test/java/leets/leets_mate/view/InputViewTests.java @@ -0,0 +1,19 @@ +package leets.leets_mate.view; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertThrows; + +public class InputViewTests { + + @Test + void ๋ฉค๋ฒ„์ˆ˜์™€_์ตœ๋Œ€_๋ฉค๋ฒ„์ˆ˜๋ฅผ_์ž˜๋ชป_์ž…๋ ฅํ•œ_๊ฒฝ์šฐ_์˜ˆ์™ธ๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { + InputView inputView = InputView.create(); + assertThrows(IllegalArgumentException.class, () -> inputView.checkDataValidity(3, 4)); + } + + @Test + void ๋ฉค๋ฒ„_๋ฌธ์ž์—ด์—_์˜์–ด๋ฅผ_์ž…๋ ฅํ•œ_๊ฒฝ์šฐ_์˜ˆ์™ธ๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { + InputView inputView = InputView.create(); + assertThrows(IllegalArgumentException.class, () -> inputView.checkHasNoEnglish("welcome,to,leets")); + } +} From 5c91465661f5db827794a81c83de1ed5252880dd Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 10:25:33 +0900 Subject: [PATCH 11/45] =?UTF-8?q?test(MemberTests):=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets/leets_mate/domain/MemberTests.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/test/java/leets/leets_mate/domain/MemberTests.java diff --git a/src/test/java/leets/leets_mate/domain/MemberTests.java b/src/test/java/leets/leets_mate/domain/MemberTests.java new file mode 100644 index 0000000..fdcb615 --- /dev/null +++ b/src/test/java/leets/leets_mate/domain/MemberTests.java @@ -0,0 +1,33 @@ +package leets.leets_mate.domain; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +public class MemberTests { + private Member member; + + @BeforeEach + void setUp() { + member = new Member(); + } + + @Test + void ์ž…๋ ฅ๋ฐ›์€_๋ฌธ์ž์—ด์„_ํŒŒ์‹ฑํ•˜์—ฌ_๋ฆฌ์ŠคํŠธ๋กœ_๋งŒ๋“ ๋‹ค() { + String members = "๋ฆฌ์ธ ์—,์˜ค์‹ ,๊ฑธ,ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"; + List actual = member.parseMembers(members); + assertThat(actual).containsExactly("๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"); + } + + @Test + void ๋ฉค๋ฒ„์ˆ˜๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { + List members = Arrays.asList("๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"); + int actual = member.memberNumber(members); + assertThat(actual).isEqualTo(4); + } +} + From 12c659e39e6b785c11ec8925ce8f93c81ffcaa5c Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 10:30:20 +0900 Subject: [PATCH 12/45] =?UTF-8?q?feat(ExceptionType):=20=EC=98=88=EC=99=B8?= =?UTF-8?q?=20=ED=83=80=EC=9E=85=EB=93=A4=EC=9D=84=20=ED=91=9C=EC=A4=80?= =?UTF-8?q?=ED=99=94=EB=90=9C=20=EB=B0=A9=EC=8B=9D=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=ED=95=98=EB=8A=94=20=EC=9D=B8=ED=84=B0?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=8A=A4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets/leets_mate/view/exception/ExceptionType.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main/java/leets/leets_mate/view/exception/ExceptionType.java diff --git a/src/main/java/leets/leets_mate/view/exception/ExceptionType.java b/src/main/java/leets/leets_mate/view/exception/ExceptionType.java new file mode 100644 index 0000000..97d205e --- /dev/null +++ b/src/main/java/leets/leets_mate/view/exception/ExceptionType.java @@ -0,0 +1,7 @@ +package leets.leets_mate.view.exception; + +public interface ExceptionType { + String getMessage(); + + T getException(); +} \ No newline at end of file From f168091fa53cfc7177eee6c7d4c33784beba6a1c Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 10:30:55 +0900 Subject: [PATCH 13/45] =?UTF-8?q?feat(IllegalArgumentExceptionType):=20Exc?= =?UTF-8?q?eptionType=20=EC=9D=B8=ED=84=B0=ED=8E=98=EC=9D=B4=EC=8A=A4?= =?UTF-8?q?=EB=A5=BC=20=EA=B5=AC=ED=98=84=ED=95=9C=20=EC=97=B4=EA=B1=B0?= =?UTF-8?q?=ED=98=95=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ์œ ํšจํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€ - IllegalArgumentException ๊ฐ์ฒด๋ฅผ ์ œ๊ณต --- .../IllegalArgumentExceptionType.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java diff --git a/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java b/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java new file mode 100644 index 0000000..5da8dc9 --- /dev/null +++ b/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java @@ -0,0 +1,23 @@ +package leets.leets_mate.view.exception; + +public enum IllegalArgumentExceptionType implements ExceptionType { + + INVALID_NAMING("[ERROR] ์ด๋ฆ„์€ ํ•œ๊ธ€๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"), + GROUP_SIZE_EXCEEDS_MEMBER_COUNT("[ERROR] ์ตœ๋Œ€ ์ง ์ˆ˜๋Š” ์ด๋ฆ„์˜ ๊ฐฏ์ˆ˜๋ณด๋‹ค ํด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."); + + private final String message; + + IllegalArgumentExceptionType(String message) { + this.message = message; + } + + @Override + public String getMessage() { + return message; + } + + @Override + public IllegalArgumentException getException() { + return new IllegalArgumentException(getMessage()); + } +} From e67a4a25c36949dd50b9d49ff70553ae72331eb3 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 10:32:59 +0900 Subject: [PATCH 14/45] =?UTF-8?q?feat(OutputView):=20=EC=8B=9C=EC=9E=91=20?= =?UTF-8?q?=EB=A9=94=EC=8B=9C=EC=A7=80=EB=A5=BC=20=EC=B6=9C=EB=A0=A5?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/leets/leets_mate/view/OutputVIew.java | 10 ---------- .../java/leets/leets_mate/view/OutputView.java | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) delete mode 100644 src/main/java/leets/leets_mate/view/OutputVIew.java create mode 100644 src/main/java/leets/leets_mate/view/OutputView.java diff --git a/src/main/java/leets/leets_mate/view/OutputVIew.java b/src/main/java/leets/leets_mate/view/OutputVIew.java deleted file mode 100644 index 1d72177..0000000 --- a/src/main/java/leets/leets_mate/view/OutputVIew.java +++ /dev/null @@ -1,10 +0,0 @@ -package leets.leets_mate.view; - -import java.util.List; - -public class OutputVIew { - // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. - public void printResult(List> result) { - } - -} diff --git a/src/main/java/leets/leets_mate/view/OutputView.java b/src/main/java/leets/leets_mate/view/OutputView.java new file mode 100644 index 0000000..a2d5aef --- /dev/null +++ b/src/main/java/leets/leets_mate/view/OutputView.java @@ -0,0 +1,15 @@ +package leets.leets_mate.view; + +import java.util.List; + +public class OutputView { + public void printStartMessage() { + System.out.println("[Leets ์˜ค๋Š˜์˜ ์ง์—๊ฒŒ]๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค."); + System.out.println(); + System.out.println("๋ฉค๋ฒ„์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. (, ๋กœ ๊ตฌ๋ถ„)"); + } + // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. + public void printResult(List> result) { + } + +} From 91094ac44edad460438f9ad6972703a4c71bd07b Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 11:17:36 +0900 Subject: [PATCH 15/45] =?UTF-8?q?feat(IllegalArgumentExceptionType):=20?= =?UTF-8?q?=EC=83=81=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/exception/IllegalArgumentExceptionType.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java b/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java index 5da8dc9..6f5c495 100644 --- a/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java +++ b/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java @@ -3,7 +3,8 @@ public enum IllegalArgumentExceptionType implements ExceptionType { INVALID_NAMING("[ERROR] ์ด๋ฆ„์€ ํ•œ๊ธ€๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"), - GROUP_SIZE_EXCEEDS_MEMBER_COUNT("[ERROR] ์ตœ๋Œ€ ์ง ์ˆ˜๋Š” ์ด๋ฆ„์˜ ๊ฐฏ์ˆ˜๋ณด๋‹ค ํด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."); + GROUP_SIZE_EXCEEDS_MEMBER_COUNT("[ERROR] ์ตœ๋Œ€ ์ง ์ˆ˜๋Š” ์ด๋ฆ„์˜ ๊ฐฏ์ˆ˜๋ณด๋‹ค ํด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."), + INVALID_MAX_GROUP("[ERROR] ์ตœ๋Œ€ ์ง์ˆ˜๋Š” ์ˆซ์ž๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"); private final String message; From 880f008af4ca65375219a209e38a817ce242f11f Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 11:18:06 +0900 Subject: [PATCH 16/45] =?UTF-8?q?chore(LeetsMateApplication):=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20import?= =?UTF-8?q?=EB=AC=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/LeetsMateApplication.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/leets/leets_mate/LeetsMateApplication.java b/src/main/java/leets/leets_mate/LeetsMateApplication.java index ad84041..f2afb00 100644 --- a/src/main/java/leets/leets_mate/LeetsMateApplication.java +++ b/src/main/java/leets/leets_mate/LeetsMateApplication.java @@ -2,8 +2,6 @@ import leets.leets_mate.controller.MatchingController; -import java.util.*; - public class LeetsMateApplication { public static void main(String[] args) { MatchingController controller = new MatchingController(); From 1ed6286ffb70052ad14fd317375d9c47a52fa335 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 11:19:11 +0900 Subject: [PATCH 17/45] =?UTF-8?q?refactor(OutputView):=20static=20?= =?UTF-8?q?=ED=82=A4=EC=9B=8C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - controller์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ static ์ถ”๊ฐ€ --- src/main/java/leets/leets_mate/view/OutputView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/OutputView.java b/src/main/java/leets/leets_mate/view/OutputView.java index a2d5aef..483177a 100644 --- a/src/main/java/leets/leets_mate/view/OutputView.java +++ b/src/main/java/leets/leets_mate/view/OutputView.java @@ -3,7 +3,7 @@ import java.util.List; public class OutputView { - public void printStartMessage() { + public static void printStartMessage() { System.out.println("[Leets ์˜ค๋Š˜์˜ ์ง์—๊ฒŒ]๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค."); System.out.println(); System.out.println("๋ฉค๋ฒ„์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. (, ๋กœ ๊ตฌ๋ถ„)"); From 1d5e5165d9f589c120d19fe07101dedc84dece8f Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 11:20:31 +0900 Subject: [PATCH 18/45] =?UTF-8?q?feat(MatchingController):=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=EB=A9=94=EC=8B=9C=EC=A7=80,=20=EB=A9=A4=EB=B2=84?= =?UTF-8?q?=EC=9D=98=20=EC=9D=B4=EB=A6=84=20=EC=9E=85=EB=A0=A5=EB=B0=9B?= =?UTF-8?q?=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EC=BB=A8=ED=8A=B8=EB=A1=A4?= =?UTF-8?q?=EB=9F=AC=EC=97=90=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets_mate/controller/MatchingController.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/leets/leets_mate/controller/MatchingController.java b/src/main/java/leets/leets_mate/controller/MatchingController.java index c602927..7e125ef 100644 --- a/src/main/java/leets/leets_mate/controller/MatchingController.java +++ b/src/main/java/leets/leets_mate/controller/MatchingController.java @@ -1,8 +1,14 @@ package leets.leets_mate.controller; +import leets.leets_mate.view.InputView; +import leets.leets_mate.view.OutputView; + +import java.util.Scanner; + public class MatchingController { + public void run() { + OutputView.printStartMessage(); + InputView.readMember(); } - - } From 0bf22e9d46b822d7c1f11fc839a8b919080394c1 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 11:22:44 +0900 Subject: [PATCH 19/45] =?UTF-8?q?feat(InputView):=20=EB=A9=A4=EB=B2=84=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EC=9E=85=EB=A0=A5,=20=EC=B5=9C=EB=8C=80?= =?UTF-8?q?=20=EC=A7=9D=20=EC=88=98=20=EC=9E=85=EB=A0=A5=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EB=B0=8F=20=EA=B2=80=EC=A6=9D=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/leets/leets_mate/view/InputView.java | 48 +++++++++++++++++-- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/src/main/java/leets/leets_mate/view/InputView.java b/src/main/java/leets/leets_mate/view/InputView.java index 51e955e..db8a32b 100644 --- a/src/main/java/leets/leets_mate/view/InputView.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -1,6 +1,9 @@ package leets.leets_mate.view; +import leets.leets_mate.view.exception.IllegalArgumentExceptionType; + import java.util.Scanner; +import java.util.regex.Pattern; public class InputView { private static final Scanner kb = new Scanner(System.in); @@ -12,15 +15,52 @@ public static InputView create() { return new InputView(); } - public String readMember() { - return ""; + public static String[] readMember() { + try { + String input = kb.nextLine(); + String[] members = input.split(","); + for (String member : members) { + checkHasNoEnglish(member); + } + return members; + } + catch (IllegalArgumentException e) { +// System.out.println(""); ์ถ”ํ›„ ์ด๋ถ€๋ถ„์€ enum์œผ๋กœ ๋™์•„๋ฆฌ ๋ถ€์›๋ฅผ ๊ด€๋ฆฌํ–ˆ์„ ๋•Œ ์—†๋Š” ๋™์•„๋ฆฌ ๋ถ€์›์„ ์ž…๋ ฅํ•˜๋ฉด ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ + return readMember(); + } + } + + public static int readMaxGroup() { + try { + int memberCount = readMember().length; + int maximumGroupSize = kb.nextInt(); + + checkDataValidity(memberCount, maximumGroupSize); + + return memberCount; + } catch (IllegalArgumentException e){ + System.out.println(IllegalArgumentExceptionType.INVALID_MAX_GROUP.getMessage()); + return readMaxGroup(); + } } // ๋ฉค๋ฒ„ ๋ฌธ์ž์—ด์— ์˜์–ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ - public void checkHasNoEnglish(String members) { + public static void checkHasNoEnglish(String member) { + // Character.isAlphabetic()์€ ์˜์–ด์ธ์ง€ ๊ตฌ๋ณ„ํ•ด์ฃผ๋Š”๊ฒŒ ์•„๋‹Œ ์ˆซ์ž์™€ ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ด์ค€๋‹ค! +// for(char c : member.toCharArray()) { +// if (Character.isAlphabetic(c)) { +// throw IllegalArgumentExceptionType.INVALID_NAMING.getException(); +// } +// } + if (!Pattern.matches("^[a-zA-Z]*$", member)) { + throw IllegalArgumentExceptionType.INVALID_NAMING.getException(); + } } // ๋ฉค๋ฒ„์ˆ˜์™€ ์ตœ๋Œ€ ์ง์ˆ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•˜์ง€ ์•Š๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ - public void checkDataValidity(int memberCount, int maximumGroupSize) { + public static void checkDataValidity(int memberCount, int maximumGroupSize) { + if (memberCount > maximumGroupSize) { + throw IllegalArgumentExceptionType.GROUP_SIZE_EXCEEDS_MEMBER_COUNT.getException(); + } } } From f665a22fc01756051dce8983a6c19088a6312c63 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 14:49:46 +0900 Subject: [PATCH 20/45] =?UTF-8?q?feat(OutputView):=20=EC=B5=9C=EB=8C=80=20?= =?UTF-8?q?=EC=A7=9D=EC=88=98=20=EC=9E=85=EB=A0=A5=20=EB=A9=98=ED=8A=B8?= =?UTF-8?q?=EB=A5=BC=20=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/OutputView.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/leets/leets_mate/view/OutputView.java b/src/main/java/leets/leets_mate/view/OutputView.java index 483177a..96003fa 100644 --- a/src/main/java/leets/leets_mate/view/OutputView.java +++ b/src/main/java/leets/leets_mate/view/OutputView.java @@ -1,5 +1,7 @@ package leets.leets_mate.view; +import org.w3c.dom.ls.LSOutput; + import java.util.List; public class OutputView { @@ -8,6 +10,10 @@ public static void printStartMessage() { System.out.println(); System.out.println("๋ฉค๋ฒ„์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. (, ๋กœ ๊ตฌ๋ถ„)"); } + + public static void printMaxGroup() { + System.out.println("์ตœ๋Œ€ ์ง ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + } // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. public void printResult(List> result) { } From e42ab3d517795e1df221732a3e7d505e42145359 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 14:50:34 +0900 Subject: [PATCH 21/45] =?UTF-8?q?refactor(InputView):=20=EC=B5=9C=EB=8C=80?= =?UTF-8?q?=20=EC=A7=9D=EC=88=98=EB=A5=BC=20=EC=9E=85=EB=A0=A5=ED=95=A0=20?= =?UTF-8?q?=EB=95=8C=20=EC=88=AB=EC=9E=90=EA=B0=80=20=EC=95=84=EB=8B=88?= =?UTF-8?q?=EB=A9=B4=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/leets/leets_mate/view/InputView.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/leets/leets_mate/view/InputView.java b/src/main/java/leets/leets_mate/view/InputView.java index db8a32b..70582e0 100644 --- a/src/main/java/leets/leets_mate/view/InputView.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -2,6 +2,7 @@ import leets.leets_mate.view.exception.IllegalArgumentExceptionType; +import java.util.InputMismatchException; import java.util.Scanner; import java.util.regex.Pattern; @@ -16,6 +17,7 @@ public static InputView create() { } public static String[] readMember() { + OutputView.printStartMessage(); try { String input = kb.nextLine(); String[] members = input.split(","); @@ -25,22 +27,28 @@ public static String[] readMember() { return members; } catch (IllegalArgumentException e) { -// System.out.println(""); ์ถ”ํ›„ ์ด๋ถ€๋ถ„์€ enum์œผ๋กœ ๋™์•„๋ฆฌ ๋ถ€์›๋ฅผ ๊ด€๋ฆฌํ–ˆ์„ ๋•Œ ์—†๋Š” ๋™์•„๋ฆฌ ๋ถ€์›์„ ์ž…๋ ฅํ•˜๋ฉด ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ + System.out.println(e.getMessage()); // ์ถ”ํ›„ ์ด๋ถ€๋ถ„์€ enum์œผ๋กœ ๋™์•„๋ฆฌ ๋ถ€์›๋ฅผ ๊ด€๋ฆฌํ–ˆ์„ ๋•Œ ์—†๋Š” ๋™์•„๋ฆฌ ๋ถ€์›์„ ์ž…๋ ฅํ•˜๋ฉด ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ๋„ ํ•˜๋„๋ก ๊ตฌํ˜„ return readMember(); } } - public static int readMaxGroup() { + public static int readMaxGroup(String[] members) { + OutputView.printMaxGroup(); try { - int memberCount = readMember().length; + int memberCount = members.length; int maximumGroupSize = kb.nextInt(); + kb.nextLine(); checkDataValidity(memberCount, maximumGroupSize); return memberCount; - } catch (IllegalArgumentException e){ + } catch (InputMismatchException e) { System.out.println(IllegalArgumentExceptionType.INVALID_MAX_GROUP.getMessage()); - return readMaxGroup(); + kb.nextLine(); + return readMaxGroup((members)); + } catch (IllegalArgumentException e){ + System.out.println(e.getMessage()); + return readMaxGroup(members); } } @@ -52,14 +60,14 @@ public static void checkHasNoEnglish(String member) { // throw IllegalArgumentExceptionType.INVALID_NAMING.getException(); // } // } - if (!Pattern.matches("^[a-zA-Z]*$", member)) { + if (Pattern.matches("^[a-zA-Z]*$", member)) { throw IllegalArgumentExceptionType.INVALID_NAMING.getException(); } } // ๋ฉค๋ฒ„์ˆ˜์™€ ์ตœ๋Œ€ ์ง์ˆ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•˜์ง€ ์•Š๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ public static void checkDataValidity(int memberCount, int maximumGroupSize) { - if (memberCount > maximumGroupSize) { + if (memberCount < maximumGroupSize) { throw IllegalArgumentExceptionType.GROUP_SIZE_EXCEEDS_MEMBER_COUNT.getException(); } } From c3929f0a3579e40bf3eff0be849487d7433f9b0f Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 14:51:38 +0900 Subject: [PATCH 22/45] =?UTF-8?q?refactor(MatchingController):=20InputView?= =?UTF-8?q?=20=EB=B3=80=EB=8F=99=EC=82=AC=ED=95=AD=EC=97=90=20=EB=8C=80?= =?UTF-8?q?=ED=95=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/leets/leets_mate/controller/MatchingController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/leets/leets_mate/controller/MatchingController.java b/src/main/java/leets/leets_mate/controller/MatchingController.java index 7e125ef..0dbf717 100644 --- a/src/main/java/leets/leets_mate/controller/MatchingController.java +++ b/src/main/java/leets/leets_mate/controller/MatchingController.java @@ -8,7 +8,7 @@ public class MatchingController { public void run() { - OutputView.printStartMessage(); - InputView.readMember(); + String[] arr = InputView.readMember(); + int number = InputView.readMaxGroup(arr); } } From da4b742942dd8bb2523b317b27fbb65a9dbdfa25 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 15:27:10 +0900 Subject: [PATCH 23/45] =?UTF-8?q?feat(Member):=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/leets/leets_mate/domain/Member.java | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/leets/leets_mate/domain/Member.java b/src/main/java/leets/leets_mate/domain/Member.java index 96e8274..429438b 100644 --- a/src/main/java/leets/leets_mate/domain/Member.java +++ b/src/main/java/leets/leets_mate/domain/Member.java @@ -1,16 +1,32 @@ package leets.leets_mate.domain; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class Member { + private String name; + + public Member(String name) { + this.name = name; + } + // ๋ฌธ์ž์—ด๋กœ๋œ ๋ฉค๋ฒ„๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. - public List parseMembers(String members) { - return new ArrayList<>(); + public static List parseMembers(String[] memberName) { + List members = new ArrayList<>(); + for (String name : memberName) { + members.add(new Member(name)); + } + + return members; } // ์ด ๋ฉค๋ฒ„์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. - public int memberNumber(List members) { - return 0; + public static int memberNumber(List members) { + return members.size(); + } + + public String getName() { + return name; } } From 615d27d99ed431671178307dfd998f1692aab318 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 15:28:41 +0900 Subject: [PATCH 24/45] =?UTF-8?q?test(MemberTests):=20=ED=83=80=EC=9E=85?= =?UTF-8?q?=20=EB=B3=80=ED=99=98=EC=97=90=20=EC=9D=98=ED=95=9C=EC=97=90=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ArrayList์˜ ์ œ๋„ค๋ฆญ ํƒ€์ž…์„ Member ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ์— ๋Œ€ํ•œ ์ˆ˜์ • --- .../leets/leets_mate/domain/MemberTests.java | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/test/java/leets/leets_mate/domain/MemberTests.java b/src/test/java/leets/leets_mate/domain/MemberTests.java index fdcb615..67a4d1e 100644 --- a/src/test/java/leets/leets_mate/domain/MemberTests.java +++ b/src/test/java/leets/leets_mate/domain/MemberTests.java @@ -1,32 +1,25 @@ package leets.leets_mate.domain; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import java.util.Arrays; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; public class MemberTests { - private Member member; - - @BeforeEach - void setUp() { - member = new Member(); - } @Test void ์ž…๋ ฅ๋ฐ›์€_๋ฌธ์ž์—ด์„_ํŒŒ์‹ฑํ•˜์—ฌ_๋ฆฌ์ŠคํŠธ๋กœ_๋งŒ๋“ ๋‹ค() { - String members = "๋ฆฌ์ธ ์—,์˜ค์‹ ,๊ฑธ,ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"; - List actual = member.parseMembers(members); - assertThat(actual).containsExactly("๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"); - } + String[] members = {"๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"}; + List actual = Member.parseMembers(members); + assertThat(actual).extracting(Member::getName) + .containsExactly("๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"); } @Test void ๋ฉค๋ฒ„์ˆ˜๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { - List members = Arrays.asList("๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"); - int actual = member.memberNumber(members); + String[] membersArray = {"๋ฆฌ์ธ ์—", "์˜ค์‹ ", "๊ฑธ", "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"}; + List members = Member.parseMembers(membersArray); + int actual = Member.memberNumber(members); assertThat(actual).isEqualTo(4); } } From ec960d5a3b85aed1c7781ff111fbeebbdd60a0f4 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 15:40:10 +0900 Subject: [PATCH 25/45] =?UTF-8?q?remove(Group):=20Group=20=EB=8F=84?= =?UTF-8?q?=EB=A9=94=EC=9D=B8=EC=9D=84=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ํ•„๋“œ ์—†์ด ๊ทธ๋ฃนํ•‘ ํ•˜๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— ์„œ๋น„์Šค ๋ ˆ์ด์–ด๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. --- src/main/java/leets/leets_mate/domain/Group.java | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 src/main/java/leets/leets_mate/domain/Group.java diff --git a/src/main/java/leets/leets_mate/domain/Group.java b/src/main/java/leets/leets_mate/domain/Group.java deleted file mode 100644 index c6c8571..0000000 --- a/src/main/java/leets/leets_mate/domain/Group.java +++ /dev/null @@ -1,11 +0,0 @@ -package leets.leets_mate.domain; - -import java.util.ArrayList; -import java.util.List; - -public class Group { - // ๋žœ๋ค ์ง๊ฟ ์ถ”์ฒจํ•˜๋Š” ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. - public List> generateRandomGroups(List memberList, int maximumGroupSize) { - return new ArrayList<>(); - } -} From a4bb9fd011b27f1a6a450ded081192ac0fa19926 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 15:40:35 +0900 Subject: [PATCH 26/45] =?UTF-8?q?feat(GroupService):=20GroupService=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets/leets_mate/service/GroupService.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/leets/leets_mate/service/GroupService.java diff --git a/src/main/java/leets/leets_mate/service/GroupService.java b/src/main/java/leets/leets_mate/service/GroupService.java new file mode 100644 index 0000000..f054d93 --- /dev/null +++ b/src/main/java/leets/leets_mate/service/GroupService.java @@ -0,0 +1,16 @@ +package leets.leets_mate.service; + +import leets.leets_mate.domain.Member; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class GroupService { + // ๋žœ๋ค ์ง๊ฟ ์ถ”์ฒจํ•˜๋Š” ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. + public List> generateRandomGroups(List memberList, int maximumGroupSize) { + Collections.shuffle(memberList); + + return new ArrayList<>(); + } +} From d31a0a81d78cad76bf2067c068fdefaf6e180a0d Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 15:59:42 +0900 Subject: [PATCH 27/45] =?UTF-8?q?feat(GroupService):=20=EC=B5=9C=EB=8C=80?= =?UTF-8?q?=20=EC=A7=9D=EC=88=98=EB=A7=8C=ED=81=BC=20Grouping=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets_mate/service/GroupService.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/service/GroupService.java b/src/main/java/leets/leets_mate/service/GroupService.java index f054d93..bb2bbe4 100644 --- a/src/main/java/leets/leets_mate/service/GroupService.java +++ b/src/main/java/leets/leets_mate/service/GroupService.java @@ -11,6 +11,23 @@ public class GroupService { public List> generateRandomGroups(List memberList, int maximumGroupSize) { Collections.shuffle(memberList); - return new ArrayList<>(); + List> groups = new ArrayList<>(); + List group = new ArrayList<>(); + + for (Member member : memberList) { + group.add(member); + + if (group.size() == maximumGroupSize) { + groups.add(group); + group.clear(); + } + } + + // ํ˜„์žฌ๋กœ์จ๋Š” ๋นˆ ๊ทธ๋ฃน์ด ์ถ”๊ฐ€๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์ด์ง€ ์•Š๊ธดํ•˜๋‚˜, ํ˜น์‹œ ๋ชจ๋ฅผ ๋นˆ ๊ทธ๋ฃน ์ถ”๊ฐ€ ๋ฐฉ์ง€ + if (!group.isEmpty()) { + groups.add(group); + } + + return groups; } } From 55c2bcea241d954ca073e8ee591804fbc146e7d0 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 16:14:01 +0900 Subject: [PATCH 28/45] =?UTF-8?q?refactor(InputView):=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=20=EC=98=88=EC=8B=9C=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=EA=B0=9C?= =?UTF-8?q?=ED=96=89=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/InputView.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/leets/leets_mate/view/InputView.java b/src/main/java/leets/leets_mate/view/InputView.java index 70582e0..3a44f29 100644 --- a/src/main/java/leets/leets_mate/view/InputView.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -34,6 +34,7 @@ public static String[] readMember() { public static int readMaxGroup(String[] members) { OutputView.printMaxGroup(); + System.out.println(); try { int memberCount = members.length; int maximumGroupSize = kb.nextInt(); From 5ce6071ffdbb959cfbe1bfd618304f55863ad529 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 16:21:50 +0900 Subject: [PATCH 29/45] =?UTF-8?q?fix(GroupService):=20groups=EC=97=90=20ad?= =?UTF-8?q?d=EB=90=9C=20group=EC=9D=98=20=EB=82=B4=EC=9A=A9=EC=9D=B4=20?= =?UTF-8?q?=EB=AA=A8=EB=91=90=20=EC=A7=80=EC=9B=8C=EC=A7=80=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - group ๋ฆฌ์ŠคํŠธ๋ฅผ ๋น„์šฐ๋ฉด groups ๋ฆฌ์ŠคํŠธ ๋‚ด์— ์ถ”๊ฐ€๋œ ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ์˜ ๋‚ด์šฉ๋„ ํ•จ๊ป˜ ์‚ญ์ œ๋˜๊ธฐ์— ์ƒˆ๋กœ์šด ArrayList ์ธ์Šคํ„ด์Šค ํ• ๋‹น --- src/main/java/leets/leets_mate/service/GroupService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/leets/leets_mate/service/GroupService.java b/src/main/java/leets/leets_mate/service/GroupService.java index bb2bbe4..cc010dc 100644 --- a/src/main/java/leets/leets_mate/service/GroupService.java +++ b/src/main/java/leets/leets_mate/service/GroupService.java @@ -18,14 +18,14 @@ public List> generateRandomGroups(List memberList, int maxi group.add(member); if (group.size() == maximumGroupSize) { - groups.add(group); - group.clear(); + groups.add(new ArrayList<>(group)); + group = new ArrayList<>(); } } // ํ˜„์žฌ๋กœ์จ๋Š” ๋นˆ ๊ทธ๋ฃน์ด ์ถ”๊ฐ€๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์ด์ง€ ์•Š๊ธดํ•˜๋‚˜, ํ˜น์‹œ ๋ชจ๋ฅผ ๋นˆ ๊ทธ๋ฃน ์ถ”๊ฐ€ ๋ฐฉ์ง€ if (!group.isEmpty()) { - groups.add(group); + groups.add(new ArrayList<>(group)); } return groups; From 35cbe6a5df2e538af7c551ec92d3d30b7c29dfed Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 16:22:21 +0900 Subject: [PATCH 30/45] =?UTF-8?q?refactor(InputView):=20=EA=B0=9C=ED=96=89?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/InputView.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/InputView.java b/src/main/java/leets/leets_mate/view/InputView.java index 3a44f29..70582e0 100644 --- a/src/main/java/leets/leets_mate/view/InputView.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -34,7 +34,6 @@ public static String[] readMember() { public static int readMaxGroup(String[] members) { OutputView.printMaxGroup(); - System.out.println(); try { int memberCount = members.length; int maximumGroupSize = kb.nextInt(); From 1df36fde9f7ce00810d14e0a3544c7d57b69ee2e Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 16:42:59 +0900 Subject: [PATCH 31/45] =?UTF-8?q?fix(InputView):=20maximumGroupSize?= =?UTF-8?q?=EB=A5=BC=20=EB=A6=AC=ED=84=B4=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ๊ธฐ์กด์— memberCount๋ฅผ ๋ฆฌํ„ดํ•ด์„œ ๋ฆฌ์ŠคํŠธ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜๋Š” ํ˜„์ƒ์„ ํ•ด๊ฒฐ --- src/main/java/leets/leets_mate/view/InputView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/InputView.java b/src/main/java/leets/leets_mate/view/InputView.java index 70582e0..e87075b 100644 --- a/src/main/java/leets/leets_mate/view/InputView.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -41,7 +41,7 @@ public static int readMaxGroup(String[] members) { checkDataValidity(memberCount, maximumGroupSize); - return memberCount; + return maximumGroupSize; } catch (InputMismatchException e) { System.out.println(IllegalArgumentExceptionType.INVALID_MAX_GROUP.getMessage()); kb.nextLine(); From a4a0235f8e7e69d4a22b8875b14e496bc6f7911c Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:06:02 +0900 Subject: [PATCH 32/45] =?UTF-8?q?refactor(GroupService):=20clear()?= =?UTF-8?q?=EB=A1=9C=20group=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EB=B9=84?= =?UTF-8?q?=EC=9A=B0=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - groups.add(new ArrayList<>(group)) ๋ถ€๋ถ„์ด ์ค‘์š”ํ•˜๋‹ค. --- src/main/java/leets/leets_mate/service/GroupService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/leets/leets_mate/service/GroupService.java b/src/main/java/leets/leets_mate/service/GroupService.java index cc010dc..915bb7b 100644 --- a/src/main/java/leets/leets_mate/service/GroupService.java +++ b/src/main/java/leets/leets_mate/service/GroupService.java @@ -19,13 +19,13 @@ public List> generateRandomGroups(List memberList, int maxi if (group.size() == maximumGroupSize) { groups.add(new ArrayList<>(group)); - group = new ArrayList<>(); + group.clear(); } } // ํ˜„์žฌ๋กœ์จ๋Š” ๋นˆ ๊ทธ๋ฃน์ด ์ถ”๊ฐ€๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์ด์ง€ ์•Š๊ธดํ•˜๋‚˜, ํ˜น์‹œ ๋ชจ๋ฅผ ๋นˆ ๊ทธ๋ฃน ์ถ”๊ฐ€ ๋ฐฉ์ง€ if (!group.isEmpty()) { - groups.add(new ArrayList<>(group)); + groups.add(group); } return groups; From 539d2942aa76f0df419f7407e885fc43da03999d Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:09:49 +0900 Subject: [PATCH 33/45] =?UTF-8?q?feat(OutputView):=20Member=20=EA=B0=9D?= =?UTF-8?q?=EC=B2=B4=EB=A5=BC=20=EB=AC=B8=EC=9E=90=EC=97=B4=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=ED=99=98=ED=95=98=EC=97=AC=20String.join=20=EB=8F=84?= =?UTF-8?q?=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ๊ฐ์ฒด๋ฅผ ๊ฒฐํ•ฉํ•  ์ˆ˜๋Š” ์—†๊ธฐ์— String์œผ๋กœ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•ด์•ผ ํ–ˆ๋‹ค. --- .../java/leets/leets_mate/view/OutputView.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/leets/leets_mate/view/OutputView.java b/src/main/java/leets/leets_mate/view/OutputView.java index 96003fa..1d768b3 100644 --- a/src/main/java/leets/leets_mate/view/OutputView.java +++ b/src/main/java/leets/leets_mate/view/OutputView.java @@ -1,8 +1,10 @@ package leets.leets_mate.view; +import leets.leets_mate.domain.Member; import org.w3c.dom.ls.LSOutput; import java.util.List; +import java.util.stream.Collectors; public class OutputView { public static void printStartMessage() { @@ -12,10 +14,21 @@ public static void printStartMessage() { } public static void printMaxGroup() { + System.out.println(); System.out.println("์ตœ๋Œ€ ์ง ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); } + // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. - public void printResult(List> result) { - } + public static void printResult(List> result) { + System.out.println("์˜ค๋Š˜์˜ ์ง ์ถ”์ฒœ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค."); + for (List group : result) { + List memberNames = group.stream() + .map(Member::getName) + .collect(Collectors.toList()); + String groupResult = String.join(" | ", memberNames); + + System.out.println("[ " + groupResult + " ]"); + } + } } From 21ace858f3afc1cc03c00541faed9c2a285c1b8a Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:12:18 +0900 Subject: [PATCH 34/45] =?UTF-8?q?feat(OutputView):=20=EC=B6=94=EC=B2=A8=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20=EB=A9=94=EC=84=B8=EC=A7=80=EB=A5=BC=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/OutputView.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/leets/leets_mate/view/OutputView.java b/src/main/java/leets/leets_mate/view/OutputView.java index 1d768b3..7326287 100644 --- a/src/main/java/leets/leets_mate/view/OutputView.java +++ b/src/main/java/leets/leets_mate/view/OutputView.java @@ -20,6 +20,7 @@ public static void printMaxGroup() { // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. public static void printResult(List> result) { + System.out.println(); System.out.println("์˜ค๋Š˜์˜ ์ง ์ถ”์ฒœ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค."); for (List group : result) { @@ -31,4 +32,9 @@ public static void printResult(List> result) { System.out.println("[ " + groupResult + " ]"); } } + + public static void printCompletionMessage() { + System.out.println(); + System.out.println("์ถ”์ฒœ์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค."); + } } From 3ac6f4ed7ffb1b0e78d0141fd5ebea3dd4dd5bc7 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:15:32 +0900 Subject: [PATCH 35/45] =?UTF-8?q?docs:=20README=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/README.md b/docs/README.md index a41ab2f..8763531 100644 --- a/docs/README.md +++ b/docs/README.md @@ -19,13 +19,15 @@ **[ Domain ]** - -- [ ] **Member** +- [x] **Member** - ์ฐธ๊ฐ€์ž์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ด€๋ จ ๋กœ์ง์„ ๋‹ด๋‹น - ๋ฌธ์ž์—ด๋กœ๋œ ๋ฉค๋ฒ„๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ์ด ๋ฉค๋ฒ„์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. +**[ Service ]** +- -- [ ] **Group** +- [x] **GroupService** - ์ฐธ๊ฐ€์ž๋“ค์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋กœ์ง์„ ๋‹ด๋‹น - ๋žœ๋ค ์ง๊ฟ์„ ์ถ”์ฒจํ•ฉ๋‹ˆ๋‹ค. @@ -49,26 +51,26 @@ ์ง๊ถ ์ถ”์ฒœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ -### โœ… ์˜ˆ์™ธ ์ฒ˜๋ฆฌ - IllegalArgumentException +### โœ… ์˜ˆ์™ธ ์ฒ˜๋ฆฌ - exception ********๊ณตํ†ต******** -- [ ] ์˜ˆ์™ธ ์ƒํ™ฉ ์‹œ ์—๋Ÿฌ ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅ. ๋‹จ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๋Š” "[ERROR]"๋กœ ์‹œ์ž‘ +- [x] ์˜ˆ์™ธ ์ƒํ™ฉ ์‹œ ์—๋Ÿฌ ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅ. ๋‹จ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๋Š” "[ERROR]"๋กœ ์‹œ์ž‘ --- **์ด๋ฆ„ ์ž…๋ ฅ** -- [ ] ์ด๋ฆ„์ด ํ•œ๊ธ€์ด ์•„๋‹ˆ๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ +- [x] ์ด๋ฆ„์ด ํ•œ๊ธ€์ด ์•„๋‹ˆ๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ --- **์ตœ๋Œ€ ์ง์ˆ˜ ์ž…๋ ฅ** -- [ ] ์ตœ๋Œ€ ์ง ์ˆ˜๊ฐ€ ์ด๋ฆ„์˜ ๊ฐฏ์ˆ˜๋ณด๋‹ค ํฌ๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ +- [x] ์ตœ๋Œ€ ์ง ์ˆ˜๊ฐ€ ์ด๋ฆ„์˜ ๊ฐฏ์ˆ˜๋ณด๋‹ค ํฌ๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ --- **retry ์ž…๋ ฅ** -- [x] y์™€ n ์ด์™ธ์˜ ์ˆซ์ž๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ +- [ ] y์™€ n ์ด์™ธ์˜ ์ˆซ์ž๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ From b6f215821c5c9dcfbbb75b896e357f1be0e5c9b4 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:31:05 +0900 Subject: [PATCH 36/45] =?UTF-8?q?feat(IllegalArgumentExceptionType):=20ret?= =?UTF-8?q?ry=20=EC=8B=9C=20=EC=9E=98=EB=AA=BB=EB=90=9C=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=20=EC=97=90=EB=9F=AC=20=EC=83=81=EC=88=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/exception/IllegalArgumentExceptionType.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java b/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java index 6f5c495..3cf8e3e 100644 --- a/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java +++ b/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java @@ -4,7 +4,8 @@ public enum IllegalArgumentExceptionType implements ExceptionType Date: Thu, 11 Apr 2024 17:31:29 +0900 Subject: [PATCH 37/45] =?UTF-8?q?feat(InputView):=20retry=EB=A5=BC=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=EB=B0=9B=EB=8A=94=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/leets/leets_mate/view/InputView.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/leets/leets_mate/view/InputView.java b/src/main/java/leets/leets_mate/view/InputView.java index e87075b..ffff1a0 100644 --- a/src/main/java/leets/leets_mate/view/InputView.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -71,4 +71,19 @@ public static void checkDataValidity(int memberCount, int maximumGroupSize) { throw IllegalArgumentExceptionType.GROUP_SIZE_EXCEEDS_MEMBER_COUNT.getException(); } } + + public static boolean readRetry() { + try { + char c = kb.next().charAt(0); + if (c == 'y') { + return true; + } else if (c == 'n') { + return false; + } else + throw IllegalArgumentExceptionType.IVALID_RETRY_INPUT.getException(); + } catch (IllegalArgumentException e) { + System.out.println(e.getMessage()); + return readRetry(); + } + } } From 3e116b7c04e5fe205398860c6bd49a191df91dbd Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:35:21 +0900 Subject: [PATCH 38/45] =?UTF-8?q?feat(OutputView):=20retry=20=EC=97=AC?= =?UTF-8?q?=EB=B6=80=EB=A5=BC=20=EB=AC=BB=EB=8A=94=20=EB=A9=94=EC=8B=9C?= =?UTF-8?q?=EC=A7=80=20=EC=B6=9C=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/OutputView.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/OutputView.java b/src/main/java/leets/leets_mate/view/OutputView.java index 7326287..13c049b 100644 --- a/src/main/java/leets/leets_mate/view/OutputView.java +++ b/src/main/java/leets/leets_mate/view/OutputView.java @@ -20,7 +20,6 @@ public static void printMaxGroup() { // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. public static void printResult(List> result) { - System.out.println(); System.out.println("์˜ค๋Š˜์˜ ์ง ์ถ”์ฒœ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค."); for (List group : result) { @@ -37,4 +36,8 @@ public static void printCompletionMessage() { System.out.println(); System.out.println("์ถ”์ฒœ์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค."); } + + public static void printCanYouRetry() { + System.out.println("๋‹ค์‹œ ๊ตฌ์„ฑํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y or n): y"); + } } From f4cd2e586c46b36ef64496507d90b47877280282 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:37:13 +0900 Subject: [PATCH 39/45] =?UTF-8?q?feat(OutputView):=20retry=EB=A5=BC=20?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EA=B2=BD=EC=9A=B0?= =?UTF-8?q?=EC=97=90=20=ED=95=B4=EB=8B=B9=ED=95=98=EB=8A=94=20=EB=A9=94?= =?UTF-8?q?=EC=8B=9C=EC=A7=80=20=EC=B6=9C=EB=A0=A5=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/OutputView.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/OutputView.java b/src/main/java/leets/leets_mate/view/OutputView.java index 13c049b..da6e95b 100644 --- a/src/main/java/leets/leets_mate/view/OutputView.java +++ b/src/main/java/leets/leets_mate/view/OutputView.java @@ -38,6 +38,10 @@ public static void printCompletionMessage() { } public static void printCanYouRetry() { - System.out.println("๋‹ค์‹œ ๊ตฌ์„ฑํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y or n): y"); + System.out.println("๋‹ค์‹œ ๊ตฌ์„ฑํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y or n): "); + } + + public static void printDontWantRetry() { + System.out.println("์ž๋ฆฌ๋ฅผ ์ด๋™ํ•ด ์„œ๋กœ์—๊ฒŒ ์ธ์‚ฌํ•ด์ฃผ์„ธ์š”."); } } From 31a6e407c9d18734fc0e480c52ac0d606de2e05b Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:50:15 +0900 Subject: [PATCH 40/45] =?UTF-8?q?chore(GroupService,=20InputView,=20Member?= =?UTF-8?q?):=20=EC=A3=BC=EC=84=9D=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/domain/Member.java | 3 --- src/main/java/leets/leets_mate/service/GroupService.java | 1 - src/main/java/leets/leets_mate/view/InputView.java | 5 ++--- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/leets/leets_mate/domain/Member.java b/src/main/java/leets/leets_mate/domain/Member.java index 429438b..e1e752c 100644 --- a/src/main/java/leets/leets_mate/domain/Member.java +++ b/src/main/java/leets/leets_mate/domain/Member.java @@ -1,7 +1,6 @@ package leets.leets_mate.domain; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; public class Member { @@ -11,7 +10,6 @@ public Member(String name) { this.name = name; } - // ๋ฌธ์ž์—ด๋กœ๋œ ๋ฉค๋ฒ„๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. public static List parseMembers(String[] memberName) { List members = new ArrayList<>(); for (String name : memberName) { @@ -21,7 +19,6 @@ public static List parseMembers(String[] memberName) { return members; } - // ์ด ๋ฉค๋ฒ„์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. public static int memberNumber(List members) { return members.size(); } diff --git a/src/main/java/leets/leets_mate/service/GroupService.java b/src/main/java/leets/leets_mate/service/GroupService.java index 915bb7b..193f637 100644 --- a/src/main/java/leets/leets_mate/service/GroupService.java +++ b/src/main/java/leets/leets_mate/service/GroupService.java @@ -7,7 +7,6 @@ import java.util.List; public class GroupService { - // ๋žœ๋ค ์ง๊ฟ ์ถ”์ฒจํ•˜๋Š” ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. public List> generateRandomGroups(List memberList, int maximumGroupSize) { Collections.shuffle(memberList); diff --git a/src/main/java/leets/leets_mate/view/InputView.java b/src/main/java/leets/leets_mate/view/InputView.java index ffff1a0..5621e20 100644 --- a/src/main/java/leets/leets_mate/view/InputView.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -41,6 +41,7 @@ public static int readMaxGroup(String[] members) { checkDataValidity(memberCount, maximumGroupSize); + System.out.println(); return maximumGroupSize; } catch (InputMismatchException e) { System.out.println(IllegalArgumentExceptionType.INVALID_MAX_GROUP.getMessage()); @@ -52,7 +53,6 @@ public static int readMaxGroup(String[] members) { } } - // ๋ฉค๋ฒ„ ๋ฌธ์ž์—ด์— ์˜์–ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ public static void checkHasNoEnglish(String member) { // Character.isAlphabetic()์€ ์˜์–ด์ธ์ง€ ๊ตฌ๋ณ„ํ•ด์ฃผ๋Š”๊ฒŒ ์•„๋‹Œ ์ˆซ์ž์™€ ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ด์ค€๋‹ค! // for(char c : member.toCharArray()) { @@ -65,7 +65,6 @@ public static void checkHasNoEnglish(String member) { } } - // ๋ฉค๋ฒ„์ˆ˜์™€ ์ตœ๋Œ€ ์ง์ˆ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•˜์ง€ ์•Š๋‹ค๋ฉด ์˜ˆ์™ธ ์ถœ๋ ฅ public static void checkDataValidity(int memberCount, int maximumGroupSize) { if (memberCount < maximumGroupSize) { throw IllegalArgumentExceptionType.GROUP_SIZE_EXCEEDS_MEMBER_COUNT.getException(); @@ -80,7 +79,7 @@ public static boolean readRetry() { } else if (c == 'n') { return false; } else - throw IllegalArgumentExceptionType.IVALID_RETRY_INPUT.getException(); + throw IllegalArgumentExceptionType.INVALID_RETRY_INPUT.getException(); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); return readRetry(); From 2d883e57d5ae48e16501098f700fcb3528e22172 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:51:09 +0900 Subject: [PATCH 41/45] =?UTF-8?q?feat(OutputView):=20=EB=9D=BC=EC=9D=B8?= =?UTF-8?q?=EC=9D=84=20=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/OutputView.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/leets/leets_mate/view/OutputView.java b/src/main/java/leets/leets_mate/view/OutputView.java index da6e95b..d6efc8f 100644 --- a/src/main/java/leets/leets_mate/view/OutputView.java +++ b/src/main/java/leets/leets_mate/view/OutputView.java @@ -1,7 +1,6 @@ package leets.leets_mate.view; import leets.leets_mate.domain.Member; -import org.w3c.dom.ls.LSOutput; import java.util.List; import java.util.stream.Collectors; @@ -18,7 +17,6 @@ public static void printMaxGroup() { System.out.println("์ตœ๋Œ€ ์ง ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); } - // ๊ฒฐ๊ณผ๋ฅผ ํ”„๋ฆฐํŠธ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. public static void printResult(List> result) { System.out.println("์˜ค๋Š˜์˜ ์ง ์ถ”์ฒœ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค."); for (List group : result) { @@ -38,7 +36,11 @@ public static void printCompletionMessage() { } public static void printCanYouRetry() { - System.out.println("๋‹ค์‹œ ๊ตฌ์„ฑํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y or n): "); + System.out.print("๋‹ค์‹œ ๊ตฌ์„ฑํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y or n): "); + } + + public static void printLine() { + System.out.println("--------------------------------"); } public static void printDontWantRetry() { From fcedf0cd4774ff45a15f8bede4be1d6cb1d02c74 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 17:52:22 +0900 Subject: [PATCH 42/45] =?UTF-8?q?feat(IllegalArgumentExceptionType):=20ret?= =?UTF-8?q?ry=20=EC=9E=85=EB=A0=A5=20=EC=8B=9C=20y,n=20=EC=A0=9C=EC=99=B8?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=20=EC=97=90=EB=9F=AC=20=EC=83=81=EC=88=98?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leets_mate/view/exception/IllegalArgumentExceptionType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java b/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java index 3cf8e3e..1ad7879 100644 --- a/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java +++ b/src/main/java/leets/leets_mate/view/exception/IllegalArgumentExceptionType.java @@ -5,7 +5,7 @@ public enum IllegalArgumentExceptionType implements ExceptionType Date: Thu, 11 Apr 2024 17:52:38 +0900 Subject: [PATCH 43/45] =?UTF-8?q?feat(MatchingController):=20=EC=BB=A8?= =?UTF-8?q?=ED=8A=B8=EB=A1=A4=EB=9F=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MatchingController.java | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/main/java/leets/leets_mate/controller/MatchingController.java b/src/main/java/leets/leets_mate/controller/MatchingController.java index 0dbf717..5caf03a 100644 --- a/src/main/java/leets/leets_mate/controller/MatchingController.java +++ b/src/main/java/leets/leets_mate/controller/MatchingController.java @@ -1,14 +1,36 @@ package leets.leets_mate.controller; +import leets.leets_mate.domain.Member; +import leets.leets_mate.service.GroupService; import leets.leets_mate.view.InputView; import leets.leets_mate.view.OutputView; -import java.util.Scanner; +import java.util.List; public class MatchingController { + GroupService groupService = new GroupService(); public void run() { - String[] arr = InputView.readMember(); - int number = InputView.readMaxGroup(arr); + String[] members = InputView.readMember(); + int maxGroupSize = InputView.readMaxGroup(members); + + List membersOfList = Member.parseMembers(members); + + boolean retry = true; + while (retry) { + List> groupsOfList = groupService.generateRandomGroups(membersOfList, maxGroupSize); + + OutputView.printResult(groupsOfList); + OutputView.printCompletionMessage(); + + OutputView.printCanYouRetry(); + retry = InputView.readRetry(); + + if (retry == true) { + OutputView.printLine(); + } + } + + OutputView.printDontWantRetry(); } } From e22276c3360b903962d047ed4979e8735fa18f64 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 18:05:27 +0900 Subject: [PATCH 44/45] =?UTF-8?q?refactor(InputView):=20=EC=98=81=EC=96=B4?= =?UTF-8?q?+=ED=95=9C=EA=B8=80=20=ED=98=BC=ED=95=A9=EC=9D=84=20=EC=9E=A1?= =?UTF-8?q?=EC=A7=80=20=EB=AA=BB=ED=95=98=EB=8A=94=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/leets/leets_mate/view/InputView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/leets/leets_mate/view/InputView.java b/src/main/java/leets/leets_mate/view/InputView.java index 5621e20..74509cf 100644 --- a/src/main/java/leets/leets_mate/view/InputView.java +++ b/src/main/java/leets/leets_mate/view/InputView.java @@ -60,7 +60,7 @@ public static void checkHasNoEnglish(String member) { // throw IllegalArgumentExceptionType.INVALID_NAMING.getException(); // } // } - if (Pattern.matches("^[a-zA-Z]*$", member)) { + if (Pattern.matches(".*[a-zA-Z]+.*", member)) { throw IllegalArgumentExceptionType.INVALID_NAMING.getException(); } } From 7356307a5e3282e8328fcc6ef1bb65135a54bd61 Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 11 Apr 2024 18:07:22 +0900 Subject: [PATCH 45/45] =?UTF-8?q?docs:=20README=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/README.md b/docs/README.md index 8763531..ac5683e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -34,21 +34,20 @@ **[ View ]** - -- [ ] **InputView** +- [x] **InputView** - ๋ฉค๋ฒ„ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์Œ (,๋กœ ๊ตฌ๋ถ„) - ์ตœ๋Œ€ ์ง ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ - ๋‹ค์‹œ ๊ตฌ์„ฑํ• ์ง€ ๋ง์ง€ ์ž…๋ ฅ๋ฐ›์Œ(y,n) -- [ ] **OutputView** +- [x] **OutputView** - ์ง ์ถ”์ฒœ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์คŒ(default, y) - ์ธ์‚ฌ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์คŒ(n) **[ Controller ]** - -- [ ] **MatchingController** - +- [x] **MatchingController** ์ง๊ถ ์ถ”์ฒœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ ### โœ… ์˜ˆ์™ธ ์ฒ˜๋ฆฌ - exception @@ -71,6 +70,6 @@ --- **retry ์ž…๋ ฅ** -- [ ] y์™€ n ์ด์™ธ์˜ ์ˆซ์ž๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ +- [x] y์™€ n ์ด์™ธ์˜ ์ˆซ์ž๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ