From 1e8940b70db69eb0e920effd763b39c2d1999147 Mon Sep 17 00:00:00 2001 From: daadaadaah Date: Mon, 13 Mar 2023 12:57:10 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[SOLID]=20SRP=20=EC=9C=84=EB=B0=98=20?= =?UTF-8?q?=EC=82=AC=EB=A1=80=20-=20=EC=88=98=EC=A0=95=20=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../practice/solid/srp/before/DataViewer.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 oop-in-spring/practice/solid/srp/before/DataViewer.java diff --git a/oop-in-spring/practice/solid/srp/before/DataViewer.java b/oop-in-spring/practice/solid/srp/before/DataViewer.java new file mode 100644 index 000000000..202bd9aec --- /dev/null +++ b/oop-in-spring/practice/solid/srp/before/DataViewer.java @@ -0,0 +1,24 @@ +public class DataViewer { + + public void DataViewer() { + String data = loadHtml(); + updateGui(data); + } + + public String loadHtml() { + HttpClient client = new HttpClient(); + client.connect(url); + return client.getResponse(); + } + + private void updateGui(String data) { + GuiData guiModel = parseDataToGuiData(data); + tableUI.changeData(guiModel); + } + + private GuiData parseDataToGuiData(String data) { + // ... 파싱 처리 코듸 + } + + // 기타 코드 +} From b5105543cf6871d2ce4569237a3de528e05dbe69 Mon Sep 17 00:00:00 2001 From: daadaadaah Date: Mon, 13 Mar 2023 12:59:44 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[SOLID]=20SRP=20=EC=9C=84=EB=B0=98=20?= =?UTF-8?q?=EC=82=AC=EB=A1=80=20-=20=EC=9A=94=EA=B5=AC=20=EC=82=AC?= =?UTF-8?q?=ED=95=AD=20=EB=B3=80=EA=B2=BD=20:=20HTTP=20->=20Socket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - HTTP -> Socket으로 요구사항이 변경함에 따라 읽어오는 데이터의 타입 변화 String -> byte[] - 그로 인해 변화가 필요한 부분 연쇄적으로 수정해야하는 상황 발생함. --- .../practice/solid/srp/before/DataViewer.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/oop-in-spring/practice/solid/srp/before/DataViewer.java b/oop-in-spring/practice/solid/srp/before/DataViewer.java index 202bd9aec..f8555f409 100644 --- a/oop-in-spring/practice/solid/srp/before/DataViewer.java +++ b/oop-in-spring/practice/solid/srp/before/DataViewer.java @@ -1,22 +1,22 @@ public class DataViewer { public void DataViewer() { - String data = loadHtml(); + byte[] data = loadHtml(); updateGui(data); } - public String loadHtml() { - HttpClient client = new HttpClient(); - client.connect(url); - return client.getResponse(); + public byte[] loadHtml() { + SocketClient client = new SocketClient(); + client.connect(server, port); + return client.read(); } - private void updateGui(String data) { + private void updateGui(byte[] data) { GuiData guiModel = parseDataToGuiData(data); tableUI.changeData(guiModel); } - private GuiData parseDataToGuiData(String data) { + private GuiData parseDataToGuiData(byte[] data) { // ... 파싱 처리 코듸 } From 7e18ebbc835b7a58feac1866dfb84357480adcc0 Mon Sep 17 00:00:00 2001 From: daadaadaah Date: Mon, 13 Mar 2023 13:04:41 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EC=9E=98=EB=AA=BB=EB=90=9C=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oop-in-spring/practice/solid/srp/after/Data.java | 0 oop-in-spring/practice/solid/srp/after/DataDisplayer.java | 0 oop-in-spring/practice/solid/srp/after/DataLoader.java | 0 oop-in-spring/practice/solid/srp/before/DataViewer.java | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 oop-in-spring/practice/solid/srp/after/Data.java create mode 100644 oop-in-spring/practice/solid/srp/after/DataDisplayer.java create mode 100644 oop-in-spring/practice/solid/srp/after/DataLoader.java diff --git a/oop-in-spring/practice/solid/srp/after/Data.java b/oop-in-spring/practice/solid/srp/after/Data.java new file mode 100644 index 000000000..e69de29bb diff --git a/oop-in-spring/practice/solid/srp/after/DataDisplayer.java b/oop-in-spring/practice/solid/srp/after/DataDisplayer.java new file mode 100644 index 000000000..e69de29bb diff --git a/oop-in-spring/practice/solid/srp/after/DataLoader.java b/oop-in-spring/practice/solid/srp/after/DataLoader.java new file mode 100644 index 000000000..e69de29bb diff --git a/oop-in-spring/practice/solid/srp/before/DataViewer.java b/oop-in-spring/practice/solid/srp/before/DataViewer.java index f8555f409..fb327fc19 100644 --- a/oop-in-spring/practice/solid/srp/before/DataViewer.java +++ b/oop-in-spring/practice/solid/srp/before/DataViewer.java @@ -1,6 +1,6 @@ public class DataViewer { - public void DataViewer() { + public void display() { byte[] data = loadHtml(); updateGui(data); } From f4add4755ff86a741229ca7131f4cb4f4e8995fd Mon Sep 17 00:00:00 2001 From: daadaadaah Date: Mon, 13 Mar 2023 13:08:23 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[SOLID]=20SRP=20=EC=A4=80=EC=88=98=20?= =?UTF-8?q?=EC=82=AC=EB=A1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 데이터 GUI로 보여주는 책임은 DataDisplayer가 담당하고, 데이터 읽기 책임은 DataLoader가 담당한다. - 데이터도 추상화함. --- oop-in-spring/practice/solid/srp/after/Data.java | 3 +++ .../practice/solid/srp/after/DataDisplayer.java | 6 ++++++ .../practice/solid/srp/after/DataLoader.java | 16 ++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/oop-in-spring/practice/solid/srp/after/Data.java b/oop-in-spring/practice/solid/srp/after/Data.java index e69de29bb..fe3ec2189 100644 --- a/oop-in-spring/practice/solid/srp/after/Data.java +++ b/oop-in-spring/practice/solid/srp/after/Data.java @@ -0,0 +1,3 @@ +public class Data { + byte[] someProperty; +} \ No newline at end of file diff --git a/oop-in-spring/practice/solid/srp/after/DataDisplayer.java b/oop-in-spring/practice/solid/srp/after/DataDisplayer.java index e69de29bb..4036907e2 100644 --- a/oop-in-spring/practice/solid/srp/after/DataDisplayer.java +++ b/oop-in-spring/practice/solid/srp/after/DataDisplayer.java @@ -0,0 +1,6 @@ +public class DataDisplayer { + public void display() { + Data data = loadHtml(); + updateGui(data); + } +} \ No newline at end of file diff --git a/oop-in-spring/practice/solid/srp/after/DataLoader.java b/oop-in-spring/practice/solid/srp/after/DataLoader.java index e69de29bb..77e65fd42 100644 --- a/oop-in-spring/practice/solid/srp/after/DataLoader.java +++ b/oop-in-spring/practice/solid/srp/after/DataLoader.java @@ -0,0 +1,16 @@ +public class DataLoader { + public Data loadHtml() { + SocketClient client = new SocketClient(); + client.connect(server, port); + return client.read(); + } + + private void updateGui(Data data) { + GuiData guiModel = parseDataToGuiData(data); + tableUI.changeData(guiModel); + } + + private GuiData parseDataToGuiData(Data data) { + // ... 파싱 처리 코듸 + } +} \ No newline at end of file From 218f7312e91f6707cfd969ea0599952a1ed0640b Mon Sep 17 00:00:00 2001 From: daadaadaah Date: Mon, 13 Mar 2023 13:10:57 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[SOLID]=20SRP=20=EC=A4=80=EC=88=98=20?= =?UTF-8?q?=EC=82=AC=EB=A1=80=20-=20=EC=9A=94=EA=B5=AC=20=EC=82=AC?= =?UTF-8?q?=ED=95=AD=20=EB=B3=80=EA=B2=BD=20:=20Socket=20->=20HTTP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Socket에서 HTTP로 변경에 따라 DataLoader만 수정하면 되고, DataDisplayer는 변경할 필요가 없다. - 또한, 그에 따라 데이터 유형도 바뀌었는데, 이는 Data 클래스만 변경하면 된다. --- oop-in-spring/practice/solid/srp/after/Data.java | 2 +- oop-in-spring/practice/solid/srp/after/DataLoader.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/oop-in-spring/practice/solid/srp/after/Data.java b/oop-in-spring/practice/solid/srp/after/Data.java index fe3ec2189..611d8b0c8 100644 --- a/oop-in-spring/practice/solid/srp/after/Data.java +++ b/oop-in-spring/practice/solid/srp/after/Data.java @@ -1,3 +1,3 @@ public class Data { - byte[] someProperty; + String someProperty; } \ No newline at end of file diff --git a/oop-in-spring/practice/solid/srp/after/DataLoader.java b/oop-in-spring/practice/solid/srp/after/DataLoader.java index 77e65fd42..11a500ba3 100644 --- a/oop-in-spring/practice/solid/srp/after/DataLoader.java +++ b/oop-in-spring/practice/solid/srp/after/DataLoader.java @@ -1,8 +1,8 @@ public class DataLoader { public Data loadHtml() { - SocketClient client = new SocketClient(); - client.connect(server, port); - return client.read(); + HttpClient client = new HttpClient(); + client.connect(url); + return client.getResponse(); } private void updateGui(Data data) {