From 8f14b5e77776b52d44413136f05ea390773dfd91 Mon Sep 17 00:00:00 2001 From: SEOB Date: Tue, 7 Nov 2023 13:23:55 +0900 Subject: [PATCH 001/188] =?UTF-8?q?feat:=20=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EB=B0=8F=20=EC=A1=B0=ED=9A=8C=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1 WEEK/.idea/.gitignore | 8 ++ 1 WEEK/.idea/1 WEEK.iml | 9 ++ 1 WEEK/.idea/misc.xml | 6 + 1 WEEK/.idea/modules.xml | 8 ++ 1 WEEK/.idea/vcs.xml | 6 + 1 WEEK/Week1/.gitignore | 29 ++++ 1 WEEK/Week1/.idea/.gitignore | 8 ++ 1 WEEK/Week1/.idea/misc.xml | 5 + 1 WEEK/Week1/.idea/modules.xml | 8 ++ 1 WEEK/Week1/.idea/uiDesigner.xml | 124 ++++++++++++++++++ 1 WEEK/Week1/.idea/vcs.xml | 6 + 1 WEEK/Week1/Week1.iml | 11 ++ 1 WEEK/Week1/src/member/Member.java | 53 ++++++++ .../src/repository/MemberRepository.java | 10 ++ .../repository/MemoryMemberRepository.java | 23 ++++ 1 WEEK/Week1/src/service/Main.java | 31 +++++ 1 WEEK/Week1/src/service/MemberService.java | 20 +++ 17 files changed, 365 insertions(+) create mode 100644 1 WEEK/.idea/.gitignore create mode 100644 1 WEEK/.idea/1 WEEK.iml create mode 100644 1 WEEK/.idea/misc.xml create mode 100644 1 WEEK/.idea/modules.xml create mode 100644 1 WEEK/.idea/vcs.xml create mode 100644 1 WEEK/Week1/.gitignore create mode 100644 1 WEEK/Week1/.idea/.gitignore create mode 100644 1 WEEK/Week1/.idea/misc.xml create mode 100644 1 WEEK/Week1/.idea/modules.xml create mode 100644 1 WEEK/Week1/.idea/uiDesigner.xml create mode 100644 1 WEEK/Week1/.idea/vcs.xml create mode 100644 1 WEEK/Week1/Week1.iml create mode 100644 1 WEEK/Week1/src/member/Member.java create mode 100644 1 WEEK/Week1/src/repository/MemberRepository.java create mode 100644 1 WEEK/Week1/src/repository/MemoryMemberRepository.java create mode 100644 1 WEEK/Week1/src/service/Main.java create mode 100644 1 WEEK/Week1/src/service/MemberService.java diff --git a/1 WEEK/.idea/.gitignore b/1 WEEK/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/1 WEEK/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/1 WEEK/.idea/1 WEEK.iml b/1 WEEK/.idea/1 WEEK.iml new file mode 100644 index 00000000..d6ebd480 --- /dev/null +++ b/1 WEEK/.idea/1 WEEK.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/1 WEEK/.idea/misc.xml b/1 WEEK/.idea/misc.xml new file mode 100644 index 00000000..639900d1 --- /dev/null +++ b/1 WEEK/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/1 WEEK/.idea/modules.xml b/1 WEEK/.idea/modules.xml new file mode 100644 index 00000000..ef1d3910 --- /dev/null +++ b/1 WEEK/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/1 WEEK/.idea/vcs.xml b/1 WEEK/.idea/vcs.xml new file mode 100644 index 00000000..6c0b8635 --- /dev/null +++ b/1 WEEK/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/1 WEEK/Week1/.gitignore b/1 WEEK/Week1/.gitignore new file mode 100644 index 00000000..f68d1099 --- /dev/null +++ b/1 WEEK/Week1/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/1 WEEK/Week1/.idea/.gitignore b/1 WEEK/Week1/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/1 WEEK/Week1/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/1 WEEK/Week1/.idea/misc.xml b/1 WEEK/Week1/.idea/misc.xml new file mode 100644 index 00000000..ef89d983 --- /dev/null +++ b/1 WEEK/Week1/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/1 WEEK/Week1/.idea/modules.xml b/1 WEEK/Week1/.idea/modules.xml new file mode 100644 index 00000000..59971b14 --- /dev/null +++ b/1 WEEK/Week1/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/1 WEEK/Week1/.idea/uiDesigner.xml b/1 WEEK/Week1/.idea/uiDesigner.xml new file mode 100644 index 00000000..2b63946d --- /dev/null +++ b/1 WEEK/Week1/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/1 WEEK/Week1/.idea/vcs.xml b/1 WEEK/Week1/.idea/vcs.xml new file mode 100644 index 00000000..b2bdec2d --- /dev/null +++ b/1 WEEK/Week1/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/1 WEEK/Week1/Week1.iml b/1 WEEK/Week1/Week1.iml new file mode 100644 index 00000000..c90834f2 --- /dev/null +++ b/1 WEEK/Week1/Week1.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/1 WEEK/Week1/src/member/Member.java b/1 WEEK/Week1/src/member/Member.java new file mode 100644 index 00000000..93459b60 --- /dev/null +++ b/1 WEEK/Week1/src/member/Member.java @@ -0,0 +1,53 @@ +package member; + +public class Member { + + private Long id; + private String name; + private String password; + private String grade; // NORMAL, VIP + + + + //getter setter + public void setAll(String name, String password, String grade) { + this.name = name; + this.password = password; + this.grade = grade; + } + + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + +} diff --git a/1 WEEK/Week1/src/repository/MemberRepository.java b/1 WEEK/Week1/src/repository/MemberRepository.java new file mode 100644 index 00000000..5f66e677 --- /dev/null +++ b/1 WEEK/Week1/src/repository/MemberRepository.java @@ -0,0 +1,10 @@ +package repository; + +import member.Member; + +public interface MemberRepository { + public Member save(Member member); + + public Member findById(Long memberId); + +} diff --git a/1 WEEK/Week1/src/repository/MemoryMemberRepository.java b/1 WEEK/Week1/src/repository/MemoryMemberRepository.java new file mode 100644 index 00000000..a4f12a6b --- /dev/null +++ b/1 WEEK/Week1/src/repository/MemoryMemberRepository.java @@ -0,0 +1,23 @@ +package repository; + +import member.Member; + +import java.util.HashMap; +import java.util.Map; + +public class MemoryMemberRepository implements MemberRepository{ + + + private static Map store = new HashMap<>(); + private static long incrementID = 0L; + + public Member save(Member member) { + member.setId(++incrementID); //호출 시 1씩 증가 + store.put(member.getId(), member); + return member; + } + + public Member findById(Long memberId) { + return store.get(memberId); + } +} diff --git a/1 WEEK/Week1/src/service/Main.java b/1 WEEK/Week1/src/service/Main.java new file mode 100644 index 00000000..ec4015b7 --- /dev/null +++ b/1 WEEK/Week1/src/service/Main.java @@ -0,0 +1,31 @@ +package service; + +import member.Member; +import member.Product; +import repository.MemoryMemberRepository; + +public class Main { + public static void main(String[] args) { + MemberService memberSerive = new MemberService(); + Member member1 = new Member(); + Member member2 = new Member(); + + //회원 name, pwd, grade 지정 + member1.setAll("name1", "password1", "NORMAL"); + member2.setAll("name2", "password2", "VIP"); + + + //회원가입 + Long id1 = memberSerive.signUp(member1); + Long id2 = memberSerive.signUp(member2); + System.out.println(id1); + System.out.println(id2); + + + + + + + + } +} diff --git a/1 WEEK/Week1/src/service/MemberService.java b/1 WEEK/Week1/src/service/MemberService.java new file mode 100644 index 00000000..43aa6dd1 --- /dev/null +++ b/1 WEEK/Week1/src/service/MemberService.java @@ -0,0 +1,20 @@ +package service; + +import member.Member; +import repository.MemberRepository; +import repository.MemoryMemberRepository; + +public class MemberService { + MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); + + public Long signUp(Member member) { + memoryMemberRepository.save(member); + return member.getId(); + } + + public Member findByName(Long memberId) { + Member name = memoryMemberRepository.findById(memberId); + return name; + } + +} From 91acc95fd66fdd85295b0511ad44c1b870e0ab92 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 8 Nov 2023 15:40:53 +0900 Subject: [PATCH 002/188] =?UTF-8?q?[BE]=20perf:=20=20password=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=EB=B0=8F=20Member=20=EC=83=9D=EC=84=B1=EC=9E=90=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 - 요구 사항에 없던 password 제거 - Member 생성자를 사용한 setting --- 1 WEEK/Week1/src/member/Member.java | 15 ++------------- 1 WEEK/Week1/src/service/Main.java | 24 ++++++++++++++++++------ 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/1 WEEK/Week1/src/member/Member.java b/1 WEEK/Week1/src/member/Member.java index 93459b60..9e4e39e5 100644 --- a/1 WEEK/Week1/src/member/Member.java +++ b/1 WEEK/Week1/src/member/Member.java @@ -4,20 +4,17 @@ public class Member { private Long id; private String name; - private String password; private String grade; // NORMAL, VIP //getter setter - public void setAll(String name, String password, String grade) { + + public Member(String name, String grade) { this.name = name; - this.password = password; this.grade = grade; } - - public Long getId() { return id; } @@ -34,14 +31,6 @@ public void setName(String name) { this.name = name; } - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - public String getGrade() { return grade; } diff --git a/1 WEEK/Week1/src/service/Main.java b/1 WEEK/Week1/src/service/Main.java index ec4015b7..c84646e3 100644 --- a/1 WEEK/Week1/src/service/Main.java +++ b/1 WEEK/Week1/src/service/Main.java @@ -7,12 +7,10 @@ public class Main { public static void main(String[] args) { MemberService memberSerive = new MemberService(); - Member member1 = new Member(); - Member member2 = new Member(); - //회원 name, pwd, grade 지정 - member1.setAll("name1", "password1", "NORMAL"); - member2.setAll("name2", "password2", "VIP"); + //회원 name, grade 지정 + Member member1 = new Member("name1", "NORMAL"); + Member member2 = new Member("name2", "VIP"); //회원가입 @@ -22,7 +20,21 @@ public static void main(String[] args) { System.out.println(id2); - + //id 검색 -> 앞서 지정한 name 출력 + Member findMember1 = memberSerive.findByName(id1); + Member findMember2 = memberSerive.findByName(id2); + System.out.println(findMember1.getName()); + System.out.println(findMember2.getName()); + + + //상품 주문 + //고객의 고유 id, 상품 + ProductService productService = new ProductService(); + Product product1 = new Product("상품1", 10000L);//상품 이름과 가격 + Product product2 = new Product("상품2", 20000L); + productService.order(id1, product1); + productService.order(id2, product2); + From 2978078dc158b7e888ab88756b3b5c18f461d1cb Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 8 Nov 2023 16:28:34 +0900 Subject: [PATCH 003/188] =?UTF-8?q?[BE]=20pref:=20grade=20type=20=EC=9D=84?= =?UTF-8?q?=20enum=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1 WEEK/Week1/src/member/GradeType.java | 5 +++++ 1 WEEK/Week1/src/member/Member.java | 13 +++++++++---- 1 WEEK/Week1/src/service/Main.java | 5 +++-- 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 1 WEEK/Week1/src/member/GradeType.java diff --git a/1 WEEK/Week1/src/member/GradeType.java b/1 WEEK/Week1/src/member/GradeType.java new file mode 100644 index 00000000..21ecba1f --- /dev/null +++ b/1 WEEK/Week1/src/member/GradeType.java @@ -0,0 +1,5 @@ +package member; + +public enum GradeType { + NORMAL, VIP +} diff --git a/1 WEEK/Week1/src/member/Member.java b/1 WEEK/Week1/src/member/Member.java index 9e4e39e5..c65b9855 100644 --- a/1 WEEK/Week1/src/member/Member.java +++ b/1 WEEK/Week1/src/member/Member.java @@ -4,13 +4,18 @@ public class Member { private Long id; private String name; - private String grade; // NORMAL, VIP + private GradeType grade; + //getter setter + public void Member(String name, GradeType grade) { + this.name = name; + this.grade = grade; + } - public Member(String name, String grade) { + public Member(String name, GradeType grade) { this.name = name; this.grade = grade; } @@ -31,11 +36,11 @@ public void setName(String name) { this.name = name; } - public String getGrade() { + public GradeType getGrade() { return grade; } - public void setGrade(String grade) { + public void setGrade(GradeType grade) { this.grade = grade; } diff --git a/1 WEEK/Week1/src/service/Main.java b/1 WEEK/Week1/src/service/Main.java index c84646e3..2049a732 100644 --- a/1 WEEK/Week1/src/service/Main.java +++ b/1 WEEK/Week1/src/service/Main.java @@ -1,5 +1,6 @@ package service; +import member.GradeType; import member.Member; import member.Product; import repository.MemoryMemberRepository; @@ -9,8 +10,8 @@ public static void main(String[] args) { MemberService memberSerive = new MemberService(); //회원 name, grade 지정 - Member member1 = new Member("name1", "NORMAL"); - Member member2 = new Member("name2", "VIP"); + Member member1 = new Member("name1", GradeType.VIP); + Member member2 = new Member("name2", GradeType.NORMAL); //회원가입 From b83ea0b5e005e319a062b1eb8b85044d91d06272 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 8 Nov 2023 16:42:30 +0900 Subject: [PATCH 004/188] =?UTF-8?q?[BE]=20perf:=20Map=20->=20ConcurrentHas?= =?UTF-8?q?hMap=20=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Map 동시성 문제를 해결하기 위해 ConcurrentHashMap 사용 --- 1 WEEK/Week1/src/repository/MemoryMemberRepository.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/1 WEEK/Week1/src/repository/MemoryMemberRepository.java b/1 WEEK/Week1/src/repository/MemoryMemberRepository.java index a4f12a6b..d918d788 100644 --- a/1 WEEK/Week1/src/repository/MemoryMemberRepository.java +++ b/1 WEEK/Week1/src/repository/MemoryMemberRepository.java @@ -4,11 +4,12 @@ import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class MemoryMemberRepository implements MemberRepository{ - private static Map store = new HashMap<>(); + private static ConcurrentHashMap store = new ConcurrentHashMap<>(); private static long incrementID = 0L; public Member save(Member member) { From 9d0b5423cfc3c9c0f68dd65b40d979cfa0e0d087 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 8 Nov 2023 17:27:01 +0900 Subject: [PATCH 005/188] =?UTF-8?q?[BE]=20docs:=20readme.md=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1 WEEK/Week1/Readme.md | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 1 WEEK/Week1/Readme.md diff --git a/1 WEEK/Week1/Readme.md b/1 WEEK/Week1/Readme.md new file mode 100644 index 00000000..f2395304 --- /dev/null +++ b/1 WEEK/Week1/Readme.md @@ -0,0 +1,43 @@ +# 회원 가입 및 조회 기능 구현 + +--- + +## package member +### GradeType +- Member 클래스의 grade를 enum타입으로 사용 + +### Member +- member의 id, name, grade 를 getter setter함 + +### Product +- product의 id, name, price, discountedPrice getter setter 함 + + + +--- + + +## package repository +### MemberRepository +- save 와 findById 메소드 정의 + +### MemoryMemberRepository +- MemberRepository 인터페이스 구현 +- 동시성 해결을 위해 Map 대신 ConcurrentHashMap 사용 + + private static ConcurrentHashMap store = new ConcurrentHashMap<>(); + +- public Member save() 에서 id 호출 시 1씩 증가하도록 함 +- public Member findById() - memberId를 키 값으로 Member 반환 + +--- + +## package service +### MemberSerivce +- member의 signUp과 findByName 구현 +- private static final 을 사용해 외부에서의 접근과 재할당을 방지 + + private static final MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); + +### Main +- Main class 회원가입 후 고유 id 출력과 고유 id를 사용해 Member의 name을 출력하는 기능을 구현 \ No newline at end of file From 814eb5529ad8604f689781e4638eccc97e8c6520 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 8 Nov 2023 17:30:46 +0900 Subject: [PATCH 006/188] =?UTF-8?q?[BE]=20perf:=20=EA=B0=9D=EC=B2=B4=20?= =?UTF-8?q?=EC=84=A0=EC=96=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit private static final 로 외부에서의 접근 및 중복 생성 방지 --- 1 WEEK/Week1/src/service/MemberService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/1 WEEK/Week1/src/service/MemberService.java b/1 WEEK/Week1/src/service/MemberService.java index 43aa6dd1..2daf8688 100644 --- a/1 WEEK/Week1/src/service/MemberService.java +++ b/1 WEEK/Week1/src/service/MemberService.java @@ -5,7 +5,10 @@ import repository.MemoryMemberRepository; public class MemberService { - MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); + + + private static final MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); + public Long signUp(Member member) { memoryMemberRepository.save(member); From ca662ff4141621d6e91a2855ac0465347bdfc7a1 Mon Sep 17 00:00:00 2001 From: SEOB Date: Thu, 9 Nov 2023 11:50:26 +0900 Subject: [PATCH 007/188] =?UTF-8?q?[BE]=20feat:=20product=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=9C=20getter=20setter=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=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 --- 1 WEEK/Week1/src/member/Product.java | 46 ++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 1 WEEK/Week1/src/member/Product.java diff --git a/1 WEEK/Week1/src/member/Product.java b/1 WEEK/Week1/src/member/Product.java new file mode 100644 index 00000000..bc94b4aa --- /dev/null +++ b/1 WEEK/Week1/src/member/Product.java @@ -0,0 +1,46 @@ +package member; + +public class Product { + + private Long id; + private String name; + private Long price; + private Double discountedPrice; + + public Product(String name, Long price) { + this.name = name; + this.price = price; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getPrice() { + return price; + } + + public void setPrice(Long price) { + this.price = price; + } + + public Double getDiscountedPrice() { + return discountedPrice; + } + + public void setDiscountedPrice(Double discountedPrice) { + this.discountedPrice = discountedPrice; + } +} From 42f61e066d27790e15a40b132f0bfc727d8fa870 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 10 Nov 2023 14:21:23 +0900 Subject: [PATCH 008/188] =?UTF-8?q?[BE]=20feat:=20=EC=83=81=ED=92=88=20?= =?UTF-8?q?=EC=A3=BC=EB=AC=B8=EC=97=90=20=EB=8C=80=ED=95=9C=20main=20class?= =?UTF-8?q?=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1 WEEK/Week1/src/service/Main.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/1 WEEK/Week1/src/service/Main.java b/1 WEEK/Week1/src/service/Main.java index 2049a732..a0033cfe 100644 --- a/1 WEEK/Week1/src/service/Main.java +++ b/1 WEEK/Week1/src/service/Main.java @@ -34,8 +34,12 @@ public static void main(String[] args) { Product product1 = new Product("상품1", 10000L);//상품 이름과 가격 Product product2 = new Product("상품2", 20000L); productService.order(id1, product1); + productService.order(id1, product1); //key값을 member의 id로, value에 product 주입 productService.order(id2, product2); + //등급별 할인된 가격 확인 + System.out.println(product1.getDiscountedPrice()); + System.out.println(product2.getDiscountedPrice()); From c86c4d8d447c2d33528f84a61ae689ca673cec20 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 10 Nov 2023 14:24:04 +0900 Subject: [PATCH 009/188] =?UTF-8?q?[BE]=20feat:=20=EC=83=81=ED=92=88=20?= =?UTF-8?q?=EC=A3=BC=EB=AC=B8=EC=97=90=20=EB=8C=80=ED=95=9C=20ProductServi?= =?UTF-8?q?ce=20class=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - order 메소드에서 member 의 아이디를 사용해 member의 등급을 조사한 뒤 할인율을 계산하였습니다. --- 1 WEEK/Week1/src/service/ProductService.java | 37 ++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 1 WEEK/Week1/src/service/ProductService.java diff --git a/1 WEEK/Week1/src/service/ProductService.java b/1 WEEK/Week1/src/service/ProductService.java new file mode 100644 index 00000000..7efd2201 --- /dev/null +++ b/1 WEEK/Week1/src/service/ProductService.java @@ -0,0 +1,37 @@ +package service; + +import member.GradeType; +import member.Member; +import member.Product; +import repository.MemoryMemberRepository; +import repository.MemoryProductRepository; +import repository.ProductRepository; + +public class ProductService { + + private static double vipDiscount = 0.3; //vip할인율 + + private static final MemoryProductRepository memoryProductRepository = new MemoryProductRepository(); + public Long order(Long memberId, Product product) { + + //store한 member에 접근 + MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); + Member member = memoryMemberRepository.findById(memberId); + + Long price = product.getPrice(); + Double discountedPrice = 0.0; //default + + + if(member.getGrade().equals(GradeType.VIP)) { + discountedPrice = price - price * vipDiscount; + } else { //GradeType.NORMAL + discountedPrice = (double)price; + } + product.setDiscountedPrice(discountedPrice); + + memoryProductRepository.save(memberId, product); + return product.getId(); + } + + +} From 35c5243bd4d3314cde001d836fbd849aec9af0ce Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 10 Nov 2023 14:28:31 +0900 Subject: [PATCH 010/188] =?UTF-8?q?[BE]=20feat:=20Repository=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ProductRepositroy 인터페이스 작성 - ProductRepository를 구현한 MemeoryProductRepository 에서 메모리에 저장하는 기능 구현 --- .../repository/MemoryProductRepository.java | 28 +++++++++++++++++++ .../src/repository/ProductRepository.java | 9 ++++++ 2 files changed, 37 insertions(+) create mode 100644 1 WEEK/Week1/src/repository/MemoryProductRepository.java create mode 100644 1 WEEK/Week1/src/repository/ProductRepository.java diff --git a/1 WEEK/Week1/src/repository/MemoryProductRepository.java b/1 WEEK/Week1/src/repository/MemoryProductRepository.java new file mode 100644 index 00000000..36050e1c --- /dev/null +++ b/1 WEEK/Week1/src/repository/MemoryProductRepository.java @@ -0,0 +1,28 @@ +package repository; + +import member.GradeType; +import member.Member; +import member.Product; + + +import java.util.concurrent.ConcurrentHashMap; + +public class MemoryProductRepository implements ProductRepository{ + + //memberId, product + private static ConcurrentHashMap store = new ConcurrentHashMap<>(); + private static long incrementId = 0L; + + + + //키 값으로 멤버의 고유 id 저장 + public Product save(Long memberId, Product product) { + product.setId(++incrementId); + + + store.put(memberId, product); + return product; + } + + +} diff --git a/1 WEEK/Week1/src/repository/ProductRepository.java b/1 WEEK/Week1/src/repository/ProductRepository.java new file mode 100644 index 00000000..1821000d --- /dev/null +++ b/1 WEEK/Week1/src/repository/ProductRepository.java @@ -0,0 +1,9 @@ +package repository; + +import member.Product; + +public interface ProductRepository { + public Product save(Long memberId, Product product); + + +} From 214208e2fd59cd2ba05e7a6a6c8abd74e9c975d0 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 10 Nov 2023 14:39:38 +0900 Subject: [PATCH 011/188] =?UTF-8?q?[BE]=20docs:=20=EC=83=81=ED=92=88=20?= =?UTF-8?q?=EC=A3=BC=EB=AC=B8=EC=97=90=20=EB=8C=80=ED=95=9C=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=84=A4=EB=AA=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1 WEEK/Week1/Readme.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/1 WEEK/Week1/Readme.md b/1 WEEK/Week1/Readme.md index f2395304..2977b407 100644 --- a/1 WEEK/Week1/Readme.md +++ b/1 WEEK/Week1/Readme.md @@ -13,7 +13,6 @@ - product의 id, name, price, discountedPrice getter setter 함 - --- @@ -30,6 +29,15 @@ - public Member save() 에서 id 호출 시 1씩 증가하도록 함 - public Member findById() - memberId를 키 값으로 Member 반환 +### ProductRepsoitory +- save 메소드 정의 + +### MemoryProductRepository +- ProductRepository 인터페이스 구현 +- 동시성 해결을 위해 Map 대신 ConcurrentHashMap 사용 +- id 호출 시 1씩 증가하도록 함 + + --- ## package service @@ -39,5 +47,12 @@ private static final MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); +### ProductService +- Member의 id 로 해당 member 의 grade를 확인하고, VIP 등급은 30% 할인을 적용시킴 + + private static double vipDiscount = 0.3; //vip할인율 + + ### Main -- Main class 회원가입 후 고유 id 출력과 고유 id를 사용해 Member의 name을 출력하는 기능을 구현 \ No newline at end of file +- 회원가입 후 고유 id 출력과 고유 id를 사용해 Member의 name을 출력하는 기능을 구현 +- 상품이름과 삼품가격을 입력하고 할인된 가격을 출력하도록 함 \ No newline at end of file From 11675bb43011f2ca4189994464fb9a358ccd361e Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 13 Nov 2023 23:48:48 +0900 Subject: [PATCH 012/188] Initial commit --- 2 WEEK/LEE/.gitignore | 37 +++ 2 WEEK/LEE/build.gradle | 30 +++ 2 WEEK/LEE/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + 2 WEEK/LEE/gradlew | 249 ++++++++++++++++++ 2 WEEK/LEE/gradlew.bat | 92 +++++++ 2 WEEK/LEE/settings.gradle | 1 + .../main/java/SEOB/SEOB/SeobApplication.java | 13 + .../src/main/resources/application.properties | 1 + .../java/SEOB/SEOB/SeobApplicationTests.java | 13 + 10 files changed, 443 insertions(+) create mode 100644 2 WEEK/LEE/.gitignore create mode 100644 2 WEEK/LEE/build.gradle create mode 100644 2 WEEK/LEE/gradle/wrapper/gradle-wrapper.jar create mode 100644 2 WEEK/LEE/gradle/wrapper/gradle-wrapper.properties create mode 100644 2 WEEK/LEE/gradlew create mode 100644 2 WEEK/LEE/gradlew.bat create mode 100644 2 WEEK/LEE/settings.gradle create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/SeobApplication.java create mode 100644 2 WEEK/LEE/src/main/resources/application.properties create mode 100644 2 WEEK/LEE/src/test/java/SEOB/SEOB/SeobApplicationTests.java diff --git a/2 WEEK/LEE/.gitignore b/2 WEEK/LEE/.gitignore new file mode 100644 index 00000000..c2065bc2 --- /dev/null +++ b/2 WEEK/LEE/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/2 WEEK/LEE/build.gradle b/2 WEEK/LEE/build.gradle new file mode 100644 index 00000000..48698321 --- /dev/null +++ b/2 WEEK/LEE/build.gradle @@ -0,0 +1,30 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.1.5' + id 'io.spring.dependency-management' version '1.1.3' +} + +group = 'SEOB' +version = '0.0.1-SNAPSHOT' + +java { + sourceCompatibility = '17' +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation 'org.springframework.boot:spring-boot-starter-web' + testImplementation 'org.springframework.boot:spring-boot-starter-test' +} + +tasks.named('bootBuildImage') { + builder = 'paketobuildpacks/builder-jammy-base:latest' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/2 WEEK/LEE/gradle/wrapper/gradle-wrapper.jar b/2 WEEK/LEE/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/2 WEEK/LEE/gradle/wrapper/gradle-wrapper.properties b/2 WEEK/LEE/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..3fa8f862 --- /dev/null +++ b/2 WEEK/LEE/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/2 WEEK/LEE/gradlew b/2 WEEK/LEE/gradlew new file mode 100644 index 00000000..1aa94a42 --- /dev/null +++ b/2 WEEK/LEE/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/2 WEEK/LEE/gradlew.bat b/2 WEEK/LEE/gradlew.bat new file mode 100644 index 00000000..93e3f59f --- /dev/null +++ b/2 WEEK/LEE/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/2 WEEK/LEE/settings.gradle b/2 WEEK/LEE/settings.gradle new file mode 100644 index 00000000..fd561d82 --- /dev/null +++ b/2 WEEK/LEE/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'SEOB' diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/SeobApplication.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/SeobApplication.java new file mode 100644 index 00000000..0028f658 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/SeobApplication.java @@ -0,0 +1,13 @@ +package SEOB.SEOB; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SeobApplication { + + public static void main(String[] args) { + SpringApplication.run(SeobApplication.class, args); + } + +} diff --git a/2 WEEK/LEE/src/main/resources/application.properties b/2 WEEK/LEE/src/main/resources/application.properties new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/2 WEEK/LEE/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/2 WEEK/LEE/src/test/java/SEOB/SEOB/SeobApplicationTests.java b/2 WEEK/LEE/src/test/java/SEOB/SEOB/SeobApplicationTests.java new file mode 100644 index 00000000..b60e165a --- /dev/null +++ b/2 WEEK/LEE/src/test/java/SEOB/SEOB/SeobApplicationTests.java @@ -0,0 +1,13 @@ +package SEOB.SEOB; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class SeobApplicationTests { + + @Test + void contextLoads() { + } + +} From db7aba065b54bb59fed203e798ac020fe7c6c1a1 Mon Sep 17 00:00:00 2001 From: SEOB Date: Tue, 14 Nov 2023 11:00:44 +0900 Subject: [PATCH 013/188] =?UTF-8?q?[BE]=20(chore)=20gradle=20=EB=A1=9C=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 (1week code)순수자바에서 gradle 변경 --- .../main/java/SEOB/SEOB/SeobApplication.java | 4 ++ .../main/java/SEOB/SEOB/domain/GradeType.java | 5 ++ .../main/java/SEOB/SEOB/domain/Member.java | 47 ++++++++++++++++++ .../main/java/SEOB/SEOB/domain/Product.java | 46 ++++++++++++++++++ .../SEOB/repository/MemberRepository.java | 11 +++++ .../repository/MemoryMemberRepository.java | 23 +++++++++ .../repository/MemoryProductRepository.java | 26 ++++++++++ .../SEOB/repository/ProductRepository.java | 10 ++++ .../src/main/java/SEOB/SEOB/service/Main.java | 48 +++++++++++++++++++ .../java/SEOB/SEOB/service/MemberService.java | 22 +++++++++ .../SEOB/SEOB/service/ProductService.java | 37 ++++++++++++++ 11 files changed, 279 insertions(+) create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/GradeType.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Member.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Product.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemberRepository.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryMemberRepository.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryProductRepository.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/ProductRepository.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/SeobApplication.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/SeobApplication.java index 0028f658..ad7cb765 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/SeobApplication.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/SeobApplication.java @@ -8,6 +8,10 @@ public class SeobApplication { public static void main(String[] args) { SpringApplication.run(SeobApplication.class, args); + + + + } } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/GradeType.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/GradeType.java new file mode 100644 index 00000000..9d66c1e6 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/GradeType.java @@ -0,0 +1,5 @@ +package SEOB.SEOB.domain; + +public enum GradeType { + NORMAL, VIP +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Member.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Member.java new file mode 100644 index 00000000..69260e77 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Member.java @@ -0,0 +1,47 @@ +package SEOB.SEOB.domain; + +public class Member { + + private Long id; + private String name; + private GradeType grade; + + + + + //getter setter + public void Member(String name, GradeType grade) { + this.name = name; + this.grade = grade; + } + + public Member(String name, GradeType grade) { + this.name = name; + this.grade = grade; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public GradeType getGrade() { + return grade; + } + + public void setGrade(GradeType grade) { + this.grade = grade; + } + +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Product.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Product.java new file mode 100644 index 00000000..c48c4688 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Product.java @@ -0,0 +1,46 @@ +package SEOB.SEOB.domain; + +public class Product { + + private Long id; + private String name; + private Long price; + private Double discountedPrice; + + public Product(String name, Long price) { + this.name = name; + this.price = price; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getPrice() { + return price; + } + + public void setPrice(Long price) { + this.price = price; + } + + public Double getDiscountedPrice() { + return discountedPrice; + } + + public void setDiscountedPrice(Double discountedPrice) { + this.discountedPrice = discountedPrice; + } +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemberRepository.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemberRepository.java new file mode 100644 index 00000000..88d0452c --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemberRepository.java @@ -0,0 +1,11 @@ +package SEOB.SEOB.repository; + + +import SEOB.SEOB.domain.Member; + +public interface MemberRepository { + public Member save(Member member); + + public Member findById(Long memberId); + +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryMemberRepository.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryMemberRepository.java new file mode 100644 index 00000000..d5a2e9f9 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryMemberRepository.java @@ -0,0 +1,23 @@ +package SEOB.SEOB.repository; + + +import SEOB.SEOB.domain.Member; + +import java.util.concurrent.ConcurrentHashMap; + +public class MemoryMemberRepository implements MemberRepository{ + + + private static ConcurrentHashMap store = new ConcurrentHashMap<>(); + private static long incrementID = 0L; + + public Member save(Member member) { + member.setId(++incrementID); //호출 시 1씩 증가 + store.put(member.getId(), member); + return member; + } + + public Member findById(Long memberId) { + return store.get(memberId); + } +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryProductRepository.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryProductRepository.java new file mode 100644 index 00000000..ce0d24fd --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryProductRepository.java @@ -0,0 +1,26 @@ +package SEOB.SEOB.repository; + + +import SEOB.SEOB.domain.Product; + +import java.util.concurrent.ConcurrentHashMap; + +public class MemoryProductRepository implements ProductRepository{ + + //memberId, product + private static ConcurrentHashMap store = new ConcurrentHashMap<>(); + private static long incrementId = 0L; + + + + //키 값으로 멤버의 고유 id 저장 + public Product save(Long memberId, Product product) { + product.setId(++incrementId); + + + store.put(memberId, product); + return product; + } + + +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/ProductRepository.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/ProductRepository.java new file mode 100644 index 00000000..09622688 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/ProductRepository.java @@ -0,0 +1,10 @@ +package SEOB.SEOB.repository; + + +import SEOB.SEOB.domain.Product; + +public interface ProductRepository { + public Product save(Long memberId, Product product); + + +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java new file mode 100644 index 00000000..903ca4e6 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java @@ -0,0 +1,48 @@ +package SEOB.SEOB.service; + +import SEOB.SEOB.domain.GradeType; +import SEOB.SEOB.domain.Member; +import SEOB.SEOB.domain.Product; + + +public class Main { + public static void main(String[] args) { + MemberService memberSerive = new MemberService(); + + //회원 name, grade 지정 + Member member1 = new Member("name1", GradeType.VIP); + Member member2 = new Member("name2", GradeType.NORMAL); + + + //회원가입 + Long id1 = memberSerive.signUp(member1); + Long id2 = memberSerive.signUp(member2); + System.out.println(id1); + System.out.println(id2); + + + //id 검색 -> 앞서 지정한 name 출력 + Member findMember1 = memberSerive.findByName(id1); + Member findMember2 = memberSerive.findByName(id2); + System.out.println(findMember1.getName()); + System.out.println(findMember2.getName()); + + + //상품 주문 + //고객의 고유 id, 상품 + ProductService productService = new ProductService(); + Product product1 = new Product("상품1", 10000L);//상품 이름과 가격 + Product product2 = new Product("상품2", 20000L); + productService.order(id1, product1); + productService.order(id1, product1); //key값을 member의 id로, value에 product 주입 + productService.order(id2, product2); + + //등급별 할인된 가격 확인 + System.out.println(product1.getDiscountedPrice()); + System.out.println(product2.getDiscountedPrice()); + + + + + } +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java new file mode 100644 index 00000000..79622a1d --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java @@ -0,0 +1,22 @@ +package SEOB.SEOB.service; + +import SEOB.SEOB.domain.Member; +import SEOB.SEOB.repository.MemoryMemberRepository; + +public class MemberService { + + + private final MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); + + + public Long signUp(Member member) { + memoryMemberRepository.save(member); + return member.getId(); + } + + public Member findByName(Long memberId) { + Member name = memoryMemberRepository.findById(memberId); + return name; + } + +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java new file mode 100644 index 00000000..bf407606 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java @@ -0,0 +1,37 @@ +package SEOB.SEOB.service; + +import SEOB.SEOB.domain.GradeType; +import SEOB.SEOB.domain.Member; +import SEOB.SEOB.domain.Product; +import SEOB.SEOB.repository.MemoryMemberRepository; +import SEOB.SEOB.repository.MemoryProductRepository; + + +public class ProductService { + + private static double vipDiscount = 0.3; //vip할인율 + + private final MemoryProductRepository memoryProductRepository = new MemoryProductRepository(); + public Long order(Long memberId, Product product) { + + //store한 member에 접근 + MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); + Member member = memoryMemberRepository.findById(memberId); + + Long price = product.getPrice(); + Double discountedPrice = 0.0; //default + + + if(member.getGrade().equals(GradeType.VIP)) { + discountedPrice = price - price * vipDiscount; + } else { //GradeType.NORMAL + discountedPrice = (double)price; + } + product.setDiscountedPrice(discountedPrice); + + memoryProductRepository.save(memberId, product); + return product.getId(); + } + + +} From 16c6696ac713d17c7630ad4f80576749b40368dc Mon Sep 17 00:00:00 2001 From: SEOB Date: Tue, 14 Nov 2023 13:19:20 +0900 Subject: [PATCH 014/188] =?UTF-8?q?[BE]=20(refactor)=201=EC=A3=BC=EC=B0=A8?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename MemoryMemberRepository to MemberRepository - 자잘한 코드 수정 --- .../java/SEOB/SEOB/service/MemberService.java | 7 ++++--- .../java/SEOB/SEOB/service/ProductService.java | 15 +++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java index 79622a1d..1f38c7f8 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java @@ -1,21 +1,22 @@ package SEOB.SEOB.service; import SEOB.SEOB.domain.Member; +import SEOB.SEOB.repository.MemberRepository; import SEOB.SEOB.repository.MemoryMemberRepository; public class MemberService { - private final MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); + private final MemberRepository memberRepository = new MemoryMemberRepository(); public Long signUp(Member member) { - memoryMemberRepository.save(member); + memberRepository.save(member); return member.getId(); } public Member findByName(Long memberId) { - Member name = memoryMemberRepository.findById(memberId); + Member name = memberRepository.findById(memberId); return name; } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java index bf407606..4ef86f50 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java @@ -3,33 +3,36 @@ import SEOB.SEOB.domain.GradeType; import SEOB.SEOB.domain.Member; import SEOB.SEOB.domain.Product; +import SEOB.SEOB.repository.MemberRepository; import SEOB.SEOB.repository.MemoryMemberRepository; import SEOB.SEOB.repository.MemoryProductRepository; +import SEOB.SEOB.repository.ProductRepository; public class ProductService { - private static double vipDiscount = 0.3; //vip할인율 + private static final double vipDiscount = 0.3; //vip할인율 + + private final ProductRepository productRepository = new MemoryProductRepository(); + private final MemberRepository memberRepository = new MemoryMemberRepository(); - private final MemoryProductRepository memoryProductRepository = new MemoryProductRepository(); public Long order(Long memberId, Product product) { //store한 member에 접근 - MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); - Member member = memoryMemberRepository.findById(memberId); + Member member = memberRepository.findById(memberId); Long price = product.getPrice(); Double discountedPrice = 0.0; //default if(member.getGrade().equals(GradeType.VIP)) { - discountedPrice = price - price * vipDiscount; + discountedPrice = price - (price * vipDiscount); } else { //GradeType.NORMAL discountedPrice = (double)price; } product.setDiscountedPrice(discountedPrice); - memoryProductRepository.save(memberId, product); + productRepository.save(memberId, product); return product.getId(); } From c962f190c280da3180e4b7b65c6deb403dea5c00 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 15 Nov 2023 22:50:47 +0900 Subject: [PATCH 015/188] =?UTF-8?q?[BE]=20(chore)=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MemberService 인터페이스를 작성하기 위해 기존 클래스명을 MemberServiceImpl로 변경 --- 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java | 2 +- .../SEOB/service/{MemberService.java => MemberServiceImpl.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/{MemberService.java => MemberServiceImpl.java} (93%) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java index 903ca4e6..62d9d449 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java @@ -7,7 +7,7 @@ public class Main { public static void main(String[] args) { - MemberService memberSerive = new MemberService(); + MemberServiceImpl memberSerive = new MemberServiceImpl(); //회원 name, grade 지정 Member member1 = new Member("name1", GradeType.VIP); diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberServiceImpl.java similarity index 93% rename from 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java rename to 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberServiceImpl.java index 1f38c7f8..f4606db0 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberServiceImpl.java @@ -4,7 +4,7 @@ import SEOB.SEOB.repository.MemberRepository; import SEOB.SEOB.repository.MemoryMemberRepository; -public class MemberService { +public class MemberServiceImpl { private final MemberRepository memberRepository = new MemoryMemberRepository(); From 2891d086604bdfaad3a091837f7bdbf1920a0e21 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 15 Nov 2023 22:55:37 +0900 Subject: [PATCH 016/188] =?UTF-8?q?[BE]=20(feat)=20MemberService=20interfa?= =?UTF-8?q?ce=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MemberService 인터페이스를 작성하고 MemberServiceImpl에 구현함 --- .../src/main/java/SEOB/SEOB/service/MemberService.java | 8 ++++++++ .../main/java/SEOB/SEOB/service/MemberServiceImpl.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java new file mode 100644 index 00000000..a0e7712b --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberService.java @@ -0,0 +1,8 @@ +package SEOB.SEOB.service; + +import SEOB.SEOB.domain.Member; + +public interface MemberService { + public Long signUp(Member member); + public Member findByName(Long memberId); +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberServiceImpl.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberServiceImpl.java index f4606db0..bda6897f 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberServiceImpl.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/MemberServiceImpl.java @@ -4,7 +4,7 @@ import SEOB.SEOB.repository.MemberRepository; import SEOB.SEOB.repository.MemoryMemberRepository; -public class MemberServiceImpl { +public class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository = new MemoryMemberRepository(); From 31442bf561cd9760503f9086f1d149fa11dfa916 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 15 Nov 2023 23:35:34 +0900 Subject: [PATCH 017/188] =?UTF-8?q?[BE]=20(refactor)=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EB=AA=85=20=EB=B0=8F=20=EC=9E=90=EB=A3=8C=ED=98=95=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 - Product -> Order - price 와 discountedPrice에 대한 자료형 수정 --- .../SEOB/domain/{Product.java => Order.java} | 22 ++++++++++++------- .../repository/MemoryProductRepository.java | 12 +++++----- .../SEOB/repository/ProductRepository.java | 4 ++-- .../src/main/java/SEOB/SEOB/service/Main.java | 16 +++++++------- .../SEOB/SEOB/service/ProductService.java | 12 +++++----- 5 files changed, 36 insertions(+), 30 deletions(-) rename 2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/{Product.java => Order.java} (53%) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Product.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java similarity index 53% rename from 2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Product.java rename to 2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java index c48c4688..27561f15 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Product.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java @@ -1,15 +1,21 @@ package SEOB.SEOB.domain; -public class Product { +public class Order { private Long id; private String name; - private Long price; - private Double discountedPrice; + private int price; + private int discountedPrice; - public Product(String name, Long price) { + public Order(Long id, String name, int price, int discountedPrice) { + this.id = id; this.name = name; this.price = price; + this.discountedPrice = discountedPrice; + } + + public int calculatePrice() { + return price - discountedPrice; } public Long getId() { @@ -28,19 +34,19 @@ public void setName(String name) { this.name = name; } - public Long getPrice() { + public int getPrice() { return price; } - public void setPrice(Long price) { + public void setPrice(int price) { this.price = price; } - public Double getDiscountedPrice() { + public int getDiscountedPrice() { return discountedPrice; } - public void setDiscountedPrice(Double discountedPrice) { + public void setDiscountedPrice(int discountedPrice) { this.discountedPrice = discountedPrice; } } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryProductRepository.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryProductRepository.java index ce0d24fd..9d5e47f7 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryProductRepository.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/MemoryProductRepository.java @@ -1,25 +1,25 @@ package SEOB.SEOB.repository; -import SEOB.SEOB.domain.Product; +import SEOB.SEOB.domain.Order; import java.util.concurrent.ConcurrentHashMap; public class MemoryProductRepository implements ProductRepository{ //memberId, product - private static ConcurrentHashMap store = new ConcurrentHashMap<>(); + private static ConcurrentHashMap store = new ConcurrentHashMap<>(); private static long incrementId = 0L; //키 값으로 멤버의 고유 id 저장 - public Product save(Long memberId, Product product) { - product.setId(++incrementId); + public Order save(Long memberId, Order order) { + order.setId(++incrementId); - store.put(memberId, product); - return product; + store.put(memberId, order); + return order; } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/ProductRepository.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/ProductRepository.java index 09622688..d0f80b04 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/ProductRepository.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/repository/ProductRepository.java @@ -1,10 +1,10 @@ package SEOB.SEOB.repository; -import SEOB.SEOB.domain.Product; +import SEOB.SEOB.domain.Order; public interface ProductRepository { - public Product save(Long memberId, Product product); + public Order save(Long memberId, Order order); } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java index 62d9d449..f09cdf8b 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java @@ -2,7 +2,7 @@ import SEOB.SEOB.domain.GradeType; import SEOB.SEOB.domain.Member; -import SEOB.SEOB.domain.Product; +import SEOB.SEOB.domain.Order; public class Main { @@ -31,15 +31,15 @@ public static void main(String[] args) { //상품 주문 //고객의 고유 id, 상품 ProductService productService = new ProductService(); - Product product1 = new Product("상품1", 10000L);//상품 이름과 가격 - Product product2 = new Product("상품2", 20000L); - productService.order(id1, product1); - productService.order(id1, product1); //key값을 member의 id로, value에 product 주입 - productService.order(id2, product2); + Order order1 = new Order("상품1", 10000L);//상품 이름과 가격 + Order order2 = new Order("상품2", 20000L); + productService.order(id1, order1); + productService.order(id1, order1); //key값을 member의 id로, value에 product 주입 + productService.order(id2, order2); //등급별 할인된 가격 확인 - System.out.println(product1.getDiscountedPrice()); - System.out.println(product2.getDiscountedPrice()); + System.out.println(order1.getDiscountedPrice()); + System.out.println(order2.getDiscountedPrice()); diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java index 4ef86f50..35dd2b71 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java @@ -2,7 +2,7 @@ import SEOB.SEOB.domain.GradeType; import SEOB.SEOB.domain.Member; -import SEOB.SEOB.domain.Product; +import SEOB.SEOB.domain.Order; import SEOB.SEOB.repository.MemberRepository; import SEOB.SEOB.repository.MemoryMemberRepository; import SEOB.SEOB.repository.MemoryProductRepository; @@ -16,12 +16,12 @@ public class ProductService { private final ProductRepository productRepository = new MemoryProductRepository(); private final MemberRepository memberRepository = new MemoryMemberRepository(); - public Long order(Long memberId, Product product) { + public Long order(Long memberId, Order order) { //store한 member에 접근 Member member = memberRepository.findById(memberId); - Long price = product.getPrice(); + Long price = order.getPrice(); Double discountedPrice = 0.0; //default @@ -30,10 +30,10 @@ public Long order(Long memberId, Product product) { } else { //GradeType.NORMAL discountedPrice = (double)price; } - product.setDiscountedPrice(discountedPrice); + order.setDiscountedPrice(discountedPrice); - productRepository.save(memberId, product); - return product.getId(); + productRepository.save(memberId, order); + return order.getId(); } From 4344a8f6fe4a21841a188d91abe8651330a8396b Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 15 Nov 2023 23:54:18 +0900 Subject: [PATCH 018/188] =?UTF-8?q?[BE]=20(feat)=20=ED=95=A0=EC=9D=B8?= =?UTF-8?q?=EC=A0=95=EC=B1=85=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 할인정책 interface 와 구현체 작성 --- .../SEOB/SEOB/discount/DiscountPolicy.java | 7 +++++++ .../SEOB/SEOB/discount/FixDiscountPolicy.java | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/DiscountPolicy.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/FixDiscountPolicy.java diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/DiscountPolicy.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/DiscountPolicy.java new file mode 100644 index 00000000..d5f4c175 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/DiscountPolicy.java @@ -0,0 +1,7 @@ +package SEOB.SEOB.discount; + +import SEOB.SEOB.domain.Member; + +public interface DiscountPolicy { + int discount(Member member, int price); +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/FixDiscountPolicy.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/FixDiscountPolicy.java new file mode 100644 index 00000000..82dbe687 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/FixDiscountPolicy.java @@ -0,0 +1,18 @@ +package SEOB.SEOB.discount; + +import SEOB.SEOB.domain.GradeType; +import SEOB.SEOB.domain.Member; + +public class FixDiscountPolicy implements DiscountPolicy{ + private int discountFixAmount = 1000; + @Override + public int discount(Member member, int price) { + + if(member.getGrade()== GradeType.VIP) { //VIP인 경우 + return discountFixAmount; + } else { + return 0; + } + + } +} From 7e212a7796b8783bc56da524b2a6211bce4e8ab6 Mon Sep 17 00:00:00 2001 From: SEOB Date: Thu, 16 Nov 2023 00:09:34 +0900 Subject: [PATCH 019/188] =?UTF-8?q?[BE]=20(feat)=20orderService=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) orderService 구현 주문서비스 인터페이스 및 구현체 작성 --- .../java/SEOB/SEOB/service/OrderService.java | 8 ++++ .../SEOB/SEOB/service/OrderServiceImpl.java | 26 ++++++++++++ .../SEOB/SEOB/service/ProductService.java | 40 ------------------- 3 files changed, 34 insertions(+), 40 deletions(-) create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java delete mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java new file mode 100644 index 00000000..cfed4141 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java @@ -0,0 +1,8 @@ +package SEOB.SEOB.service; + + +import SEOB.SEOB.domain.Order; + +public interface OrderService { + Order createOrder(Long memberId, String name, int price); +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java new file mode 100644 index 00000000..7faae153 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java @@ -0,0 +1,26 @@ +package SEOB.SEOB.service; + +import SEOB.SEOB.discount.DiscountPolicy; +import SEOB.SEOB.discount.FixDiscountPolicy; +import SEOB.SEOB.domain.GradeType; +import SEOB.SEOB.domain.Member; +import SEOB.SEOB.domain.Order; +import SEOB.SEOB.repository.MemberRepository; +import SEOB.SEOB.repository.MemoryMemberRepository; +import SEOB.SEOB.repository.MemoryProductRepository; +import SEOB.SEOB.repository.ProductRepository; + + +public class OrderServiceImpl implements OrderService{ + + + private final MemberRepository memberRepository = new MemoryMemberRepository(); + private final DiscountPolicy discountedPolicy = new FixDiscountPolicy(); + public Order createOrder(Long memberId, String name, int price) { + Member member = memberRepository.findById(memberId); + int discountedPrice = discountedPolicy.discount(member, price); + return new Order(memberId, name, price, discountedPrice); + } + + +} diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java deleted file mode 100644 index 35dd2b71..00000000 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/ProductService.java +++ /dev/null @@ -1,40 +0,0 @@ -package SEOB.SEOB.service; - -import SEOB.SEOB.domain.GradeType; -import SEOB.SEOB.domain.Member; -import SEOB.SEOB.domain.Order; -import SEOB.SEOB.repository.MemberRepository; -import SEOB.SEOB.repository.MemoryMemberRepository; -import SEOB.SEOB.repository.MemoryProductRepository; -import SEOB.SEOB.repository.ProductRepository; - - -public class ProductService { - - private static final double vipDiscount = 0.3; //vip할인율 - - private final ProductRepository productRepository = new MemoryProductRepository(); - private final MemberRepository memberRepository = new MemoryMemberRepository(); - - public Long order(Long memberId, Order order) { - - //store한 member에 접근 - Member member = memberRepository.findById(memberId); - - Long price = order.getPrice(); - Double discountedPrice = 0.0; //default - - - if(member.getGrade().equals(GradeType.VIP)) { - discountedPrice = price - (price * vipDiscount); - } else { //GradeType.NORMAL - discountedPrice = (double)price; - } - order.setDiscountedPrice(discountedPrice); - - productRepository.save(memberId, order); - return order.getId(); - } - - -} From 23cb538f6e2dae247981cc3c0c58c1a31d646771 Mon Sep 17 00:00:00 2001 From: SEOB Date: Thu, 16 Nov 2023 00:25:29 +0900 Subject: [PATCH 020/188] =?UTF-8?q?[BE]=20(refactor)=20Main=20class=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 [BE] (refactor) Main class 수정 오타 수정 및 코드 리팩토링 --- .../src/main/java/SEOB/SEOB/service/Main.java | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java index f09cdf8b..c4b767ad 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java @@ -7,7 +7,7 @@ public class Main { public static void main(String[] args) { - MemberServiceImpl memberSerive = new MemberServiceImpl(); + MemberServiceImpl memberService = new MemberServiceImpl(); //회원 name, grade 지정 Member member1 = new Member("name1", GradeType.VIP); @@ -15,33 +15,30 @@ public static void main(String[] args) { //회원가입 - Long id1 = memberSerive.signUp(member1); - Long id2 = memberSerive.signUp(member2); + Long id1 = memberService.signUp(member1); + Long id2 = memberService.signUp(member2); System.out.println(id1); System.out.println(id2); //id 검색 -> 앞서 지정한 name 출력 - Member findMember1 = memberSerive.findByName(id1); - Member findMember2 = memberSerive.findByName(id2); + Member findMember1 = memberService.findByName(id1); + Member findMember2 = memberService.findByName(id2); System.out.println(findMember1.getName()); System.out.println(findMember2.getName()); //상품 주문 - //고객의 고유 id, 상품 - ProductService productService = new ProductService(); - Order order1 = new Order("상품1", 10000L);//상품 이름과 가격 - Order order2 = new Order("상품2", 20000L); - productService.order(id1, order1); - productService.order(id1, order1); //key값을 member의 id로, value에 product 주입 - productService.order(id2, order2); - - //등급별 할인된 가격 확인 - System.out.println(order1.getDiscountedPrice()); - System.out.println(order2.getDiscountedPrice()); + //고객의 고유 id, 상품, 가격 + OrderService orderService = new OrderServiceImpl(); + Order order1 = orderService.createOrder(member1.getId(), "itemA", 10000); //id1 + Order order2 = orderService.createOrder(member2.getId(), "itemB", 20000); //id2 + //등급별 할인 가격 확인 + System.out.println(order1.getDiscountedPrice()); // 1000 + System.out.println(order2.getDiscountedPrice()); // 0 + } From b3ea154a95e17cd89dd5ad35df24aac105782554 Mon Sep 17 00:00:00 2001 From: SEOB Date: Thu, 16 Nov 2023 00:47:27 +0900 Subject: [PATCH 021/188] =?UTF-8?q?[BE]=20(feat)=20RateDiscountPolicy=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 [BE] (feat) RateDiscountPolicy 생성 할인을 30(%) 로 지정함 VIP 외 등급은 0을 리턴시킴 --- .../SEOB/SEOB/discount/RateDiscountPolicy.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java new file mode 100644 index 00000000..d11dab30 --- /dev/null +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java @@ -0,0 +1,17 @@ +package SEOB.SEOB.discount; + +import SEOB.SEOB.domain.GradeType; +import SEOB.SEOB.domain.Member; + +public class RateDiscountPolicy implements DiscountPolicy{ + private int discountRateAmount = 30; + + @Override + public int discount(Member member, int price) { + if(member.getGrade() == GradeType.VIP) { + return discountRateAmount; + } else { + return 0; + } + } +} From 203ba297fb554f013ebcd0b8089baac1b7019095 Mon Sep 17 00:00:00 2001 From: SEOB Date: Thu, 16 Nov 2023 01:06:20 +0900 Subject: [PATCH 022/188] [BE] (docs) Add ISSUE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) Add ISSUE ISSUE 에 대한 내용 추가 --- 2 WEEK/LEE/ANSWER.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2 WEEK/LEE/ANSWER.md b/2 WEEK/LEE/ANSWER.md index 066e2c2a..c716eaa8 100644 --- a/2 WEEK/LEE/ANSWER.md +++ b/2 WEEK/LEE/ANSWER.md @@ -49,11 +49,11 @@ Please provide a summary of your main theory here. ## ISSUE -Please enter your issue details here. +1. RateDiscountPolicy 클래스를 구현했지만 실제 적용하기 위해서는 OrderServiceImpl에서 수정작업을 해주어야 한다. ## Solution -Please describe your solution in detail here. +1. Please describe your solution in detail here. ## About From ed2d423142518b1d78453c94b064dd0026af6f01 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 17 Nov 2023 00:28:50 +0900 Subject: [PATCH 023/188] =?UTF-8?q?[BE]=20(refactor)=20DiscountPolicy=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=20=EB=A6=AC=ED=8C=A9=ED=86=A0?= =?UTF-8?q?=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) DiscountPolicy 클래스 리팩토링 - if문 수정 - discountRateAmount 정적변수로 변경 - discountFixAmount 정적변수로 변경 --- .../main/java/SEOB/SEOB/discount/FixDiscountPolicy.java | 9 ++++----- .../main/java/SEOB/SEOB/discount/RateDiscountPolicy.java | 8 +++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/FixDiscountPolicy.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/FixDiscountPolicy.java index 82dbe687..89bbaf8b 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/FixDiscountPolicy.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/FixDiscountPolicy.java @@ -4,15 +4,14 @@ import SEOB.SEOB.domain.Member; public class FixDiscountPolicy implements DiscountPolicy{ - private int discountFixAmount = 1000; + private final static int discountFixAmount = 1000; @Override public int discount(Member member, int price) { - if(member.getGrade()== GradeType.VIP) { //VIP인 경우 + if(member.getGrade().equals(GradeType.VIP)) //VIP인 경우 return discountFixAmount; - } else { - return 0; - } + return 0; + } } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java index d11dab30..f5227f22 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java @@ -4,14 +4,12 @@ import SEOB.SEOB.domain.Member; public class RateDiscountPolicy implements DiscountPolicy{ - private int discountRateAmount = 30; + private final static int discountRateAmount = 30; @Override public int discount(Member member, int price) { - if(member.getGrade() == GradeType.VIP) { + if(member.getGrade().equals(GradeType.VIP)) return discountRateAmount; - } else { - return 0; - } + return 0; } } From e6ffb2cfe758114d5f5f9a8f5d23b7df1d689a24 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 17 Nov 2023 14:00:03 +0900 Subject: [PATCH 024/188] =?UTF-8?q?[BE]=20(refactor)=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=EC=9E=90=EB=A5=BC=20=ED=86=B5=ED=95=B4=20=EC=99=B8=EB=B6=80?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=A3=BC=EC=9E=85=EB=B0=9B=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) 생성자를 통해 외부에서 주입받도록 변경 - 생성자를 사용해 FixDiscountPolicy 나 RateDiscoutPolicy를 주입할 수 있음. --- .../main/java/SEOB/SEOB/service/OrderServiceImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java index 7faae153..dd6dbb4e 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java @@ -15,7 +15,15 @@ public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository = new MemoryMemberRepository(); - private final DiscountPolicy discountedPolicy = new FixDiscountPolicy(); + private final DiscountPolicy discountedPolicy; + + /* + * 생성자를 통해 DiscountPolicy를 주입받도록 변경 + */ + public OrderServiceImpl(DiscountPolicy discountedPolicy) { + this.discountedPolicy = discountedPolicy; + } + public Order createOrder(Long memberId, String name, int price) { Member member = memberRepository.findById(memberId); int discountedPrice = discountedPolicy.discount(member, price); From f88254046dbf380d977e58936e50bc621b3d41fc Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 17 Nov 2023 14:13:37 +0900 Subject: [PATCH 025/188] [BE] (test) Main Test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (test) Main Test orderServiceImpl 생성자 주입 테스트 (return 값으로 지정한 30이 출력됨) --- .../src/main/java/SEOB/SEOB/service/Main.java | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java index c4b767ad..29713cd0 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java @@ -1,5 +1,7 @@ package SEOB.SEOB.service; +import SEOB.SEOB.discount.FixDiscountPolicy; +import SEOB.SEOB.discount.RateDiscountPolicy; import SEOB.SEOB.domain.GradeType; import SEOB.SEOB.domain.Member; import SEOB.SEOB.domain.Order; @@ -7,39 +9,49 @@ public class Main { public static void main(String[] args) { - MemberServiceImpl memberService = new MemberServiceImpl(); + MemberService memberService = new MemberServiceImpl(); //회원 name, grade 지정 Member member1 = new Member("name1", GradeType.VIP); Member member2 = new Member("name2", GradeType.NORMAL); + Member member3 = new Member("name3", GradeType.VIP); //회원가입 - Long id1 = memberService.signUp(member1); + Long id1 = memberService.signUp(member1); Long id2 = memberService.signUp(member2); - System.out.println(id1); - System.out.println(id2); + Long id3 = memberService.signUp(member3); + System.out.println(id1); //1 + System.out.println(id2); //2 + System.out.println(id3); //3 //id 검색 -> 앞서 지정한 name 출력 Member findMember1 = memberService.findByName(id1); Member findMember2 = memberService.findByName(id2); - System.out.println(findMember1.getName()); - System.out.println(findMember2.getName()); + Member findMember3 = memberService.findByName(id3); + System.out.println(findMember1.getName()); //name1 + System.out.println(findMember2.getName()); //name2 + System.out.println(findMember3.getName()); //name3 //상품 주문 //고객의 고유 id, 상품, 가격 - OrderService orderService = new OrderServiceImpl(); - Order order1 = orderService.createOrder(member1.getId(), "itemA", 10000); //id1 - Order order2 = orderService.createOrder(member2.getId(), "itemB", 20000); //id2 - + OrderService orderServiceFix = new OrderServiceImpl(new FixDiscountPolicy()); + Order order1 = orderServiceFix.createOrder(member1.getId(), "itemA", 10000); //id1 + Order order2 = orderServiceFix.createOrder(member2.getId(), "itemB", 20000); //id2 //등급별 할인 가격 확인 System.out.println(order1.getDiscountedPrice()); // 1000 System.out.println(order2.getDiscountedPrice()); // 0 + //RateDiscountPolicy 주입 확인 + OrderService orderServiceRate = new OrderServiceImpl(new RateDiscountPolicy()); + Order order3 = orderServiceRate.createOrder(member3.getId(), "itemC", 10000); //id + + + System.out.println(order3.getDiscountedPrice()); // 30 } } From 5bc45929d96a74e9374e7f2922cc9f2ffaca27d0 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 17 Nov 2023 14:23:05 +0900 Subject: [PATCH 026/188] [BE] (docs) Add solution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) Add solution 1번 Issue에 대한 Solution 작성 --- 2 WEEK/LEE/ANSWER.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/2 WEEK/LEE/ANSWER.md b/2 WEEK/LEE/ANSWER.md index c716eaa8..6874cd92 100644 --- a/2 WEEK/LEE/ANSWER.md +++ b/2 WEEK/LEE/ANSWER.md @@ -53,7 +53,12 @@ Please provide a summary of your main theory here. ## Solution -1. Please describe your solution in detail here. +1. OrderServiceImpl에서 생성자를 통해 의존관계를 주입 받도록 코드를 수정한다. + + public OrderServiceImpl(DiscountPolicy discountedPolicy) { + this.discountedPolicy = discountedPolicy; + } + ## About From 72174cf693be648dcde115f2c3da82de588afb6f Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 17 Nov 2023 15:04:55 +0900 Subject: [PATCH 027/188] =?UTF-8?q?[BE]=20(docs)=20=20DI=20=EC=9D=B4?= =?UTF-8?q?=EB=A1=A0=20=EC=9A=94=EC=95=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) DI 이론 요약 --- 2 WEEK/LEE/ANSWER.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/2 WEEK/LEE/ANSWER.md b/2 WEEK/LEE/ANSWER.md index 6874cd92..bb153569 100644 --- a/2 WEEK/LEE/ANSWER.md +++ b/2 WEEK/LEE/ANSWER.md @@ -45,7 +45,20 @@ https://agilemanifesto.org/iso/ko/manifesto.html
## 주요 이론 요약 -Please provide a summary of your main theory here. +1. DI : 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉 + - 의존성 주입에는 3가지 방법 존재. + 1. 생성자 주입 (Constructor Injection) + - Spring에서 권장되는 의존 관계 주입 방식 + - 생성자 주입만이 final 키워드를 사용할 수 있음 + - 객체의 불변성이 보장 + 2. Setter 주입 (Setter Injection) + - final 키워드를 사용할 수 없어 불변성이 보장되지 않음 -> 객체가 변할 가능성이 존재 + - JUnit 테스트가 어려워짐 + - 단일책임원칙(SRP) 위반 + 3. 필드주입 (Field Injection) + - 역시 final 키워드 사용 불가 + + - Spring 개발에서 생성자 주입을 사용하기!! ## ISSUE From 28db3a7f24844b85e9dc4be88c92ac45a8de1f7d Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 17 Nov 2023 15:13:21 +0900 Subject: [PATCH 028/188] =?UTF-8?q?[BE]=20(docs)=20Solution=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 [BE] (docs) Solution 수정 --- 2 WEEK/LEE/ANSWER.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/2 WEEK/LEE/ANSWER.md b/2 WEEK/LEE/ANSWER.md index bb153569..9a732e39 100644 --- a/2 WEEK/LEE/ANSWER.md +++ b/2 WEEK/LEE/ANSWER.md @@ -68,6 +68,8 @@ https://agilemanifesto.org/iso/ko/manifesto.html
1. OrderServiceImpl에서 생성자를 통해 의존관계를 주입 받도록 코드를 수정한다. + private final DiscountPolicy discountedPolicy; + public OrderServiceImpl(DiscountPolicy discountedPolicy) { this.discountedPolicy = discountedPolicy; } From 16fba58f1497f78f120eb62cdf755f634b617a71 Mon Sep 17 00:00:00 2001 From: SEOB Date: Sat, 18 Nov 2023 21:42:09 +0900 Subject: [PATCH 029/188] =?UTF-8?q?[BE]=20(docs)=20=EC=A2=8B=EC=9D=80=20OO?= =?UTF-8?q?P=20=EC=84=A4=EA=B3=84=205=EA=B0=80=EC=A7=80=20=EC=9B=90?= =?UTF-8?q?=EC=B9=99=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 좋은 OOP 설계 5가지 원칙 정리 SOLID - SRP - OCP - LSP - ISP - DIP --- 2 WEEK/LEE/ANSWER.md | 45 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/2 WEEK/LEE/ANSWER.md b/2 WEEK/LEE/ANSWER.md index 9a732e39..2d644d49 100644 --- a/2 WEEK/LEE/ANSWER.md +++ b/2 WEEK/LEE/ANSWER.md @@ -45,7 +45,50 @@ https://agilemanifesto.org/iso/ko/manifesto.html
## 주요 이론 요약 -1. DI : 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉 + ### SOLID 객체지향 설계 5가지 원칙 + - SRP (Single Responsibility Principle) 단일 책임 원칙 + - 하나의 클래스는 하나의 책임만 가져야한다 + - 클래스를 변경하지 이유는 단 하나여야 한다. 변경이 있을 때 파급 효과가 적어야 한다. + - 이를 지키지 않으면, 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향을 미칠 수 있다. 결국, 유지보수가 매우 비효율적이게 된다. +


+ + - OCP (Open-Closed Principle) 개방-폐쇄 원칙 + - 소프트웨어 요소는 확정에는 열려 있으나 변경에는 닫혀 있어야 한다. + - 즉, 기존의 코드를 변경하지 않고 기능을 수정, 추가할 수 있도록 설계해야한다. + - 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 + +어떤 모듈의 기능을 수정할 때, 해당 모듈을 이용하는 모든 모듈 또한 수정한다면 유지보수가 복잡해짐. +따라서 OCP를 적용해 기존 코드를 변경하지 않아도 기능을 수정, 추가할 수 있게 해야함 +


+ + - LSP (Liskov Substitution Principle) 리스코프 치환 원칙 + - 하위 타입 객체는 상위 타입 객체에서 가능한 행위를 수행할 수 있어야 한다. + - 즉, 상위 타입 객체를 하위 타입 객체로 대체하여도 정상적으로 동작해야 한다. + - 다형성에서 하위 클래스는 인터페이스의 규약을 다 지켜야 한다. + - 상속 관계에서는 꼭 일반화 관계(IS-A)가 성립해야 한다. + - 상속 관게가 아닌 클래스들을 상속관계로 설정하면, LSP 위반이다. +


+ + - ISP (Interface Segregation Principle) 인터페이스 분리 원칙 + - 클라이언트는 자신이 사용하는 메소드에만 의존해야 한다. + - 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 한 개보다 낫다. + - 인터페이스는 해당 인터페이스를 사용하는 클라이언트를 기준으로 잘게 분리되어야 한다. +


+ + - DIP (Dependency Inversion Principle) 의존 역전 원칙 + 프로 + - 의존 관계를 맺을 때, 변하기 쉬운 구체적인 것 보다는 변하기 어려운 추상적인 것에 의존해야 한다는 것이다. + - 즉, 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻이다. + - 클라이언트가 인터페이스에 의존해야 유연하게 구현체를 변경할 수 있다. 구현체에 의존한다면 변경에 어려움이 생긴다 + - 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다. + - 저수준 모듈이 변경되어도 고수준 모듈은 변경이 필요없는 형태가 이상적이다. +


+ + + + + +### DI : 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉 - 의존성 주입에는 3가지 방법 존재. 1. 생성자 주입 (Constructor Injection) - Spring에서 권장되는 의존 관계 주입 방식 From 109605ba7a8312b63b3f52d7be42863a4b016477 Mon Sep 17 00:00:00 2001 From: SEOB Date: Sat, 18 Nov 2023 21:56:54 +0900 Subject: [PATCH 030/188] =?UTF-8?q?[BE]=20(docs)=20ISSUE=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 [BE] (docs) ISSUE 추가 위반 내용 추가 --- 2 WEEK/LEE/ANSWER.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/2 WEEK/LEE/ANSWER.md b/2 WEEK/LEE/ANSWER.md index 2d644d49..2cf0a810 100644 --- a/2 WEEK/LEE/ANSWER.md +++ b/2 WEEK/LEE/ANSWER.md @@ -106,7 +106,8 @@ https://agilemanifesto.org/iso/ko/manifesto.html
## ISSUE 1. RateDiscountPolicy 클래스를 구현했지만 실제 적용하기 위해서는 OrderServiceImpl에서 수정작업을 해주어야 한다. - + - OCP 위반 + - FixDiscountPolicy(구현 클래스) 에 의존중임 -> DIP 위반 ## Solution 1. OrderServiceImpl에서 생성자를 통해 의존관계를 주입 받도록 코드를 수정한다. From 7d9763566318ebf161400a878c68acd5ff092bff Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 19 Nov 2023 19:31:18 +0900 Subject: [PATCH 031/188] [BE] (refactor) Change 'discountedPrice' to 'discountPrice' [BE] (refactor) Change 'discountedPrice' to 'discountPrice' --- .../src/main/java/SEOB/SEOB/domain/Order.java | 16 ++++++++-------- .../src/main/java/SEOB/SEOB/service/Main.java | 6 +++--- .../java/SEOB/SEOB/service/OrderServiceImpl.java | 11 ++++++----- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java index 27561f15..f6f2134f 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java @@ -5,17 +5,17 @@ public class Order { private Long id; private String name; private int price; - private int discountedPrice; + private int discountPrice; - public Order(Long id, String name, int price, int discountedPrice) { + public Order(Long id, String name, int price, int discountPrice) { this.id = id; this.name = name; this.price = price; - this.discountedPrice = discountedPrice; + this.discountPrice = discountPrice; } public int calculatePrice() { - return price - discountedPrice; + return price - discountPrice; } public Long getId() { @@ -42,11 +42,11 @@ public void setPrice(int price) { this.price = price; } - public int getDiscountedPrice() { - return discountedPrice; + public int getDiscountPrice() { + return discountPrice; } - public void setDiscountedPrice(int discountedPrice) { - this.discountedPrice = discountedPrice; + public void setDiscountedPrice(int discountPrice) { + this.discountPrice = discountPrice; } } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java index 29713cd0..16a962df 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java @@ -42,8 +42,8 @@ public static void main(String[] args) { Order order2 = orderServiceFix.createOrder(member2.getId(), "itemB", 20000); //id2 //등급별 할인 가격 확인 - System.out.println(order1.getDiscountedPrice()); // 1000 - System.out.println(order2.getDiscountedPrice()); // 0 + System.out.println(order1.getDiscountPrice()); // 1000 + System.out.println(order2.getDiscountPrice()); // 0 //RateDiscountPolicy 주입 확인 @@ -51,7 +51,7 @@ public static void main(String[] args) { Order order3 = orderServiceRate.createOrder(member3.getId(), "itemC", 10000); //id - System.out.println(order3.getDiscountedPrice()); // 30 + System.out.println(order3.getDiscountPrice()); // 30 } } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java index dd6dbb4e..a3b56a70 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java @@ -15,19 +15,20 @@ public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository = new MemoryMemberRepository(); - private final DiscountPolicy discountedPolicy; + private final DiscountPolicy discountPolicy; /* * 생성자를 통해 DiscountPolicy를 주입받도록 변경 */ - public OrderServiceImpl(DiscountPolicy discountedPolicy) { - this.discountedPolicy = discountedPolicy; + public OrderServiceImpl(DiscountPolicy discountPolicy) { + this.discountPolicy = discountPolicy; } public Order createOrder(Long memberId, String name, int price) { Member member = memberRepository.findById(memberId); - int discountedPrice = discountedPolicy.discount(member, price); - return new Order(memberId, name, price, discountedPrice); + int discountPrice = discountPolicy.discount(member, price); + + return new Order(memberId, name, price, discountPrice); } From 131b35f096bf08c6856376a0abdd03de3bacd9a3 Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 19 Nov 2023 19:59:45 +0900 Subject: [PATCH 032/188] =?UTF-8?q?[BE]=20(feat)=20calculatePrice=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) calculatePrice 구현 OrderService구현체에 기능 구현. --- 2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java | 2 +- .../LEE/src/main/java/SEOB/SEOB/service/OrderService.java | 1 + .../src/main/java/SEOB/SEOB/service/OrderServiceImpl.java | 7 ++++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java index f6f2134f..f8612701 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java @@ -15,7 +15,7 @@ public Order(Long id, String name, int price, int discountPrice) { } public int calculatePrice() { - return price - discountPrice; + return price - (price * discountPrice/100); } public Long getId() { diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java index cfed4141..c95f048d 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java @@ -5,4 +5,5 @@ public interface OrderService { Order createOrder(Long memberId, String name, int price); + Order calculatePrice(); } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java index a3b56a70..cbac9c7d 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java @@ -16,7 +16,6 @@ public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository = new MemoryMemberRepository(); private final DiscountPolicy discountPolicy; - /* * 생성자를 통해 DiscountPolicy를 주입받도록 변경 */ @@ -27,9 +26,11 @@ public OrderServiceImpl(DiscountPolicy discountPolicy) { public Order createOrder(Long memberId, String name, int price) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, price); - return new Order(memberId, name, price, discountPrice); } - + @Override + public Order calculatePrice() { + return calculatePrice(); + } } From 2be91d87497b1be28647aecdb45ba10557543761 Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 19 Nov 2023 20:03:27 +0900 Subject: [PATCH 033/188] =?UTF-8?q?[BE]=20(test)=20calculatePrice=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (test) calculatePrice 확인 입력 : 10000, VIP, 할인율 30% 출력 : 7000 --- 2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java index 16a962df..42fdc04f 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java @@ -52,6 +52,6 @@ public static void main(String[] args) { System.out.println(order3.getDiscountPrice()); // 30 - + System.out.println(order3.calculatePrice()); // 7000 } } From d980d25cb30757d79d00da97b37f2fcedcb3c743 Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 19 Nov 2023 20:22:58 +0900 Subject: [PATCH 034/188] [BE] (docs) Add ISSUE [BE] (docs) Add ISSUE --- 2 WEEK/LEE/ANSWER.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/2 WEEK/LEE/ANSWER.md b/2 WEEK/LEE/ANSWER.md index 2cf0a810..a3c1d2d4 100644 --- a/2 WEEK/LEE/ANSWER.md +++ b/2 WEEK/LEE/ANSWER.md @@ -108,6 +108,9 @@ https://agilemanifesto.org/iso/ko/manifesto.html
1. RateDiscountPolicy 클래스를 구현했지만 실제 적용하기 위해서는 OrderServiceImpl에서 수정작업을 해주어야 한다. - OCP 위반 - FixDiscountPolicy(구현 클래스) 에 의존중임 -> DIP 위반 + +2. calculatePrice 구현하였지만 Order Class의 메소드를 수정하여 NORMAL에는 제대로 된 값이 나오지 않는 문제 + ## Solution 1. OrderServiceImpl에서 생성자를 통해 의존관계를 주입 받도록 코드를 수정한다. @@ -117,7 +120,7 @@ https://agilemanifesto.org/iso/ko/manifesto.html
public OrderServiceImpl(DiscountPolicy discountedPolicy) { this.discountedPolicy = discountedPolicy; } - +2. solution...... ## About From 8fd0824114416446d6aa05108ebc98ccfda7d44b Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 19 Nov 2023 21:36:55 +0900 Subject: [PATCH 035/188] =?UTF-8?q?[BE]=20(perf)=20calculatePrice=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 [BE] (perf) calculatePrice 수정 RateDiscountPolicy 에서 return 값 변경으로 해결 --- .../main/java/SEOB/SEOB/discount/RateDiscountPolicy.java | 2 +- 2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java | 4 ++-- .../LEE/src/main/java/SEOB/SEOB/service/OrderService.java | 1 - .../src/main/java/SEOB/SEOB/service/OrderServiceImpl.java | 7 ++----- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java index f5227f22..23bf1c33 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/discount/RateDiscountPolicy.java @@ -9,7 +9,7 @@ public class RateDiscountPolicy implements DiscountPolicy{ @Override public int discount(Member member, int price) { if(member.getGrade().equals(GradeType.VIP)) - return discountRateAmount; + return price * discountRateAmount / 100; return 0; } } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java index f8612701..bde37bbd 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/domain/Order.java @@ -15,7 +15,7 @@ public Order(Long id, String name, int price, int discountPrice) { } public int calculatePrice() { - return price - (price * discountPrice/100); + return price - discountPrice; } public Long getId() { @@ -46,7 +46,7 @@ public int getDiscountPrice() { return discountPrice; } - public void setDiscountedPrice(int discountPrice) { + public void setDiscountPrice(int discountPrice) { this.discountPrice = discountPrice; } } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java index c95f048d..cfed4141 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderService.java @@ -5,5 +5,4 @@ public interface OrderService { Order createOrder(Long memberId, String name, int price); - Order calculatePrice(); } diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java index cbac9c7d..0c688dd5 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/OrderServiceImpl.java @@ -29,8 +29,5 @@ public Order createOrder(Long memberId, String name, int price) { return new Order(memberId, name, price, discountPrice); } - @Override - public Order calculatePrice() { - return calculatePrice(); - } -} + +} \ No newline at end of file From 79bd3e37d1f77e0514164f1dba0988967b3b5dcb Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 19 Nov 2023 21:37:56 +0900 Subject: [PATCH 036/188] =?UTF-8?q?[BE]=20(test)=20calculatePrice=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (test) calculatePrice 테스트 --- .../LEE/src/main/java/SEOB/SEOB/service/Main.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java index 42fdc04f..4160dc72 100644 --- a/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java +++ b/2 WEEK/LEE/src/main/java/SEOB/SEOB/service/Main.java @@ -42,16 +42,15 @@ public static void main(String[] args) { Order order2 = orderServiceFix.createOrder(member2.getId(), "itemB", 20000); //id2 //등급별 할인 가격 확인 - System.out.println(order1.getDiscountPrice()); // 1000 - System.out.println(order2.getDiscountPrice()); // 0 + System.out.println("member1 VIP Fix 확인" + order1.getDiscountPrice()); // 1000 + System.out.println("member1 VIP Fix 확인" + order2.getDiscountPrice()); // 0 //RateDiscountPolicy 주입 확인 OrderService orderServiceRate = new OrderServiceImpl(new RateDiscountPolicy()); - Order order3 = orderServiceRate.createOrder(member3.getId(), "itemC", 10000); //id - - - System.out.println(order3.getDiscountPrice()); // 30 - System.out.println(order3.calculatePrice()); // 7000 + Order order3 = orderServiceRate.createOrder(member3.getId(), "itemC", 10000); //id3 + System.out.println("member1 VIP의 Fix itemA 10000 의 할인된 가격 : " + order1.calculatePrice()); //9000 + System.out.println("member2 NORMAL의 Fix itemB 20000 의 할인된 가격 : " + order2.calculatePrice()); //20000 + System.out.println("member3 VIP의 Rate itemC 10000 의 할인된 가격 : " + order3.calculatePrice()); // 30퍼 할인된 7000 } } From 94f4aead1c4e8d1505441cfd10ed654857583cbc Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 19 Nov 2023 21:47:45 +0900 Subject: [PATCH 037/188] [BE] (docs) Add solution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) Add solution calculatePrice에 대한 문제 해결 --- 2 WEEK/LEE/ANSWER.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/2 WEEK/LEE/ANSWER.md b/2 WEEK/LEE/ANSWER.md index a3c1d2d4..7bd961f4 100644 --- a/2 WEEK/LEE/ANSWER.md +++ b/2 WEEK/LEE/ANSWER.md @@ -120,7 +120,16 @@ https://agilemanifesto.org/iso/ko/manifesto.html
public OrderServiceImpl(DiscountPolicy discountedPolicy) { this.discountedPolicy = discountedPolicy; } -2. solution...... + +2. 단순 RateDiscountPolicy 에서 return 값 변경으로 해결 + - 생성했던 calculatePrice 메소드 제거 + + + return discountRateAmount; + # 아래처럼 변경 + return price * discountRateAmount / 100; + + ## About From 239818a9d637ab5d2962c22dda761f7bc0532991 Mon Sep 17 00:00:00 2001 From: SEOB Date: Tue, 21 Nov 2023 10:43:10 +0900 Subject: [PATCH 038/188] =?UTF-8?q?[BE]=20(fix)=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=A0=84=EC=B2=B4=20=EB=B3=80=EA=B2=BD=ED=95=98=EC=97=AC=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (fix) 파일 전체 변경하여 오류 수정 이전 2week에서 Test 실행 오류로 인해 불가피하게 전체 파일을 변경하였습니다.... --- 3 WEEK/LEE/core/.gitignore | 37 +++ 3 WEEK/LEE/core/ANSWER.md | 141 ++++++++++ 3 WEEK/LEE/core/build.gradle | 29 ++ .../core/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + 3 WEEK/LEE/core/gradlew | 249 ++++++++++++++++++ 3 WEEK/LEE/core/gradlew.bat | 92 +++++++ 3 WEEK/LEE/core/settings.gradle | 1 + .../src/main/java/hello/core/AppConfig.java | 41 +++ .../main/java/hello/core/CoreApplication.java | 13 + .../src/main/java/hello/core/MemberApp.java | 30 +++ .../src/main/java/hello/core/OrderApp.java | 27 ++ .../hello/core/discount/DiscountPolicy.java | 9 + .../core/discount/FixDiscountPolicy.java | 20 ++ .../core/discount/RateDiscountPolicy.java | 20 ++ .../main/java/hello/core/member/Grade.java | 8 + .../main/java/hello/core/member/Member.java | 37 +++ .../hello/core/member/MemberRepository.java | 9 + .../java/hello/core/member/MemberService.java | 9 + .../hello/core/member/MemberServiceImpl.java | 20 ++ .../core/member/MemoryMemberRepository.java | 21 ++ .../src/main/java/hello/core/order/Order.java | 34 +++ .../java/hello/core/order/OrderService.java | 5 + .../hello/core/order/OrderServiceImpl.java | 23 ++ .../src/main/resources/application.properties | 1 + .../java/hello/core/CoreApplicationTests.java | 13 + .../core/discount/RateDiscountPolicyTest.java | 42 +++ .../hello/core/member/MemberServiceTest.java | 34 +++ .../hello/core/order/OrderServiceTest.java | 37 +++ 29 files changed, 1009 insertions(+) create mode 100644 3 WEEK/LEE/core/.gitignore create mode 100644 3 WEEK/LEE/core/ANSWER.md create mode 100644 3 WEEK/LEE/core/build.gradle create mode 100644 3 WEEK/LEE/core/gradle/wrapper/gradle-wrapper.jar create mode 100644 3 WEEK/LEE/core/gradle/wrapper/gradle-wrapper.properties create mode 100644 3 WEEK/LEE/core/gradlew create mode 100644 3 WEEK/LEE/core/gradlew.bat create mode 100644 3 WEEK/LEE/core/settings.gradle create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/AppConfig.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/CoreApplication.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/MemberApp.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/OrderApp.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/discount/DiscountPolicy.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/discount/FixDiscountPolicy.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/discount/RateDiscountPolicy.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/member/Grade.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/member/Member.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/member/MemberRepository.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/member/MemberService.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/member/MemberServiceImpl.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/member/MemoryMemberRepository.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/order/OrderService.java create mode 100644 3 WEEK/LEE/core/src/main/java/hello/core/order/OrderServiceImpl.java create mode 100644 3 WEEK/LEE/core/src/main/resources/application.properties create mode 100644 3 WEEK/LEE/core/src/test/java/hello/core/CoreApplicationTests.java create mode 100644 3 WEEK/LEE/core/src/test/java/hello/core/discount/RateDiscountPolicyTest.java create mode 100644 3 WEEK/LEE/core/src/test/java/hello/core/member/MemberServiceTest.java create mode 100644 3 WEEK/LEE/core/src/test/java/hello/core/order/OrderServiceTest.java diff --git a/3 WEEK/LEE/core/.gitignore b/3 WEEK/LEE/core/.gitignore new file mode 100644 index 00000000..c2065bc2 --- /dev/null +++ b/3 WEEK/LEE/core/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/3 WEEK/LEE/core/ANSWER.md b/3 WEEK/LEE/core/ANSWER.md new file mode 100644 index 00000000..7bd961f4 --- /dev/null +++ b/3 WEEK/LEE/core/ANSWER.md @@ -0,0 +1,141 @@ +![header](https://capsule-render.vercel.app/api?type=soft&color=auto&height=150§ion=header&text=UserManagement&fontSize=90&animation=blink&align=center) + +-- +## Tech Stack +![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=openjdk&logoColor=white) +## DB +![Memory](https://img.shields.io/badge/Memory-000000?style=for-the-badge&logo=memory&logoColor=white) +## ORM +![OMR](https://img.shields.io/badge/NONE-000000?style=for-the-badge&logo=NONE&logoColor=white) +## IDE +![intelliJ](https://img.shields.io/badge/IntelliJIDEA-000000?style=for-the-badge&logo=IntelliJIDEA&logoColor=white) +## TEST +![Junit5](https://img.shields.io/badge/JUnit5-25A162?style=for-the-badge&logo=JUnit5&logoColor=white) +## SCM +![GITHUB](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white) +-- +## 요구사항 +[ 새로운 할인 정책 개발 ]

+ +기획자 :
+Service Open 이 일주일 남았지만 `고정 금액 할인` -> `정률 (%) 할인` 으로 변경하고 싶다.
+기존엔 VIP 에게 1000원을 할인해 드렸지만, 10% 할인 정책으로 변경해 주세요.
+ +개발자 :
+일주일 남았는데....
+ +기획자 :
+Agile 선언 모르나요? " 계획을 따르기보다는 변화에 대응하라 "
+https://agilemanifesto.org/iso/ko/manifesto.html
+ +개발자 :
+...
+ +## Study 방법 +[ 😎 Leader's 요구사항 ]
+이전 코드에 `OOP 설계 원칙` 을 위반한 사례를 찾아 README 에 Update 해주세요. +또 발견된 위반 사례를 `OOP 설계 원칙` 을 잘 지켜 수정해 주세요. + +[ 🧐 Member : Study AND ]
+ - main fork 동기화 후 작업 진행 + - 개인 folder 내 에서 작업 할 것 + - ANSWER README 에 작성 하되, 기본 포맷은 기본으로 작성하고, 개별 Custom 후 추가 정보 기입 + +--- + +## 주요 이론 요약 + + ### SOLID 객체지향 설계 5가지 원칙 + - SRP (Single Responsibility Principle) 단일 책임 원칙 + - 하나의 클래스는 하나의 책임만 가져야한다 + - 클래스를 변경하지 이유는 단 하나여야 한다. 변경이 있을 때 파급 효과가 적어야 한다. + - 이를 지키지 않으면, 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향을 미칠 수 있다. 결국, 유지보수가 매우 비효율적이게 된다. +


+ + - OCP (Open-Closed Principle) 개방-폐쇄 원칙 + - 소프트웨어 요소는 확정에는 열려 있으나 변경에는 닫혀 있어야 한다. + - 즉, 기존의 코드를 변경하지 않고 기능을 수정, 추가할 수 있도록 설계해야한다. + - 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 + +어떤 모듈의 기능을 수정할 때, 해당 모듈을 이용하는 모든 모듈 또한 수정한다면 유지보수가 복잡해짐. +따라서 OCP를 적용해 기존 코드를 변경하지 않아도 기능을 수정, 추가할 수 있게 해야함 +


+ + - LSP (Liskov Substitution Principle) 리스코프 치환 원칙 + - 하위 타입 객체는 상위 타입 객체에서 가능한 행위를 수행할 수 있어야 한다. + - 즉, 상위 타입 객체를 하위 타입 객체로 대체하여도 정상적으로 동작해야 한다. + - 다형성에서 하위 클래스는 인터페이스의 규약을 다 지켜야 한다. + - 상속 관계에서는 꼭 일반화 관계(IS-A)가 성립해야 한다. + - 상속 관게가 아닌 클래스들을 상속관계로 설정하면, LSP 위반이다. +


+ + - ISP (Interface Segregation Principle) 인터페이스 분리 원칙 + - 클라이언트는 자신이 사용하는 메소드에만 의존해야 한다. + - 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 한 개보다 낫다. + - 인터페이스는 해당 인터페이스를 사용하는 클라이언트를 기준으로 잘게 분리되어야 한다. +


+ + - DIP (Dependency Inversion Principle) 의존 역전 원칙 + 프로 + - 의존 관계를 맺을 때, 변하기 쉬운 구체적인 것 보다는 변하기 어려운 추상적인 것에 의존해야 한다는 것이다. + - 즉, 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻이다. + - 클라이언트가 인터페이스에 의존해야 유연하게 구현체를 변경할 수 있다. 구현체에 의존한다면 변경에 어려움이 생긴다 + - 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다. + - 저수준 모듈이 변경되어도 고수준 모듈은 변경이 필요없는 형태가 이상적이다. +


+ + + + + +### DI : 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉 + - 의존성 주입에는 3가지 방법 존재. + 1. 생성자 주입 (Constructor Injection) + - Spring에서 권장되는 의존 관계 주입 방식 + - 생성자 주입만이 final 키워드를 사용할 수 있음 + - 객체의 불변성이 보장 + 2. Setter 주입 (Setter Injection) + - final 키워드를 사용할 수 없어 불변성이 보장되지 않음 -> 객체가 변할 가능성이 존재 + - JUnit 테스트가 어려워짐 + - 단일책임원칙(SRP) 위반 + 3. 필드주입 (Field Injection) + - 역시 final 키워드 사용 불가 + + - Spring 개발에서 생성자 주입을 사용하기!! + +## ISSUE + +1. RateDiscountPolicy 클래스를 구현했지만 실제 적용하기 위해서는 OrderServiceImpl에서 수정작업을 해주어야 한다. + - OCP 위반 + - FixDiscountPolicy(구현 클래스) 에 의존중임 -> DIP 위반 + +2. calculatePrice 구현하였지만 Order Class의 메소드를 수정하여 NORMAL에는 제대로 된 값이 나오지 않는 문제 + +## Solution + +1. OrderServiceImpl에서 생성자를 통해 의존관계를 주입 받도록 코드를 수정한다. + + private final DiscountPolicy discountedPolicy; + + public OrderServiceImpl(DiscountPolicy discountedPolicy) { + this.discountedPolicy = discountedPolicy; + } + +2. 단순 RateDiscountPolicy 에서 return 값 변경으로 해결 + - 생성했던 calculatePrice 메소드 제거 + + + return discountRateAmount; + # 아래처럼 변경 + return price * discountRateAmount / 100; + + + +## About + +Please enter your personal feelings, what you learned, and what you need to learn here. + +## Question To Reader + +After completing the mission, please enter any suggestions or questions. + diff --git a/3 WEEK/LEE/core/build.gradle b/3 WEEK/LEE/core/build.gradle new file mode 100644 index 00000000..3ed78d74 --- /dev/null +++ b/3 WEEK/LEE/core/build.gradle @@ -0,0 +1,29 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.1.5' + id 'io.spring.dependency-management' version '1.1.3' +} + +group = 'hello' +version = '0.0.1-SNAPSHOT' + +java { + sourceCompatibility = '17' +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter' + testImplementation 'org.springframework.boot:spring-boot-starter-test' +} + +tasks.named('bootBuildImage') { + builder = 'paketobuildpacks/builder-jammy-base:latest' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/3 WEEK/LEE/core/gradle/wrapper/gradle-wrapper.jar b/3 WEEK/LEE/core/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 zcmb5Wb9gP!wgnp7wrv|bwr$&XvSZt}Z6`anZSUAlc9NHKf9JdJ;NJVr`=eI(_pMp0 zy1VAAG3FfAOI`{X1O)&90s;U4K;XLp008~hCjbEC_fbYfS%6kTR+JtXK>nW$ZR+`W ze|#J8f4A@M|F5BpfUJb5h>|j$jOe}0oE!`Zf6fM>CR?!y@zU(cL8NsKk`a z6tx5mAkdjD;J=LcJ;;Aw8p!v#ouk>mUDZF@ zK>yvw%+bKu+T{Nk@LZ;zkYy0HBKw06_IWcMHo*0HKpTsEFZhn5qCHH9j z)|XpN&{`!0a>Vl+PmdQc)Yg4A(AG-z!+@Q#eHr&g<9D?7E)_aEB?s_rx>UE9TUq|? z;(ggJt>9l?C|zoO@5)tu?EV0x_7T17q4fF-q3{yZ^ipUbKcRZ4Qftd!xO(#UGhb2y>?*@{xq%`(-`2T^vc=#< zx!+@4pRdk&*1ht2OWk^Z5IAQ0YTAXLkL{(D*$gENaD)7A%^XXrCchN&z2x+*>o2FwPFjWpeaL=!tzv#JOW#( z$B)Nel<+$bkH1KZv3&-}=SiG~w2sbDbAWarg%5>YbC|}*d9hBjBkR(@tyM0T)FO$# zPtRXukGPnOd)~z=?avu+4Co@wF}1T)-uh5jI<1$HLtyDrVak{gw`mcH@Q-@wg{v^c zRzu}hMKFHV<8w}o*yg6p@Sq%=gkd~;`_VGTS?L@yVu`xuGy+dH6YOwcP6ZE`_0rK% zAx5!FjDuss`FQ3eF|mhrWkjux(Pny^k$u_)dyCSEbAsecHsq#8B3n3kDU(zW5yE|( zgc>sFQywFj5}U*qtF9Y(bi*;>B7WJykcAXF86@)z|0-Vm@jt!EPoLA6>r)?@DIobIZ5Sx zsc@OC{b|3%vaMbyeM|O^UxEYlEMHK4r)V-{r)_yz`w1*xV0|lh-LQOP`OP`Pk1aW( z8DSlGN>Ts|n*xj+%If~+E_BxK)~5T#w6Q1WEKt{!Xtbd`J;`2a>8boRo;7u2M&iOop4qcy<)z023=oghSFV zST;?S;ye+dRQe>ygiJ6HCv4;~3DHtJ({fWeE~$H@mKn@Oh6Z(_sO>01JwH5oA4nvK zr5Sr^g+LC zLt(i&ecdmqsIJGNOSUyUpglvhhrY8lGkzO=0USEKNL%8zHshS>Qziu|`eyWP^5xL4 zRP122_dCJl>hZc~?58w~>`P_s18VoU|7(|Eit0-lZRgLTZKNq5{k zE?V=`7=R&ro(X%LTS*f+#H-mGo_j3dm@F_krAYegDLk6UV{`UKE;{YSsn$ z(yz{v1@p|p!0>g04!eRSrSVb>MQYPr8_MA|MpoGzqyd*$@4j|)cD_%^Hrd>SorF>@ zBX+V<@vEB5PRLGR(uP9&U&5=(HVc?6B58NJT_igiAH*q~Wb`dDZpJSKfy5#Aag4IX zj~uv74EQ_Q_1qaXWI!7Vf@ZrdUhZFE;L&P_Xr8l@GMkhc#=plV0+g(ki>+7fO%?Jb zl+bTy7q{w^pTb{>(Xf2q1BVdq?#f=!geqssXp z4pMu*q;iiHmA*IjOj4`4S&|8@gSw*^{|PT}Aw~}ZXU`6=vZB=GGeMm}V6W46|pU&58~P+?LUs%n@J}CSrICkeng6YJ^M? zS(W?K4nOtoBe4tvBXs@@`i?4G$S2W&;$z8VBSM;Mn9 zxcaEiQ9=vS|bIJ>*tf9AH~m&U%2+Dim<)E=}KORp+cZ^!@wI`h1NVBXu{@%hB2Cq(dXx_aQ9x3mr*fwL5!ZryQqi|KFJuzvP zK1)nrKZ7U+B{1ZmJub?4)Ln^J6k!i0t~VO#=q1{?T)%OV?MN}k5M{}vjyZu#M0_*u z8jwZKJ#Df~1jcLXZL7bnCEhB6IzQZ-GcoQJ!16I*39iazoVGugcKA{lhiHg4Ta2fD zk1Utyc5%QzZ$s3;p0N+N8VX{sd!~l*Ta3|t>lhI&G`sr6L~G5Lul`>m z{!^INm?J|&7X=;{XveF!(b*=?9NAp4y&r&N3(GKcW4rS(Ejk|Lzs1PrxPI_owB-`H zg3(Rruh^&)`TKA6+_!n>RdI6pw>Vt1_j&+bKIaMTYLiqhZ#y_=J8`TK{Jd<7l9&sY z^^`hmi7^14s16B6)1O;vJWOF$=$B5ONW;;2&|pUvJlmeUS&F;DbSHCrEb0QBDR|my zIs+pE0Y^`qJTyH-_mP=)Y+u^LHcuZhsM3+P||?+W#V!_6E-8boP#R-*na4!o-Q1 zVthtYhK{mDhF(&7Okzo9dTi03X(AE{8cH$JIg%MEQca`S zy@8{Fjft~~BdzWC(di#X{ny;!yYGK9b@=b|zcKZ{vv4D8i+`ilOPl;PJl{!&5-0!w z^fOl#|}vVg%=n)@_e1BrP)`A zKPgs`O0EO}Y2KWLuo`iGaKu1k#YR6BMySxQf2V++Wo{6EHmK>A~Q5o73yM z-RbxC7Qdh0Cz!nG+7BRZE>~FLI-?&W_rJUl-8FDIaXoNBL)@1hwKa^wOr1($*5h~T zF;%f^%<$p8Y_yu(JEg=c_O!aZ#)Gjh$n(hfJAp$C2he555W5zdrBqjFmo|VY+el;o z=*D_w|GXG|p0**hQ7~9-n|y5k%B}TAF0iarDM!q-jYbR^us(>&y;n^2l0C%@2B}KM zyeRT9)oMt97Agvc4sEKUEy%MpXr2vz*lb zh*L}}iG>-pqDRw7ud{=FvTD?}xjD)w{`KzjNom-$jS^;iw0+7nXSnt1R@G|VqoRhE%12nm+PH?9`(4rM0kfrZzIK9JU=^$YNyLvAIoxl#Q)xxDz!^0@zZ zSCs$nfcxK_vRYM34O<1}QHZ|hp4`ioX3x8(UV(FU$J@o%tw3t4k1QPmlEpZa2IujG&(roX_q*%e`Hq|);0;@k z0z=fZiFckp#JzW0p+2A+D$PC~IsakhJJkG(c;CqAgFfU0Z`u$PzG~-9I1oPHrCw&)@s^Dc~^)#HPW0Ra}J^=|h7Fs*<8|b13ZzG6MP*Q1dkoZ6&A^!}|hbjM{2HpqlSXv_UUg1U4gn z3Q)2VjU^ti1myodv+tjhSZp%D978m~p& z43uZUrraHs80Mq&vcetqfQpQP?m!CFj)44t8Z}k`E798wxg&~aCm+DBoI+nKq}&j^ zlPY3W$)K;KtEajks1`G?-@me7C>{PiiBu+41#yU_c(dITaqE?IQ(DBu+c^Ux!>pCj zLC|HJGU*v+!it1(;3e`6igkH(VA)-S+k(*yqxMgUah3$@C zz`7hEM47xr>j8^g`%*f=6S5n>z%Bt_Fg{Tvmr+MIsCx=0gsu_sF`q2hlkEmisz#Fy zj_0;zUWr;Gz}$BS%Y`meb(=$d%@Crs(OoJ|}m#<7=-A~PQbyN$x%2iXP2@e*nO0b7AwfH8cCUa*Wfu@b)D_>I*%uE4O3 z(lfnB`-Xf*LfC)E}e?%X2kK7DItK6Tf<+M^mX0Ijf_!IP>7c8IZX%8_#0060P{QMuV^B9i<^E`_Qf0pv9(P%_s8D`qvDE9LK9u-jB}J2S`(mCO&XHTS04Z5Ez*vl^T%!^$~EH8M-UdwhegL>3IQ*)(MtuH2Xt1p!fS4o~*rR?WLxlA!sjc2(O znjJn~wQ!Fp9s2e^IWP1C<4%sFF}T4omr}7+4asciyo3DntTgWIzhQpQirM$9{EbQd z3jz9vS@{aOqTQHI|l#aUV@2Q^Wko4T0T04Me4!2nsdrA8QY1%fnAYb~d2GDz@lAtfcHq(P7 zaMBAGo}+NcE-K*@9y;Vt3*(aCaMKXBB*BJcD_Qnxpt75r?GeAQ}*|>pYJE=uZb73 zC>sv)18)q#EGrTG6io*}JLuB_jP3AU1Uiu$D7r|2_zlIGb9 zjhst#ni)Y`$)!fc#reM*$~iaYoz~_Cy7J3ZTiPm)E?%`fbk`3Tu-F#`{i!l5pNEn5 zO-Tw-=TojYhzT{J=?SZj=Z8#|eoF>434b-DXiUsignxXNaR3 zm_}4iWU$gt2Mw5NvZ5(VpF`?X*f2UZDs1TEa1oZCif?Jdgr{>O~7}-$|BZ7I(IKW`{f;@|IZFX*R8&iT= zoWstN8&R;}@2Ka%d3vrLtR|O??ben;k8QbS-WB0VgiCz;<$pBmIZdN!aalyCSEm)crpS9dcD^Y@XT1a3+zpi-`D}e#HV<} z$Y(G&o~PvL-xSVD5D?JqF3?B9rxGWeb=oEGJ3vRp5xfBPlngh1O$yI95EL+T8{GC@ z98i1H9KhZGFl|;`)_=QpM6H?eDPpw~^(aFQWwyXZ8_EEE4#@QeT_URray*mEOGsGc z6|sdXtq!hVZo=d#+9^@lm&L5|q&-GDCyUx#YQiccq;spOBe3V+VKdjJA=IL=Zn%P} zNk=_8u}VhzFf{UYZV0`lUwcD&)9AFx0@Fc6LD9A6Rd1=ga>Mi0)_QxM2ddCVRmZ0d z+J=uXc(?5JLX3=)e)Jm$HS2yF`44IKhwRnm2*669_J=2LlwuF5$1tAo@ROSU@-y+;Foy2IEl2^V1N;fk~YR z?&EP8#t&m0B=?aJeuz~lHjAzRBX>&x=A;gIvb>MD{XEV zV%l-+9N-)i;YH%nKP?>f`=?#`>B(`*t`aiPLoQM(a6(qs4p5KFjDBN?8JGrf3z8>= zi7sD)c)Nm~x{e<^jy4nTx${P~cwz_*a>%0_;ULou3kHCAD7EYkw@l$8TN#LO9jC( z1BeFW`k+bu5e8Ns^a8dPcjEVHM;r6UX+cN=Uy7HU)j-myRU0wHd$A1fNI~`4;I~`zC)3ul#8#^rXVSO*m}Ag>c%_;nj=Nv$rCZ z*~L@C@OZg%Q^m)lc-kcX&a*a5`y&DaRxh6O*dfhLfF+fU5wKs(1v*!TkZidw*)YBP za@r`3+^IHRFeO%!ai%rxy;R;;V^Fr=OJlpBX;(b*3+SIw}7= zIq$*Thr(Zft-RlY)D3e8V;BmD&HOfX+E$H#Y@B3?UL5L~_fA-@*IB-!gItK7PIgG9 zgWuGZK_nuZjHVT_Fv(XxtU%)58;W39vzTI2n&)&4Dmq7&JX6G>XFaAR{7_3QB6zsT z?$L8c*WdN~nZGiscY%5KljQARN;`w$gho=p006z;n(qIQ*Zu<``TMO3n0{ARL@gYh zoRwS*|Niw~cR!?hE{m*y@F`1)vx-JRfqET=dJ5_(076st(=lFfjtKHoYg`k3oNmo_ zNbQEw8&sO5jAYmkD|Zaz_yUb0rC})U!rCHOl}JhbYIDLzLvrZVw0~JO`d*6f;X&?V=#T@ND*cv^I;`sFeq4 z##H5;gpZTb^0Hz@3C*~u0AqqNZ-r%rN3KD~%Gw`0XsIq$(^MEb<~H(2*5G^<2(*aI z%7}WB+TRlMIrEK#s0 z93xn*Ohb=kWFc)BNHG4I(~RPn-R8#0lqyBBz5OM6o5|>x9LK@%HaM}}Y5goCQRt2C z{j*2TtT4ne!Z}vh89mjwiSXG=%DURar~=kGNNaO_+Nkb+tRi~Rkf!7a$*QlavziD( z83s4GmQ^Wf*0Bd04f#0HX@ua_d8 z23~z*53ePD6@xwZ(vdl0DLc=>cPIOPOdca&MyR^jhhKrdQO?_jJh`xV3GKz&2lvP8 zEOwW6L*ufvK;TN{=S&R@pzV^U=QNk^Ec}5H z+2~JvEVA{`uMAr)?Kf|aW>33`)UL@bnfIUQc~L;TsTQ6>r-<^rB8uoNOJ>HWgqMI8 zSW}pZmp_;z_2O5_RD|fGyTxaxk53Hg_3Khc<8AUzV|ZeK{fp|Ne933=1&_^Dbv5^u zB9n=*)k*tjHDRJ@$bp9mrh}qFn*s}npMl5BMDC%Hs0M0g-hW~P*3CNG06G!MOPEQ_ zi}Qs-6M8aMt;sL$vlmVBR^+Ry<64jrm1EI1%#j?c?4b*7>)a{aDw#TfTYKq+SjEFA z(aJ&z_0?0JB83D-i3Vh+o|XV4UP+YJ$9Boid2^M2en@APw&wx7vU~t$r2V`F|7Qfo z>WKgI@eNBZ-+Og<{u2ZiG%>YvH2L3fNpV9J;WLJoBZda)01Rn;o@){01{7E#ke(7U zHK>S#qZ(N=aoae*4X!0A{)nu0R_sKpi1{)u>GVjC+b5Jyl6#AoQ-1_3UDovNSo`T> z?c-@7XX*2GMy?k?{g)7?Sv;SJkmxYPJPs!&QqB12ejq`Lee^-cDveVWL^CTUldb(G zjDGe(O4P=S{4fF=#~oAu>LG>wrU^z_?3yt24FOx>}{^lCGh8?vtvY$^hbZ)9I0E3r3NOlb9I?F-Yc=r$*~l`4N^xzlV~N zl~#oc>U)Yjl0BxV>O*Kr@lKT{Z09OXt2GlvE38nfs+DD7exl|&vT;)>VFXJVZp9Np zDK}aO;R3~ag$X*|hRVY3OPax|PG`@_ESc8E!mHRByJbZQRS38V2F__7MW~sgh!a>98Q2%lUNFO=^xU52|?D=IK#QjwBky-C>zOWlsiiM&1n z;!&1((Xn1$9K}xabq~222gYvx3hnZPg}VMF_GV~5ocE=-v>V=T&RsLBo&`)DOyIj* zLV{h)JU_y*7SdRtDajP_Y+rBkNN*1_TXiKwHH2&p51d(#zv~s#HwbNy?<+(=9WBvo zw2hkk2Dj%kTFhY+$T+W-b7@qD!bkfN#Z2ng@Pd=i3-i?xYfs5Z*1hO?kd7Sp^9`;Y zM2jeGg<-nJD1er@Pc_cSY7wo5dzQX44=%6rn}P_SRbpzsA{6B+!$3B0#;}qwO37G^ zL(V_5JK`XT?OHVk|{_$vQ|oNEpab*BO4F zUTNQ7RUhnRsU`TK#~`)$icsvKh~(pl=3p6m98@k3P#~upd=k*u20SNcb{l^1rUa)>qO997)pYRWMncC8A&&MHlbW?7i^7M`+B$hH~Y|J zd>FYOGQ;j>Zc2e7R{KK7)0>>nn_jYJy&o@sK!4G>-rLKM8Hv)f;hi1D2fAc$+six2 zyVZ@wZ6x|fJ!4KrpCJY=!Mq0;)X)OoS~{Lkh6u8J`eK%u0WtKh6B>GW_)PVc zl}-k`p09qwGtZ@VbYJC!>29V?Dr>>vk?)o(x?!z*9DJ||9qG-&G~#kXxbw{KKYy}J zQKa-dPt~M~E}V?PhW0R26xdA%1T*%ra6SguGu50YHngOTIv)@N|YttEXo#OZfgtP7;H?EeZZxo<}3YlYxtBq znJ!WFR^tmGf0Py}N?kZ(#=VtpC@%xJkDmfcCoBTxq zr_|5gP?u1@vJZbxPZ|G0AW4=tpb84gM2DpJU||(b8kMOV1S3|(yuwZJ&rIiFW(U;5 zUtAW`O6F6Zy+eZ1EDuP~AAHlSY-+A_eI5Gx)%*uro5tljy}kCZU*_d7)oJ>oQSZ3* zneTn`{gnNC&uJd)0aMBzAg021?YJ~b(fmkwZAd696a=0NzBAqBN54KuNDwa*no(^O z6p05bioXUR^uXjpTol*ppHp%1v9e)vkoUAUJyBx3lw0UO39b0?^{}yb!$yca(@DUn zCquRF?t=Zb9`Ed3AI6|L{eX~ijVH`VzSMheKoP7LSSf4g>md>`yi!TkoG5P>Ofp+n z(v~rW+(5L96L{vBb^g51B=(o)?%%xhvT*A5btOpw(TKh^g^4c zw>0%X!_0`{iN%RbVk+A^f{w-4-SSf*fu@FhruNL##F~sF24O~u zyYF<3el2b$$wZ_|uW#@Ak+VAGk#e|kS8nL1g>2B-SNMjMp^8;-FfeofY2fphFHO!{ z*!o4oTb{4e;S<|JEs<1_hPsmAlVNk?_5-Fp5KKU&d#FiNW~Y+pVFk@Cua1I{T+1|+ zHx6rFMor)7L)krbilqsWwy@T+g3DiH5MyVf8Wy}XbEaoFIDr~y;@r&I>FMW{ z?Q+(IgyebZ)-i4jNoXQhq4Muy9Fv+OxU;9_Jmn+<`mEC#%2Q_2bpcgzcinygNI!&^ z=V$)o2&Yz04~+&pPWWn`rrWxJ&}8khR)6B(--!9Q zubo}h+1T)>a@c)H^i``@<^j?|r4*{;tQf78(xn0g39IoZw0(CwY1f<%F>kEaJ zp9u|IeMY5mRdAlw*+gSN^5$Q)ShM<~E=(c8QM+T-Qk)FyKz#Sw0EJ*edYcuOtO#~Cx^(M7w5 z3)rl#L)rF|(Vun2LkFr!rg8Q@=r>9p>(t3Gf_auiJ2Xx9HmxYTa|=MH_SUlYL`mz9 zTTS$`%;D-|Jt}AP1&k7PcnfFNTH0A-*FmxstjBDiZX?}%u%Yq94$fUT&z6od+(Uk> zuqsld#G(b$G8tus=M!N#oPd|PVFX)?M?tCD0tS%2IGTfh}3YA3f&UM)W$_GNV8 zQo+a(ml2Km4o6O%gKTCSDNq+#zCTIQ1*`TIJh~k6Gp;htHBFnne))rlFdGqwC6dx2+La1&Mnko*352k0y z+tQcwndQlX`nc6nb$A9?<-o|r*%aWXV#=6PQic0Ok_D;q>wbv&j7cKc!w4~KF#-{6 z(S%6Za)WpGIWf7jZ3svNG5OLs0>vCL9{V7cgO%zevIVMH{WgP*^D9ws&OqA{yr|m| zKD4*07dGXshJHd#e%x%J+qmS^lS|0Bp?{drv;{@{l9ArPO&?Q5=?OO9=}h$oVe#3b z3Yofj&Cb}WC$PxmRRS)H%&$1-)z7jELS}!u!zQ?A^Y{Tv4QVt*vd@uj-^t2fYRzQj zfxGR>-q|o$3sGn^#VzZ!QQx?h9`njeJry}@x?|k0-GTTA4y3t2E`3DZ!A~D?GiJup z)8%PK2^9OVRlP(24P^4_<|D=H^7}WlWu#LgsdHzB%cPy|f8dD3|A^mh4WXxhLTVu_ z@abE{6Saz|Y{rXYPd4$tfPYo}ef(oQWZ=4Bct-=_9`#Qgp4ma$n$`tOwq#&E18$B; z@Bp)bn3&rEi0>fWWZ@7k5WazfoX`SCO4jQWwVuo+$PmSZn^Hz?O(-tW@*DGxuf)V1 zO_xm&;NVCaHD4dqt(-MlszI3F-p?0!-e$fbiCeuaw66h^TTDLWuaV<@C-`=Xe5WL) zwooG7h>4&*)p3pKMS3O!4>-4jQUN}iAMQ)2*70?hP~)TzzR?-f@?Aqy$$1Iy8VGG$ zMM?8;j!pUX7QQD$gRc_#+=raAS577ga-w?jd`vCiN5lu)dEUkkUPl9!?{$IJNxQys z*E4e$eF&n&+AMRQR2gcaFEjAy*r)G!s(P6D&TfoApMFC_*Ftx0|D0@E-=B7tezU@d zZ{hGiN;YLIoSeRS;9o%dEua4b%4R3;$SugDjP$x;Z!M!@QibuSBb)HY!3zJ7M;^jw zlx6AD50FD&p3JyP*>o+t9YWW8(7P2t!VQQ21pHJOcG_SXQD;(5aX#M6x##5H_Re>6lPyDCjxr*R(+HE%c&QN+b^tbT zXBJk?p)zhJj#I?&Y2n&~XiytG9!1ox;bw5Rbj~)7c(MFBb4>IiRATdhg zmiEFlj@S_hwYYI(ki{}&<;_7(Z0Qkfq>am z&LtL=2qc7rWguk3BtE4zL41@#S;NN*-jWw|7Kx7H7~_%7fPt;TIX}Ubo>;Rmj94V> zNB1=;-9AR7s`Pxn}t_6^3ahlq53e&!Lh85uG zec0vJY_6e`tg7LgfrJ3k!DjR)Bi#L@DHIrZ`sK=<5O0Ip!fxGf*OgGSpP@Hbbe&$9 z;ZI}8lEoC2_7;%L2=w?tb%1oL0V+=Z`7b=P&lNGY;yVBazXRYu;+cQDKvm*7NCxu&i;zub zAJh#11%?w>E2rf2e~C4+rAb-&$^vsdACs7 z@|Ra!OfVM(ke{vyiqh7puf&Yp6cd6{DptUteYfIRWG3pI+5< zBVBI_xkBAc<(pcb$!Y%dTW(b;B;2pOI-(QCsLv@U-D1XJ z(Gk8Q3l7Ws46Aktuj>|s{$6zA&xCPuXL-kB`CgYMs}4IeyG*P51IDwW?8UNQd+$i~ zlxOPtSi5L|gJcF@DwmJA5Ju8HEJ>o{{upwIpb!f{2(vLNBw`7xMbvcw<^{Fj@E~1( z?w`iIMieunS#>nXlmUcSMU+D3rX28f?s7z;X=se6bo8;5vM|O^(D6{A9*ChnGH!RG zP##3>LDC3jZPE4PH32AxrqPk|yIIrq~`aL-=}`okhNu9aT%q z1b)7iJ)CN=V#Ly84N_r7U^SH2FGdE5FpTO2 z630TF$P>GNMu8`rOytb(lB2};`;P4YNwW1<5d3Q~AX#P0aX}R2b2)`rgkp#zTxcGj zAV^cvFbhP|JgWrq_e`~exr~sIR$6p5V?o4Wym3kQ3HA+;Pr$bQ0(PmADVO%MKL!^q z?zAM8j1l4jrq|5X+V!8S*2Wl@=7*pPgciTVK6kS1Ge zMsd_u6DFK$jTnvVtE;qa+8(1sGBu~n&F%dh(&c(Zs4Fc#A=gG^^%^AyH}1^?|8quj zl@Z47h$){PlELJgYZCIHHL= z{U8O>Tw4x3<1{?$8>k-P<}1y9DmAZP_;(3Y*{Sk^H^A=_iSJ@+s5ktgwTXz_2$~W9>VVZsfwCm@s0sQ zeB50_yu@uS+e7QoPvdCwDz{prjo(AFwR%C?z`EL{1`|coJHQTk^nX=tvs1<0arUOJ z!^`*x&&BvTYmemyZ)2p~{%eYX=JVR?DYr(rNgqRMA5E1PR1Iw=prk=L2ldy3r3Vg@27IZx43+ywyzr-X*p*d@tZV+!U#~$-q=8c zgdSuh#r?b4GhEGNai)ayHQpk>5(%j5c@C1K3(W1pb~HeHpaqijJZa-e6vq_8t-^M^ zBJxq|MqZc?pjXPIH}70a5vt!IUh;l}<>VX<-Qcv^u@5(@@M2CHSe_hD$VG-eiV^V( zj7*9T0?di?P$FaD6oo?)<)QT>Npf6Og!GO^GmPV(Km0!=+dE&bk#SNI+C9RGQ|{~O*VC+tXK3!n`5 zHfl6>lwf_aEVV3`0T!aHNZLsj$paS$=LL(?b!Czaa5bbSuZ6#$_@LK<(7yrrl+80| z{tOFd=|ta2Z`^ssozD9BINn45NxUeCQis?-BKmU*Kt=FY-NJ+)8S1ecuFtN-M?&42 zl2$G>u!iNhAk*HoJ^4v^9#ORYp5t^wDj6|lx~5w45#E5wVqI1JQ~9l?nPp1YINf++ zMAdSif~_ETv@Er(EFBI^@L4BULFW>)NI+ejHFP*T}UhWNN`I)RRS8za? z*@`1>9ZB}An%aT5K=_2iQmfE;GcBVHLF!$`I99o5GO`O%O_zLr9AG18>&^HkG(;=V z%}c!OBQ~?MX(9h~tajX{=x)+!cbM7$YzTlmsPOdp2L-?GoW`@{lY9U3f;OUo*BwRB z8A+nv(br0-SH#VxGy#ZrgnGD(=@;HME;yd46EgWJ`EL%oXc&lFpc@Y}^>G(W>h_v_ zlN!`idhX+OjL+~T?19sroAFVGfa5tX-D49w$1g2g_-T|EpHL6}K_aX4$K=LTvwtlF zL*z}j{f+Uoe7{-px3_5iKPA<_7W=>Izkk)!l9ez2w%vi(?Y;i8AxRNLSOGDzNoqoI zP!1uAl}r=_871(G?y`i&)-7{u=%nxk7CZ_Qh#!|ITec zwQn`33GTUM`;D2POWnkqngqJhJRlM>CTONzTG}>^Q0wUunQyn|TAiHzyX2_%ATx%P z%7gW)%4rA9^)M<_%k@`Y?RbC<29sWU&5;@|9thf2#zf8z12$hRcZ!CSb>kUp=4N#y zl3hE#y6>kkA8VY2`W`g5Ip?2qC_BY$>R`iGQLhz2-S>x(RuWv)SPaGdl^)gGw7tjR zH@;jwk!jIaCgSg_*9iF|a);sRUTq30(8I(obh^|}S~}P4U^BIGYqcz;MPpC~Y@k_m zaw4WG1_vz2GdCAX!$_a%GHK**@IrHSkGoN>)e}>yzUTm52on`hYot7cB=oA-h1u|R ztH$11t?54Qg2L+i33FPFKKRm1aOjKST{l1*(nps`>sv%VqeVMWjl5+Gh+9);hIP8? zA@$?}Sc z3qIRpba+y5yf{R6G(u8Z^vkg0Fu&D-7?1s=QZU`Ub{-!Y`I?AGf1VNuc^L3v>)>i# z{DV9W$)>34wnzAXUiV^ZpYKw>UElrN_5Xj6{r_3| z$X5PK`e5$7>~9Dj7gK5ash(dvs`vwfk}&RD`>04;j62zoXESkFBklYaKm5seyiX(P zqQ-;XxlV*yg?Dhlx%xt!b0N3GHp@(p$A;8|%# zZ5m2KL|{on4nr>2_s9Yh=r5ScQ0;aMF)G$-9-Ca6%wA`Pa)i?NGFA|#Yi?{X-4ZO_ z^}%7%vkzvUHa$-^Y#aA+aiR5sa%S|Ebyn`EV<3Pc?ax_f>@sBZF1S;7y$CXd5t5=WGsTKBk8$OfH4v|0?0I=Yp}7c=WBSCg!{0n)XmiU;lfx)**zZaYqmDJelxk$)nZyx5`x$6R|fz(;u zEje5Dtm|a%zK!!tk3{i9$I2b{vXNFy%Bf{50X!x{98+BsDr_u9i>G5%*sqEX|06J0 z^IY{UcEbj6LDwuMh7cH`H@9sVt1l1#8kEQ(LyT@&+K}(ReE`ux8gb0r6L_#bDUo^P z3Ka2lRo52Hdtl_%+pwVs14=q`{d^L58PsU@AMf(hENumaxM{7iAT5sYmWh@hQCO^ zK&}ijo=`VqZ#a3vE?`7QW0ZREL17ZvDfdqKGD?0D4fg{7v%|Yj&_jcKJAB)>=*RS* zto8p6@k%;&^ZF>hvXm&$PCuEp{uqw3VPG$9VMdW5$w-fy2CNNT>E;>ejBgy-m_6`& z97L1p{%srn@O_JQgFpa_#f(_)eb#YS>o>q3(*uB;uZb605(iqM$=NK{nHY=+X2*G) zO3-_Xh%aG}fHWe*==58zBwp%&`mge<8uq8;xIxOd=P%9EK!34^E9sk|(Zq1QSz-JVeP12Fp)-`F|KY$LPwUE?rku zY@OJ)Z9A!ojfzfeyJ9;zv2EM7ZQB)AR5xGa-tMn^bl)FmoIiVyJ@!~@%{}qXXD&Ns zPnfe5U+&ohKefILu_1mPfLGuapX@btta5C#gPB2cjk5m4T}Nfi+Vfka!Yd(L?-c~5 z#ZK4VeQEXNPc4r$K00Fg>g#_W!YZ)cJ?JTS<&68_$#cZT-ME`}tcwqg3#``3M3UPvn+pi}(VNNx6y zFIMVb6OwYU(2`at$gHba*qrMVUl8xk5z-z~fb@Q3Y_+aXuEKH}L+>eW__!IAd@V}L zkw#s%H0v2k5-=vh$^vPCuAi22Luu3uKTf6fPo?*nvj$9(u)4$6tvF-%IM+3pt*cgs z_?wW}J7VAA{_~!?))?s6{M=KPpVhg4fNuU*|3THp@_(q!b*hdl{fjRVFWtu^1dV(f z6iOux9hi&+UK=|%M*~|aqFK{Urfl!TA}UWY#`w(0P!KMe1Si{8|o))Gy6d7;!JQYhgMYmXl?3FfOM2nQGN@~Ap6(G z3+d_5y@=nkpKAhRqf{qQ~k7Z$v&l&@m7Ppt#FSNzKPZM z8LhihcE6i=<(#87E|Wr~HKvVWhkll4iSK$^mUHaxgy8*K$_Zj;zJ`L$naPj+^3zTi z-3NTaaKnD5FPY-~?Tq6QHnmDDRxu0mh0D|zD~Y=vv_qig5r-cIbCpxlju&8Sya)@{ zsmv6XUSi)@(?PvItkiZEeN*)AE~I_?#+Ja-r8$(XiXei2d@Hi7Rx8+rZZb?ZLa{;@*EHeRQ-YDadz~M*YCM4&F-r;E#M+@CSJMJ0oU|PQ^ z=E!HBJDMQ2TN*Y(Ag(ynAL8%^v;=~q?s4plA_hig&5Z0x_^Oab!T)@6kRN$)qEJ6E zNuQjg|G7iwU(N8pI@_6==0CL;lRh1dQF#wePhmu@hADFd3B5KIH#dx(2A zp~K&;Xw}F_N6CU~0)QpQk7s$a+LcTOj1%=WXI(U=Dv!6 z{#<#-)2+gCyyv=Jw?Ab#PVkxPDeH|sAxyG`|Ys}A$PW4TdBv%zDz z^?lwrxWR<%Vzc8Sgt|?FL6ej_*e&rhqJZ3Y>k=X(^dytycR;XDU16}Pc9Vn0>_@H+ zQ;a`GSMEG64=JRAOg%~L)x*w{2re6DVprNp+FcNra4VdNjiaF0M^*>CdPkt(m150rCue?FVdL0nFL$V%5y6N z%eLr5%YN7D06k5ji5*p4v$UMM)G??Q%RB27IvH7vYr_^3>1D-M66#MN8tWGw>WED} z5AhlsanO=STFYFs)Il_0i)l)f<8qn|$DW7ZXhf5xI;m+7M5-%P63XFQrG9>DMqHc} zsgNU9nR`b}E^mL5=@7<1_R~j@q_2U^3h|+`7YH-?C=vme1C3m`Fe0HC>pjt6f_XMh zy~-i-8R46QNYneL4t@)<0VU7({aUO?aH`z4V2+kxgH5pYD5)wCh75JqQY)jIPN=U6 z+qi8cGiOtXG2tXm;_CfpH9ESCz#i5B(42}rBJJF$jh<1sbpj^8&L;gzGHb8M{of+} zzF^8VgML2O9nxBW7AvdEt90vp+#kZxWf@A)o9f9}vKJy9NDBjBW zSt=Hcs=YWCwnfY1UYx*+msp{g!w0HC<_SM!VL1(I2PE?CS}r(eh?{I)mQixmo5^p# zV?2R!R@3GV6hwTCrfHiK#3Orj>I!GS2kYhk1S;aFBD_}u2v;0HYFq}Iz1Z(I4oca4 zxquja8$+8JW_EagDHf$a1OTk5S97umGSDaj)gH=fLs9>_=XvVj^Xj9a#gLdk=&3tl zfmK9MNnIX9v{?%xdw7568 zNrZ|roYs(vC4pHB5RJ8>)^*OuyNC>x7ad)tB_}3SgQ96+-JT^Qi<`xi=)_=$Skwv~ zdqeT9Pa`LYvCAn&rMa2aCDV(TMI#PA5g#RtV|CWpgDYRA^|55LLN^uNh*gOU>Z=a06qJ;$C9z8;n-Pq=qZnc1zUwJ@t)L;&NN+E5m zRkQ(SeM8=l-aoAKGKD>!@?mWTW&~)uF2PYUJ;tB^my`r9n|Ly~0c%diYzqs9W#FTjy?h&X3TnH zXqA{QI82sdjPO->f=^K^f>N`+B`q9&rN0bOXO79S&a9XX8zund(kW7O76f4dcWhIu zER`XSMSFbSL>b;Rp#`CuGJ&p$s~G|76){d?xSA5wVg##_O0DrmyEYppyBr%fyWbbv zp`K84JwRNP$d-pJ!Qk|(RMr?*!wi1if-9G#0p>>1QXKXWFy)eB3ai)l3601q8!9JC zvU#ZWWDNKq9g6fYs?JQ)Q4C_cgTy3FhgKb8s&m)DdmL5zhNK#8wWg!J*7G7Qhe9VU zha?^AQTDpYcuN!B+#1dE*X{<#!M%zfUQbj=zLE{dW0XeQ7-oIsGY6RbkP2re@Q{}r_$iiH0xU%iN*ST`A)-EH6eaZB$GA#v)cLi z*MpA(3bYk$oBDKAzu^kJoSUsDd|856DApz={3u8sbQV@JnRkp2nC|)m;#T=DvIL-O zI4vh;g7824l}*`_p@MT4+d`JZ2%6NQh=N9bmgJ#q!hK@_<`HQq3}Z8Ij>3%~<*= zcv=!oT#5xmeGI92lqm9sGVE%#X$ls;St|F#u!?5Y7syhx6q#MVRa&lBmmn%$C0QzU z);*ldgwwCmzM3uglr}!Z2G+?& zf%Dpo&mD%2ZcNFiN-Z0f;c_Q;A%f@>26f?{d1kxIJD}LxsQkB47SAdwinfMILZdN3 zfj^HmTzS3Ku5BxY>ANutS8WPQ-G>v4^_Qndy==P3pDm+Xc?>rUHl-4+^%Sp5atOja z2oP}ftw-rqnb}+khR3CrRg^ibi6?QYk1*i^;kQGirQ=uB9Sd1NTfT-Rbv;hqnY4neE5H1YUrjS2m+2&@uXiAo- zrKUX|Ohg7(6F(AoP~tj;NZlV#xsfo-5reuQHB$&EIAhyZk;bL;k9ouDmJNBAun;H& zn;Of1z_Qj`x&M;5X;{s~iGzBQTY^kv-k{ksbE*Dl%Qf%N@hQCfY~iUw!=F-*$cpf2 z3wix|aLBV0b;W@z^%7S{>9Z^T^fLOI68_;l@+Qzaxo`nAI8emTV@rRhEKZ z?*z_{oGdI~R*#<2{bkz$G~^Qef}$*4OYTgtL$e9q!FY7EqxJ2`zk6SQc}M(k(_MaV zSLJnTXw&@djco1~a(vhBl^&w=$fa9{Sru>7g8SHahv$&Bl(D@(Zwxo_3r=;VH|uc5 zi1Ny)J!<(KN-EcQ(xlw%PNwK8U>4$9nVOhj(y0l9X^vP1TA>r_7WtSExIOsz`nDOP zs}d>Vxb2Vo2e5x8p(n~Y5ggAyvib>d)6?)|E@{FIz?G3PVGLf7-;BxaP;c?7ddH$z zA+{~k^V=bZuXafOv!RPsE1GrR3J2TH9uB=Z67gok+u`V#}BR86hB1xl}H4v`F+mRfr zYhortD%@IGfh!JB(NUNSDh+qDz?4ztEgCz&bIG-Wg7w-ua4ChgQR_c+z8dT3<1?uX z*G(DKy_LTl*Ea!%v!RhpCXW1WJO6F`bgS-SB;Xw9#! z<*K}=#wVu9$`Yo|e!z-CPYH!nj7s9dEPr-E`DXUBu0n!xX~&|%#G=BeM?X@shQQMf zMvr2!y7p_gD5-!Lnm|a@z8Of^EKboZsTMk%5VsJEm>VsJ4W7Kv{<|#4f-qDE$D-W>gWT%z-!qXnDHhOvLk=?^a1*|0j z{pW{M0{#1VcR5;F!!fIlLVNh_Gj zbnW(_j?0c2q$EHIi@fSMR{OUKBcLr{Y&$hrM8XhPByyZaXy|dd&{hYQRJ9@Fn%h3p7*VQolBIV@Eq`=y%5BU~3RPa^$a?ixp^cCg z+}Q*X+CW9~TL29@OOng(#OAOd!)e$d%sr}^KBJ-?-X&|4HTmtemxmp?cT3uA?md4% zT8yZ0U;6Rg6JHy3fJae{6TMGS?ZUX6+gGTT{Q{)SI85$5FD{g-eR%O0KMpWPY`4@O zx!hen1*8^E(*}{m^V_?}(b5k3hYo=T+$&M32+B`}81~KKZhY;2H{7O-M@vbCzuX0n zW-&HXeyr1%I3$@ns-V1~Lb@wIpkmx|8I~ob1Of7i6BTNysEwI}=!nU%q7(V_^+d*G z7G;07m(CRTJup!`cdYi93r^+LY+`M*>aMuHJm(A8_O8C#A*$!Xvddgpjx5)?_EB*q zgE8o5O>e~9IiSC@WtZpF{4Bj2J5eZ>uUzY%TgWF7wdDE!fSQIAWCP)V{;HsU3ap?4 znRsiiDbtN7i9hapO;(|Ew>Ip2TZSvK9Z^N21%J?OiA_&eP1{(Pu_=%JjKy|HOardq ze?zK^K zA%sjF64*Wufad%H<) z^|t>e*h+Z1#l=5wHexzt9HNDNXgM=-OPWKd^5p!~%SIl>Fo&7BvNpbf8{NXmH)o{r zO=aBJ;meX1^{O%q;kqdw*5k!Y7%t_30 zy{nGRVc&5qt?dBwLs+^Sfp;f`YVMSB#C>z^a9@fpZ!xb|b-JEz1LBX7ci)V@W+kvQ89KWA0T~Lj$aCcfW#nD5bt&Y_< z-q{4ZXDqVg?|0o)j1%l0^_it0WF*LCn-+)c!2y5yS7aZIN$>0LqNnkujV*YVes(v$ zY@_-!Q;!ZyJ}Bg|G-~w@or&u0RO?vlt5*9~yeoPV_UWrO2J54b4#{D(D>jF(R88u2 zo#B^@iF_%S>{iXSol8jpmsZuJ?+;epg>k=$d`?GSegAVp3n$`GVDvK${N*#L_1`44 z{w0fL{2%)0|E+qgZtjX}itZz^KJt4Y;*8uSK}Ft38+3>j|K(PxIXXR-t4VopXo#9# zt|F{LWr-?34y`$nLBVV_*UEgA6AUI65dYIbqpNq9cl&uLJ0~L}<=ESlOm?Y-S@L*d z<7vt}`)TW#f%Rp$Q}6@3=j$7Tze@_uZO@aMn<|si{?S}~maII`VTjs&?}jQ4_cut9$)PEqMukwoXobzaKx^MV z2fQwl+;LSZ$qy%Tys0oo^K=jOw$!YwCv^ei4NBVauL)tN%=wz9M{uf{IB(BxK|lT*pFkmNK_1tV`nb%jH=a0~VNq2RCKY(rG7jz!-D^k)Ec)yS%17pE#o6&eY+ z^qN(hQT$}5F(=4lgNQhlxj?nB4N6ntUY6(?+R#B?W3hY_a*)hnr4PA|vJ<6p`K3Z5Hy z{{8(|ux~NLUW=!?9Qe&WXMTAkQnLXg(g=I@(VG3{HE13OaUT|DljyWXPs2FE@?`iU z4GQlM&Q=T<4&v@Fe<+TuXiZQT3G~vZ&^POfmI1K2h6t4eD}Gk5XFGpbj1n_g*{qmD6Xy z`6Vv|lLZtLmrnv*{Q%xxtcWVj3K4M%$bdBk_a&ar{{GWyu#ljM;dII;*jP;QH z#+^o-A4np{@|Mz+LphTD0`FTyxYq#wY)*&Ls5o{0z9yg2K+K7ZN>j1>N&;r+Z`vI| zDzG1LJZ+sE?m?>x{5LJx^)g&pGEpY=fQ-4}{x=ru;}FL$inHemOg%|R*ZXPodU}Kh zFEd5#+8rGq$Y<_?k-}r5zgQ3jRV=ooHiF|@z_#D4pKVEmn5CGV(9VKCyG|sT9nc=U zEoT67R`C->KY8Wp-fEcjjFm^;Cg(ls|*ABVHq8clBE(;~K^b+S>6uj70g? z&{XQ5U&!Z$SO7zfP+y^8XBbiu*Cv-yJG|l-oe*!s5$@Lh_KpxYL2sx`B|V=dETN>5K+C+CU~a_3cI8{vbu$TNVdGf15*>D zz@f{zIlorkY>TRh7mKuAlN9A0>N>SV`X)+bEHms=mfYTMWt_AJtz_h+JMmrgH?mZt zm=lfdF`t^J*XLg7v+iS)XZROygK=CS@CvUaJo&w2W!Wb@aa?~Drtf`JV^cCMjngVZ zv&xaIBEo8EYWuML+vxCpjjY^s1-ahXJzAV6hTw%ZIy!FjI}aJ+{rE&u#>rs)vzuxz z+$5z=7W?zH2>Eb32dvgHYZtCAf!=OLY-pb4>Ae79rd68E2LkVPj-|jFeyqtBCCwiW zkB@kO_(3wFq)7qwV}bA=zD!*@UhT`geq}ITo%@O(Z5Y80nEX~;0-8kO{oB6|(4fQh z);73T!>3@{ZobPwRv*W?7m0Ml9GmJBCJd&6E?hdj9lV= z4flNfsc(J*DyPv?RCOx!MSvk(M952PJ-G|JeVxWVjN~SNS6n-_Ge3Q;TGE;EQvZg86%wZ`MB zSMQua(i*R8a75!6$QRO^(o7sGoomb+Y{OMy;m~Oa`;P9Yqo>?bJAhqXxLr7_3g_n>f#UVtxG!^F#1+y@os6x(sg z^28bsQ@8rw%Gxk-stAEPRbv^}5sLe=VMbkc@Jjimqjvmd!3E7+QnL>|(^3!R} zD-l1l7*Amu@j+PWLGHXXaFG0Ct2Q=}5YNUxEQHCAU7gA$sSC<5OGylNnQUa>>l%sM zyu}z6i&({U@x^hln**o6r2s-(C-L50tQvz|zHTqW!ir?w&V23tuYEDJVV#5pE|OJu z7^R!A$iM$YCe?8n67l*J-okwfZ+ZTkGvZ)tVPfR;|3gyFjF)8V zyXXN=!*bpyRg9#~Bg1+UDYCt0 ztp4&?t1X0q>uz;ann$OrZs{5*r`(oNvw=$7O#rD|Wuv*wIi)4b zGtq4%BX+kkagv3F9Id6~-c+1&?zny%w5j&nk9SQfo0k4LhdSU_kWGW7axkfpgR`8* z!?UTG*Zi_baA1^0eda8S|@&F z{)Rad0kiLjB|=}XFJhD(S3ssKlveFFmkN{Vl^_nb!o5M!RC=m)V&v2%e?ZoRC@h3> zJ(?pvToFd`*Zc@HFPL#=otWKwtuuQ_dT-Hr{S%pQX<6dqVJ8;f(o)4~VM_kEQkMR+ zs1SCVi~k>M`u1u2xc}>#D!V&6nOOh-E$O&SzYrjJdZpaDv1!R-QGA141WjQe2s0J~ zQ;AXG)F+K#K8_5HVqRoRM%^EduqOnS(j2)|ctA6Q^=|s_WJYU;Z%5bHp08HPL`YF2 zR)Ad1z{zh`=sDs^&V}J z%$Z$!jd7BY5AkT?j`eqMs%!Gm@T8)4w3GYEX~IwgE~`d|@T{WYHkudy(47brgHXx& zBL1yFG6!!!VOSmDxBpefy2{L_u5yTwja&HA!mYA#wg#bc-m%~8aRR|~AvMnind@zs zy>wkShe5&*un^zvSOdlVu%kHsEo>@puMQ`b1}(|)l~E{5)f7gC=E$fP(FC2=F<^|A zxeIm?{EE!3sO!Gr7e{w)Dx(uU#3WrFZ>ibmKSQ1tY?*-Nh1TDHLe+k*;{Rp!Bmd_m zb#^kh`Y*8l|9Cz2e{;RL%_lg{#^Ar+NH|3z*Zye>!alpt{z;4dFAw^^H!6ING*EFc z_yqhr8d!;%nHX9AKhFQZBGrSzfzYCi%C!(Q5*~hX>)0N`vbhZ@N|i;_972WSx*>LH z87?en(;2_`{_JHF`Sv6Wlps;dCcj+8IJ8ca6`DsOQCMb3n# z3)_w%FuJ3>fjeOOtWyq)ag|PmgQbC-s}KRHG~enBcIwqIiGW8R8jFeBNY9|YswRY5 zjGUxdGgUD26wOpwM#8a!Nuqg68*dG@VM~SbOroL_On0N6QdT9?)NeB3@0FCC?Z|E0 z6TPZj(AsPtwCw>*{eDEE}Gby>0q{*lI+g2e&(YQrsY&uGM{O~}(oM@YWmb*F zA0^rr5~UD^qmNljq$F#ARXRZ1igP`MQx4aS6*MS;Ot(1L5jF2NJ;de!NujUYg$dr# z=TEL_zTj2@>ZZN(NYCeVX2==~=aT)R30gETO{G&GM4XN<+!&W&(WcDP%oL8PyIVUC zs5AvMgh6qr-2?^unB@mXK*Dbil^y-GTC+>&N5HkzXtozVf93m~xOUHn8`HpX=$_v2 z61H;Z1qK9o;>->tb8y%#4H)765W4E>TQ1o0PFj)uTOPEvv&}%(_mG0ISmyhnQV33Z$#&yd{ zc{>8V8XK$3u8}04CmAQ#I@XvtmB*s4t8va?-IY4@CN>;)mLb_4!&P3XSw4pA_NzDb zORn!blT-aHk1%Jpi>T~oGLuh{DB)JIGZ9KOsciWs2N7mM1JWM+lna4vkDL?Q)z_Ct z`!mi0jtr+4*L&N7jk&LodVO#6?_qRGVaucqVB8*us6i3BTa^^EI0x%EREQSXV@f!lak6Wf1cNZ8>*artIJ(ADO*=<-an`3zB4d*oO*8D1K!f z*A@P1bZCNtU=p!742MrAj%&5v%Xp_dSX@4YCw%F|%Dk=u|1BOmo)HsVz)nD5USa zR~??e61sO(;PR)iaxK{M%QM_rIua9C^4ppVS$qCT9j2%?*em?`4Z;4@>I(c%M&#cH z>4}*;ej<4cKkbCAjjDsyKS8rIm90O)Jjgyxj5^venBx&7B!xLmzxW3jhj7sR(^3Fz z84EY|p1NauwXUr;FfZjdaAfh%ivyp+^!jBjJuAaKa!yCq=?T_)R!>16?{~p)FQ3LDoMyG%hL#pR!f@P%*;#90rs_y z@9}@r1BmM-SJ#DeuqCQk=J?ixDSwL*wh|G#us;dd{H}3*-Y7Tv5m=bQJMcH+_S`zVtf;!0kt*(zwJ zs+kedTm!A}cMiM!qv(c$o5K%}Yd0|nOd0iLjus&;s0Acvoi-PFrWm?+q9f^FslxGi z6ywB`QpL$rJzWDg(4)C4+!2cLE}UPCTBLa*_=c#*$b2PWrRN46$y~yST3a2$7hEH= zNjux+wna^AzQ=KEa_5#9Ph=G1{S0#hh1L3hQ`@HrVnCx{!fw_a0N5xV(iPdKZ-HOM za)LdgK}1ww*C_>V7hbQnTzjURJL`S%`6nTHcgS+dB6b_;PY1FsrdE8(2K6FN>37!62j_cBlui{jO^$dPkGHV>pXvW0EiOA zqW`YaSUBWg_v^Y5tPJfWLcLpsA8T zG)!x>pKMpt!lv3&KV!-um= zKCir6`bEL_LCFx4Z5bAFXW$g3Cq`?Q%)3q0r852XI*Der*JNuKUZ`C{cCuu8R8nkt z%pnF>R$uY8L+D!V{s^9>IC+bmt<05h**>49R*#vpM*4i0qRB2uPbg8{{s#9yC;Z18 zD7|4m<9qneQ84uX|J&f-g8a|nFKFt34@Bt{CU`v(SYbbn95Q67*)_Esl_;v291s=9 z+#2F2apZU4Tq=x+?V}CjwD(P=U~d<=mfEFuyPB`Ey82V9G#Sk8H_Ob_RnP3s?)S_3 zr%}Pb?;lt_)Nf>@zX~D~TBr;-LS<1I##8z`;0ZCvI_QbXNh8Iv)$LS=*gHr;}dgb=w5$3k2la1keIm|=7<-JD>)U%=Avl0Vj@+&vxn zt-)`vJxJr88D&!}2^{GPXc^nmRf#}nb$4MMkBA21GzB`-Or`-3lq^O^svO7Vs~FdM zv`NvzyG+0T!P8l_&8gH|pzE{N(gv_tgDU7SWeiI-iHC#0Ai%Ixn4&nt{5y3(GQs)i z&uA;~_0shP$0Wh0VooIeyC|lak__#KVJfxa7*mYmZ22@(<^W}FdKjd*U1CqSjNKW% z*z$5$=t^+;Ui=MoDW~A7;)Mj%ibX1_p4gu>RC}Z_pl`U*{_z@+HN?AF{_W z?M_X@o%w8fgFIJ$fIzBeK=v#*`mtY$HC3tqw7q^GCT!P$I%=2N4FY7j9nG8aIm$c9 zeKTxVKN!UJ{#W)zxW|Q^K!3s;(*7Gbn;e@pQBCDS(I|Y0euK#dSQ_W^)sv5pa%<^o zyu}3d?Lx`)3-n5Sy9r#`I{+t6x%I%G(iewGbvor&I^{lhu-!#}*Q3^itvY(^UWXgvthH52zLy&T+B)Pw;5>4D6>74 zO_EBS)>l!zLTVkX@NDqyN2cXTwsUVao7$HcqV2%t$YzdAC&T)dwzExa3*kt9d(}al zA~M}=%2NVNUjZiO7c>04YH)sRelXJYpWSn^aC$|Ji|E13a^-v2MB!Nc*b+=KY7MCm zqIteKfNkONq}uM;PB?vvgQvfKLPMB8u5+Am=d#>g+o&Ysb>dX9EC8q?D$pJH!MTAqa=DS5$cb+;hEvjwVfF{4;M{5U&^_+r zvZdu_rildI!*|*A$TzJ&apQWV@p{!W`=?t(o0{?9y&vM)V)ycGSlI3`;ps(vf2PUq zX745#`cmT*ra7XECC0gKkpu2eyhFEUb?;4@X7weEnLjXj_F~?OzL1U1L0|s6M+kIhmi%`n5vvDALMagi4`wMc=JV{XiO+^ z?s9i7;GgrRW{Mx)d7rj)?(;|b-`iBNPqdwtt%32se@?w4<^KU&585_kZ=`Wy^oLu9 z?DQAh5z%q;UkP48jgMFHTf#mj?#z|=w= z(q6~17Vn}P)J3M?O)x))%a5+>TFW3No~TgP;f}K$#icBh;rSS+R|}l鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/3 WEEK/LEE/core/gradle/wrapper/gradle-wrapper.properties b/3 WEEK/LEE/core/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..3fa8f862 --- /dev/null +++ b/3 WEEK/LEE/core/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/3 WEEK/LEE/core/gradlew b/3 WEEK/LEE/core/gradlew new file mode 100644 index 00000000..1aa94a42 --- /dev/null +++ b/3 WEEK/LEE/core/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/3 WEEK/LEE/core/gradlew.bat b/3 WEEK/LEE/core/gradlew.bat new file mode 100644 index 00000000..93e3f59f --- /dev/null +++ b/3 WEEK/LEE/core/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/3 WEEK/LEE/core/settings.gradle b/3 WEEK/LEE/core/settings.gradle new file mode 100644 index 00000000..4d52ac57 --- /dev/null +++ b/3 WEEK/LEE/core/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'core' diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/AppConfig.java b/3 WEEK/LEE/core/src/main/java/hello/core/AppConfig.java new file mode 100644 index 00000000..ff4b722e --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/AppConfig.java @@ -0,0 +1,41 @@ +package hello.core; + +import hello.core.discount.DiscountPolicy; +import hello.core.discount.RateDiscountPolicy; +import hello.core.member.MemberRepository; +import hello.core.member.MemberService; +import hello.core.member.MemberServiceImpl; +import hello.core.member.MemoryMemberRepository; +import hello.core.order.OrderService; +import hello.core.order.OrderServiceImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class AppConfig { + + @Bean + public MemberService memberService(){ + return new MemberServiceImpl(memberRepository()); + } + + @Bean + public OrderService orderService(){ + return new OrderServiceImpl( + memberRepository(), + discountPolicy() + ); + } + + @Bean + public MemberRepository memberRepository(){ + return new MemoryMemberRepository(); + } + + @Bean + public DiscountPolicy discountPolicy(){ + //return new FixDiscountPolicy(); + return new RateDiscountPolicy(); + } + +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/CoreApplication.java b/3 WEEK/LEE/core/src/main/java/hello/core/CoreApplication.java new file mode 100644 index 00000000..5bc183f2 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/CoreApplication.java @@ -0,0 +1,13 @@ +package hello.core; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class CoreApplication { + + public static void main(String[] args) { + SpringApplication.run(CoreApplication.class, args); + } + +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/MemberApp.java b/3 WEEK/LEE/core/src/main/java/hello/core/MemberApp.java new file mode 100644 index 00000000..2ab3e8fa --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/MemberApp.java @@ -0,0 +1,30 @@ +package hello.core; + +import hello.core.member.Grade; +import hello.core.member.Member; +import hello.core.member.MemberService; +import hello.core.member.MemberServiceImpl; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + + +public class MemberApp { + + public static void main(String[] args) { + + ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); + MemberService memberService = applicationContext.getBean("memberService",MemberService.class); + + Member member = new Member("memberA", Grade.VIP); + + memberService.join(member); + + Member findMember = memberService.findMember(1L); + + System.out.println("member = " + member.getName()); + System.out.println("findMember = " + findMember.getName()); + + + } + +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/OrderApp.java b/3 WEEK/LEE/core/src/main/java/hello/core/OrderApp.java new file mode 100644 index 00000000..2e4f4bb2 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/OrderApp.java @@ -0,0 +1,27 @@ +package hello.core; + +import hello.core.member.Grade; +import hello.core.member.Member; +import hello.core.member.MemberService; +import hello.core.member.MemberServiceImpl; +import hello.core.order.Order; +import hello.core.order.OrderService; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class OrderApp { + public static void main(String[] args) { + + ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); + MemberService memberService = applicationContext.getBean("memberService",MemberService.class); + OrderService orderService = applicationContext.getBean("orderService",OrderService.class); + + Member member = new Member("memberA", Grade.VIP); + memberService.join(member); + + Order order = orderService.createOrder(member.getId(),"itemA",10000); + + System.out.println("order = " + order); + + } +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/discount/DiscountPolicy.java b/3 WEEK/LEE/core/src/main/java/hello/core/discount/DiscountPolicy.java new file mode 100644 index 00000000..2b8230ce --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/discount/DiscountPolicy.java @@ -0,0 +1,9 @@ +package hello.core.discount; + +import hello.core.member.Member; + +public interface DiscountPolicy { + + int discount(Member member , int price); + +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/discount/FixDiscountPolicy.java b/3 WEEK/LEE/core/src/main/java/hello/core/discount/FixDiscountPolicy.java new file mode 100644 index 00000000..030b1ed2 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/discount/FixDiscountPolicy.java @@ -0,0 +1,20 @@ +package hello.core.discount; + +import hello.core.member.Grade; +import hello.core.member.Member; + +public class FixDiscountPolicy implements DiscountPolicy{ + + private int discountFixAmount = 1000; + + @Override + public int discount(Member member, int price) { + + if (member.getGrade() == Grade.VIP) { + return discountFixAmount; + }else { + return 0; + } + + } +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/discount/RateDiscountPolicy.java b/3 WEEK/LEE/core/src/main/java/hello/core/discount/RateDiscountPolicy.java new file mode 100644 index 00000000..f99b55e4 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/discount/RateDiscountPolicy.java @@ -0,0 +1,20 @@ +package hello.core.discount; + +import hello.core.member.Grade; +import hello.core.member.Member; + +public class RateDiscountPolicy implements DiscountPolicy{ + + private int discountPercent = 10; + + @Override + public int discount(Member member, int price) { + + if (member.getGrade() == Grade.VIP){ + return price * discountPercent / 100; + } + + return 0; + + } +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/member/Grade.java b/3 WEEK/LEE/core/src/main/java/hello/core/member/Grade.java new file mode 100644 index 00000000..488c7490 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/member/Grade.java @@ -0,0 +1,8 @@ +package hello.core.member; + +public enum Grade { + + BASIC, + VIP + +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/member/Member.java b/3 WEEK/LEE/core/src/main/java/hello/core/member/Member.java new file mode 100644 index 00000000..89177cb6 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/member/Member.java @@ -0,0 +1,37 @@ +package hello.core.member; + +public class Member { + + private Long id; + private String name; + private Grade grade; + + public Member( String name, Grade grade) { + this.name = name; + this.grade = grade; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Grade getGrade() { + return grade; + } + + public void setGrade(Grade grade) { + this.grade = grade; + } +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberRepository.java b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberRepository.java new file mode 100644 index 00000000..1b23df5e --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberRepository.java @@ -0,0 +1,9 @@ +package hello.core.member; + +public interface MemberRepository { + + void save(Member member); + + Member findById(Long memberId); + +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberService.java b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberService.java new file mode 100644 index 00000000..9101fe64 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberService.java @@ -0,0 +1,9 @@ +package hello.core.member; + +public interface MemberService { + + void join(Member member); + + Member findMember(Long memberId); + +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberServiceImpl.java b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberServiceImpl.java new file mode 100644 index 00000000..f0f93670 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemberServiceImpl.java @@ -0,0 +1,20 @@ +package hello.core.member; + +public class MemberServiceImpl implements MemberService{ + + private final MemberRepository memberRepository; + + public MemberServiceImpl(MemberRepository memberRepository) { + this.memberRepository = memberRepository; + } + + @Override + public void join(Member member) { + memberRepository.save(member); + } + + @Override + public Member findMember(Long memberId) { + return memberRepository.findById(memberId); + } +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/member/MemoryMemberRepository.java b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemoryMemberRepository.java new file mode 100644 index 00000000..b292af15 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemoryMemberRepository.java @@ -0,0 +1,21 @@ +package hello.core.member; + +import java.util.HashMap; +import java.util.Map; + +public class MemoryMemberRepository implements MemberRepository { + + private static Map store = new HashMap<>(); + private static long SEQUENCE = 0L; + + @Override + public void save(Member member) { + member.setId(++SEQUENCE); + store.put(member.getId(),member); + } + + @Override + public Member findById(Long memberId) { + return store.get(memberId); + } +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java b/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java new file mode 100644 index 00000000..667f4684 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java @@ -0,0 +1,34 @@ +package hello.core.order; + +public class Order { + + private Long memberId; + private String itemName; + private int itemPrice; + private int discountPrice; + + public Order(Long memberId, String itemName, int itemPrice, int discountPrice){ + this.memberId = memberId; + this.itemName = itemName; + this.itemPrice = itemPrice; + this.discountPrice = discountPrice; + } + + public int calculatePrice(){ + return itemPrice - discountPrice; + } + + public int getDiscountPrice(){ + return discountPrice; + } + + @Override + public String toString() { + return "Order{" + + "memberId=" + memberId + + ", itemName='" + itemName + '\'' + + ", itemPrice=" + itemPrice + + ", discountPrice=" + discountPrice + + '}'; + } +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/order/OrderService.java b/3 WEEK/LEE/core/src/main/java/hello/core/order/OrderService.java new file mode 100644 index 00000000..c408fb95 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/order/OrderService.java @@ -0,0 +1,5 @@ +package hello.core.order; + +public interface OrderService { + Order createOrder(Long memberId, String itemName, int itemPrice); +} diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/order/OrderServiceImpl.java b/3 WEEK/LEE/core/src/main/java/hello/core/order/OrderServiceImpl.java new file mode 100644 index 00000000..214b205a --- /dev/null +++ b/3 WEEK/LEE/core/src/main/java/hello/core/order/OrderServiceImpl.java @@ -0,0 +1,23 @@ +package hello.core.order; + +import hello.core.discount.DiscountPolicy; +import hello.core.member.Member; +import hello.core.member.MemberRepository; + +public class OrderServiceImpl implements OrderService{ + + private final MemberRepository memberRepository; + private final DiscountPolicy discountPolicy; + + public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { + this.memberRepository = memberRepository; + this.discountPolicy = discountPolicy; + } + + @Override + public Order createOrder(Long memberId, String itemName, int itemPrice) { + Member member = memberRepository.findById(memberId); + int discountPrice = discountPolicy.discount(member,itemPrice); + return new Order(memberId, itemName, itemPrice, discountPrice); + } +} diff --git a/3 WEEK/LEE/core/src/main/resources/application.properties b/3 WEEK/LEE/core/src/main/resources/application.properties new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/3 WEEK/LEE/core/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/3 WEEK/LEE/core/src/test/java/hello/core/CoreApplicationTests.java b/3 WEEK/LEE/core/src/test/java/hello/core/CoreApplicationTests.java new file mode 100644 index 00000000..90937b13 --- /dev/null +++ b/3 WEEK/LEE/core/src/test/java/hello/core/CoreApplicationTests.java @@ -0,0 +1,13 @@ +package hello.core; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class CoreApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/3 WEEK/LEE/core/src/test/java/hello/core/discount/RateDiscountPolicyTest.java b/3 WEEK/LEE/core/src/test/java/hello/core/discount/RateDiscountPolicyTest.java new file mode 100644 index 00000000..bc3807d6 --- /dev/null +++ b/3 WEEK/LEE/core/src/test/java/hello/core/discount/RateDiscountPolicyTest.java @@ -0,0 +1,42 @@ +package hello.core.discount; + +import hello.core.member.Grade; +import hello.core.member.Member; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.*; + +class RateDiscountPolicyTest { + + RateDiscountPolicy discountPolicy = new RateDiscountPolicy(); + + @Test + @DisplayName("VIP 10% 할인") + void vip_o(){ + + //given + Member member = new Member("memberVIP", Grade.VIP); + //when + int discount = discountPolicy.discount(member,10000); + //then + assertThat(discount).isEqualTo(1000); + + + } + + @Test + @DisplayName("VIP가 아니면 할인이 적용 안됨") + void vip_x(){ + + //given + Member member = new Member("memberBasic",Grade.BASIC); + //when + int discount = discountPolicy.discount(member,10000); + //then + assertThat(discount).isEqualTo(0); + + } + + +} \ No newline at end of file diff --git a/3 WEEK/LEE/core/src/test/java/hello/core/member/MemberServiceTest.java b/3 WEEK/LEE/core/src/test/java/hello/core/member/MemberServiceTest.java new file mode 100644 index 00000000..388806f3 --- /dev/null +++ b/3 WEEK/LEE/core/src/test/java/hello/core/member/MemberServiceTest.java @@ -0,0 +1,34 @@ +package hello.core.member; + +import hello.core.AppConfig; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.*; + +class MemberServiceTest { + + MemberService memberService; + + @BeforeEach + public void beforeEach(){ + AppConfig appConfig = new AppConfig(); + memberService = appConfig.memberService(); + } + + @Test + void join() { + //given + Member member = new Member("memberA",Grade.VIP); + + //when + memberService.join(member); + Member findMember = memberService.findMember(1L); + + //then + assertThat(member).isEqualTo(findMember); + + } +} \ No newline at end of file diff --git a/3 WEEK/LEE/core/src/test/java/hello/core/order/OrderServiceTest.java b/3 WEEK/LEE/core/src/test/java/hello/core/order/OrderServiceTest.java new file mode 100644 index 00000000..50167334 --- /dev/null +++ b/3 WEEK/LEE/core/src/test/java/hello/core/order/OrderServiceTest.java @@ -0,0 +1,37 @@ +package hello.core.order; + +import hello.core.AppConfig; +import hello.core.member.Grade; +import hello.core.member.Member; +import hello.core.member.MemberService; +import hello.core.member.MemberServiceImpl; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.internal.matchers.Or; + +import static org.junit.jupiter.api.Assertions.*; + +class OrderServiceTest { + + MemberService memberService; + OrderService orderService; + + @BeforeEach + public void beforeEach(){ + AppConfig appConfig = new AppConfig(); + memberService = appConfig.memberService(); + orderService = appConfig.orderService(); + } + + @Test + void createOrder() { + + Member member = new Member("memberA", Grade.VIP); + memberService.join(member); + + Order order = orderService.createOrder(member.getId(),"itemA",10000); + org.assertj.core.api.Assertions.assertThat(order.getDiscountPrice()).isEqualTo(1000); + + } +} \ No newline at end of file From 3c116c89e59ffc9e3b3e7a1e6bd3577f4baa0c8a Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 22 Nov 2023 16:26:04 +0900 Subject: [PATCH 039/188] [BE] (build) Add lombok lib [BE] (build) Add lombok lib --- 3 WEEK/LEE/core/build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/3 WEEK/LEE/core/build.gradle b/3 WEEK/LEE/core/build.gradle index 3ed78d74..a0012c9e 100644 --- a/3 WEEK/LEE/core/build.gradle +++ b/3 WEEK/LEE/core/build.gradle @@ -20,6 +20,11 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } +dependencies { + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' +} + tasks.named('bootBuildImage') { builder = 'paketobuildpacks/builder-jammy-base:latest' } From f204224b555835a542ab80f0362671b65c852bbb Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 22 Nov 2023 22:05:42 +0900 Subject: [PATCH 040/188] =?UTF-8?q?[BE]=20(chore)=20Member=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (chore) Member 클래스 수정 기존 Getter Setter 에서 스프링 어노테이션을 사용한 Getter Setter 로 변경 --- .../main/java/hello/core/member/Member.java | 29 ++++--------------- 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/member/Member.java b/3 WEEK/LEE/core/src/main/java/hello/core/member/Member.java index 89177cb6..6f74e2ad 100644 --- a/3 WEEK/LEE/core/src/main/java/hello/core/member/Member.java +++ b/3 WEEK/LEE/core/src/main/java/hello/core/member/Member.java @@ -1,5 +1,10 @@ package hello.core.member; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter public class Member { private Long id; @@ -10,28 +15,4 @@ public Member( String name, Grade grade) { this.name = name; this.grade = grade; } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Grade getGrade() { - return grade; - } - - public void setGrade(Grade grade) { - this.grade = grade; - } } From 12de1de7690b97ca25a931037f4f4904999284a6 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 22 Nov 2023 22:12:10 +0900 Subject: [PATCH 041/188] =?UTF-8?q?[BE]=20(chore)=20Order=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (chore) Order 클래스 수정 - toString 메소드 제거 - @ToString 등록 --- .../core/src/main/java/hello/core/order/Order.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java b/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java index 667f4684..f7ce8c16 100644 --- a/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java +++ b/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java @@ -1,5 +1,8 @@ package hello.core.order; +import lombok.ToString; + +@ToString public class Order { private Long memberId; @@ -22,13 +25,4 @@ public int getDiscountPrice(){ return discountPrice; } - @Override - public String toString() { - return "Order{" + - "memberId=" + memberId + - ", itemName='" + itemName + '\'' + - ", itemPrice=" + itemPrice + - ", discountPrice=" + discountPrice + - '}'; - } } From 6b96537f095eafc1ddf345a11cd458c0ecef3f47 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 22 Nov 2023 22:17:30 +0900 Subject: [PATCH 042/188] [BE] (chore) Map -> ConcurrentHashMap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (chore) Map -> ConcurrentHashMap MemoryMemberRepository에 있는 Map을 동시성 이슈로 인한 ConcurrentHashMap로 변경 --- .../main/java/hello/core/member/MemoryMemberRepository.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/member/MemoryMemberRepository.java b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemoryMemberRepository.java index b292af15..3acc3598 100644 --- a/3 WEEK/LEE/core/src/main/java/hello/core/member/MemoryMemberRepository.java +++ b/3 WEEK/LEE/core/src/main/java/hello/core/member/MemoryMemberRepository.java @@ -2,10 +2,11 @@ import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class MemoryMemberRepository implements MemberRepository { - private static Map store = new HashMap<>(); + private static ConcurrentHashMap store = new ConcurrentHashMap<>(); private static long SEQUENCE = 0L; @Override From 7705c741adbebb82051f971874b914e8225f2e43 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 22 Nov 2023 22:22:12 +0900 Subject: [PATCH 043/188] =?UTF-8?q?[BE]=20(chore)=20Order=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (chore) Order 클래스 수정 생성자를 자동 생성해주는 어노테이션 @AllArgsConstructor 추가 --- 3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java b/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java index f7ce8c16..1fbc0321 100644 --- a/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java +++ b/3 WEEK/LEE/core/src/main/java/hello/core/order/Order.java @@ -1,8 +1,10 @@ package hello.core.order; +import lombok.AllArgsConstructor; import lombok.ToString; @ToString +@AllArgsConstructor public class Order { private Long memberId; @@ -10,12 +12,6 @@ public class Order { private int itemPrice; private int discountPrice; - public Order(Long memberId, String itemName, int itemPrice, int discountPrice){ - this.memberId = memberId; - this.itemName = itemName; - this.itemPrice = itemPrice; - this.discountPrice = discountPrice; - } public int calculatePrice(){ return itemPrice - discountPrice; From c3dca1cf51609b31fac5e7307aae5e2b97905ad0 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 22 Nov 2023 23:54:45 +0900 Subject: [PATCH 044/188] =?UTF-8?q?[BE]=20(docs)=20=EC=9D=B4=EB=A1=A0?= =?UTF-8?q?=EC=9A=94=EC=95=BD=20=EB=82=B4=EC=9A=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 이론요약 내용 추가 Spring IoC와 container에 대한 내용 추가 --- 3 WEEK/LEE/core/ANSWER.md | 42 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/3 WEEK/LEE/core/ANSWER.md b/3 WEEK/LEE/core/ANSWER.md index 7bd961f4..ba0026fe 100644 --- a/3 WEEK/LEE/core/ANSWER.md +++ b/3 WEEK/LEE/core/ANSWER.md @@ -86,7 +86,7 @@ https://agilemanifesto.org/iso/ko/manifesto.html
- +--- ### DI : 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉 - 의존성 주입에는 3가지 방법 존재. @@ -102,6 +102,46 @@ https://agilemanifesto.org/iso/ko/manifesto.html
- 역시 final 키워드 사용 불가 - Spring 개발에서 생성자 주입을 사용하기!! + - DI는 IoC의 한 종류임 + + + +### IoC : 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것 +- IoC(Inversion of Control)는 "제어의 역전" 이라는 의미로, 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 셜정되는 것을 의미 +- 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 하여 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있게 한다. + +- 기존방법(개발자가 직접 의존성을 만듬) + 1. 객체 생성 + 2. 의존성 객체 생성(클래스 내부에 생성) + 3. 의존성 객체 메소드 호출 + +- 스프링에서 + 1. 객체 생성 + 2. 의존성 객체 주입(스스로가 만드는것 x, 제어권을 스프링에게 위임, 스프링이 만들어 놓은 객체 주입) + 3. 의존성 객체 메소드 호출 + +제어의 흐름을 사용자가 컨트롤 하는 것이 아니라 스프링에게 맡겨 작업을 처리하게 된다. + + + +### 스프링 컨테이너 : 스프링에서 자바 객체들을 관리하는 공간을 말함. +- 스프링 컨테이너는 빈의 생성부터 소멸까지 개발자 대신 관리해줌 + +`@Configuration` : 구성정보를 담당하는 것을 설정할 때 @Configuration 를 등록
+`@Bean` : 각 메서드에 @Bean을 등록하면 스프링 컨테이너에 자동으로 등록이 됨. 자바 객체를 Bean 이라고 함. + + + +스프링 컨테이너는 BeanFactory와 ApplicationContext가 있다. +1. `BeanFactory`는 빈을 등록하고 생성하고 조회하고 돌려주는 등 빈을 관리하는 역할을 한다. getBean() 메소드를 통해 빈을 인스턴스화할 수 있다. +2. ` ApplicationContext`는 BeanFactory의 기능을 상속받아 제공한다. + 따라서, 빈을 관리하고 검색하는 기능을 BeanFactory가 제공하고, 그 외의 부가 기능을 제공한다. + - ApplicationContext를 스프링 컨테이너라고 한다.(ApplicationContext는 인터페이스)
+ (구현할때는 `new AnnotationConfigApplicationContext(클래스이름.class)` 를 사용.) + + + +수동 등록과 자동등록의 차이 ........................ ## ISSUE From de0665ee661ff0ff65d183823c21728e45f96b72 Mon Sep 17 00:00:00 2001 From: SEOB Date: Sat, 25 Nov 2023 02:01:44 +0900 Subject: [PATCH 045/188] =?UTF-8?q?[BE]=20(docs)=20=EC=9D=B4=EB=A1=A0?= =?UTF-8?q?=EC=9A=94=EC=95=BD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 이론요약 추가 스프링 자동등록과 수동등록의 차이 --- 3 WEEK/LEE/core/ANSWER.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/3 WEEK/LEE/core/ANSWER.md b/3 WEEK/LEE/core/ANSWER.md index ba0026fe..c6c114d9 100644 --- a/3 WEEK/LEE/core/ANSWER.md +++ b/3 WEEK/LEE/core/ANSWER.md @@ -137,11 +137,28 @@ https://agilemanifesto.org/iso/ko/manifesto.html
2. ` ApplicationContext`는 BeanFactory의 기능을 상속받아 제공한다. 따라서, 빈을 관리하고 검색하는 기능을 BeanFactory가 제공하고, 그 외의 부가 기능을 제공한다. - ApplicationContext를 스프링 컨테이너라고 한다.(ApplicationContext는 인터페이스)
- (구현할때는 `new AnnotationConfigApplicationContext(클래스이름.class)` 를 사용.) + - 구현할때는 `new AnnotationConfigApplicationContext(클래스이름.class)` 를 사용. + - .getBean(빈 이름, class타입) + +스프링 컨테이너 사용 이유 +- 객체를 생성하기 위해서는 new 생성자를 사용해야함. 그로 인해 애플리케이션에서는 수많은 객체가 존재하고 서로를 참조하게 됨 -> 객체간의 참조가 많으면 많을수록 의존성을 높아짐 +-> 이는 객체지향 프로그래밍과 맞지 않음 +- 따라서 객체 간의 의존성을 낮추어 결합도를 낮추고, 높은 캡슐화를 위해 스프링 컨테이너를 사용한다. + + + +### 수동 등록과 자동등록의 차이 +`@Configuration + @Bean`(수동방식) VS `@ComponentScan + @Component`(자동방식)
+1. 수동방식 + - AppConfig.class 에 @Configuration을 적용했다면, 수동으로 각 @Bean을 적용할 메서드를 작성해야함 + - 수동등록은 Config클래스 안에 @Bean을 추가한 메서드로 직접 빈을 등록, 의존성 주입도 여기서 진행함 +2. 자동방식 + - AppConfig.class 에 @Component을 적용했다면, @ComponentScan으로 어떤 패키지부터 Scan을 시작할 건지 작성하고, + 해당 패키지 하위에 @Component로 설정된 클래스가 있다면 클래스들을 SpringContainer에 Bean으로 등록된다. + - 자동등록은 Config 클래스에 @@ComponentScan 을 추가한다. 스프링은 @Component가 붙은 클래스의 객체를 스프링 빈으로 추가한다. -수동 등록과 자동등록의 차이 ........................ ## ISSUE From 579f16df62491b15f72b2ef9cbc87dcf77fcd87b Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 27 Nov 2023 11:50:26 +0900 Subject: [PATCH 046/188] =?UTF-8?q?[BE]=20(bulid)=20=EC=83=88=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (bulid) 새 프로젝트 생성 Project - Gradle-Groovy Language - Java Srping Boot - 3.2.0 Project Metadata Group - hello Artifact - item-service Name - tiem-service Package name - hello.itemservice Packaging - Jar Java - 17 Dependencies Lombok Spring Web Thymeleaf --- 4 WEEK/item-service/.gitignore | 37 +++ 4 WEEK/item-service/ANSWER.md | 198 ++++++++++++++ 4 WEEK/item-service/build.gradle | 34 +++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + 4 WEEK/item-service/gradlew | 249 ++++++++++++++++++ 4 WEEK/item-service/gradlew.bat | 92 +++++++ 4 WEEK/item-service/settings.gradle | 1 + .../itemservice/ItemServiceApplication.java | 13 + .../src/main/resources/application.properties | 1 + .../ItemServiceApplicationTests.java | 13 + 11 files changed, 645 insertions(+) create mode 100644 4 WEEK/item-service/.gitignore create mode 100644 4 WEEK/item-service/ANSWER.md create mode 100644 4 WEEK/item-service/build.gradle create mode 100644 4 WEEK/item-service/gradle/wrapper/gradle-wrapper.jar create mode 100644 4 WEEK/item-service/gradle/wrapper/gradle-wrapper.properties create mode 100644 4 WEEK/item-service/gradlew create mode 100644 4 WEEK/item-service/gradlew.bat create mode 100644 4 WEEK/item-service/settings.gradle create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/ItemServiceApplication.java create mode 100644 4 WEEK/item-service/src/main/resources/application.properties create mode 100644 4 WEEK/item-service/src/test/java/hello/itemservice/ItemServiceApplicationTests.java diff --git a/4 WEEK/item-service/.gitignore b/4 WEEK/item-service/.gitignore new file mode 100644 index 00000000..c2065bc2 --- /dev/null +++ b/4 WEEK/item-service/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/4 WEEK/item-service/ANSWER.md b/4 WEEK/item-service/ANSWER.md new file mode 100644 index 00000000..c6c114d9 --- /dev/null +++ b/4 WEEK/item-service/ANSWER.md @@ -0,0 +1,198 @@ +![header](https://capsule-render.vercel.app/api?type=soft&color=auto&height=150§ion=header&text=UserManagement&fontSize=90&animation=blink&align=center) + +-- +## Tech Stack +![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=openjdk&logoColor=white) +## DB +![Memory](https://img.shields.io/badge/Memory-000000?style=for-the-badge&logo=memory&logoColor=white) +## ORM +![OMR](https://img.shields.io/badge/NONE-000000?style=for-the-badge&logo=NONE&logoColor=white) +## IDE +![intelliJ](https://img.shields.io/badge/IntelliJIDEA-000000?style=for-the-badge&logo=IntelliJIDEA&logoColor=white) +## TEST +![Junit5](https://img.shields.io/badge/JUnit5-25A162?style=for-the-badge&logo=JUnit5&logoColor=white) +## SCM +![GITHUB](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white) +-- +## 요구사항 +[ 새로운 할인 정책 개발 ]

+ +기획자 :
+Service Open 이 일주일 남았지만 `고정 금액 할인` -> `정률 (%) 할인` 으로 변경하고 싶다.
+기존엔 VIP 에게 1000원을 할인해 드렸지만, 10% 할인 정책으로 변경해 주세요.
+ +개발자 :
+일주일 남았는데....
+ +기획자 :
+Agile 선언 모르나요? " 계획을 따르기보다는 변화에 대응하라 "
+https://agilemanifesto.org/iso/ko/manifesto.html
+ +개발자 :
+...
+ +## Study 방법 +[ 😎 Leader's 요구사항 ]
+이전 코드에 `OOP 설계 원칙` 을 위반한 사례를 찾아 README 에 Update 해주세요. +또 발견된 위반 사례를 `OOP 설계 원칙` 을 잘 지켜 수정해 주세요. + +[ 🧐 Member : Study AND ]
+ - main fork 동기화 후 작업 진행 + - 개인 folder 내 에서 작업 할 것 + - ANSWER README 에 작성 하되, 기본 포맷은 기본으로 작성하고, 개별 Custom 후 추가 정보 기입 + +--- + +## 주요 이론 요약 + + ### SOLID 객체지향 설계 5가지 원칙 + - SRP (Single Responsibility Principle) 단일 책임 원칙 + - 하나의 클래스는 하나의 책임만 가져야한다 + - 클래스를 변경하지 이유는 단 하나여야 한다. 변경이 있을 때 파급 효과가 적어야 한다. + - 이를 지키지 않으면, 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향을 미칠 수 있다. 결국, 유지보수가 매우 비효율적이게 된다. +


+ + - OCP (Open-Closed Principle) 개방-폐쇄 원칙 + - 소프트웨어 요소는 확정에는 열려 있으나 변경에는 닫혀 있어야 한다. + - 즉, 기존의 코드를 변경하지 않고 기능을 수정, 추가할 수 있도록 설계해야한다. + - 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 + +어떤 모듈의 기능을 수정할 때, 해당 모듈을 이용하는 모든 모듈 또한 수정한다면 유지보수가 복잡해짐. +따라서 OCP를 적용해 기존 코드를 변경하지 않아도 기능을 수정, 추가할 수 있게 해야함 +


+ + - LSP (Liskov Substitution Principle) 리스코프 치환 원칙 + - 하위 타입 객체는 상위 타입 객체에서 가능한 행위를 수행할 수 있어야 한다. + - 즉, 상위 타입 객체를 하위 타입 객체로 대체하여도 정상적으로 동작해야 한다. + - 다형성에서 하위 클래스는 인터페이스의 규약을 다 지켜야 한다. + - 상속 관계에서는 꼭 일반화 관계(IS-A)가 성립해야 한다. + - 상속 관게가 아닌 클래스들을 상속관계로 설정하면, LSP 위반이다. +


+ + - ISP (Interface Segregation Principle) 인터페이스 분리 원칙 + - 클라이언트는 자신이 사용하는 메소드에만 의존해야 한다. + - 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 한 개보다 낫다. + - 인터페이스는 해당 인터페이스를 사용하는 클라이언트를 기준으로 잘게 분리되어야 한다. +


+ + - DIP (Dependency Inversion Principle) 의존 역전 원칙 + 프로 + - 의존 관계를 맺을 때, 변하기 쉬운 구체적인 것 보다는 변하기 어려운 추상적인 것에 의존해야 한다는 것이다. + - 즉, 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻이다. + - 클라이언트가 인터페이스에 의존해야 유연하게 구현체를 변경할 수 있다. 구현체에 의존한다면 변경에 어려움이 생긴다 + - 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다. + - 저수준 모듈이 변경되어도 고수준 모듈은 변경이 필요없는 형태가 이상적이다. +


+ + + +--- + +### DI : 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉 + - 의존성 주입에는 3가지 방법 존재. + 1. 생성자 주입 (Constructor Injection) + - Spring에서 권장되는 의존 관계 주입 방식 + - 생성자 주입만이 final 키워드를 사용할 수 있음 + - 객체의 불변성이 보장 + 2. Setter 주입 (Setter Injection) + - final 키워드를 사용할 수 없어 불변성이 보장되지 않음 -> 객체가 변할 가능성이 존재 + - JUnit 테스트가 어려워짐 + - 단일책임원칙(SRP) 위반 + 3. 필드주입 (Field Injection) + - 역시 final 키워드 사용 불가 + + - Spring 개발에서 생성자 주입을 사용하기!! + - DI는 IoC의 한 종류임 + + + +### IoC : 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것 +- IoC(Inversion of Control)는 "제어의 역전" 이라는 의미로, 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 셜정되는 것을 의미 +- 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 하여 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있게 한다. + +- 기존방법(개발자가 직접 의존성을 만듬) + 1. 객체 생성 + 2. 의존성 객체 생성(클래스 내부에 생성) + 3. 의존성 객체 메소드 호출 + +- 스프링에서 + 1. 객체 생성 + 2. 의존성 객체 주입(스스로가 만드는것 x, 제어권을 스프링에게 위임, 스프링이 만들어 놓은 객체 주입) + 3. 의존성 객체 메소드 호출 + +제어의 흐름을 사용자가 컨트롤 하는 것이 아니라 스프링에게 맡겨 작업을 처리하게 된다. + + + +### 스프링 컨테이너 : 스프링에서 자바 객체들을 관리하는 공간을 말함. +- 스프링 컨테이너는 빈의 생성부터 소멸까지 개발자 대신 관리해줌 + +`@Configuration` : 구성정보를 담당하는 것을 설정할 때 @Configuration 를 등록
+`@Bean` : 각 메서드에 @Bean을 등록하면 스프링 컨테이너에 자동으로 등록이 됨. 자바 객체를 Bean 이라고 함. + + + +스프링 컨테이너는 BeanFactory와 ApplicationContext가 있다. +1. `BeanFactory`는 빈을 등록하고 생성하고 조회하고 돌려주는 등 빈을 관리하는 역할을 한다. getBean() 메소드를 통해 빈을 인스턴스화할 수 있다. +2. ` ApplicationContext`는 BeanFactory의 기능을 상속받아 제공한다. + 따라서, 빈을 관리하고 검색하는 기능을 BeanFactory가 제공하고, 그 외의 부가 기능을 제공한다. + - ApplicationContext를 스프링 컨테이너라고 한다.(ApplicationContext는 인터페이스)
+ - 구현할때는 `new AnnotationConfigApplicationContext(클래스이름.class)` 를 사용. + - .getBean(빈 이름, class타입) + +스프링 컨테이너 사용 이유 +- 객체를 생성하기 위해서는 new 생성자를 사용해야함. 그로 인해 애플리케이션에서는 수많은 객체가 존재하고 서로를 참조하게 됨 -> 객체간의 참조가 많으면 많을수록 의존성을 높아짐 +-> 이는 객체지향 프로그래밍과 맞지 않음 +- 따라서 객체 간의 의존성을 낮추어 결합도를 낮추고, 높은 캡슐화를 위해 스프링 컨테이너를 사용한다. + + + + +### 수동 등록과 자동등록의 차이 + +`@Configuration + @Bean`(수동방식) VS `@ComponentScan + @Component`(자동방식)
+1. 수동방식 + - AppConfig.class 에 @Configuration을 적용했다면, 수동으로 각 @Bean을 적용할 메서드를 작성해야함 + - 수동등록은 Config클래스 안에 @Bean을 추가한 메서드로 직접 빈을 등록, 의존성 주입도 여기서 진행함 +2. 자동방식 + - AppConfig.class 에 @Component을 적용했다면, @ComponentScan으로 어떤 패키지부터 Scan을 시작할 건지 작성하고, + 해당 패키지 하위에 @Component로 설정된 클래스가 있다면 클래스들을 SpringContainer에 Bean으로 등록된다. + - 자동등록은 Config 클래스에 @@ComponentScan 을 추가한다. 스프링은 @Component가 붙은 클래스의 객체를 스프링 빈으로 추가한다. + + +## ISSUE + +1. RateDiscountPolicy 클래스를 구현했지만 실제 적용하기 위해서는 OrderServiceImpl에서 수정작업을 해주어야 한다. + - OCP 위반 + - FixDiscountPolicy(구현 클래스) 에 의존중임 -> DIP 위반 + +2. calculatePrice 구현하였지만 Order Class의 메소드를 수정하여 NORMAL에는 제대로 된 값이 나오지 않는 문제 + +## Solution + +1. OrderServiceImpl에서 생성자를 통해 의존관계를 주입 받도록 코드를 수정한다. + + private final DiscountPolicy discountedPolicy; + + public OrderServiceImpl(DiscountPolicy discountedPolicy) { + this.discountedPolicy = discountedPolicy; + } + +2. 단순 RateDiscountPolicy 에서 return 값 변경으로 해결 + - 생성했던 calculatePrice 메소드 제거 + + + return discountRateAmount; + # 아래처럼 변경 + return price * discountRateAmount / 100; + + + +## About + +Please enter your personal feelings, what you learned, and what you need to learn here. + +## Question To Reader + +After completing the mission, please enter any suggestions or questions. + diff --git a/4 WEEK/item-service/build.gradle b/4 WEEK/item-service/build.gradle new file mode 100644 index 00000000..1ac9f713 --- /dev/null +++ b/4 WEEK/item-service/build.gradle @@ -0,0 +1,34 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.2.0' + id 'io.spring.dependency-management' version '1.1.4' +} + +group = 'hello' +version = '0.0.1-SNAPSHOT' + +java { + sourceCompatibility = '17' +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation 'org.springframework.boot:spring-boot-starter-web' + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/4 WEEK/item-service/gradle/wrapper/gradle-wrapper.jar b/4 WEEK/item-service/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/4 WEEK/item-service/gradle/wrapper/gradle-wrapper.properties b/4 WEEK/item-service/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..3fa8f862 --- /dev/null +++ b/4 WEEK/item-service/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/4 WEEK/item-service/gradlew b/4 WEEK/item-service/gradlew new file mode 100644 index 00000000..1aa94a42 --- /dev/null +++ b/4 WEEK/item-service/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/4 WEEK/item-service/gradlew.bat b/4 WEEK/item-service/gradlew.bat new file mode 100644 index 00000000..93e3f59f --- /dev/null +++ b/4 WEEK/item-service/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/4 WEEK/item-service/settings.gradle b/4 WEEK/item-service/settings.gradle new file mode 100644 index 00000000..df5bd80b --- /dev/null +++ b/4 WEEK/item-service/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'item-service' diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/ItemServiceApplication.java b/4 WEEK/item-service/src/main/java/hello/itemservice/ItemServiceApplication.java new file mode 100644 index 00000000..1311934b --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/ItemServiceApplication.java @@ -0,0 +1,13 @@ +package hello.itemservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ItemServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(ItemServiceApplication.class, args); + } + +} diff --git a/4 WEEK/item-service/src/main/resources/application.properties b/4 WEEK/item-service/src/main/resources/application.properties new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/4 WEEK/item-service/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/ItemServiceApplicationTests.java b/4 WEEK/item-service/src/test/java/hello/itemservice/ItemServiceApplicationTests.java new file mode 100644 index 00000000..e2ded1be --- /dev/null +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/ItemServiceApplicationTests.java @@ -0,0 +1,13 @@ +package hello.itemservice; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class ItemServiceApplicationTests { + + @Test + void contextLoads() { + } + +} From aba0171e4899eb4679c97ee67bacfc75e03655c0 Mon Sep 17 00:00:00 2001 From: SEOB Date: Tue, 28 Nov 2023 11:22:18 +0900 Subject: [PATCH 047/188] [BE] (feat) item domain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) item domain Getter Setter 로 된 item domain 추가 --- .../java/hello/itemservice/domain/Item.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/domain/Item.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/domain/Item.java b/4 WEEK/item-service/src/main/java/hello/itemservice/domain/Item.java new file mode 100644 index 00000000..8a0fd249 --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/domain/Item.java @@ -0,0 +1,22 @@ +package hello.itemservice.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@ToString +public class Item { + private Long itemId; + private String itemName; + private int price; + private int quantity; + + public Item(String itemName, int price, int quantity) { + this.itemName = itemName; + this.price = price; + this.quantity = quantity; + } +} From 6b4e10441af5e3686fc20f965c4a32fab8d1b5f6 Mon Sep 17 00:00:00 2001 From: SEOB Date: Tue, 28 Nov 2023 11:23:54 +0900 Subject: [PATCH 048/188] =?UTF-8?q?[BE]=20(feat)=20ItemRepository=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 [BE] (feat) ItemRepository 생성 ItemRepository 및 MemoryItemRepository 생성하여 상품등록 및 상품상세 기능을 추가함 --- .../repository/ItemRepository.java | 9 ++++++++ .../repository/MemoryItemRepository.java | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java new file mode 100644 index 00000000..dec0d6c3 --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java @@ -0,0 +1,9 @@ +package hello.itemservice.repository; + +import hello.itemservice.domain.Item; + +public interface ItemRepository { + + public void save(Item item); + public Item findByItemId(Long itemId); +} diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java new file mode 100644 index 00000000..2b68506e --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java @@ -0,0 +1,22 @@ +package hello.itemservice.repository; + +import hello.itemservice.domain.Item; + +import java.util.concurrent.ConcurrentHashMap; + +public class MemoryItemRepository implements ItemRepository{ + private static ConcurrentHashMap store = new ConcurrentHashMap<>(); + + private static long SEQUENCE = 0L; + + //상품 등록 (상품명, 가격, 수량) + public void save(Item item) { + item.setItemId(++SEQUENCE); + store.put(item.getItemId(), item); + } + + //상품 상세 + public Item findByItemId(Long itemId) { + return store.get(itemId); + } +} From 7ce38df1cb2035b7d64e073ddcff36760e3114a3 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 29 Nov 2023 12:43:31 +0900 Subject: [PATCH 049/188] =?UTF-8?q?[BE]=20(feat)=20ItemService=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) ItemService 생성 ItemService interface 생성 --- .../java/hello/itemservice/service/ItemService.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java new file mode 100644 index 00000000..60db9989 --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java @@ -0,0 +1,12 @@ +package hello.itemservice.service; + +import hello.itemservice.domain.Item; + +public interface ItemService { + + //상품 목록 추가 + public void add(Item item); + + //상품상세 + public Item findItem(Long itemId); +} From d15c9d3dc75d8b581bff60b3e708cd03746da724 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 29 Nov 2023 12:44:32 +0900 Subject: [PATCH 050/188] =?UTF-8?q?[BE]=20(feat)=20ItemServiceImpl=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 [BE] (feat) ItemServiceImpl 생성 ItemService를 구현한 ItemServiceImpl 구현체 생성 --- .../itemservice/service/ItemServiceImpl.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java new file mode 100644 index 00000000..8636b64c --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java @@ -0,0 +1,23 @@ +package hello.itemservice.service; + +import hello.itemservice.domain.Item; +import hello.itemservice.repository.ItemRepository; + +public class ItemServiceImpl { + + private final ItemRepository itemRepository; + + public ItemServiceImpl(ItemRepository itemRepository) { + this.itemRepository = itemRepository; + } + + //상품 목록 추가 + public void add(Item item) { + itemRepository.save(item); + } + + //상품 상세 + public Item findItem(Long itemId) { + return itemRepository.findByItemId(itemId); + } +} From cf51d4747dcaed2a7e15ffa79a9c03f9f996cb54 Mon Sep 17 00:00:00 2001 From: SEOB Date: Wed, 29 Nov 2023 12:45:09 +0900 Subject: [PATCH 051/188] =?UTF-8?q?[BE]=20(feat)=20ItemServiceTest=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 [BE] (feat) ItemServiceTest 생성 --- .../itemservice/service/ItemServiceTest.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java new file mode 100644 index 00000000..19b10f55 --- /dev/null +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java @@ -0,0 +1,41 @@ +package hello.itemservice.service; + +import hello.itemservice.domain.Item; +import hello.itemservice.repository.ItemRepository; +import hello.itemservice.repository.MemoryItemRepository; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.*; + +class ItemServiceTest { + + ItemServiceImpl itemService; + + + @BeforeEach + void beforeEach() { + ItemRepository itemRepository = new MemoryItemRepository(); + itemService = new ItemServiceImpl(itemRepository); + } + @Test + void add() { + //상품 등록 + //given + Item item = new Item("HTTP BOOK", 10000, 10); //상품명, 가격, 수량 + + //when + itemService.add(item); + Item findItem = itemService.findItem(1L); + + //then + assertThat(item).isEqualTo(findItem); + } + + + + @Test + void findItem() { + } +} \ No newline at end of file From 50195fd7c310fdd30a106d51b745096457e8285b Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 1 Dec 2023 00:22:58 +0900 Subject: [PATCH 052/188] =?UTF-8?q?[BE]=20(chore)=20public=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (chore) public 제거 --- .../java/hello/itemservice/repository/ItemRepository.java | 5 +++-- .../src/main/java/hello/itemservice/service/ItemService.java | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java index dec0d6c3..123448a8 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java @@ -4,6 +4,7 @@ public interface ItemRepository { - public void save(Item item); - public Item findByItemId(Long itemId); + void save(Item item); + + Item findByItemId(Long itemId); } diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java index 60db9989..1dfea42e 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java @@ -5,8 +5,8 @@ public interface ItemService { //상품 목록 추가 - public void add(Item item); + void add(Item item); //상품상세 - public Item findItem(Long itemId); + Item findItem(Long itemId); } From da807c68410928430a677296519465cd4b1b9b78 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 1 Dec 2023 00:23:40 +0900 Subject: [PATCH 053/188] =?UTF-8?q?[BE]=20(feat)=20AppConfig=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) AppConfig 생성 --- .../java/hello/itemservice/AppConfig.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/AppConfig.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/AppConfig.java b/4 WEEK/item-service/src/main/java/hello/itemservice/AppConfig.java new file mode 100644 index 00000000..2438eaa9 --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/AppConfig.java @@ -0,0 +1,24 @@ +package hello.itemservice; + +import hello.itemservice.repository.ItemRepository; +import hello.itemservice.repository.MemoryItemRepository; +import hello.itemservice.service.ItemService; +import hello.itemservice.service.ItemServiceImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class AppConfig { + + @Bean + public ItemService itemService(){ + return new ItemServiceImpl(itemRepository()); + } + + @Bean + public ItemRepository itemRepository(){ + return new MemoryItemRepository(); + } + +} + From ef2d036cae965fd791dafbc2adba67378fefd027 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 1 Dec 2023 00:24:26 +0900 Subject: [PATCH 054/188] =?UTF-8?q?[BE]=20(chore)=20ItemServiceImpl=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 [BE] (chore) ItemServiceImpl 수정 이전에 까먹고 안넣은 implements 추가........ --- .../main/java/hello/itemservice/service/ItemServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java index 8636b64c..d7b05ac0 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java @@ -3,7 +3,7 @@ import hello.itemservice.domain.Item; import hello.itemservice.repository.ItemRepository; -public class ItemServiceImpl { +public class ItemServiceImpl implements ItemService{ private final ItemRepository itemRepository; From 37407ee0c7d9901720c31fc70fa0a35b70202eb8 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 1 Dec 2023 00:25:14 +0900 Subject: [PATCH 055/188] =?UTF-8?q?[BE]=20(chore)=20ItemServiceTest=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 [BE] (chore) ItemServiceTest 수정 AppConfig를 사용하여 test 진행 --- .../java/hello/itemservice/service/ItemServiceTest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java index 19b10f55..511dfb6c 100644 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java @@ -1,5 +1,6 @@ package hello.itemservice.service; +import hello.itemservice.AppConfig; import hello.itemservice.domain.Item; import hello.itemservice.repository.ItemRepository; import hello.itemservice.repository.MemoryItemRepository; @@ -11,13 +12,14 @@ class ItemServiceTest { - ItemServiceImpl itemService; + ItemService itemService; @BeforeEach void beforeEach() { - ItemRepository itemRepository = new MemoryItemRepository(); - itemService = new ItemServiceImpl(itemRepository); + AppConfig appConfig = new AppConfig(); + itemService = appConfig.itemService(); + } @Test void add() { From 889da04646291ffa397c9e5efde0997c069dcf79 Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 3 Dec 2023 11:03:35 +0900 Subject: [PATCH 056/188] =?UTF-8?q?[BE]=20(feat)=20findAll()=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=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 [BE] (feat) findAll() 메서드 추가 ItemRepository에 모든 상품을 조회할 수 있는 findAll()메서드 추가 --- .../java/hello/itemservice/repository/ItemRepository.java | 4 ++++ .../hello/itemservice/repository/MemoryItemRepository.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java index 123448a8..930c3ea0 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java @@ -2,9 +2,13 @@ import hello.itemservice.domain.Item; +import java.util.List; + public interface ItemRepository { void save(Item item); Item findByItemId(Long itemId); + + List findAll(); } diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java index 2b68506e..6a407080 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java @@ -2,6 +2,8 @@ import hello.itemservice.domain.Item; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; public class MemoryItemRepository implements ItemRepository{ @@ -19,4 +21,9 @@ public void save(Item item) { public Item findByItemId(Long itemId) { return store.get(itemId); } + + public List findAll() { + return new ArrayList<>(store.values()); + } + } From 2df62a3e26cc0e533e82b2092a36d4f0b9b03ff0 Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 3 Dec 2023 11:03:54 +0900 Subject: [PATCH 057/188] =?UTF-8?q?[BE]=20(feat)=20findAll()=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) findAll() 테스트 --- .../repository/ItemRepositoryTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java new file mode 100644 index 00000000..a0d1bf00 --- /dev/null +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java @@ -0,0 +1,44 @@ +package hello.itemservice.repository; + +import hello.itemservice.AppConfig; +import hello.itemservice.domain.Item; +import hello.itemservice.service.ItemService; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.*; + +class ItemRepositoryTest { + + ItemService itemService; + ItemRepository itemRepository; + @BeforeEach + void beforeEach() { + AppConfig appConfig = new AppConfig(); + itemService = appConfig.itemService(); + + itemRepository = new MemoryItemRepository(); + + } + @Test + void findAll() { + //상품 등록 + //given + Item item1 = new Item("HTTP BOOK", 10000, 10); //상품명, 가격, 수량 + Item item2 = new Item("JPA BOOK", 43000, 5); //상품명, 가격, 수량 + Item item3 = new Item("Spring BOOK", 20000, 100); //상품명, 가격, 수량 + + //when + itemService.add(item1); + itemService.add(item2); + itemService.add(item3); + Item findItem = itemService.findItem(1L); + + //then + List allItems = itemRepository.findAll(); + assertThat(allItems).contains(item1, item2, item3); + } +} \ No newline at end of file From f547e31589867b3b44581eb4e8b1698622a735f2 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 4 Dec 2023 11:08:03 +0900 Subject: [PATCH 058/188] [BE] (chore) Rename add method [BE] (chore) Rename add method add -> addItem --- .../main/java/hello/itemservice/service/ItemService.java | 2 +- .../java/hello/itemservice/service/ItemServiceImpl.java | 2 +- .../hello/itemservice/repository/ItemRepositoryTest.java | 6 +++--- .../java/hello/itemservice/service/ItemServiceTest.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java index 1dfea42e..76521dbe 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java @@ -5,7 +5,7 @@ public interface ItemService { //상품 목록 추가 - void add(Item item); + void addItem(Item item); //상품상세 Item findItem(Long itemId); diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java index d7b05ac0..87fca206 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java @@ -12,7 +12,7 @@ public ItemServiceImpl(ItemRepository itemRepository) { } //상품 목록 추가 - public void add(Item item) { + public void addItem(Item item) { itemRepository.save(item); } diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java index a0d1bf00..bf07a0f3 100644 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java @@ -32,9 +32,9 @@ void findAll() { Item item3 = new Item("Spring BOOK", 20000, 100); //상품명, 가격, 수량 //when - itemService.add(item1); - itemService.add(item2); - itemService.add(item3); + itemService.addItem(item1); + itemService.addItem(item2); + itemService.addItem(item3); Item findItem = itemService.findItem(1L); //then diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java index 511dfb6c..61098123 100644 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java @@ -28,7 +28,7 @@ void add() { Item item = new Item("HTTP BOOK", 10000, 10); //상품명, 가격, 수량 //when - itemService.add(item); + itemService.addItem(item); Item findItem = itemService.findItem(1L); //then From b27e890826149a9998e843790370b01ff37381e5 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 4 Dec 2023 13:55:26 +0900 Subject: [PATCH 059/188] =?UTF-8?q?[BE]=20(feat)=20addItemForm.html=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 [BE] (feat) addItemForm.html 생성 상품등록 html 생성 --- .../main/resources/templates/addItemForm.html | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 4 WEEK/item-service/src/main/resources/templates/addItemForm.html diff --git a/4 WEEK/item-service/src/main/resources/templates/addItemForm.html b/4 WEEK/item-service/src/main/resources/templates/addItemForm.html new file mode 100644 index 00000000..0f13e4f8 --- /dev/null +++ b/4 WEEK/item-service/src/main/resources/templates/addItemForm.html @@ -0,0 +1,30 @@ + + + + + + + Document + + + +
+

상품 상세

+
+ + +
+ + +
+ + +
+ +
+
+ + \ No newline at end of file From 9538668c3c0347735669de314da22f1c721f93e4 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 4 Dec 2023 13:55:58 +0900 Subject: [PATCH 060/188] =?UTF-8?q?[BE]=20(feat)=20home.html=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) home.html 생성 main page 기능을 하는 home.html 생성 --- .../src/main/resources/templates/home.html | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 4 WEEK/item-service/src/main/resources/templates/home.html diff --git a/4 WEEK/item-service/src/main/resources/templates/home.html b/4 WEEK/item-service/src/main/resources/templates/home.html new file mode 100644 index 00000000..77a02c7d --- /dev/null +++ b/4 WEEK/item-service/src/main/resources/templates/home.html @@ -0,0 +1,29 @@ + + + + + + + Document + + + +
+

상품목록

+ + +
+ + \ No newline at end of file From 00cc5d0e5200bda452243b27c7a7e6d8ee27a975 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 4 Dec 2023 13:56:41 +0900 Subject: [PATCH 061/188] =?UTF-8?q?[BE]=20(feat)=20HomeController=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=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 [BE] (feat) HomeController 클래스 생성 localhost 접속 시 home.html 로 이동 --- .../itemservice/controller/HomeController.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/controller/HomeController.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/HomeController.java b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/HomeController.java new file mode 100644 index 00000000..a23a8c08 --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/HomeController.java @@ -0,0 +1,14 @@ +package hello.itemservice.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class HomeController { + + @GetMapping("/") + public String home() { + return "home"; + } + +} From 22e44315c8b70bfc90e964b75834b0a44cc4a485 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 4 Dec 2023 13:59:22 +0900 Subject: [PATCH 062/188] =?UTF-8?q?[BE]=20(feat)=20ItemController=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=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 [BE] (feat) ItemController 클래스 생성 --- .../controller/ItemController.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java new file mode 100644 index 00000000..1469f1a4 --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java @@ -0,0 +1,38 @@ +package hello.itemservice.controller; + + +import hello.itemservice.domain.Item; +import hello.itemservice.service.ItemService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +@Controller +public class ItemController { + + private ItemService itemService; + @Autowired + public ItemController(ItemService itemService) { + this.itemService = itemService; + } + + @GetMapping("/addItem") + public String addItemForm() { + return "/addItemForm"; + } + + @PostMapping("/addItem") + public String addItem(ItemForm form) { + //생성자로 주입 + Item item = new Item( + form.getItemName(), + form.getPrice(), + form.getQuantity() + ); + + itemService.addItem(item); + + return "redirect:/"; + } +} From ab18675f1cb035da9106b9ee367ce28caf2e0ee6 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 4 Dec 2023 13:59:40 +0900 Subject: [PATCH 063/188] =?UTF-8?q?[BE]=20(feat)=20ItemForm=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) ItemForm 생성 --- .../java/hello/itemservice/controller/ItemForm.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemForm.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemForm.java b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemForm.java new file mode 100644 index 00000000..18a58f61 --- /dev/null +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemForm.java @@ -0,0 +1,13 @@ +package hello.itemservice.controller; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class ItemForm { + + private String itemName; + private int price; + private int quantity; +} From 0d94519348e517de874d44d0c70cf3472392cec8 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 15 Dec 2023 20:05:02 +0900 Subject: [PATCH 064/188] =?UTF-8?q?[BE]=20(refactor)=20=EC=88=98=EB=8F=99?= =?UTF-8?q?=20->=20=EC=9E=90=EB=8F=99=EB=93=B1=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) 수동 -> 자동등록 변경 --- .../java/hello/itemservice/AppConfig.java | 46 +++++++++---------- .../repository/MemoryItemRepository.java | 2 + .../itemservice/service/ItemServiceImpl.java | 4 +- .../repository/ItemRepositoryTest.java | 7 +-- .../itemservice/service/ItemServiceTest.java | 6 +-- 5 files changed, 35 insertions(+), 30 deletions(-) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/AppConfig.java b/4 WEEK/item-service/src/main/java/hello/itemservice/AppConfig.java index 2438eaa9..fae6a615 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/AppConfig.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/AppConfig.java @@ -1,24 +1,24 @@ -package hello.itemservice; - -import hello.itemservice.repository.ItemRepository; -import hello.itemservice.repository.MemoryItemRepository; -import hello.itemservice.service.ItemService; -import hello.itemservice.service.ItemServiceImpl; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class AppConfig { - - @Bean - public ItemService itemService(){ - return new ItemServiceImpl(itemRepository()); - } - - @Bean - public ItemRepository itemRepository(){ - return new MemoryItemRepository(); - } - -} +//package hello.itemservice; +// +//import hello.itemservice.repository.ItemRepository; +//import hello.itemservice.repository.MemoryItemRepository; +//import hello.itemservice.service.ItemService; +//import hello.itemservice.service.ItemServiceImpl; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +// +//@Configuration +//public class AppConfig { +// +// @Bean +// public ItemService itemService(){ +// return new ItemServiceImpl(itemRepository()); +// } +// +// @Bean +// public ItemRepository itemRepository(){ +// return new MemoryItemRepository(); +// } +// +//} diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java index 6a407080..06f64f53 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java @@ -1,11 +1,13 @@ package hello.itemservice.repository; import hello.itemservice.domain.Item; +import org.springframework.stereotype.Repository; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; +@Repository public class MemoryItemRepository implements ItemRepository{ private static ConcurrentHashMap store = new ConcurrentHashMap<>(); diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java index 87fca206..5230ea0a 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java @@ -2,7 +2,8 @@ import hello.itemservice.domain.Item; import hello.itemservice.repository.ItemRepository; - +import org.springframework.stereotype.Service; +@Service public class ItemServiceImpl implements ItemService{ private final ItemRepository itemRepository; @@ -12,6 +13,7 @@ public ItemServiceImpl(ItemRepository itemRepository) { } //상품 목록 추가 + public void addItem(Item item) { itemRepository.save(item); } diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java index bf07a0f3..f2947d13 100644 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java @@ -1,8 +1,8 @@ package hello.itemservice.repository; -import hello.itemservice.AppConfig; import hello.itemservice.domain.Item; import hello.itemservice.service.ItemService; +import hello.itemservice.service.ItemServiceImpl; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -17,10 +17,11 @@ class ItemRepositoryTest { ItemRepository itemRepository; @BeforeEach void beforeEach() { - AppConfig appConfig = new AppConfig(); - itemService = appConfig.itemService(); +// AppConfig appConfig = new AppConfig(); +// itemService = appConfig.itemService(); itemRepository = new MemoryItemRepository(); + itemService = new ItemServiceImpl(new MemoryItemRepository()); } @Test diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java index 61098123..cdc73085 100644 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java @@ -1,6 +1,5 @@ package hello.itemservice.service; -import hello.itemservice.AppConfig; import hello.itemservice.domain.Item; import hello.itemservice.repository.ItemRepository; import hello.itemservice.repository.MemoryItemRepository; @@ -17,8 +16,9 @@ class ItemServiceTest { @BeforeEach void beforeEach() { - AppConfig appConfig = new AppConfig(); - itemService = appConfig.itemService(); +// AppConfig appConfig = new AppConfig(); +// itemService = appConfig.itemService(); + itemService = new ItemServiceImpl(new MemoryItemRepository()); } @Test From 1902caa015df44528e76b656c27a56709368b1e6 Mon Sep 17 00:00:00 2001 From: SEOB Date: Fri, 15 Dec 2023 20:31:48 +0900 Subject: [PATCH 065/188] =?UTF-8?q?[BE]=20(feat)=20findAll()=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) findAll() 메서드 수정 테스트 수정 --- .../itemservice/service/ItemService.java | 6 +++ .../itemservice/service/ItemServiceImpl.java | 8 ++++ .../repository/ItemRepositoryTest.java | 45 ------------------- .../itemservice/service/ItemServiceTest.java | 21 +++++++++ 4 files changed, 35 insertions(+), 45 deletions(-) delete mode 100644 4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java index 76521dbe..8789131b 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java @@ -2,6 +2,8 @@ import hello.itemservice.domain.Item; +import java.util.List; + public interface ItemService { //상품 목록 추가 @@ -9,4 +11,8 @@ public interface ItemService { //상품상세 Item findItem(Long itemId); + + List findAll(); } + + diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java index 5230ea0a..57b371f4 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java @@ -3,6 +3,9 @@ import hello.itemservice.domain.Item; import hello.itemservice.repository.ItemRepository; import org.springframework.stereotype.Service; + +import java.util.List; + @Service public class ItemServiceImpl implements ItemService{ @@ -22,4 +25,9 @@ public void addItem(Item item) { public Item findItem(Long itemId) { return itemRepository.findByItemId(itemId); } + + public List findAll() { + return itemRepository.findAll(); + } + } diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java deleted file mode 100644 index f2947d13..00000000 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/repository/ItemRepositoryTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package hello.itemservice.repository; - -import hello.itemservice.domain.Item; -import hello.itemservice.service.ItemService; -import hello.itemservice.service.ItemServiceImpl; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.*; - -class ItemRepositoryTest { - - ItemService itemService; - ItemRepository itemRepository; - @BeforeEach - void beforeEach() { -// AppConfig appConfig = new AppConfig(); -// itemService = appConfig.itemService(); - - itemRepository = new MemoryItemRepository(); - itemService = new ItemServiceImpl(new MemoryItemRepository()); - - } - @Test - void findAll() { - //상품 등록 - //given - Item item1 = new Item("HTTP BOOK", 10000, 10); //상품명, 가격, 수량 - Item item2 = new Item("JPA BOOK", 43000, 5); //상품명, 가격, 수량 - Item item3 = new Item("Spring BOOK", 20000, 100); //상품명, 가격, 수량 - - //when - itemService.addItem(item1); - itemService.addItem(item2); - itemService.addItem(item3); - Item findItem = itemService.findItem(1L); - - //then - List allItems = itemRepository.findAll(); - assertThat(allItems).contains(item1, item2, item3); - } -} \ No newline at end of file diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java index cdc73085..fe1fa50d 100644 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.util.List; + import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; @@ -40,4 +42,23 @@ void add() { @Test void findItem() { } + + + @Test + void findAll() { + //상품 등록 + //given + Item item1 = new Item("HTTP BOOK", 10000, 10); //상품명, 가격, 수량 + Item item2 = new Item("JPA BOOK", 43000, 5); //상품명, 가격, 수량 + Item item3 = new Item("Spring BOOK", 20000, 100); //상품명, 가격, 수량 + + //when + itemService.addItem(item1); + itemService.addItem(item2); + itemService.addItem(item3); + + //then + List allItems = itemService.findAll(); + assertThat(allItems).contains(item1, item2, item3); + } } \ No newline at end of file From f6d3702dc14e0ee1236df323dcd25cf9bab84eac Mon Sep 17 00:00:00 2001 From: SEOB Date: Sat, 16 Dec 2023 00:33:31 +0900 Subject: [PATCH 066/188] =?UTF-8?q?[BE]=20(feat)=20HomeController=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 [BE] (feat) HomeController 수정 itemService의 findAll 메서드를 사용해 Memory에 있는 값을 가져옴 --- .../itemservice/controller/HomeController.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/HomeController.java b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/HomeController.java index a23a8c08..4510e6d0 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/HomeController.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/HomeController.java @@ -1,14 +1,28 @@ package hello.itemservice.controller; +import hello.itemservice.domain.Item; +import hello.itemservice.service.ItemService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import java.util.List; + @Controller public class HomeController { + private ItemService itemService; + @Autowired + public HomeController(ItemService itemService) { + this.itemService = itemService; + } + @GetMapping("/") - public String home() { + public String home(Model model) { + List findAll = itemService.findAll(); + model.addAttribute("findAll", findAll); + System.out.println("MODEL : "+model); return "home"; } - } From 41b9c4c91e374ca884a444fb58cc66e8dac0a11f Mon Sep 17 00:00:00 2001 From: SEOB Date: Sat, 16 Dec 2023 00:34:49 +0900 Subject: [PATCH 067/188] =?UTF-8?q?[BE]=20(feat)=20home=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 [BE] (feat) home 수정 Thymeleaf 템플릿 사용 --- .../src/main/resources/templates/home.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/4 WEEK/item-service/src/main/resources/templates/home.html b/4 WEEK/item-service/src/main/resources/templates/home.html index 77a02c7d..e282ce3e 100644 --- a/4 WEEK/item-service/src/main/resources/templates/home.html +++ b/4 WEEK/item-service/src/main/resources/templates/home.html @@ -21,7 +21,15 @@
-

상품목록

+

상품목록


+ + + + + + + +
ID 상품명 가격 수량
From 07f046b50678d670fb51765b9390b0e1d262d4fc Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 17 Dec 2023 15:34:54 +0900 Subject: [PATCH 068/188] =?UTF-8?q?[BE]=20(perf)=20item.itemId=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 [BE] (perf) item.itemId 추가 --- 4 WEEK/item-service/src/main/resources/templates/home.html | 1 + 1 file changed, 1 insertion(+) diff --git a/4 WEEK/item-service/src/main/resources/templates/home.html b/4 WEEK/item-service/src/main/resources/templates/home.html index e282ce3e..a919d45c 100644 --- a/4 WEEK/item-service/src/main/resources/templates/home.html +++ b/4 WEEK/item-service/src/main/resources/templates/home.html @@ -25,6 +25,7 @@

상품목록


+ From 8a801075e5a16730b6c5d7ccdf4788c91eef4c8f Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 17 Dec 2023 15:53:28 +0900 Subject: [PATCH 069/188] =?UTF-8?q?[BE]=20(feat)=20=EC=83=81=ED=92=88?= =?UTF-8?q?=EC=83=81=EC=84=B8=20Controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) 상품상세 Controller --- .../itemservice/controller/ItemController.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java index 1469f1a4..75483e03 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java @@ -2,19 +2,24 @@ import hello.itemservice.domain.Item; +import hello.itemservice.repository.ItemRepository; import hello.itemservice.service.ItemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @Controller public class ItemController { private ItemService itemService; + private ItemRepository itemRepository; @Autowired - public ItemController(ItemService itemService) { + public ItemController(ItemService itemService, ItemRepository itemRepository) { this.itemService = itemService; + this.itemRepository = itemRepository; } @GetMapping("/addItem") @@ -35,4 +40,12 @@ public String addItem(ItemForm form) { return "redirect:/"; } + + //상품상세 + @GetMapping("/{itemId}") + public String item(@PathVariable long itemId, Model model) { + Item item = itemRepository.findByItemId(itemId); + model.addAttribute("item", item); + return "/itemDetailForm"; + } } From 2c0b6e154b9e32c28bb22b5ee102750c33f91dbd Mon Sep 17 00:00:00 2001 From: SEOB Date: Sun, 17 Dec 2023 15:53:53 +0900 Subject: [PATCH 070/188] =?UTF-8?q?[BE]=20(feat)=20=EC=83=81=ED=92=88?= =?UTF-8?q?=EC=83=81=EC=84=B8Form?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) 상품상세Form --- .../src/main/resources/templates/home.html | 4 ++-- .../resources/templates/itemDetailForm.html | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 4 WEEK/item-service/src/main/resources/templates/itemDetailForm.html diff --git a/4 WEEK/item-service/src/main/resources/templates/home.html b/4 WEEK/item-service/src/main/resources/templates/home.html index a919d45c..7849f03c 100644 --- a/4 WEEK/item-service/src/main/resources/templates/home.html +++ b/4 WEEK/item-service/src/main/resources/templates/home.html @@ -25,8 +25,8 @@

상품목록


ID 상품명 가격 수량
- - + + diff --git a/4 WEEK/item-service/src/main/resources/templates/itemDetailForm.html b/4 WEEK/item-service/src/main/resources/templates/itemDetailForm.html new file mode 100644 index 00000000..c5f85dae --- /dev/null +++ b/4 WEEK/item-service/src/main/resources/templates/itemDetailForm.html @@ -0,0 +1,21 @@ + + + + + + + 상품 상세 + + +
ID 상품명 가격 수량
+ + + + + + + +
ID 상품명 가격 수량
+ + \ No newline at end of file From 2a6e55fcb79dadb6ec0864a1a882715a2f3ef044 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 16:46:05 +0900 Subject: [PATCH 071/188] [BE] (feat) Add editItem method to ItemRepository MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Add editItem method to ItemRepository 상품 정보를 수정할 수 있는 기능 추가 --- .../java/hello/itemservice/repository/ItemRepository.java | 2 ++ .../hello/itemservice/repository/MemoryItemRepository.java | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java index 930c3ea0..172cafaa 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/ItemRepository.java @@ -11,4 +11,6 @@ public interface ItemRepository { Item findByItemId(Long itemId); List findAll(); + + void editItem(Long itemId, Item editedItem); } diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java index 06f64f53..8b85e4f3 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java @@ -28,4 +28,9 @@ public List findAll() { return new ArrayList<>(store.values()); } + //상품 수정 + public void editItem(Long itemId, Item editedItem) { + store.put(itemId, editedItem); + } + } From f48fc4df6c6588bd0236871c2bece2741abf663f Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 16:46:50 +0900 Subject: [PATCH 072/188] [BE] (feat) Add editItem method to ItemService MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Add editItem method to ItemService 상품 정보를 수정할 수 있는 기능 추가 --- .../main/java/hello/itemservice/service/ItemService.java | 2 ++ .../java/hello/itemservice/service/ItemServiceImpl.java | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java index 8789131b..82a480c5 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java @@ -13,6 +13,8 @@ public interface ItemService { Item findItem(Long itemId); List findAll(); + + void editItem(Item item, String itemName, int price, int quantity); } diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java index 57b371f4..0f2728ad 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java @@ -30,4 +30,10 @@ public List findAll() { return itemRepository.findAll(); } + public void editItem(Item item, String itemName, int price, int quantity) { + item.setItemName(itemName); + item.setPrice(price); + item.setQuantity(quantity); + itemRepository.editItem(item.getItemId(), item); + } } From 5d67afaab1e86dbec22b88384114a852a0ef6498 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 16:48:16 +0900 Subject: [PATCH 073/188] [BE] (test) Add editItem method to ItemServiceTest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (test) Add editItem method to ItemServiceTest editItem 메소드를 테스트할 수 있는 코드 작성 --- .../itemservice/service/ItemServiceTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java index fe1fa50d..3db73037 100644 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java @@ -61,4 +61,23 @@ void findAll() { List allItems = itemService.findAll(); assertThat(allItems).contains(item1, item2, item3); } + + @Test + void editItem() { + //상품등록 + //given + Item item1 = new Item("HTTP BOOK", 10000, 10); //상품명, 가격, 수량 + itemService.addItem(item1); + + //when + itemService.editItem(item1, "JSP BOOK", 5000, 5); + + //then + Item editedItem = itemService.findItem(item1.getItemId()); // 수정 후 아이템 조회 + assertThat(editedItem.getItemId()).isEqualTo(1); + assertThat(editedItem.getItemName()).isEqualTo("JSP BOOK"); + assertThat(editedItem.getPrice()).isEqualTo(5000); + assertThat(editedItem.getQuantity()).isEqualTo(5); + + } } \ No newline at end of file From 3b2ba837fd3db556c8546f438ac734d4b6b36dd9 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 22:27:42 +0900 Subject: [PATCH 074/188] [BE] (test) Modify editItem test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (test) Modify editItem test 기존 테스트 코드 수정 --- .../test/java/hello/itemservice/service/ItemServiceTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java index 3db73037..880a1c05 100644 --- a/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java +++ b/4 WEEK/item-service/src/test/java/hello/itemservice/service/ItemServiceTest.java @@ -70,7 +70,8 @@ void editItem() { itemService.addItem(item1); //when - itemService.editItem(item1, "JSP BOOK", 5000, 5); + Item editItem = new Item("JSP BOOK", 5000, 5); + itemService.editItem(1L, editItem); //then Item editedItem = itemService.findItem(item1.getItemId()); // 수정 후 아이템 조회 From f1e2aa8bcb5bdbd05211dc8c0caab3b756529de8 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 22:28:37 +0900 Subject: [PATCH 075/188] [BE] (feat) Add editItemForm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Add editItemForm 상품 수정 form 추가 --- .../resources/templates/editItemForm.html | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 4 WEEK/item-service/src/main/resources/templates/editItemForm.html diff --git a/4 WEEK/item-service/src/main/resources/templates/editItemForm.html b/4 WEEK/item-service/src/main/resources/templates/editItemForm.html new file mode 100644 index 00000000..1c091052 --- /dev/null +++ b/4 WEEK/item-service/src/main/resources/templates/editItemForm.html @@ -0,0 +1,30 @@ + + + + + + + 상품 수정 + + +

상품 수정

+
+ + +
+ + +
+ + +
+ + +
+ +
+ + + + \ No newline at end of file From ff03c926ece26d39bf14ec9a943e80a91f6369ed Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 22:30:32 +0900 Subject: [PATCH 076/188] [BE] (feat) Add button to itemDetailForm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Add button to itemDetailForm 상품 수정 페이지로 넘어가는 버튼 추가 --- .../src/main/resources/templates/itemDetailForm.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/4 WEEK/item-service/src/main/resources/templates/itemDetailForm.html b/4 WEEK/item-service/src/main/resources/templates/itemDetailForm.html index c5f85dae..c4383940 100644 --- a/4 WEEK/item-service/src/main/resources/templates/itemDetailForm.html +++ b/4 WEEK/item-service/src/main/resources/templates/itemDetailForm.html @@ -17,5 +17,7 @@ + + \ No newline at end of file From dac8cdcb202dcc10e6d09c470f6951c16027b629 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 22:32:43 +0900 Subject: [PATCH 077/188] [BE] (perf) Modify editItem method to ItemService [BE] (perf) Modify editItem method to ItemService --- .../main/java/hello/itemservice/service/ItemService.java | 2 +- .../java/hello/itemservice/service/ItemServiceImpl.java | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java index 82a480c5..507845bb 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemService.java @@ -14,7 +14,7 @@ public interface ItemService { List findAll(); - void editItem(Item item, String itemName, int price, int quantity); + void editItem(Long itemId, Item item); } diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java index 0f2728ad..de46f0e5 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/service/ItemServiceImpl.java @@ -30,10 +30,7 @@ public List findAll() { return itemRepository.findAll(); } - public void editItem(Item item, String itemName, int price, int quantity) { - item.setItemName(itemName); - item.setPrice(price); - item.setQuantity(quantity); - itemRepository.editItem(item.getItemId(), item); + public void editItem(Long itemId, Item item) { + itemRepository.editItem(itemId, item); } } From e67caf02ccc218125d4f466a70ba3fa291464404 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 22:33:42 +0900 Subject: [PATCH 078/188] [BE] (perf) Modify editItem method to MemoryItemRepository [BE] (perf) Modify editItem method to MemoryItemRepository --- .../hello/itemservice/repository/MemoryItemRepository.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java index 8b85e4f3..c26f7221 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/repository/MemoryItemRepository.java @@ -30,7 +30,8 @@ public List findAll() { //상품 수정 public void editItem(Long itemId, Item editedItem) { - store.put(itemId, editedItem); + editedItem.setItemId(itemId); + store.put(editedItem.getItemId(), editedItem); } } From 7f15dc8bfe73a5b436c00eab136734c57780c659 Mon Sep 17 00:00:00 2001 From: SEOB Date: Mon, 18 Dec 2023 22:34:56 +0900 Subject: [PATCH 079/188] [BE] (feat) Add editItemForm controller to ItemController MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Add editItemForm controller to ItemController 상품 수정과 관련된 기능 추가 --- .../controller/ItemController.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java index 75483e03..a80f895f 100644 --- a/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java +++ b/4 WEEK/item-service/src/main/java/hello/itemservice/controller/ItemController.java @@ -48,4 +48,24 @@ public String item(@PathVariable long itemId, Model model) { model.addAttribute("item", item); return "/itemDetailForm"; } + + //상품 수정 + @GetMapping("/{itemId}/editItem") + public String editItemForm(@PathVariable("itemId") long itemId, Model model) { + Item findById = itemRepository.findByItemId(itemId); + + model.addAttribute("item", findById); + return "/editItemForm"; + } + + @PostMapping("/{itemId}/editItem") + public String editItemForm(@PathVariable("itemId") long itemId, ItemForm form) { + Item item = new Item( + form.getItemName(), + form.getPrice(), + form.getQuantity() + ); + itemService.editItem(itemId, item); + return "redirect:/"; + } } From 3acfb02fe86b782f629ceeea157669a804d96352 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 18:20:19 +0900 Subject: [PATCH 080/188] [BE] (build) Create new configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (build) Create new configuration 7week 작업을 위한 build 생성 --- 7 WEEK/seob/.gitignore | 37 +++ 7 WEEK/seob/build.gradle | 25 ++ 7 WEEK/seob/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + 7 WEEK/seob/gradlew | 249 ++++++++++++++++++ 7 WEEK/seob/gradlew.bat | 92 +++++++ 7 WEEK/seob/settings.gradle | 1 + .../main/java/week7/seob/SeobApplication.java | 13 + .../src/main/resources/application.properties | 1 + .../java/week7/seob/SeobApplicationTests.java | 13 + 10 files changed, 438 insertions(+) create mode 100644 7 WEEK/seob/.gitignore create mode 100644 7 WEEK/seob/build.gradle create mode 100644 7 WEEK/seob/gradle/wrapper/gradle-wrapper.jar create mode 100644 7 WEEK/seob/gradle/wrapper/gradle-wrapper.properties create mode 100644 7 WEEK/seob/gradlew create mode 100644 7 WEEK/seob/gradlew.bat create mode 100644 7 WEEK/seob/settings.gradle create mode 100644 7 WEEK/seob/src/main/java/week7/seob/SeobApplication.java create mode 100644 7 WEEK/seob/src/main/resources/application.properties create mode 100644 7 WEEK/seob/src/test/java/week7/seob/SeobApplicationTests.java diff --git a/7 WEEK/seob/.gitignore b/7 WEEK/seob/.gitignore new file mode 100644 index 00000000..c2065bc2 --- /dev/null +++ b/7 WEEK/seob/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/7 WEEK/seob/build.gradle b/7 WEEK/seob/build.gradle new file mode 100644 index 00000000..80833c1b --- /dev/null +++ b/7 WEEK/seob/build.gradle @@ -0,0 +1,25 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.2.1' + id 'io.spring.dependency-management' version '1.1.4' +} + +group = 'week7' +version = '0.0.1-SNAPSHOT' + +java { + sourceCompatibility = '17' +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter' + testImplementation 'org.springframework.boot:spring-boot-starter-test' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/7 WEEK/seob/gradle/wrapper/gradle-wrapper.jar b/7 WEEK/seob/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d64cd4917707c1f8861d8cb53dd15194d4248596 GIT binary patch literal 43462 zcma&NWl&^owk(X(xVyW%ySuwf;qI=D6|RlDJ2cR^yEKh!@I- zp9QeisK*rlxC>+~7Dk4IxIRsKBHqdR9b3+fyL=ynHmIDe&|>O*VlvO+%z5;9Z$|DJ zb4dO}-R=MKr^6EKJiOrJdLnCJn>np?~vU-1sSFgPu;pthGwf}bG z(1db%xwr#x)r+`4AGu$j7~u2MpVs3VpLp|mx&;>`0p0vH6kF+D2CY0fVdQOZ@h;A` z{infNyvmFUiu*XG}RNMNwXrbec_*a3N=2zJ|Wh5z* z5rAX$JJR{#zP>KY**>xHTuw?|-Rg|o24V)74HcfVT;WtQHXlE+_4iPE8QE#DUm%x0 zEKr75ur~W%w#-My3Tj`hH6EuEW+8K-^5P62$7Sc5OK+22qj&Pd1;)1#4tKihi=~8C zHiQSst0cpri6%OeaR`PY>HH_;CPaRNty%WTm4{wDK8V6gCZlG@U3$~JQZ;HPvDJcT1V{ z?>H@13MJcCNe#5z+MecYNi@VT5|&UiN1D4ATT+%M+h4c$t;C#UAs3O_q=GxK0}8%8 z8J(_M9bayxN}69ex4dzM_P3oh@ZGREjVvn%%r7=xjkqxJP4kj}5tlf;QosR=%4L5y zWhgejO=vao5oX%mOHbhJ8V+SG&K5dABn6!WiKl{|oPkq(9z8l&Mm%(=qGcFzI=eLu zWc_oCLyf;hVlB@dnwY98?75B20=n$>u3b|NB28H0u-6Rpl((%KWEBOfElVWJx+5yg z#SGqwza7f}$z;n~g%4HDU{;V{gXIhft*q2=4zSezGK~nBgu9-Q*rZ#2f=Q}i2|qOp z!!y4p)4o=LVUNhlkp#JL{tfkhXNbB=Ox>M=n6soptJw-IDI|_$is2w}(XY>a=H52d z3zE$tjPUhWWS+5h=KVH&uqQS=$v3nRs&p$%11b%5qtF}S2#Pc`IiyBIF4%A!;AVoI zXU8-Rpv!DQNcF~(qQnyyMy=-AN~U>#&X1j5BLDP{?K!%h!;hfJI>$mdLSvktEr*89 zdJHvby^$xEX0^l9g$xW-d?J;L0#(`UT~zpL&*cEh$L|HPAu=P8`OQZV!-}l`noSp_ zQ-1$q$R-gDL)?6YaM!=8H=QGW$NT2SeZlb8PKJdc=F-cT@j7Xags+Pr*jPtlHFnf- zh?q<6;)27IdPc^Wdy-mX%2s84C1xZq9Xms+==F4);O`VUASmu3(RlgE#0+#giLh-& zcxm3_e}n4{%|X zJp{G_j+%`j_q5}k{eW&TlP}J2wtZ2^<^E(O)4OQX8FDp6RJq!F{(6eHWSD3=f~(h} zJXCf7=r<16X{pHkm%yzYI_=VDP&9bmI1*)YXZeB}F? z(%QsB5fo*FUZxK$oX~X^69;x~j7ms8xlzpt-T15e9}$4T-pC z6PFg@;B-j|Ywajpe4~bk#S6(fO^|mm1hKOPfA%8-_iGCfICE|=P_~e;Wz6my&)h_~ zkv&_xSAw7AZ%ThYF(4jADW4vg=oEdJGVOs>FqamoL3Np8>?!W#!R-0%2Bg4h?kz5I zKV-rKN2n(vUL%D<4oj@|`eJ>0i#TmYBtYmfla;c!ATW%;xGQ0*TW@PTlGG><@dxUI zg>+3SiGdZ%?5N=8uoLA|$4isK$aJ%i{hECP$bK{J#0W2gQ3YEa zZQ50Stn6hqdfxJ*9#NuSLwKFCUGk@c=(igyVL;;2^wi4o30YXSIb2g_ud$ zgpCr@H0qWtk2hK8Q|&wx)}4+hTYlf;$a4#oUM=V@Cw#!$(nOFFpZ;0lc!qd=c$S}Z zGGI-0jg~S~cgVT=4Vo)b)|4phjStD49*EqC)IPwyeKBLcN;Wu@Aeph;emROAwJ-0< z_#>wVm$)ygH|qyxZaet&(Vf%pVdnvKWJn9`%DAxj3ot;v>S$I}jJ$FLBF*~iZ!ZXE zkvui&p}fI0Y=IDX)mm0@tAd|fEHl~J&K}ZX(Mm3cm1UAuwJ42+AO5@HwYfDH7ipIc zmI;1J;J@+aCNG1M`Btf>YT>~c&3j~Qi@Py5JT6;zjx$cvOQW@3oQ>|}GH?TW-E z1R;q^QFjm5W~7f}c3Ww|awg1BAJ^slEV~Pk`Kd`PS$7;SqJZNj->it4DW2l15}xP6 zoCl$kyEF%yJni0(L!Z&14m!1urXh6Btj_5JYt1{#+H8w?5QI%% zo-$KYWNMJVH?Hh@1n7OSu~QhSswL8x0=$<8QG_zepi_`y_79=nK=_ZP_`Em2UI*tyQoB+r{1QYZCpb?2OrgUw#oRH$?^Tj!Req>XiE#~B|~ z+%HB;=ic+R@px4Ld8mwpY;W^A%8%l8$@B@1m5n`TlKI6bz2mp*^^^1mK$COW$HOfp zUGTz-cN9?BGEp}5A!mDFjaiWa2_J2Iq8qj0mXzk; z66JBKRP{p%wN7XobR0YjhAuW9T1Gw3FDvR5dWJ8ElNYF94eF3ebu+QwKjtvVu4L zI9ip#mQ@4uqVdkl-TUQMb^XBJVLW(-$s;Nq;@5gr4`UfLgF$adIhd?rHOa%D);whv z=;krPp~@I+-Z|r#s3yCH+c1US?dnm+C*)r{m+86sTJusLdNu^sqLrfWed^ndHXH`m zd3#cOe3>w-ga(Dus_^ppG9AC>Iq{y%%CK+Cro_sqLCs{VLuK=dev>OL1dis4(PQ5R zcz)>DjEkfV+MO;~>VUlYF00SgfUo~@(&9$Iy2|G0T9BSP?&T22>K46D zL*~j#yJ?)^*%J3!16f)@Y2Z^kS*BzwfAQ7K96rFRIh>#$*$_Io;z>ux@}G98!fWR@ zGTFxv4r~v)Gsd|pF91*-eaZ3Qw1MH$K^7JhWIdX%o$2kCbvGDXy)a?@8T&1dY4`;L z4Kn+f%SSFWE_rpEpL9bnlmYq`D!6F%di<&Hh=+!VI~j)2mfil03T#jJ_s?}VV0_hp z7T9bWxc>Jm2Z0WMU?`Z$xE74Gu~%s{mW!d4uvKCx@WD+gPUQ zV0vQS(Ig++z=EHN)BR44*EDSWIyT~R4$FcF*VEY*8@l=218Q05D2$|fXKFhRgBIEE zdDFB}1dKkoO^7}{5crKX!p?dZWNz$m>1icsXG2N+((x0OIST9Zo^DW_tytvlwXGpn zs8?pJXjEG;T@qrZi%#h93?FP$!&P4JA(&H61tqQi=opRzNpm zkrG}$^t9&XduK*Qa1?355wd8G2CI6QEh@Ua>AsD;7oRUNLPb76m4HG3K?)wF~IyS3`fXuNM>${?wmB zpVz;?6_(Fiadfd{vUCBM*_kt$+F3J+IojI;9L(gc9n3{sEZyzR9o!_mOwFC#tQ{Q~ zP3-`#uK#tP3Q7~Q;4H|wjZHO8h7e4IuBxl&vz2w~D8)w=Wtg31zpZhz%+kzSzL*dV zwp@{WU4i;hJ7c2f1O;7Mz6qRKeASoIv0_bV=i@NMG*l<#+;INk-^`5w@}Dj~;k=|}qM1vq_P z|GpBGe_IKq|LNy9SJhKOQ$c=5L{Dv|Q_lZl=-ky*BFBJLW9&y_C|!vyM~rQx=!vun z?rZJQB5t}Dctmui5i31C_;_}CEn}_W%>oSXtt>@kE1=JW*4*v4tPp;O6 zmAk{)m!)}34pTWg8{i>($%NQ(Tl;QC@J@FfBoc%Gr&m560^kgSfodAFrIjF}aIw)X zoXZ`@IsMkc8_=w%-7`D6Y4e*CG8k%Ud=GXhsTR50jUnm+R*0A(O3UKFg0`K;qp1bl z7``HN=?39ic_kR|^R^~w-*pa?Vj#7|e9F1iRx{GN2?wK!xR1GW!qa=~pjJb-#u1K8 zeR?Y2i-pt}yJq;SCiVHODIvQJX|ZJaT8nO+(?HXbLefulKKgM^B(UIO1r+S=7;kLJ zcH}1J=Px2jsh3Tec&v8Jcbng8;V-`#*UHt?hB(pmOipKwf3Lz8rG$heEB30Sg*2rx zV<|KN86$soN(I!BwO`1n^^uF2*x&vJ$2d$>+`(romzHP|)K_KkO6Hc>_dwMW-M(#S zK(~SiXT1@fvc#U+?|?PniDRm01)f^#55;nhM|wi?oG>yBsa?~?^xTU|fX-R(sTA+5 zaq}-8Tx7zrOy#3*JLIIVsBmHYLdD}!0NP!+ITW+Thn0)8SS!$@)HXwB3tY!fMxc#1 zMp3H?q3eD?u&Njx4;KQ5G>32+GRp1Ee5qMO0lZjaRRu&{W<&~DoJNGkcYF<5(Ab+J zgO>VhBl{okDPn78<%&e2mR{jwVCz5Og;*Z;;3%VvoGo_;HaGLWYF7q#jDX=Z#Ml`H z858YVV$%J|e<1n`%6Vsvq7GmnAV0wW4$5qQ3uR@1i>tW{xrl|ExywIc?fNgYlA?C5 zh$ezAFb5{rQu6i7BSS5*J-|9DQ{6^BVQ{b*lq`xS@RyrsJN?-t=MTMPY;WYeKBCNg z^2|pN!Q^WPJuuO4!|P@jzt&tY1Y8d%FNK5xK(!@`jO2aEA*4 zkO6b|UVBipci?){-Ke=+1;mGlND8)6+P;8sq}UXw2hn;fc7nM>g}GSMWu&v&fqh

iViYT=fZ(|3Ox^$aWPp4a8h24tD<|8-!aK0lHgL$N7Efw}J zVIB!7=T$U`ao1?upi5V4Et*-lTG0XvExbf!ya{cua==$WJyVG(CmA6Of*8E@DSE%L z`V^$qz&RU$7G5mg;8;=#`@rRG`-uS18$0WPN@!v2d{H2sOqP|!(cQ@ zUHo!d>>yFArLPf1q`uBvY32miqShLT1B@gDL4XoVTK&@owOoD)OIHXrYK-a1d$B{v zF^}8D3Y^g%^cnvScOSJR5QNH+BI%d|;J;wWM3~l>${fb8DNPg)wrf|GBP8p%LNGN# z3EaIiItgwtGgT&iYCFy9-LG}bMI|4LdmmJt@V@% zb6B)1kc=T)(|L@0;wr<>=?r04N;E&ef+7C^`wPWtyQe(*pD1pI_&XHy|0gIGHMekd zF_*M4yi6J&Z4LQj65)S zXwdM{SwUo%3SbPwFsHgqF@V|6afT|R6?&S;lw=8% z3}@9B=#JI3@B*#4s!O))~z zc>2_4Q_#&+5V`GFd?88^;c1i7;Vv_I*qt!_Yx*n=;rj!82rrR2rQ8u5(Ejlo{15P% zs~!{%XJ>FmJ})H^I9bn^Re&38H{xA!0l3^89k(oU;bZWXM@kn$#aoS&Y4l^-WEn-fH39Jb9lA%s*WsKJQl?n9B7_~P z-XM&WL7Z!PcoF6_D>V@$CvUIEy=+Z&0kt{szMk=f1|M+r*a43^$$B^MidrT0J;RI` z(?f!O<8UZkm$_Ny$Hth1J#^4ni+im8M9mr&k|3cIgwvjAgjH z8`N&h25xV#v*d$qBX5jkI|xOhQn!>IYZK7l5#^P4M&twe9&Ey@@GxYMxBZq2e7?`q z$~Szs0!g{2fGcp9PZEt|rdQ6bhAgpcLHPz?f-vB?$dc*!9OL?Q8mn7->bFD2Si60* z!O%y)fCdMSV|lkF9w%x~J*A&srMyYY3{=&$}H zGQ4VG_?$2X(0|vT0{=;W$~icCI{b6W{B!Q8xdGhF|D{25G_5_+%s(46lhvNLkik~R z>nr(&C#5wwOzJZQo9m|U<;&Wk!_#q|V>fsmj1g<6%hB{jGoNUPjgJslld>xmODzGjYc?7JSuA?A_QzjDw5AsRgi@Y|Z0{F{!1=!NES-#*f^s4l0Hu zz468))2IY5dmD9pa*(yT5{EyP^G>@ZWumealS-*WeRcZ}B%gxq{MiJ|RyX-^C1V=0 z@iKdrGi1jTe8Ya^x7yyH$kBNvM4R~`fbPq$BzHum-3Zo8C6=KW@||>zsA8-Y9uV5V z#oq-f5L5}V<&wF4@X@<3^C%ptp6+Ce)~hGl`kwj)bsAjmo_GU^r940Z-|`<)oGnh7 zFF0Tde3>ui?8Yj{sF-Z@)yQd~CGZ*w-6p2U<8}JO-sRsVI5dBji`01W8A&3$?}lxBaC&vn0E$c5tW* zX>5(zzZ=qn&!J~KdsPl;P@bmA-Pr8T*)eh_+Dv5=Ma|XSle6t(k8qcgNyar{*ReQ8 zTXwi=8vr>!3Ywr+BhggHDw8ke==NTQVMCK`$69fhzEFB*4+H9LIvdt-#IbhZvpS}} zO3lz;P?zr0*0$%-Rq_y^k(?I{Mk}h@w}cZpMUp|ucs55bcloL2)($u%mXQw({Wzc~ z;6nu5MkjP)0C(@%6Q_I_vsWrfhl7Zpoxw#WoE~r&GOSCz;_ro6i(^hM>I$8y>`!wW z*U^@?B!MMmb89I}2(hcE4zN2G^kwyWCZp5JG>$Ez7zP~D=J^LMjSM)27_0B_X^C(M z`fFT+%DcKlu?^)FCK>QzSnV%IsXVcUFhFdBP!6~se&xxrIxsvySAWu++IrH;FbcY$ z2DWTvSBRfLwdhr0nMx+URA$j3i7_*6BWv#DXfym?ZRDcX9C?cY9sD3q)uBDR3uWg= z(lUIzB)G$Hr!){>E{s4Dew+tb9kvToZp-1&c?y2wn@Z~(VBhqz`cB;{E4(P3N2*nJ z_>~g@;UF2iG{Kt(<1PyePTKahF8<)pozZ*xH~U-kfoAayCwJViIrnqwqO}7{0pHw$ zs2Kx?s#vQr7XZ264>5RNKSL8|Ty^=PsIx^}QqOOcfpGUU4tRkUc|kc7-!Ae6!+B{o~7nFpm3|G5^=0#Bnm6`V}oSQlrX(u%OWnC zoLPy&Q;1Jui&7ST0~#+}I^&?vcE*t47~Xq#YwvA^6^} z`WkC)$AkNub|t@S!$8CBlwbV~?yp&@9h{D|3z-vJXgzRC5^nYm+PyPcgRzAnEi6Q^gslXYRv4nycsy-SJu?lMps-? zV`U*#WnFsdPLL)Q$AmD|0`UaC4ND07+&UmOu!eHruzV|OUox<+Jl|Mr@6~C`T@P%s zW7sgXLF2SSe9Fl^O(I*{9wsFSYb2l%-;&Pi^dpv!{)C3d0AlNY6!4fgmSgj_wQ*7Am7&$z;Jg&wgR-Ih;lUvWS|KTSg!&s_E9_bXBkZvGiC6bFKDWZxsD$*NZ#_8bl zG1P-#@?OQzED7@jlMJTH@V!6k;W>auvft)}g zhoV{7$q=*;=l{O>Q4a@ ziMjf_u*o^PsO)#BjC%0^h>Xp@;5$p{JSYDt)zbb}s{Kbt!T*I@Pk@X0zds6wsefuU zW$XY%yyRGC94=6mf?x+bbA5CDQ2AgW1T-jVAJbm7K(gp+;v6E0WI#kuACgV$r}6L? zd|Tj?^%^*N&b>Dd{Wr$FS2qI#Ucs1yd4N+RBUQiSZGujH`#I)mG&VKoDh=KKFl4=G z&MagXl6*<)$6P}*Tiebpz5L=oMaPrN+caUXRJ`D?=K9!e0f{@D&cZLKN?iNP@X0aF zE(^pl+;*T5qt?1jRC=5PMgV!XNITRLS_=9{CJExaQj;lt!&pdzpK?8p>%Mb+D z?yO*uSung=-`QQ@yX@Hyd4@CI^r{2oiu`%^bNkz+Nkk!IunjwNC|WcqvX~k=><-I3 zDQdbdb|!v+Iz01$w@aMl!R)koD77Xp;eZwzSl-AT zr@Vu{=xvgfq9akRrrM)}=!=xcs+U1JO}{t(avgz`6RqiiX<|hGG1pmop8k6Q+G_mv zJv|RfDheUp2L3=^C=4aCBMBn0aRCU(DQwX-W(RkRwmLeuJYF<0urcaf(=7)JPg<3P zQs!~G)9CT18o!J4{zX{_e}4eS)U-E)0FAt}wEI(c0%HkxgggW;(1E=>J17_hsH^sP z%lT0LGgbUXHx-K*CI-MCrP66UP0PvGqM$MkeLyqHdbgP|_Cm!7te~b8p+e6sQ_3k| zVcwTh6d83ltdnR>D^)BYQpDKlLk3g0Hdcgz2}%qUs9~~Rie)A-BV1mS&naYai#xcZ z(d{8=-LVpTp}2*y)|gR~;qc7fp26}lPcLZ#=JpYcn3AT9(UIdOyg+d(P5T7D&*P}# zQCYplZO5|7+r19%9e`v^vfSS1sbX1c%=w1;oyruXB%Kl$ACgKQ6=qNWLsc=28xJjg zwvsI5-%SGU|3p>&zXVl^vVtQT3o-#$UT9LI@Npz~6=4!>mc431VRNN8od&Ul^+G_kHC`G=6WVWM z%9eWNyy(FTO|A+@x}Ou3CH)oi;t#7rAxdIXfNFwOj_@Y&TGz6P_sqiB`Q6Lxy|Q{`|fgmRG(k+!#b*M+Z9zFce)f-7;?Km5O=LHV9f9_87; zF7%R2B+$?@sH&&-$@tzaPYkw0;=i|;vWdI|Wl3q_Zu>l;XdIw2FjV=;Mq5t1Q0|f< zs08j54Bp`3RzqE=2enlkZxmX6OF+@|2<)A^RNQpBd6o@OXl+i)zO%D4iGiQNuXd+zIR{_lb96{lc~bxsBveIw6umhShTX+3@ZJ=YHh@ zWY3(d0azg;7oHn>H<>?4@*RQbi>SmM=JrHvIG(~BrvI)#W(EAeO6fS+}mxxcc+X~W6&YVl86W9WFSS}Vz-f9vS?XUDBk)3TcF z8V?$4Q)`uKFq>xT=)Y9mMFVTUk*NIA!0$?RP6Ig0TBmUFrq*Q-Agq~DzxjStQyJ({ zBeZ;o5qUUKg=4Hypm|}>>L=XKsZ!F$yNTDO)jt4H0gdQ5$f|d&bnVCMMXhNh)~mN z@_UV6D7MVlsWz+zM+inZZp&P4fj=tm6fX)SG5H>OsQf_I8c~uGCig$GzuwViK54bcgL;VN|FnyQl>Ed7(@>=8$a_UKIz|V6CeVSd2(P z0Uu>A8A+muM%HLFJQ9UZ5c)BSAv_zH#1f02x?h9C}@pN@6{>UiAp>({Fn(T9Q8B z^`zB;kJ5b`>%dLm+Ol}ty!3;8f1XDSVX0AUe5P#@I+FQ-`$(a;zNgz)4x5hz$Hfbg z!Q(z26wHLXko(1`;(BAOg_wShpX0ixfWq3ponndY+u%1gyX)_h=v1zR#V}#q{au6; z!3K=7fQwnRfg6FXtNQmP>`<;!N137paFS%y?;lb1@BEdbvQHYC{976l`cLqn;b8lp zIDY>~m{gDj(wfnK!lpW6pli)HyLEiUrNc%eXTil|F2s(AY+LW5hkKb>TQ3|Q4S9rr zpDs4uK_co6XPsn_z$LeS{K4jFF`2>U`tbgKdyDne`xmR<@6AA+_hPNKCOR-Zqv;xk zu5!HsBUb^!4uJ7v0RuH-7?l?}b=w5lzzXJ~gZcxRKOovSk@|#V+MuX%Y+=;14i*%{)_gSW9(#4%)AV#3__kac1|qUy!uyP{>?U#5wYNq}y$S9pCc zFc~4mgSC*G~j0u#qqp9 z${>3HV~@->GqEhr_Xwoxq?Hjn#=s2;i~g^&Hn|aDKpA>Oc%HlW(KA1?BXqpxB;Ydx)w;2z^MpjJ(Qi(X!$5RC z*P{~%JGDQqojV>2JbEeCE*OEu!$XJ>bWA9Oa_Hd;y)F%MhBRi*LPcdqR8X`NQ&1L# z5#9L*@qxrx8n}LfeB^J{%-?SU{FCwiWyHp682F+|pa+CQa3ZLzBqN1{)h4d6+vBbV zC#NEbQLC;}me3eeYnOG*nXOJZEU$xLZ1<1Y=7r0(-U0P6-AqwMAM`a(Ed#7vJkn6plb4eI4?2y3yOTGmmDQ!z9`wzbf z_OY#0@5=bnep;MV0X_;;SJJWEf^E6Bd^tVJ9znWx&Ks8t*B>AM@?;D4oWUGc z!H*`6d7Cxo6VuyS4Eye&L1ZRhrRmN6Lr`{NL(wDbif|y&z)JN>Fl5#Wi&mMIr5i;x zBx}3YfF>>8EC(fYnmpu~)CYHuHCyr5*`ECap%t@y=jD>!_%3iiE|LN$mK9>- zHdtpy8fGZtkZF?%TW~29JIAfi2jZT8>OA7=h;8T{{k?c2`nCEx9$r zS+*&vt~2o^^J+}RDG@+9&M^K*z4p{5#IEVbz`1%`m5c2};aGt=V?~vIM}ZdPECDI)47|CWBCfDWUbxBCnmYivQ*0Nu_xb*C>~C9(VjHM zxe<*D<#dQ8TlpMX2c@M<9$w!RP$hpG4cs%AI){jp*Sj|*`m)5(Bw*A0$*i-(CA5#%>a)$+jI2C9r6|(>J8InryENI z$NohnxDUB;wAYDwrb*!N3noBTKPpPN}~09SEL18tkG zxgz(RYU_;DPT{l?Q$+eaZaxnsWCA^ds^0PVRkIM%bOd|G2IEBBiz{&^JtNsODs;5z zICt_Zj8wo^KT$7Bg4H+y!Df#3mbl%%?|EXe!&(Vmac1DJ*y~3+kRKAD=Ovde4^^%~ zw<9av18HLyrf*_>Slp;^i`Uy~`mvBjZ|?Ad63yQa#YK`4+c6;pW4?XIY9G1(Xh9WO8{F-Aju+nS9Vmv=$Ac0ienZ+p9*O%NG zMZKy5?%Z6TAJTE?o5vEr0r>f>hb#2w2U3DL64*au_@P!J!TL`oH2r*{>ffu6|A7tv zL4juf$DZ1MW5ZPsG!5)`k8d8c$J$o;%EIL0va9&GzWvkS%ZsGb#S(?{!UFOZ9<$a| zY|a+5kmD5N&{vRqkgY>aHsBT&`rg|&kezoD)gP0fsNYHsO#TRc_$n6Lf1Z{?+DLziXlHrq4sf(!>O{?Tj;Eh@%)+nRE_2VxbN&&%%caU#JDU%vL3}Cb zsb4AazPI{>8H&d=jUaZDS$-0^AxE@utGs;-Ez_F(qC9T=UZX=>ok2k2 ziTn{K?y~a5reD2A)P${NoI^>JXn>`IeArow(41c-Wm~)wiryEP(OS{YXWi7;%dG9v zI?mwu1MxD{yp_rrk!j^cKM)dc4@p4Ezyo%lRN|XyD}}>v=Xoib0gOcdXrQ^*61HNj z=NP|pd>@yfvr-=m{8$3A8TQGMTE7g=z!%yt`8`Bk-0MMwW~h^++;qyUP!J~ykh1GO z(FZ59xuFR$(WE;F@UUyE@Sp>`aVNjyj=Ty>_Vo}xf`e7`F;j-IgL5`1~-#70$9_=uBMq!2&1l zomRgpD58@)YYfvLtPW}{C5B35R;ZVvB<<#)x%srmc_S=A7F@DW8>QOEGwD6suhwCg z>Pa+YyULhmw%BA*4yjDp|2{!T98~<6Yfd(wo1mQ!KWwq0eg+6)o1>W~f~kL<-S+P@$wx*zeI|1t7z#Sxr5 zt6w+;YblPQNplq4Z#T$GLX#j6yldXAqj>4gAnnWtBICUnA&-dtnlh=t0Ho_vEKwV` z)DlJi#!@nkYV#$!)@>udAU*hF?V`2$Hf=V&6PP_|r#Iv*J$9)pF@X3`k;5})9^o4y z&)~?EjX5yX12O(BsFy-l6}nYeuKkiq`u9145&3Ssg^y{5G3Pse z9w(YVa0)N-fLaBq1`P!_#>SS(8fh_5!f{UrgZ~uEdeMJIz7DzI5!NHHqQtm~#CPij z?=N|J>nPR6_sL7!f4hD_|KH`vf8(Wpnj-(gPWH+ZvID}%?~68SwhPTC3u1_cB`otq z)U?6qo!ZLi5b>*KnYHWW=3F!p%h1;h{L&(Q&{qY6)_qxNfbP6E3yYpW!EO+IW3?@J z);4>g4gnl^8klu7uA>eGF6rIGSynacogr)KUwE_R4E5Xzi*Qir@b-jy55-JPC8c~( zo!W8y9OGZ&`xmc8;=4-U9=h{vCqfCNzYirONmGbRQlR`WWlgnY+1wCXbMz&NT~9*| z6@FrzP!LX&{no2!Ln_3|I==_4`@}V?4a;YZKTdw;vT<+K+z=uWbW(&bXEaWJ^W8Td z-3&1bY^Z*oM<=M}LVt>_j+p=2Iu7pZmbXrhQ_k)ysE9yXKygFNw$5hwDn(M>H+e1&9BM5!|81vd%r%vEm zqxY3?F@fb6O#5UunwgAHR9jp_W2zZ}NGp2%mTW@(hz7$^+a`A?mb8|_G*GNMJ) zjqegXQio=i@AINre&%ofexAr95aop5C+0MZ0m-l=MeO8m3epm7U%vZB8+I+C*iNFM z#T3l`gknX;D$-`2XT^Cg*vrv=RH+P;_dfF++cP?B_msQI4j+lt&rX2)3GaJx%W*Nn zkML%D{z5tpHH=dksQ*gzc|}gzW;lwAbxoR07VNgS*-c3d&8J|;@3t^ zVUz*J*&r7DFRuFVDCJDK8V9NN5hvpgGjwx+5n)qa;YCKe8TKtdnh{I7NU9BCN!0dq zczrBk8pE{{@vJa9ywR@mq*J=v+PG;?fwqlJVhijG!3VmIKs>9T6r7MJpC)m!Tc#>g zMtVsU>wbwFJEfwZ{vB|ZlttNe83)$iz`~#8UJ^r)lJ@HA&G#}W&ZH*;k{=TavpjWE z7hdyLZPf*X%Gm}i`Y{OGeeu^~nB8=`{r#TUrM-`;1cBvEd#d!kPqIgYySYhN-*1;L z^byj%Yi}Gx)Wnkosi337BKs}+5H5dth1JA{Ir-JKN$7zC)*}hqeoD(WfaUDPT>0`- z(6sa0AoIqASwF`>hP}^|)a_j2s^PQn*qVC{Q}htR z5-)duBFXT_V56-+UohKXlq~^6uf!6sA#ttk1o~*QEy_Y-S$gAvq47J9Vtk$5oA$Ct zYhYJ@8{hsC^98${!#Ho?4y5MCa7iGnfz}b9jE~h%EAAv~Qxu)_rAV;^cygV~5r_~?l=B`zObj7S=H=~$W zPtI_m%g$`kL_fVUk9J@>EiBH zOO&jtn~&`hIFMS5S`g8w94R4H40mdNUH4W@@XQk1sr17b{@y|JB*G9z1|CrQjd+GX z6+KyURG3;!*BQrentw{B2R&@2&`2}n(z-2&X7#r!{yg@Soy}cRD~j zj9@UBW+N|4HW4AWapy4wfUI- zZ`gSL6DUlgj*f1hSOGXG0IVH8HxK?o2|3HZ;KW{K+yPAlxtb)NV_2AwJm|E)FRs&& z=c^e7bvUsztY|+f^k7NXs$o1EUq>cR7C0$UKi6IooHWlK_#?IWDkvywnzg&ThWo^? z2O_N{5X39#?eV9l)xI(>@!vSB{DLt*oY!K1R8}_?%+0^C{d9a%N4 zoxHVT1&Lm|uDX%$QrBun5e-F`HJ^T$ zmzv)p@4ZHd_w9!%Hf9UYNvGCw2TTTbrj9pl+T9%-_-}L(tES>Or-}Z4F*{##n3~L~TuxjirGuIY#H7{%$E${?p{Q01 zi6T`n;rbK1yIB9jmQNycD~yZq&mbIsFWHo|ZAChSFPQa<(%d8mGw*V3fh|yFoxOOiWJd(qvVb!Z$b88cg->N=qO*4k~6;R==|9ihg&riu#P~s4Oap9O7f%crSr^rljeIfXDEg>wi)&v*a%7zpz<9w z*r!3q9J|390x`Zk;g$&OeN&ctp)VKRpDSV@kU2Q>jtok($Y-*x8_$2piTxun81@vt z!Vj?COa0fg2RPXMSIo26T=~0d`{oGP*eV+$!0I<(4azk&Vj3SiG=Q!6mX0p$z7I}; z9BJUFgT-K9MQQ-0@Z=^7R<{bn2Fm48endsSs`V7_@%8?Bxkqv>BDoVcj?K#dV#uUP zL1ND~?D-|VGKe3Rw_7-Idpht>H6XRLh*U7epS6byiGvJpr%d}XwfusjH9g;Z98H`x zyde%%5mhGOiL4wljCaWCk-&uE4_OOccb9c!ZaWt4B(wYl!?vyzl%7n~QepN&eFUrw zFIOl9c({``6~QD+43*_tzP{f2x41h(?b43^y6=iwyB)2os5hBE!@YUS5?N_tXd=h( z)WE286Fbd>R4M^P{!G)f;h<3Q>Fipuy+d2q-)!RyTgt;wr$(?9ox3;q+{E*ZQHhOn;lM`cjnu9 zXa48ks-v(~b*;MAI<>YZH(^NV8vjb34beE<_cwKlJoR;k6lJNSP6v}uiyRD?|0w+X@o1ONrH8a$fCxXpf? z?$DL0)7|X}Oc%h^zrMKWc-NS9I0Utu@>*j}b@tJ=ixQSJ={4@854wzW@E>VSL+Y{i z#0b=WpbCZS>kUCO_iQz)LoE>P5LIG-hv9E+oG}DtlIDF>$tJ1aw9^LuhLEHt?BCj& z(O4I8v1s#HUi5A>nIS-JK{v!7dJx)^Yg%XjNmlkWAq2*cv#tHgz`Y(bETc6CuO1VkN^L-L3j_x<4NqYb5rzrLC-7uOv z!5e`GZt%B782C5-fGnn*GhDF$%(qP<74Z}3xx+{$4cYKy2ikxI7B2N+2r07DN;|-T->nU&!=Cm#rZt%O_5c&1Z%nlWq3TKAW0w zQqemZw_ue--2uKQsx+niCUou?HjD`xhEjjQd3%rrBi82crq*~#uA4+>vR<_S{~5ce z-2EIl?~s z1=GVL{NxP1N3%=AOaC}j_Fv=ur&THz zyO!d9kHq|c73kpq`$+t+8Bw7MgeR5~`d7ChYyGCBWSteTB>8WAU(NPYt2Dk`@#+}= zI4SvLlyk#pBgVigEe`?NG*vl7V6m+<}%FwPV=~PvvA)=#ths==DRTDEYh4V5}Cf$z@#;< zyWfLY_5sP$gc3LLl2x+Ii)#b2nhNXJ{R~vk`s5U7Nyu^3yFg&D%Txwj6QezMX`V(x z=C`{76*mNb!qHHs)#GgGZ_7|vkt9izl_&PBrsu@}L`X{95-2jf99K)0=*N)VxBX2q z((vkpP2RneSIiIUEnGb?VqbMb=Zia+rF~+iqslydE34cSLJ&BJW^3knX@M;t*b=EA zNvGzv41Ld_T+WT#XjDB840vovUU^FtN_)G}7v)1lPetgpEK9YS^OWFkPoE{ovj^=@ zO9N$S=G$1ecndT_=5ehth2Lmd1II-PuT~C9`XVePw$y8J#dpZ?Tss<6wtVglm(Ok7 z3?^oi@pPio6l&!z8JY(pJvG=*pI?GIOu}e^EB6QYk$#FJQ%^AIK$I4epJ+9t?KjqA+bkj&PQ*|vLttme+`9G=L% ziadyMw_7-M)hS(3E$QGNCu|o23|%O+VN7;Qggp?PB3K-iSeBa2b}V4_wY`G1Jsfz4 z9|SdB^;|I8E8gWqHKx!vj_@SMY^hLEIbSMCuE?WKq=c2mJK z8LoG-pnY!uhqFv&L?yEuxo{dpMTsmCn)95xanqBrNPTgXP((H$9N${Ow~Is-FBg%h z53;|Y5$MUN)9W2HBe2TD`ct^LHI<(xWrw}$qSoei?}s)&w$;&!14w6B6>Yr6Y8b)S z0r71`WmAvJJ`1h&poLftLUS6Ir zC$bG9!Im_4Zjse)#K=oJM9mHW1{%l8sz$1o?ltdKlLTxWWPB>Vk22czVt|1%^wnN@*!l)}?EgtvhC>vlHm^t+ogpgHI1_$1ox9e;>0!+b(tBrmXRB`PY1vp-R**8N7 zGP|QqI$m(Rdu#=(?!(N}G9QhQ%o!aXE=aN{&wtGP8|_qh+7a_j_sU5|J^)vxq;# zjvzLn%_QPHZZIWu1&mRAj;Sa_97p_lLq_{~j!M9N^1yp3U_SxRqK&JnR%6VI#^E12 z>CdOVI^_9aPK2eZ4h&^{pQs}xsijXgFYRIxJ~N7&BB9jUR1fm!(xl)mvy|3e6-B3j zJn#ajL;bFTYJ2+Q)tDjx=3IklO@Q+FFM}6UJr6km7hj7th9n_&JR7fnqC!hTZoM~T zBeaVFp%)0cbPhejX<8pf5HyRUj2>aXnXBqDJe73~J%P(2C?-RT{c3NjE`)om! zl$uewSgWkE66$Kb34+QZZvRn`fob~Cl9=cRk@Es}KQm=?E~CE%spXaMO6YmrMl%9Q zlA3Q$3|L1QJ4?->UjT&CBd!~ru{Ih^in&JXO=|<6J!&qp zRe*OZ*cj5bHYlz!!~iEKcuE|;U4vN1rk$xq6>bUWD*u(V@8sG^7>kVuo(QL@Ki;yL zWC!FT(q{E8#on>%1iAS0HMZDJg{Z{^!De(vSIq&;1$+b)oRMwA3nc3mdTSG#3uYO_ z>+x;7p4I;uHz?ZB>dA-BKl+t-3IB!jBRgdvAbW!aJ(Q{aT>+iz?91`C-xbe)IBoND z9_Xth{6?(y3rddwY$GD65IT#f3<(0o#`di{sh2gm{dw*#-Vnc3r=4==&PU^hCv$qd zjw;>i&?L*Wq#TxG$mFIUf>eK+170KG;~+o&1;Tom9}}mKo23KwdEM6UonXgc z!6N(@k8q@HPw{O8O!lAyi{rZv|DpgfU{py+j(X_cwpKqcalcqKIr0kM^%Br3SdeD> zHSKV94Yxw;pjzDHo!Q?8^0bb%L|wC;4U^9I#pd5O&eexX+Im{ z?jKnCcsE|H?{uGMqVie_C~w7GX)kYGWAg%-?8|N_1#W-|4F)3YTDC+QSq1s!DnOML3@d`mG%o2YbYd#jww|jD$gotpa)kntakp#K;+yo-_ZF9qrNZw<%#C zuPE@#3RocLgPyiBZ+R_-FJ_$xP!RzWm|aN)S+{$LY9vvN+IW~Kf3TsEIvP+B9Mtm! zpfNNxObWQpLoaO&cJh5>%slZnHl_Q~(-Tfh!DMz(dTWld@LG1VRF`9`DYKhyNv z2pU|UZ$#_yUx_B_|MxUq^glT}O5Xt(Vm4Mr02><%C)@v;vPb@pT$*yzJ4aPc_FZ3z z3}PLoMBIM>q_9U2rl^sGhk1VUJ89=*?7|v`{!Z{6bqFMq(mYiA?%KbsI~JwuqVA9$H5vDE+VocjX+G^%bieqx->s;XWlKcuv(s%y%D5Xbc9+ zc(_2nYS1&^yL*ey664&4`IoOeDIig}y-E~_GS?m;D!xv5-xwz+G`5l6V+}CpeJDi^ z%4ed$qowm88=iYG+(`ld5Uh&>Dgs4uPHSJ^TngXP_V6fPyl~>2bhi20QB%lSd#yYn zO05?KT1z@?^-bqO8Cg`;ft>ilejsw@2%RR7;`$Vs;FmO(Yr3Fp`pHGr@P2hC%QcA|X&N2Dn zYf`MqXdHi%cGR@%y7Rg7?d3?an){s$zA{!H;Ie5exE#c~@NhQUFG8V=SQh%UxUeiV zd7#UcYqD=lk-}sEwlpu&H^T_V0{#G?lZMxL7ih_&{(g)MWBnCZxtXg znr#}>U^6!jA%e}@Gj49LWG@*&t0V>Cxc3?oO7LSG%~)Y5}f7vqUUnQ;STjdDU}P9IF9d9<$;=QaXc zL1^X7>fa^jHBu_}9}J~#-oz3Oq^JmGR#?GO7b9a(=R@fw@}Q{{@`Wy1vIQ#Bw?>@X z-_RGG@wt|%u`XUc%W{J z>iSeiz8C3H7@St3mOr_mU+&bL#Uif;+Xw-aZdNYUpdf>Rvu0i0t6k*}vwU`XNO2he z%miH|1tQ8~ZK!zmL&wa3E;l?!!XzgV#%PMVU!0xrDsNNZUWKlbiOjzH-1Uoxm8E#r`#2Sz;-o&qcqB zC-O_R{QGuynW14@)7&@yw1U}uP(1cov)twxeLus0s|7ayrtT8c#`&2~Fiu2=R;1_4bCaD=*E@cYI>7YSnt)nQc zohw5CsK%m?8Ack)qNx`W0_v$5S}nO|(V|RZKBD+btO?JXe|~^Qqur%@eO~<8-L^9d z=GA3-V14ng9L29~XJ>a5k~xT2152zLhM*@zlp2P5Eu}bywkcqR;ISbas&#T#;HZSf z2m69qTV(V@EkY(1Dk3`}j)JMo%ZVJ*5eB zYOjIisi+igK0#yW*gBGj?@I{~mUOvRFQR^pJbEbzFxTubnrw(Muk%}jI+vXmJ;{Q6 zrSobKD>T%}jV4Ub?L1+MGOD~0Ir%-`iTnWZN^~YPrcP5y3VMAzQ+&en^VzKEb$K!Q z<7Dbg&DNXuow*eD5yMr+#08nF!;%4vGrJI++5HdCFcGLfMW!KS*Oi@=7hFwDG!h2< zPunUEAF+HncQkbfFj&pbzp|MU*~60Z(|Ik%Tn{BXMN!hZOosNIseT?R;A`W?=d?5X zK(FB=9mZusYahp|K-wyb={rOpdn=@;4YI2W0EcbMKyo~-#^?h`BA9~o285%oY zfifCh5Lk$SY@|2A@a!T2V+{^!psQkx4?x0HSV`(w9{l75QxMk!)U52Lbhn{8ol?S) zCKo*7R(z!uk<6*qO=wh!Pul{(qq6g6xW;X68GI_CXp`XwO zxuSgPRAtM8K7}5E#-GM!*ydOOG_{A{)hkCII<|2=ma*71ci_-}VPARm3crFQjLYV! z9zbz82$|l01mv`$WahE2$=fAGWkd^X2kY(J7iz}WGS z@%MyBEO=A?HB9=^?nX`@nh;7;laAjs+fbo!|K^mE!tOB>$2a_O0y-*uaIn8k^6Y zSbuv;5~##*4Y~+y7Z5O*3w4qgI5V^17u*ZeupVGH^nM&$qmAk|anf*>r zWc5CV;-JY-Z@Uq1Irpb^O`L_7AGiqd*YpGUShb==os$uN3yYvb`wm6d=?T*it&pDk zo`vhw)RZX|91^^Wa_ti2zBFyWy4cJu#g)_S6~jT}CC{DJ_kKpT`$oAL%b^!2M;JgT zM3ZNbUB?}kP(*YYvXDIH8^7LUxz5oE%kMhF!rnPqv!GiY0o}NR$OD=ITDo9r%4E>E0Y^R(rS^~XjWyVI6 zMOR5rPXhTp*G*M&X#NTL`Hu*R+u*QNoiOKg4CtNPrjgH>c?Hi4MUG#I917fx**+pJfOo!zFM&*da&G_x)L(`k&TPI*t3e^{crd zX<4I$5nBQ8Ax_lmNRa~E*zS-R0sxkz`|>7q_?*e%7bxqNm3_eRG#1ae3gtV9!fQpY z+!^a38o4ZGy9!J5sylDxZTx$JmG!wg7;>&5H1)>f4dXj;B+@6tMlL=)cLl={jLMxY zbbf1ax3S4>bwB9-$;SN2?+GULu;UA-35;VY*^9Blx)Jwyb$=U!D>HhB&=jSsd^6yw zL)?a|>GxU!W}ocTC(?-%z3!IUhw^uzc`Vz_g>-tv)(XA#JK^)ZnC|l1`@CdX1@|!| z_9gQ)7uOf?cR@KDp97*>6X|;t@Y`k_N@)aH7gY27)COv^P3ya9I{4z~vUjLR9~z1Z z5=G{mVtKH*&$*t0@}-i_v|3B$AHHYale7>E+jP`ClqG%L{u;*ff_h@)al?RuL7tOO z->;I}>%WI{;vbLP3VIQ^iA$4wl6@0sDj|~112Y4OFjMs`13!$JGkp%b&E8QzJw_L5 zOnw9joc0^;O%OpF$Qp)W1HI!$4BaXX84`%@#^dk^hFp^pQ@rx4g(8Xjy#!X%+X5Jd@fs3amGT`}mhq#L97R>OwT5-m|h#yT_-v@(k$q7P*9X~T*3)LTdzP!*B} z+SldbVWrrwQo9wX*%FyK+sRXTa@O?WM^FGWOE?S`R(0P{<6p#f?0NJvnBia?k^fX2 zNQs7K-?EijgHJY}&zsr;qJ<*PCZUd*x|dD=IQPUK_nn)@X4KWtqoJNHkT?ZWL_hF? zS8lp2(q>;RXR|F;1O}EE#}gCrY~#n^O`_I&?&z5~7N;zL0)3Tup`%)oHMK-^r$NT% zbFg|o?b9w(q@)6w5V%si<$!U<#}s#x@0aX-hP>zwS#9*75VXA4K*%gUc>+yzupTDBOKH8WR4V0pM(HrfbQ&eJ79>HdCvE=F z|J>s;;iDLB^3(9}?biKbxf1$lI!*Z%*0&8UUq}wMyPs_hclyQQi4;NUY+x2qy|0J; zhn8;5)4ED1oHwg+VZF|80<4MrL97tGGXc5Sw$wAI#|2*cvQ=jB5+{AjMiDHmhUC*a zlmiZ`LAuAn_}hftXh;`Kq0zblDk8?O-`tnilIh|;3lZp@F_osJUV9`*R29M?7H{Fy z`nfVEIDIWXmU&YW;NjU8)EJpXhxe5t+scf|VXM!^bBlwNh)~7|3?fWwo_~ZFk(22% zTMesYw+LNx3J-_|DM~`v93yXe=jPD{q;li;5PD?Dyk+b? zo21|XpT@)$BM$%F=P9J19Vi&1#{jM3!^Y&fr&_`toi`XB1!n>sbL%U9I5<7!@?t)~ z;&H%z>bAaQ4f$wIzkjH70;<8tpUoxzKrPhn#IQfS%9l5=Iu))^XC<58D!-O z{B+o5R^Z21H0T9JQ5gNJnqh#qH^na|z92=hONIM~@_iuOi|F>jBh-?aA20}Qx~EpDGElELNn~|7WRXRFnw+Wdo`|# zBpU=Cz3z%cUJ0mx_1($X<40XEIYz(`noWeO+x#yb_pwj6)R(__%@_Cf>txOQ74wSJ z0#F3(zWWaR-jMEY$7C*3HJrohc79>MCUu26mfYN)f4M~4gD`}EX4e}A!U}QV8!S47 z6y-U-%+h`1n`*pQuKE%Av0@)+wBZr9mH}@vH@i{v(m-6QK7Ncf17x_D=)32`FOjjo zg|^VPf5c6-!FxN{25dvVh#fog=NNpXz zfB$o+0jbRkHH{!TKhE709f+jI^$3#v1Nmf80w`@7-5$1Iv_`)W^px8P-({xwb;D0y z7LKDAHgX<84?l!I*Dvi2#D@oAE^J|g$3!)x1Ua;_;<@#l1fD}lqU2_tS^6Ht$1Wl} zBESo7o^)9-Tjuz$8YQSGhfs{BQV6zW7dA?0b(Dbt=UnQs&4zHfe_sj{RJ4uS-vQpC zX;Bbsuju4%!o8?&m4UZU@~ZZjeFF6ex2ss5_60_JS_|iNc+R0GIjH1@Z z=rLT9%B|WWgOrR7IiIwr2=T;Ne?30M!@{%Qf8o`!>=s<2CBpCK_TWc(DX51>e^xh8 z&@$^b6CgOd7KXQV&Y4%}_#uN*mbanXq(2=Nj`L7H7*k(6F8s6{FOw@(DzU`4-*77{ zF+dxpv}%mFpYK?>N_2*#Y?oB*qEKB}VoQ@bzm>ptmVS_EC(#}Lxxx730trt0G)#$b zE=wVvtqOct1%*9}U{q<)2?{+0TzZzP0jgf9*)arV)*e!f`|jgT{7_9iS@e)recI#z zbzolURQ+TOzE!ymqvBY7+5NnAbWxvMLsLTwEbFqW=CPyCsmJ}P1^V30|D5E|p3BC5 z)3|qgw@ra7aXb-wsa|l^in~1_fm{7bS9jhVRkYVO#U{qMp z)Wce+|DJ}4<2gp8r0_xfZpMo#{Hl2MfjLcZdRB9(B(A(f;+4s*FxV{1F|4d`*sRNd zp4#@sEY|?^FIJ;tmH{@keZ$P(sLh5IdOk@k^0uB^BWr@pk6mHy$qf&~rI>P*a;h0C{%oA*i!VjWn&D~O#MxN&f@1Po# zKN+ zrGrkSjcr?^R#nGl<#Q722^wbYcgW@{+6CBS<1@%dPA8HC!~a`jTz<`g_l5N1M@9wn9GOAZ>nqNgq!yOCbZ@1z`U_N`Z>}+1HIZxk*5RDc&rd5{3qjRh8QmT$VyS;jK z;AF+r6XnnCp=wQYoG|rT2@8&IvKq*IB_WvS%nt%e{MCFm`&W*#LXc|HrD?nVBo=(8*=Aq?u$sDA_sC_RPDUiQ+wnIJET8vx$&fxkW~kP9qXKt zozR)@xGC!P)CTkjeWvXW5&@2?)qt)jiYWWBU?AUtzAN}{JE1I)dfz~7$;}~BmQF`k zpn11qmObXwRB8&rnEG*#4Xax3XBkKlw(;tb?Np^i+H8m(Wyz9k{~ogba@laiEk;2! zV*QV^6g6(QG%vX5Um#^sT&_e`B1pBW5yVth~xUs#0}nv?~C#l?W+9Lsb_5)!71rirGvY zTIJ$OPOY516Y|_014sNv+Z8cc5t_V=i>lWV=vNu#!58y9Zl&GsMEW#pPYPYGHQ|;vFvd*9eM==$_=vc7xnyz0~ zY}r??$<`wAO?JQk@?RGvkWVJlq2dk9vB(yV^vm{=NVI8dhsX<)O(#nr9YD?I?(VmQ z^r7VfUBn<~p3()8yOBjm$#KWx!5hRW)5Jl7wY@ky9lNM^jaT##8QGVsYeaVywmpv>X|Xj7gWE1Ezai&wVLt3p)k4w~yrskT-!PR!kiyQlaxl(( zXhF%Q9x}1TMt3~u@|#wWm-Vq?ZerK={8@~&@9r5JW}r#45#rWii};t`{5#&3$W)|@ zbAf2yDNe0q}NEUvq_Quq3cTjcw z@H_;$hu&xllCI9CFDLuScEMg|x{S7GdV8<&Mq=ezDnRZAyX-8gv97YTm0bg=d)(>N z+B2FcqvI9>jGtnK%eO%y zoBPkJTk%y`8TLf4)IXPBn`U|9>O~WL2C~C$z~9|0m*YH<-vg2CD^SX#&)B4ngOSG$ zV^wmy_iQk>dfN@Pv(ckfy&#ak@MLC7&Q6Ro#!ezM*VEh`+b3Jt%m(^T&p&WJ2Oqvj zs-4nq0TW6cv~(YI$n0UkfwN}kg3_fp?(ijSV#tR9L0}l2qjc7W?i*q01=St0eZ=4h zyGQbEw`9OEH>NMuIe)hVwYHsGERWOD;JxEiO7cQv%pFCeR+IyhwQ|y@&^24k+|8fD zLiOWFNJ2&vu2&`Jv96_z-Cd5RLgmeY3*4rDOQo?Jm`;I_(+ejsPM03!ly!*Cu}Cco zrQSrEDHNyzT(D5s1rZq!8#?f6@v6dB7a-aWs(Qk>N?UGAo{gytlh$%_IhyL7h?DLXDGx zgxGEBQoCAWo-$LRvM=F5MTle`M})t3vVv;2j0HZY&G z22^iGhV@uaJh(XyyY%} zd4iH_UfdV#T=3n}(Lj^|n;O4|$;xhu*8T3hR1mc_A}fK}jfZ7LX~*n5+`8N2q#rI$ z@<_2VANlYF$vIH$ zl<)+*tIWW78IIINA7Rr7i{<;#^yzxoLNkXL)eSs=%|P>$YQIh+ea_3k z_s7r4%j7%&*NHSl?R4k%1>Z=M9o#zxY!n8sL5>BO-ZP;T3Gut>iLS@U%IBrX6BA3k z)&@q}V8a{X<5B}K5s(c(LQ=%v1ocr`t$EqqY0EqVjr65usa=0bkf|O#ky{j3)WBR(((L^wmyHRzoWuL2~WTC=`yZ zn%VX`L=|Ok0v7?s>IHg?yArBcync5rG#^+u)>a%qjES%dRZoIyA8gQ;StH z1Ao7{<&}6U=5}4v<)1T7t!J_CL%U}CKNs-0xWoTTeqj{5{?Be$L0_tk>M9o8 zo371}S#30rKZFM{`H_(L`EM9DGp+Mifk&IP|C2Zu_)Ghr4Qtpmkm1osCf@%Z$%t+7 zYH$Cr)Ro@3-QDeQJ8m+x6%;?YYT;k6Z0E-?kr>x33`H%*ueBD7Zx~3&HtWn0?2Wt} zTG}*|v?{$ajzt}xPzV%lL1t-URi8*Zn)YljXNGDb>;!905Td|mpa@mHjIH%VIiGx- zd@MqhpYFu4_?y5N4xiHn3vX&|e6r~Xt> zZG`aGq|yTNjv;9E+Txuoa@A(9V7g?1_T5FzRI;!=NP1Kqou1z5?%X~Wwb{trRfd>i z8&y^H)8YnKyA_Fyx>}RNmQIczT?w2J4SNvI{5J&}Wto|8FR(W;Qw#b1G<1%#tmYzQ zQ2mZA-PAdi%RQOhkHy9Ea#TPSw?WxwL@H@cbkZwIq0B!@ns}niALidmn&W?!Vd4Gj zO7FiuV4*6Mr^2xlFSvM;Cp_#r8UaqIzHJQg_z^rEJw&OMm_8NGAY2)rKvki|o1bH~ z$2IbfVeY2L(^*rMRU1lM5Y_sgrDS`Z??nR2lX;zyR=c%UyGb*%TC-Dil?SihkjrQy~TMv6;BMs7P8il`H7DmpVm@rJ;b)hW)BL)GjS154b*xq-NXq2cwE z^;VP7ua2pxvCmxrnqUYQMH%a%nHmwmI33nJM(>4LznvY*k&C0{8f*%?zggpDgkuz&JBx{9mfb@wegEl2v!=}Sq2Gaty0<)UrOT0{MZtZ~j5y&w zXlYa_jY)I_+VA-^#mEox#+G>UgvM!Ac8zI<%JRXM_73Q!#i3O|)lOP*qBeJG#BST0 zqohi)O!|$|2SeJQo(w6w7%*92S})XfnhrH_Z8qe!G5>CglP=nI7JAOW?(Z29;pXJ9 zR9`KzQ=WEhy*)WH>$;7Cdz|>*i>=##0bB)oU0OR>>N<21e4rMCHDemNi2LD>Nc$;& zQRFthpWniC1J6@Zh~iJCoLOxN`oCKD5Q4r%ynwgUKPlIEd#?QViIqovY|czyK8>6B zSP%{2-<;%;1`#0mG^B(8KbtXF;Nf>K#Di72UWE4gQ%(_26Koiad)q$xRL~?pN71ZZ zujaaCx~jXjygw;rI!WB=xrOJO6HJ!!w}7eiivtCg5K|F6$EXa)=xUC za^JXSX98W`7g-tm@uo|BKj39Dl;sg5ta;4qjo^pCh~{-HdLl6qI9Ix6f$+qiZ$}s= zNguKrU;u+T@ko(Vr1>)Q%h$?UKXCY>3se%&;h2osl2D zE4A9bd7_|^njDd)6cI*FupHpE3){4NQ*$k*cOWZ_?CZ>Z4_fl@n(mMnYK62Q1d@+I zr&O))G4hMihgBqRIAJkLdk(p(D~X{-oBUA+If@B}j& zsHbeJ3RzTq96lB7d($h$xTeZ^gP0c{t!Y0c)aQE;$FY2!mACg!GDEMKXFOPI^)nHZ z`aSPJpvV0|bbrzhWWkuPURlDeN%VT8tndV8?d)eN*i4I@u zVKl^6{?}A?P)Fsy?3oi#clf}L18t;TjNI2>eI&(ezDK7RyqFxcv%>?oxUlonv(px) z$vnPzRH`y5A(x!yOIfL0bmgeMQB$H5wenx~!ujQK*nUBW;@Em&6Xv2%s(~H5WcU2R z;%Nw<$tI)a`Ve!>x+qegJnQsN2N7HaKzrFqM>`6R*gvh%O*-%THt zrB$Nk;lE;z{s{r^PPm5qz(&lM{sO*g+W{sK+m3M_z=4=&CC>T`{X}1Vg2PEfSj2x_ zmT*(x;ov%3F?qoEeeM>dUn$a*?SIGyO8m806J1W1o+4HRhc2`9$s6hM#qAm zChQ87b~GEw{ADfs+5}FJ8+|bIlIv(jT$Ap#hSHoXdd9#w<#cA<1Rkq^*EEkknUd4& zoIWIY)sAswy6fSERVm&!SO~#iN$OgOX*{9@_BWFyJTvC%S++ilSfCrO(?u=Dc?CXZ zzCG&0yVR{Z`|ZF0eEApWEo#s9osV>F{uK{QA@BES#&;#KsScf>y zvs?vIbI>VrT<*!;XmQS=bhq%46-aambZ(8KU-wOO2=en~D}MCToB_u;Yz{)1ySrPZ z@=$}EvjTdzTWU7c0ZI6L8=yP+YRD_eMMos}b5vY^S*~VZysrkq<`cK3>>v%uy7jgq z0ilW9KjVDHLv0b<1K_`1IkbTOINs0=m-22c%M~l=^S}%hbli-3?BnNq?b`hx^HX2J zIe6ECljRL0uBWb`%{EA=%!i^4sMcj+U_TaTZRb+~GOk z^ZW!nky0n*Wb*r+Q|9H@ml@Z5gU&W`(z4-j!OzC1wOke`TRAYGZVl$PmQ16{3196( zO*?`--I}Qf(2HIwb2&1FB^!faPA2=sLg(@6P4mN)>Dc3i(B0;@O-y2;lM4akD>@^v z=u>*|!s&9zem70g7zfw9FXl1bpJW(C#5w#uy5!V?Q(U35A~$dR%LDVnq@}kQm13{} zd53q3N(s$Eu{R}k2esbftfjfOITCL;jWa$}(mmm}d(&7JZ6d3%IABCapFFYjdEjdK z&4Edqf$G^MNAtL=uCDRs&Fu@FXRgX{*0<(@c3|PNHa>L%zvxWS={L8%qw`STm+=Rd zA}FLspESSIpE_^41~#5yI2bJ=9`oc;GIL!JuW&7YetZ?0H}$$%8rW@*J37L-~Rsx!)8($nI4 zZhcZ2^=Y+p4YPl%j!nFJA|*M^gc(0o$i3nlphe+~-_m}jVkRN{spFs(o0ajW@f3K{ zDV!#BwL322CET$}Y}^0ixYj2w>&Xh12|R8&yEw|wLDvF!lZ#dOTHM9pK6@Nm-@9Lnng4ZHBgBSrr7KI8YCC9DX5Kg|`HsiwJHg2(7#nS;A{b3tVO?Z% za{m5b3rFV6EpX;=;n#wltDv1LE*|g5pQ+OY&*6qCJZc5oDS6Z6JD#6F)bWxZSF@q% z+1WV;m!lRB!n^PC>RgQCI#D1br_o^#iPk>;K2hB~0^<~)?p}LG%kigm@moD#q3PE+ zA^Qca)(xnqw6x>XFhV6ku9r$E>bWNrVH9fum0?4s?Rn2LG{Vm_+QJHse6xa%nzQ?k zKug4PW~#Gtb;#5+9!QBgyB@q=sk9=$S{4T>wjFICStOM?__fr+Kei1 z3j~xPqW;W@YkiUM;HngG!;>@AITg}vAE`M2Pj9Irl4w1fo4w<|Bu!%rh%a(Ai^Zhi zs92>v5;@Y(Zi#RI*ua*h`d_7;byQSa*v9E{2x$<-_=5Z<7{%)}4XExANcz@rK69T0x3%H<@frW>RA8^swA+^a(FxK| zFl3LD*ImHN=XDUkrRhp6RY5$rQ{bRgSO*(vEHYV)3Mo6Jy3puiLmU&g82p{qr0F?ohmbz)f2r{X2|T2 z$4fdQ=>0BeKbiVM!e-lIIs8wVTuC_m7}y4A_%ikI;Wm5$9j(^Y z(cD%U%k)X>_>9~t8;pGzL6L-fmQO@K; zo&vQzMlgY95;1BSkngY)e{`n0!NfVgf}2mB3t}D9@*N;FQ{HZ3Pb%BK6;5#-O|WI( zb6h@qTLU~AbVW#_6?c!?Dj65Now7*pU{h!1+eCV^KCuPAGs28~3k@ueL5+u|Z-7}t z9|lskE`4B7W8wMs@xJa{#bsCGDFoRSNSnmNYB&U7 zVGKWe%+kFB6kb)e;TyHfqtU6~fRg)f|>=5(N36)0+C z`hv65J<$B}WUc!wFAb^QtY31yNleq4dzmG`1wHTj=c*=hay9iD071Hc?oYoUk|M*_ zU1GihAMBsM@5rUJ(qS?9ZYJ6@{bNqJ`2Mr+5#hKf?doa?F|+^IR!8lq9)wS3tF_9n zW_?hm)G(M+MYb?V9YoX^_mu5h-LP^TL^!Q9Z7|@sO(rg_4+@=PdI)WL(B7`!K^ND- z-uIuVDCVEdH_C@c71YGYT^_Scf_dhB8Z2Xy6vGtBSlYud9vggOqv^L~F{BraSE_t} zIkP+Hp2&nH^-MNEs}^`oMLy11`PQW$T|K(`Bu*(f@)mv1-qY(_YG&J2M2<7k;;RK~ zL{Fqj9yCz8(S{}@c)S!65aF<=&eLI{hAMErCx&>i7OeDN>okvegO87OaG{Jmi<|}D zaT@b|0X{d@OIJ7zvT>r+eTzgLq~|Dpu)Z&db-P4z*`M$UL51lf>FLlq6rfG)%doyp z)3kk_YIM!03eQ8Vu_2fg{+osaEJPtJ-s36R+5_AEG12`NG)IQ#TF9c@$99%0iye+ zUzZ57=m2)$D(5Nx!n)=5Au&O0BBgwxIBaeI(mro$#&UGCr<;C{UjJVAbVi%|+WP(a zL$U@TYCxJ=1{Z~}rnW;7UVb7+ZnzgmrogDxhjLGo>c~MiJAWs&&;AGg@%U?Y^0JhL ze(x6Z74JG6FlOFK(T}SXQfhr}RIFl@QXKnIcXYF)5|V~e-}suHILKT-k|<*~Ij|VF zC;t@=uj=hot~*!C68G8hTA%8SzOfETOXQ|3FSaIEjvBJp(A)7SWUi5!Eu#yWgY+;n zlm<$+UDou*V+246_o#V4kMdto8hF%%Lki#zPh}KYXmMf?hrN0;>Mv%`@{0Qn`Ujp) z=lZe+13>^Q!9zT);H<(#bIeRWz%#*}sgUX9P|9($kexOyKIOc`dLux}c$7It4u|Rl z6SSkY*V~g_B-hMPo_ak>>z@AVQ(_N)VY2kB3IZ0G(iDUYw+2d7W^~(Jq}KY=JnWS( z#rzEa&0uNhJ>QE8iiyz;n2H|SV#Og+wEZv=f2%1ELX!SX-(d3tEj$5$1}70Mp<&eI zCkfbByL7af=qQE@5vDVxx1}FSGt_a1DoE3SDI+G)mBAna)KBG4p8Epxl9QZ4BfdAN zFnF|Y(umr;gRgG6NLQ$?ZWgllEeeq~z^ZS7L?<(~O&$5|y)Al^iMKy}&W+eMm1W z7EMU)u^ke(A1#XCV>CZ71}P}0x)4wtHO8#JRG3MA-6g=`ZM!FcICCZ{IEw8Dm2&LQ z1|r)BUG^0GzI6f946RrBlfB1Vs)~8toZf~7)+G;pv&XiUO(%5bm)pl=p>nV^o*;&T z;}@oZSibzto$arQgfkp|z4Z($P>dTXE{4O=vY0!)kDO* zGF8a4wq#VaFpLfK!iELy@?-SeRrdz%F*}hjKcA*y@mj~VD3!it9lhRhX}5YOaR9$} z3mS%$2Be7{l(+MVx3 z(4?h;P!jnRmX9J9sYN#7i=iyj_5q7n#X(!cdqI2lnr8T$IfOW<_v`eB!d9xY1P=2q&WtOXY=D9QYteP)De?S4}FK6#6Ma z=E*V+#s8>L;8aVroK^6iKo=MH{4yEZ_>N-N z`(|;aOATba1^asjxlILk<4}f~`39dBFlxj>Dw(hMYKPO3EEt1@S`1lxFNM+J@uB7T zZ8WKjz7HF1-5&2=l=fqF-*@>n5J}jIxdDwpT?oKM3s8Nr`x8JnN-kCE?~aM1H!hAE z%%w(3kHfGwMnMmNj(SU(w42OrC-euI>Dsjk&jz3ts}WHqmMpzQ3vZrsXrZ|}+MHA7 z068obeXZTsO*6RS@o3x80E4ok``rV^Y3hr&C1;|ZZ0|*EKO`$lECUYG2gVFtUTw)R z4Um<0ZzlON`zTdvVdL#KFoMFQX*a5wM0Czp%wTtfK4Sjs)P**RW&?lP$(<}q%r68Z zS53Y!d@&~ne9O)A^tNrXHhXBkj~$8j%pT1%%mypa9AW5E&s9)rjF4@O3ytH{0z6riz|@< zB~UPh*wRFg2^7EbQrHf0y?E~dHlkOxof_a?M{LqQ^C!i2dawHTPYUE=X@2(3<=OOxs8qn_(y>pU>u^}3y&df{JarR0@VJn0f+U%UiF=$Wyq zQvnVHESil@d|8&R<%}uidGh7@u^(%?$#|&J$pvFC-n8&A>utA=n3#)yMkz+qnG3wd zP7xCnF|$9Dif@N~L)Vde3hW8W!UY0BgT2v(wzp;tlLmyk2%N|0jfG$%<;A&IVrOI< z!L)o>j>;dFaqA3pL}b-Je(bB@VJ4%!JeX@3x!i{yIeIso^=n?fDX`3bU=eG7sTc%g%ye8$v8P@yKE^XD=NYxTb zbf!Mk=h|otpqjFaA-vs5YOF-*GwWPc7VbaOW&stlANnCN8iftFMMrUdYNJ_Bnn5Vt zxfz@Ah|+4&P;reZxp;MmEI7C|FOv8NKUm8njF7Wb6Gi7DeODLl&G~}G4be&*Hi0Qw z5}77vL0P+7-B%UL@3n1&JPxW^d@vVwp?u#gVcJqY9#@-3X{ok#UfW3<1fb%FT`|)V~ggq z(3AUoUS-;7)^hCjdT0Kf{i}h)mBg4qhtHHBti=~h^n^OTH5U*XMgDLIR@sre`AaB$ zg)IGBET_4??m@cx&c~bA80O7B8CHR7(LX7%HThkeC*@vi{-pL%e)yXp!B2InafbDF zjPXf1mko3h59{lT6EEbxKO1Z5GF71)WwowO6kY|6tjSVSWdQ}NsK2x{>i|MKZK8%Q zfu&_0D;CO-Jg0#YmyfctyJ!mRJp)e#@O0mYdp|8x;G1%OZQ3Q847YWTyy|%^cpA;m zze0(5p{tMu^lDkpe?HynyO?a1$_LJl2L&mpeKu%8YvgRNr=%2z${%WThHG=vrWY@4 zsA`OP#O&)TetZ>s%h!=+CE15lOOls&nvC~$Qz0Ph7tHiP;O$i|eDwpT{cp>+)0-|; zY$|bB+Gbel>5aRN3>c0x)4U=|X+z+{ zn*_p*EQoquRL+=+p;=lm`d71&1NqBz&_ph)MXu(Nv6&XE7(RsS)^MGj5Q?Fwude-(sq zjJ>aOq!7!EN>@(fK7EE#;i_BGvli`5U;r!YA{JRodLBc6-`n8K+Fjgwb%sX;j=qHQ z7&Tr!)!{HXoO<2BQrV9Sw?JRaLXV8HrsNevvnf>Y-6|{T!pYLl7jp$-nEE z#X!4G4L#K0qG_4Z;Cj6=;b|Be$hi4JvMH!-voxqx^@8cXp`B??eFBz2lLD8RRaRGh zn7kUfy!YV~p(R|p7iC1Rdgt$_24i0cd-S8HpG|`@my70g^y`gu%#Tf_L21-k?sRRZHK&at(*ED0P8iw{7?R$9~OF$Ko;Iu5)ur5<->x!m93Eb zFYpIx60s=Wxxw=`$aS-O&dCO_9?b1yKiPCQmSQb>T)963`*U+Ydj5kI(B(B?HNP8r z*bfSBpSu)w(Z3j7HQoRjUG(+d=IaE~tv}y14zHHs|0UcN52fT8V_<@2ep_ee{QgZG zmgp8iv4V{k;~8@I%M3<#B;2R>Ef(Gg_cQM7%}0s*^)SK6!Ym+~P^58*wnwV1BW@eG z4sZLqsUvBbFsr#8u7S1r4teQ;t)Y@jnn_m5jS$CsW1um!p&PqAcc8!zyiXHVta9QC zY~wCwCF0U%xiQPD_INKtTb;A|Zf29(mu9NI;E zc-e>*1%(LSXB`g}kd`#}O;veb<(sk~RWL|f3ljxCnEZDdNSTDV6#Td({6l&y4IjKF z^}lIUq*ZUqgTPumD)RrCN{M^jhY>E~1pn|KOZ5((%F)G|*ZQ|r4zIbrEiV%42hJV8 z3xS)=!X1+=olbdGJ=yZil?oXLct8FM{(6ikLL3E%=q#O6(H$p~gQu6T8N!plf!96| z&Q3=`L~>U0zZh;z(pGR2^S^{#PrPxTRHD1RQOON&f)Siaf`GLj#UOk&(|@0?zm;Sx ztsGt8=29-MZs5CSf1l1jNFtNt5rFNZxJPvkNu~2}7*9468TWm>nN9TP&^!;J{-h)_ z7WsHH9|F%I`Pb!>KAS3jQWKfGivTVkMJLO-HUGM_a4UQ_%RgL6WZvrW+Z4ujZn;y@ zz9$=oO!7qVTaQAA^BhX&ZxS*|5dj803M=k&2%QrXda`-Q#IoZL6E(g+tN!6CA!CP* zCpWtCujIea)ENl0liwVfj)Nc<9mV%+e@=d`haoZ*`B7+PNjEbXBkv=B+Pi^~L#EO$D$ZqTiD8f<5$eyb54-(=3 zh)6i8i|jp(@OnRrY5B8t|LFXFQVQ895n*P16cEKTrT*~yLH6Z4e*bZ5otpRDri&+A zfNbK1D5@O=sm`fN=WzWyse!za5n%^+6dHPGX#8DyIK>?9qyX}2XvBWVqbP%%D)7$= z=#$WulZlZR<{m#gU7lwqK4WS1Ne$#_P{b17qe$~UOXCl>5b|6WVh;5vVnR<%d+Lnp z$uEmML38}U4vaW8>shm6CzB(Wei3s#NAWE3)a2)z@i{4jTn;;aQS)O@l{rUM`J@K& l00vQ5JBs~;vo!vr%%-k{2_Fq1Mn4QF81S)AQ99zk{{c4yR+0b! literal 0 HcmV?d00001 diff --git a/7 WEEK/seob/gradle/wrapper/gradle-wrapper.properties b/7 WEEK/seob/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..1af9e093 --- /dev/null +++ b/7 WEEK/seob/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/7 WEEK/seob/gradlew b/7 WEEK/seob/gradlew new file mode 100644 index 00000000..1aa94a42 --- /dev/null +++ b/7 WEEK/seob/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/7 WEEK/seob/gradlew.bat b/7 WEEK/seob/gradlew.bat new file mode 100644 index 00000000..93e3f59f --- /dev/null +++ b/7 WEEK/seob/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/7 WEEK/seob/settings.gradle b/7 WEEK/seob/settings.gradle new file mode 100644 index 00000000..c7efaebf --- /dev/null +++ b/7 WEEK/seob/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'seob' diff --git a/7 WEEK/seob/src/main/java/week7/seob/SeobApplication.java b/7 WEEK/seob/src/main/java/week7/seob/SeobApplication.java new file mode 100644 index 00000000..f5359e45 --- /dev/null +++ b/7 WEEK/seob/src/main/java/week7/seob/SeobApplication.java @@ -0,0 +1,13 @@ +package week7.seob; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SeobApplication { + + public static void main(String[] args) { + SpringApplication.run(SeobApplication.class, args); + } + +} diff --git a/7 WEEK/seob/src/main/resources/application.properties b/7 WEEK/seob/src/main/resources/application.properties new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/7 WEEK/seob/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/7 WEEK/seob/src/test/java/week7/seob/SeobApplicationTests.java b/7 WEEK/seob/src/test/java/week7/seob/SeobApplicationTests.java new file mode 100644 index 00000000..bd73d7d1 --- /dev/null +++ b/7 WEEK/seob/src/test/java/week7/seob/SeobApplicationTests.java @@ -0,0 +1,13 @@ +package week7.seob; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class SeobApplicationTests { + + @Test + void contextLoads() { + } + +} From 323a77954ada7f1d9e3feadd0ac86129e7994947 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 18:35:14 +0900 Subject: [PATCH 081/188] [BE] (feat) Create NetworkClient [BE] (feat) Create NetworkClient --- .../week7/seob/lifecycle/NetworkClient.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java diff --git a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java new file mode 100644 index 00000000..52f3b66f --- /dev/null +++ b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java @@ -0,0 +1,30 @@ +package week7.seob.lifecycle; + +public class NetworkClient { + + private String url; + + public NetworkClient() { + System.out.println("생성자 호출, url = " + url); + connect(); + call("초기화 연결 메시지"); + } + + public void setUrl(String url) { + this.url = url; + } + + //서비스 시작시 호출 + public void connect() { + System.out.println("connect: " + url); + } + + public void call(String message) { + System.out.println("call: " + url + " message = " + message); + } + + //서비스 종료시 호출 + public void disconnect() { + System.out.println("close: " + url); + } +} From 34348e6a9e1b3eb25ae2c0572f0ca3a5c9226767 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 18:35:44 +0900 Subject: [PATCH 082/188] [BE] (feat) Create BeanLifeCycleTest [BE] (feat) Create BeanLifeCycleTest --- .../seob/lifecycle/BeanLifeCycleTest.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java diff --git a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java new file mode 100644 index 00000000..8b8e8a67 --- /dev/null +++ b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java @@ -0,0 +1,29 @@ +package week7.seob.lifecycle; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +public class BeanLifeCycleTest { + + + @Test + public void lifeCycleTest() { + ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class); + NetworkClient client = ac.getBean(NetworkClient.class); + ac.close(); + } + + + @Configuration + static class LifeCycleConfig { + @Bean + public NetworkClient networkClient() { + NetworkClient networkClient = new NetworkClient(); + networkClient.setUrl("http://hello-spring.dev"); + return networkClient; + } + } +} From f31f12df9ee2a45d6584490137037a0008935a92 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 18:38:10 +0900 Subject: [PATCH 083/188] =?UTF-8?q?[BE]=20(docs)=20=EB=B9=88=20=EC=83=9D?= =?UTF-8?q?=EB=AA=85=EC=A3=BC=EA=B8=B0=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 빈 생명주기 정리 --- 7 WEEK/seob/7WEEK.md | 105 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 7 WEEK/seob/7WEEK.md diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md new file mode 100644 index 00000000..f7646cb0 --- /dev/null +++ b/7 WEEK/seob/7WEEK.md @@ -0,0 +1,105 @@ +# 8. 빈 생명주기 콜백 +___ +## 빈 생명주기 콜백 시작 + +데이터베이스 커넥션 풀, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, +애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화 작업이 필요. + +`NetworkClient` 는 애플리케이션 시작 시점에 `connect()`를 호출해서 연결, 애플리케이션이 종료되면 +`disConnect()`를 호출해서 연결을 끊어야 한다. + + +```java +package hello.core.lifecycle; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +public class BeanLifeCycleTest { + + @Test + public void lifeCycleTest() { + ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class); + NetworkClient client = ac.getBean(NetworkClient.class); + ac.close(); + } + + @Configuration + static class LifeCycleConfig { + @Bean + public NetworkClient networkClient() { + NetworkClient networkClient = new NetworkClient(); + networkClient.setUrl("http://hello-spring.dev"); + return networkClient; + } + } +} +``` + +```java +package hello.core.lifecycle; + +public class NetworkClient { + + private String url; + + public NetworkClient() { + System.out.println("생성자 호출, url = " + url); + connect(); + call("초기화 연결 메시지"); + } + + public void setUrl(String url) { + this.url = url; + } + + //서비스 시작시 호출 + public void connect() { + System.out.println("connect: " + url); + } + + public void call(String message) { + System.out.println("call: " + url + " message = " + message); + } + + //서비스 종료시 호출 + public void disconnect() { + System.out.println("close: " + url); + } +} +``` + +실행결과 +``` +생성자 호출, url = null +connect: null +call: null message = 초기화 연결 메시지 +``` + +@Bean 에서 NetworkClient 생성자 호출 -> setUrl 을 하지 않아 null 표시 -> connect 역시 null -> call message도 null 표시함
+생성자 호출 후 setter로 url 등록하였음. + +스프링 빈은 간단하게 다음과 같은 라이프 사이클을 가진다.
+**객체 생성** -> **의존관계 주입** + +스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에 필요한 데이터를 사용할 수 있는 준비가 완료된다. +따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 한다.
+**스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공**한다. +또한 **스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백**을 준다. 따라서 안전하게 종료 작업을 진행할 수 있다. + +**스프링 빈의 이벤트 라이프사이클**
+**스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료** +- **초기화 콜백** : 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출 +- **소멸전 콜백** : 빈이 소멸되기 직전에 호출 + +>**참고 : 객체의 생성과 초기화를 분리하자**
+>생성자는 필수 정보(파라미터)를 받고, 메모리를 할당해서 객체를 생성하는 책임을 가진다. 반면에 초기화는 +> 어떻게 생성된 값들을 활용해서 외부 커넥션을 연결하는 등 무거운 동작을 수행한다.
+> 따라서 생성자 안에서 무거운 초기화 작업을 함께 하는 것 보다는 객체를 생성하는 부분과 초기화 하는 부분을 명확학게 +> 나누는 것이 유지보수 관점에서 좋다. 물론 초기화 작업이 내부 값들만 약간 변경하는 정도로 단순한 경우에는 생성자에서 +> 한번에 다 처리하는게 더 나을 수 있다. + +


From a8aa14d5a988cc187f78da8c1ea6b46df64525a7 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 20:28:47 +0900 Subject: [PATCH 084/188] [BE] (refactor) Refactor NetworkClient to implements Spring lifecycle callbacks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Refactor NetworkClient to implements Spring lifecycle callbacks InitializeBean, DisposableBean 인터페이스 구현 --- .../week7/seob/lifecycle/NetworkClient.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java index 52f3b66f..5e7a58cc 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java +++ b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java @@ -1,6 +1,9 @@ package week7.seob.lifecycle; -public class NetworkClient { +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; + +public class NetworkClient implements InitializingBean, DisposableBean { private String url; @@ -27,4 +30,19 @@ public void call(String message) { public void disconnect() { System.out.println("close: " + url); } + + //의존관계 주입이 끝난 후 + @Override + public void afterPropertiesSet() throws Exception { + System.out.println("\nNetworkClient.afterPropertiesSet"); + connect(); + call("초기화 연결 메시지"); + } + + //Bean이 종료될 때 + @Override + public void destroy() throws Exception { + System.out.println("\nNetworkClient.destory"); + disconnect(); + } } From 8308a44482c4b318227e4f583253ab0bf50416f2 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 20:33:51 +0900 Subject: [PATCH 085/188] =?UTF-8?q?[BE]=20(docs)=20=EC=9D=B8=ED=84=B0?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=8A=A4=EB=A5=BC=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=9C=20=EB=B9=88=20=EC=83=9D=EB=AA=85=EC=A3=BC=EA=B8=B0=20?= =?UTF-8?q?=EC=BD=9C=EB=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 인터페이스를 사용한 빈 생명주기 콜백 --- 7 WEEK/seob/7WEEK.md | 77 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index f7646cb0..9a9dde2c 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -103,3 +103,80 @@ call: null message = 초기화 연결 메시지 > 한번에 다 처리하는게 더 나을 수 있다.


+ +**스프링이 지원하는 빈 생명주기 콜백** +- 인터페이스(InitializeBean, DisposableBean) +- 설정 정보에 초기화 메서드, 종료 메서드 지정 +- @PostConstruct, @PreDestroy 애노테이션 지원 + +

+ +### 인터페이스(InitializeBean, DisposableBean) +```java +package week7.seob.lifecycle; + + +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; + +public class NetworkClient implements InitializingBean, DisposableBean { + + private String url; + + public NetworkClient() { + System.out.println("생성자 호출, url = " + url); + } + + public void setUrl(String url) { + this.url = url; + } + + //서비스 시작시 호출 + public void connect() { + System.out.println("connect: " + url); + } + + public void call(String message) { + System.out.println("call: " + url + " message = " + message); + } + + //서비스 종료시 호출 + public void disconnect() { + System.out.println("close: " + url); + } + + //의존관계 주입이 끝난 후 + @Override + public void afterPropertiesSet() throws Exception { + System.out.println("\nNetworkClient.afterPropertiesSet"); + connect(); + call("초기화 연결 메시지"); + } + + //Bean이 종료될 때 + @Override + public void destroy() throws Exception { + System.out.println("\nNetworkClient.destory"); + disconnect(); + } +} +``` + +실행결과 +``` +생성자 호출, url = null + +NetworkClient.afterPropertiesSet +connect: http://hello-spring.dev +call: http://hello-spring.dev message = 초기화 연결 메시지 + +NetworkClient.destory +close: http://hello-spring.dev +``` + +**초기화, 소멸 인터페이스 단점** +- 이 인터페이스는 스프링 전용 인터페이스. 해당 코드가 스프링 전용 인터페이스에 의존한다. +- 초기화, 소멸 메서드의 이름을 변경할 수 없다. +- 내가 코드를 고칠 수 없는 외부 라이브러리에 적용할 수 없다. + +>참고 : 인터페이스를 사용하는 초기화, 종료 방법은 스프링 초창기에 나온 방법들이고, 지금은 더 나은 방법들이 있어서 거의 사용하지 않는다. \ No newline at end of file From 6225cbac8e4634abad3609324ef4dad3a526a765 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 21:19:31 +0900 Subject: [PATCH 086/188] [BE] (refactor) Refactor NetworkClient lifecycle methods MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Refactor NetworkClient lifecycle methods 스프링 빈을 사용하기 위한 메서드 수정 --- .../week7/seob/lifecycle/BeanLifeCycleTest.java | 2 +- .../java/week7/seob/lifecycle/NetworkClient.java | 16 +++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java index 8b8e8a67..8e83c2f5 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java +++ b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java @@ -19,7 +19,7 @@ public void lifeCycleTest() { @Configuration static class LifeCycleConfig { - @Bean + @Bean(initMethod = "init", destroyMethod = "close") public NetworkClient networkClient() { NetworkClient networkClient = new NetworkClient(); networkClient.setUrl("http://hello-spring.dev"); diff --git a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java index 5e7a58cc..d9500fcd 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java +++ b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java @@ -1,16 +1,12 @@ package week7.seob.lifecycle; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; -public class NetworkClient implements InitializingBean, DisposableBean { +public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호출, url = " + url); - connect(); - call("초기화 연결 메시지"); } public void setUrl(String url) { @@ -32,17 +28,15 @@ public void disconnect() { } //의존관계 주입이 끝난 후 - @Override - public void afterPropertiesSet() throws Exception { - System.out.println("\nNetworkClient.afterPropertiesSet"); + public void init() { + System.out.println("\nNetworkClient.init"); connect(); call("초기화 연결 메시지"); } //Bean이 종료될 때 - @Override - public void destroy() throws Exception { - System.out.println("\nNetworkClient.destory"); + public void close() { + System.out.println("\nNetworkClient.close"); disconnect(); } } From 8de00d894dcd2b7081e2c0bd9e41f7e701236aa5 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 21:20:08 +0900 Subject: [PATCH 087/188] =?UTF-8?q?[BE]=20(docs)=20=EB=B9=88=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=EC=B4=88=EA=B8=B0=ED=99=94,=20=EC=86=8C=EB=A9=B8?= =?UTF-8?q?=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 빈 등록 초기화, 소멸 메서드 정리 --- 7 WEEK/seob/7WEEK.md | 110 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index 9a9dde2c..1e100269 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -179,4 +179,112 @@ close: http://hello-spring.dev - 초기화, 소멸 메서드의 이름을 변경할 수 없다. - 내가 코드를 고칠 수 없는 외부 라이브러리에 적용할 수 없다. ->참고 : 인터페이스를 사용하는 초기화, 종료 방법은 스프링 초창기에 나온 방법들이고, 지금은 더 나은 방법들이 있어서 거의 사용하지 않는다. \ No newline at end of file +>참고 : 인터페이스를 사용하는 초기화, 종료 방법은 스프링 초창기에 나온 방법들이고, 지금은 더 나은 방법들이 있어서 거의 사용하지 않는다. + + +

+### 빈 등록 초기화, 소멸 메서드 + +설정 정보에 `@Bean(initMethod = "init", destroyMethod = "close"` 처럼 초기화, 소멸 메서드 지정 + +```java +package week7.seob.lifecycle; + + +public class NetworkClient { + + private String url; + + public NetworkClient() { + System.out.println("생성자 호출, url = " + url); + } + + public void setUrl(String url) { + this.url = url; + } + + //서비스 시작시 호출 + public void connect() { + System.out.println("connect: " + url); + } + + public void call(String message) { + System.out.println("call: " + url + " message = " + message); + } + + //서비스 종료시 호출 + public void disconnect() { + System.out.println("close: " + url); + } + + //의존관계 주입이 끝난 후 + public void init() { + System.out.println("\nNetworkClient.init"); + connect(); + call("초기화 연결 메시지"); + } + + //Bean이 종료될 때 + public void close() { + System.out.println("\nNetworkClient.close"); + disconnect(); + } +} +``` + + +```java +package week7.seob.lifecycle; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +public class BeanLifeCycleTest { + + + @Test + public void lifeCycleTest() { + ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class); + NetworkClient client = ac.getBean(NetworkClient.class); + ac.close(); + } + + + @Configuration + static class LifeCycleConfig { + @Bean(initMethod = "init", destroyMethod = "close") + public NetworkClient networkClient() { + NetworkClient networkClient = new NetworkClient(); + networkClient.setUrl("http://hello-spring.dev"); + return networkClient; + } + } +} +``` +실행결과 +``` +생성자 호출, url = null + +NetworkClient.init +connect: http://hello-spring.dev +call: http://hello-spring.dev message = 초기화 연결 메시지 + +NetworkClient.close +close: http://hello-spring.dev +``` + +**설정 정보 사용 특징** +- 메서드 이름을 자유롭게 줄 수 있다. +- 스프링 빈이 스프링 코드에 의존하지 않는다. +- 코드가 아니라 설정 정보를 사용하기 때문에 코드를 고칠 수 없는 외부 라이브러리에도 초기화, 종료 메서드를 적용할 수 있다. + +**종료 메서드 추론** +- `@Bean의 destroyMethod` 속성에는 아주 특별한 기능이 있다. +- 라이브러리는 대부분 `close`, `shutdown` 이라는 이름의 종료 메서드를 사용한다. +- @Bean의 `destroyMethod`는 기본값이 `(inferred)`(추론) 으로 등록되어 있다. +- 이 추론 기능은 `close`, `shutdown`라는 이름의 메서드를 자동으로 호출해준다. 이름 그대로 종료 메서드를 추론해서 호출해준다. +- 따라서 직접 스프링 빈으로 등록하면 종료 메서드는 따로 적어주지 않아도 잘 동작한다. +- 추론 기능을 사용하기 싫으면 `destroyMethod=""`처럼 빈 공백을 지정하면 된다. \ No newline at end of file From dd1f545f869eb0c295c0ab2a74934a02f9418557 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 22:08:52 +0900 Subject: [PATCH 088/188] [BE] (refactor) Refactor NetworkClient lifecycle methods MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Refactor NetworkClient lifecycle methods NetworkClient 클래스의 초기화와 소멸 메서드@PostConstruct와 @PreDestroy 를 사용하도록 함 --- .../test/java/week7/seob/lifecycle/BeanLifeCycleTest.java | 2 +- .../src/test/java/week7/seob/lifecycle/NetworkClient.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java index 8e83c2f5..a9c5cdb2 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java +++ b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/BeanLifeCycleTest.java @@ -19,7 +19,7 @@ public void lifeCycleTest() { @Configuration static class LifeCycleConfig { - @Bean(initMethod = "init", destroyMethod = "close") + @Bean //(initMethod = "init", destroyMethod = "close") public NetworkClient networkClient() { NetworkClient networkClient = new NetworkClient(); networkClient.setUrl("http://hello-spring.dev"); diff --git a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java index d9500fcd..c3033f6a 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java +++ b/7 WEEK/seob/src/test/java/week7/seob/lifecycle/NetworkClient.java @@ -1,6 +1,9 @@ package week7.seob.lifecycle; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; + public class NetworkClient { private String url; @@ -28,6 +31,7 @@ public void disconnect() { } //의존관계 주입이 끝난 후 + @PostConstruct public void init() { System.out.println("\nNetworkClient.init"); connect(); @@ -35,6 +39,7 @@ public void init() { } //Bean이 종료될 때 + @PreDestroy public void close() { System.out.println("\nNetworkClient.close"); disconnect(); From 36f41be56fe5737d0ecd7c1fe5de4d26964cc524 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 22:09:59 +0900 Subject: [PATCH 089/188] =?UTF-8?q?[BE]=20(docs)=20=EC=95=A0=EB=85=B8?= =?UTF-8?q?=ED=85=8C=EC=9D=B4=EC=85=98=20=EB=B0=A9=EB=B2=95=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 애노테이션 방법 정리 @PostConstructor, @PreDestroy에 대한 내용 정리 --- 7 WEEK/seob/7WEEK.md | 123 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index 1e100269..c0021edc 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -287,4 +287,125 @@ close: http://hello-spring.dev - @Bean의 `destroyMethod`는 기본값이 `(inferred)`(추론) 으로 등록되어 있다. - 이 추론 기능은 `close`, `shutdown`라는 이름의 메서드를 자동으로 호출해준다. 이름 그대로 종료 메서드를 추론해서 호출해준다. - 따라서 직접 스프링 빈으로 등록하면 종료 메서드는 따로 적어주지 않아도 잘 동작한다. -- 추론 기능을 사용하기 싫으면 `destroyMethod=""`처럼 빈 공백을 지정하면 된다. \ No newline at end of file +- 추론 기능을 사용하기 싫으면 `destroyMethod=""`처럼 빈 공백을 지정하면 된다. + +

+ +### 애노테이션 @PostConstruct, @PreDestroy +```java +package week7.seob.lifecycle; + + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; + +public class NetworkClient { + + private String url; + + public NetworkClient() { + System.out.println("생성자 호출, url = " + url); + } + + public void setUrl(String url) { + this.url = url; + } + + //서비스 시작시 호출 + public void connect() { + System.out.println("connect: " + url); + } + + public void call(String message) { + System.out.println("call: " + url + " message = " + message); + } + + //서비스 종료시 호출 + public void disconnect() { + System.out.println("close: " + url); + } + + //의존관계 주입이 끝난 후 + @PostConstruct + public void init() { + System.out.println("\nNetworkClient.init"); + connect(); + call("초기화 연결 메시지"); + } + + //Bean이 종료될 때 + @PreDestroy + public void close() { + System.out.println("\nNetworkClient.close"); + disconnect(); + } +} +``` + +```java +package week7.seob.lifecycle; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +public class BeanLifeCycleTest { + + + @Test + public void lifeCycleTest() { + ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class); + NetworkClient client = ac.getBean(NetworkClient.class); + ac.close(); + } + + + @Configuration + static class LifeCycleConfig { + @Bean //(initMethod = "init", destroyMethod = "close") + public NetworkClient networkClient() { + NetworkClient networkClient = new NetworkClient(); + networkClient.setUrl("http://hello-spring.dev"); + return networkClient; + } + } +} +``` + +실행결과 +``` +생성자 호출, url = null + +NetworkClient.init +connect: http://hello-spring.dev +call: http://hello-spring.dev message = 초기화 연결 메시지 + +NetworkClient.close +close: http://hello-spring.dev +``` + +`@PostConstruct`, `@PreDestroy`이 두 애노페이션을 사용하면 가장 편리하게 초기화와 종료를 실행할 수 있다. + + +**@PostConstruct, @PreDestroy 애노테이션 특징** +- 최신 스프링에서 가장 권장하는 방법. +- 애노테이션 하나만 붙이면 되므로 매우 편리. +- 패키지가 `javax.annotation.PostConstruct`이다. 스프리에 종속적인 기술이 아니라 JSR-250라는 자바 표준이다. +따라서 스프링이 아닌 다른 컨테이너에서도 동작한다. +- 컴포넌트 스캔과 잘 어울린다. +- 유일한 단점 : 외부 라이브러리에 적용하지 못함. 외부 라이브러리 초기화, 종료를 해야 한다면 `@Bean` 의 기능을 사용해야한다. + +**정리** +- **@PostConstruct, @PreDestroy 애노테이션을 사용하자** +- 코드를 고칠 수 없는 외부 라이브러리 초기화, 종료를 해야한다면 `@Bean` 의 `initMethod`, `destroyMethod`를 사용하자. + + + +

+

+ +___ + + From 7363809681abf04c6e3e1f769fe68a1dc4bce2ec Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 22:21:50 +0900 Subject: [PATCH 090/188] =?UTF-8?q?[BE]=20(docs)=20=EC=8B=B1=EA=B8=80?= =?UTF-8?q?=ED=86=A4=20=EB=B9=88=20=EC=8A=A4=EC=BD=94=ED=94=84=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 싱글톤 빈 스코프 정리 --- 7 WEEK/seob/7WEEK.md | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index c0021edc..ba37ef2f 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -407,5 +407,42 @@ close: http://hello-spring.dev

___ +

+ +# 9. 빈 스코프 +___ + +## 빈 스코프란 +스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지된다고 학습함. +이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻한다. + +**스프링은 다음과 같은 다양한 스코프를 지원한다.** +- **싱글톤** : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프. +- **프로토타입** : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프. +- **웹 관련 스코프** : + - **request** : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프. + - **session** : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프. + - **application** : 웹의 Servlet Context와 같은 범위로 유지되는 스코프이다. + + +
+빈 스코프 지정 방법

+ +**컴포넌트 스캔 자동 등록** +```java +@Scope("prototype") +@Component +public static HelloBean{} +``` + + +**수동 등록** +```java +@Scope("prototype") +@Bean +PrototypeBean HelloBean(){ + return new HelloBean(); +} +``` + - From 02a65d939aac94875fae60d6eb9da6fb84f6c2cb Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 22:49:30 +0900 Subject: [PATCH 091/188] [BE] (feat) Create SingletonTest [BE] (feat) Create SingletonTest --- .../java/week7/seob/scope/SingletonTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 7 WEEK/seob/src/test/java/week7/seob/scope/SingletonTest.java diff --git a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonTest.java b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonTest.java new file mode 100644 index 00000000..905cb248 --- /dev/null +++ b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonTest.java @@ -0,0 +1,38 @@ +package week7.seob.scope; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Scope; + +public class SingletonTest { + + @Test + void singletonBeanFind() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SingletonBean.class); + SingletonBean singletonBean1 = ac.getBean(SingletonBean.class); + SingletonBean singletonBean2 = ac.getBean(SingletonBean.class); + + System.out.println("singletonBean1 = " + singletonBean1); + System.out.println("singletonBean2 = " + singletonBean2); + Assertions.assertThat(singletonBean1).isEqualTo(singletonBean2); + + ac.close(); + } + + @Scope("singleton") + static class SingletonBean{ + @PostConstruct + public void init() { + System.out.println("SingletonBean.init"); + } + + @PreDestroy + public void destroy() { + System.out.println("SingletonBean.destroy"); + } + } + +} From 48220f7cd023c922f4fbb997ebae01b32213b865 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 22:52:24 +0900 Subject: [PATCH 092/188] =?UTF-8?q?[BE]=20(docs)=20=EC=8B=B1=EA=B8=80?= =?UTF-8?q?=ED=86=A4=20=EC=8A=A4=EC=BD=94=ED=94=84=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 싱글톤 스코프 테스트 정리 --- 7 WEEK/seob/7WEEK.md | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index ba37ef2f..c43f4960 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -445,4 +445,52 @@ PrototypeBean HelloBean(){ } ``` +```java +package week7.seob.scope; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Scope; + +public class SingletonTest { + + @Test + void singletonBeanFind() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SingletonBean.class); + SingletonBean singletonBean1 = ac.getBean(SingletonBean.class); + SingletonBean singletonBean2 = ac.getBean(SingletonBean.class); + + System.out.println("singletonBean1 = " + singletonBean1); + System.out.println("singletonBean2 = " + singletonBean2); + Assertions.assertThat(singletonBean1).isEqualTo(singletonBean2); + + ac.close(); + } + + @Scope("singleton") + static class SingletonBean{ + @PostConstruct + public void init() { + System.out.println("SingletonBean.init"); + } + + @PreDestroy + public void destroy() { + System.out.println("SingletonBean.destroy"); + } + } + +} +``` +실행결과 +``` +SingletonBean.init +singletonBean1 = week7.seob.scope.SingletonTest$SingletonBean@773f7880 +singletonBean2 = week7.seob.scope.SingletonTest$SingletonBean@773f7880 +SingletonBean.destroy +``` +싱글톤 스코프인 경우 같은 인스턴트를 반환하는것을 확인할 수 있다. From f89bb723519976d728f4927178a848d69f1e60d6 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 23:17:24 +0900 Subject: [PATCH 093/188] [BE] (feat) Create PrototypeTest [BE] (feat) Create PrototypeTest --- .../java/week7/seob/scope/PrototypeTest.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 7 WEEK/seob/src/test/java/week7/seob/scope/PrototypeTest.java diff --git a/7 WEEK/seob/src/test/java/week7/seob/scope/PrototypeTest.java b/7 WEEK/seob/src/test/java/week7/seob/scope/PrototypeTest.java new file mode 100644 index 00000000..b78e39bb --- /dev/null +++ b/7 WEEK/seob/src/test/java/week7/seob/scope/PrototypeTest.java @@ -0,0 +1,39 @@ +package week7.seob.scope; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Scope; + +public class PrototypeTest { + + @Test + void prototypeBeanFind() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); + System.out.println("find prototypeBean1"); + PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); + System.out.println("find prototypeBean2"); + PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); + + System.out.println("prototypeBean1 = " + prototypeBean1); + System.out.println("prototypeBean2 = " + prototypeBean2); + Assertions.assertThat(prototypeBean1).isNotSameAs(prototypeBean2); + + ac.close(); + } + + @Scope("prototype") + static class PrototypeBean { + @PostConstruct + public void init() { + System.out.println("PrototypeBean.init"); + } + + @PreDestroy + public void destroy() { + System.out.println("PrototypeBean.destroy"); + } + } +} From d36c4793ac9740036d8ade7746480f85b750098f Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 26 Dec 2023 23:20:29 +0900 Subject: [PATCH 094/188] =?UTF-8?q?[BE]=20(docs)=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=86=A0=ED=83=80=EC=9E=85=20=EC=8A=A4=EC=BD=94=ED=94=84=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 프로토타입 스코프 정리 싱글톤과 달리 프로토타입은 서로 다른 인스턴스를 생성하는 것을 확인할 수 있다. --- 7 WEEK/seob/7WEEK.md | 96 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 95 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index c43f4960..5c7b6d21 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -492,5 +492,99 @@ singletonBean1 = week7.seob.scope.SingletonTest$SingletonBean@773f7880 singletonBean2 = week7.seob.scope.SingletonTest$SingletonBean@773f7880 SingletonBean.destroy ``` -싱글톤 스코프인 경우 같은 인스턴트를 반환하는것을 확인할 수 있다. +싱글톤 스코프인 경우 같은 인스턴스를 반환하는것을 확인할 수 있다. +## 프로토타입 스코프 +**싱글톤 스코프의 빈을 조회하면 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈을 반환.** 반면에 +**프로토타입 스코프를 스프링 컨테이너에 조회하면 스프링 컨테이너는 항상 다른 인스턴스를 생성해서 반환** + +**싱글톤 빈 요청** +1. 싱글톤 스코프의 빈을 스프링 컨테이너에 요청 +2. 스프링 컨테이너는 본인이 관리하는 스프링 빈을 반환 +3. 이후에 스프링 컨테이너에 같은 요청이 와도 같은 객체 인스턴스의 스프링 빈을 반환한다. + +**프로토타입 빈 요청1** +1. 프로토타입 스코프의 빈을 스프링 컨테이너에 요청. +2. 스프링 컨테이너는 이 시점에 프로토타입 빈을 생성, 필요한 의존관계를 주입. + +**프로토타입 빈 요청2** +3. 스프링 컨테이너는 생성한 프로토타입 빈을 클라이언트에 반환.(관리는 X) +4. 이후에 스프링 컨테이너에 같은 요청이 오면 항상 새로운 프로토타입 빈을 생성해서 반환 + +**정리**
+**핵심은 스프링 컨테이너는 프로토타입 빈을 생성, 의존관계 주입, 초기화 까지만 처리** 클라이언트에 빈을 반환하고, +이후 스프링 컨테이너는 생성된 프로토타입 빈을 관리하지 않는다. 프로토타입 빈을 관리할 책임은 프로토타입 빈을 +받은 클라이언트에 있다. **그래서 `@PreDestroy`같은 종료 메서드가 호출되지 않는다.** + + + +```java +package week7.seob.scope; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Scope; + +public class PrototypeTest { + + @Test + void prototypeBeanFind() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); + System.out.println("find prototypeBean1"); + PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); + System.out.println("find prototypeBean2"); + PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); + + System.out.println("prototypeBean1 = " + prototypeBean1); + System.out.println("prototypeBean2 = " + prototypeBean2); + Assertions.assertThat(prototypeBean1).isNotSameAs(prototypeBean2); + + ac.close(); + } + + @Scope("prototype") + static class PrototypeBean { + @PostConstruct + public void init() { + System.out.println("PrototypeBean.init"); + } + + @PreDestroy + public void destroy() { + System.out.println("PrototypeBean.destroy"); + } + } +} +``` +실행결과 +``` +find prototypeBean1 +PrototypeBean.init +find prototypeBean2 +PrototypeBean.init +prototypeBean1 = week7.seob.scope.PrototypeTest$PrototypeBean@773f7880 +prototypeBean2 = week7.seob.scope.PrototypeTest$PrototypeBean@878452d +``` + +- 싱글톤 빈은 스프링 컨테이너 생성 시점에 초기화 메서드가 실행되지만, 프로토타입 스코프의 빈은 스프링 컨테이너에서 +빈을 조회할 때 생성되고, 초기화 메서드도 실행된다. +- 프로타입 빈을 2번 조회했으므로 완전히 다른 스프링 빈이 생성되고, 초기화도 2번 실행된 것을 확인할 수 있다. +- 싱글톤 빈은 스프링 컨테이너가 관리하기 때문에 스프링 컨테이너가 종료될 때 빈의 종료 메서드가 실행되지만, +**프로토타입 빈은 스프링 컨테이너가 생성과 의존관계 주입 그리고 초기화 까지만 관여하고, 더는 관리하지 않는다. +따라서 프로토타입 빈은 스프링 컨테이너가 종료될 때 `@PreDestroy`같은 종료 메서드가 전혀 실행되지 않는다.** + + +**프로토타입 빈의 특징 정리** +- 스프링 컨테이너에 요청할 떄 마다 새로 생성 +- 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입, 초기화까지만 관여 +- 종료 메서드가 호출되지 않음 +- 프로토타입 빈은 프로토타입 빈을 조회한 클라이언트가 관리해야한다. 종료 메서드에 대한 호출도 클라이언트가 직접 해야한다. + +```java +prototypeBean1.destoroy(); +prototypeBean2.destoroy(); +``` +위와 같이 직접 destroy()를 호출하여 직접 종료할 수 있음. \ No newline at end of file From 268b800035f17c34c1514c77d115b1a2d4d29ef2 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Thu, 28 Dec 2023 21:06:29 +0900 Subject: [PATCH 095/188] [BE] (feat) Create SingletonWithPrototypeTest1.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Create SingletonWithPrototypeTest1.java 프로토타입 빈 요청 테스트 --- .../scope/SingletonWithPrototypeTest1.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java diff --git a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java new file mode 100644 index 00000000..d52af5ea --- /dev/null +++ b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java @@ -0,0 +1,49 @@ +package week7.seob.scope; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Scope; + +public class SingletonWithPrototypeTest1 { + + @Test + void prototypeFind() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); + + PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); + prototypeBean1.addCount(); + + PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); + prototypeBean2.addCount(); + + Assertions.assertThat(prototypeBean1.getCount()).isEqualTo(1); + Assertions.assertThat(prototypeBean2.getCount()).isEqualTo(1); + } + + + @Scope("prototype") + static class PrototypeBean { + private int count = 0; + + public void addCount() { + count++; + } + + public int getCount() { + return count; + } + + @PostConstruct + public void init() { + System.out.println("PrototypeBean.init " + this); + } + + @PreDestroy + public void destroy() {//호출 X + System.out.println("PrototypeBean.destory "+ this); + } + } +} From 53ae7c98a64b660266741c7aa556451ca51db385 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Thu, 28 Dec 2023 21:08:40 +0900 Subject: [PATCH 096/188] =?UTF-8?q?[BE]=20(docs)=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=86=A0=ED=83=80=EC=9E=85=20=EC=9A=94=EC=B2=AD=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 프로토타입 요청 정리 요청 마다 항상 새로운 객체 인스턴스를 반환함 --- 7 WEEK/seob/7WEEK.md | 80 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index 5c7b6d21..7b929804 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -587,4 +587,82 @@ prototypeBean2 = week7.seob.scope.PrototypeTest$PrototypeBean@878452d prototypeBean1.destoroy(); prototypeBean2.destoroy(); ``` -위와 같이 직접 destroy()를 호출하여 직접 종료할 수 있음. \ No newline at end of file +위와 같이 직접 destroy()를 호출하여 직접 종료할 수 있음. + + + +## 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 문제 +스프링 컨테이너에 프로토타입 스코프의 빈을 요청하면 항상 새로운 객체 인스턴스를 생성해서 반환
+하지만 싱글톤 빈과 함께 사용할 때는 의도한 대로 잘 동작하지 않으므로 주의해야함 + +### 프르토타입 빈 직접 요청 +```java +package week7.seob.scope; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Scope; + +public class SingletonWithPrototypeTest1 { + + @Test + void prototypeFind() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); + + PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); + prototypeBean1.addCount(); + + PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); + prototypeBean2.addCount(); + + Assertions.assertThat(prototypeBean1.getCount()).isEqualTo(1); + Assertions.assertThat(prototypeBean2.getCount()).isEqualTo(1); + } + + + @Scope("prototype") + static class PrototypeBean { + private int count = 0; + + public void addCount() { + count++; + } + + public int getCount() { + return count; + } + + @PostConstruct + public void init() { + System.out.println("PrototypeBean.init " + this); + } + + @PreDestroy + public void destroy() {//호출 X + System.out.println("PrototypeBean.destory "+ this); + } + } +} +``` +실행결과 +``` +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@51e8e6e6 +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@878452d +``` + +
+스프링 컨테이너에 프로토타입 빈 직접 요청 1. +1. prototypeBean1는 스프링 컨테이너에 스프링 빈을 요청 +2. 스프링 컨테이너는 프로토타입 빈을 새로 생성해서 반환(**PrototypeBean@51e8e6e6**)한다. 해당 빈의 count 값은 0. +3. prototypeBean1는 조회한 프로토타입 빈에 `addCount()` 호출 -> count 필드가 1 증가. +
+스프링 컨테이너에 프로토타입 빈 직접 요청 2. +1. prototypeBean1는 스프링 컨테이너에 스프링 빈을 요청 +2. 스프링 컨테이너는 프로토타입 빈을 새로 생성해서 반환(**PrototypeBean@51e8e6e6**)한다. 해당 빈의 count 값은 0. +3. prototypeBean1는 조회한 프로토타입 빈에 `addCount()` 호출 -> count 필드가 1 증가. + +**결론** +- 프로토타입 빈은 요청시 항상 새로운 빈을 생성하기 때문에 서로 다른 필드라 생각하면 됨 \ No newline at end of file From e5a275048f83e0ff20d60f31c5fc5692ffe6fccb Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Thu, 28 Dec 2023 23:10:21 +0900 Subject: [PATCH 097/188] [BE] (refactor) Add singletonClientPrototype method to SingletonWithPrototypeTest1.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Add singletonClientPrototype method to SingletonWithPrototypeTest1.java 싱글톤 빈이 프로토타입 빈을 사용하도록 메서드 추가 --- .../scope/SingletonWithPrototypeTest1.java | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java index d52af5ea..6124474e 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java +++ b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java @@ -4,6 +4,7 @@ import jakarta.annotation.PreDestroy; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; @@ -15,15 +16,42 @@ void prototypeFind() { PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); prototypeBean1.addCount(); + Assertions.assertThat(prototypeBean1.getCount()).isEqualTo(1); PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); prototypeBean2.addCount(); - - Assertions.assertThat(prototypeBean1.getCount()).isEqualTo(1); Assertions.assertThat(prototypeBean2.getCount()).isEqualTo(1); } + @Test + void singletonClientUsePrototype() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); + + ClientBean clientBean1 = ac.getBean(ClientBean.class); + int count1 = clientBean1.logic(); + Assertions.assertThat(count1).isEqualTo(1); + + ClientBean clientBean2 = ac.getBean(ClientBean.class); + int count2 = clientBean2.logic(); + Assertions.assertThat(count2).isEqualTo(2); + + } + + @Scope("singleton") + static class ClientBean{ + private final PrototypeBean prototypeBean; //생성 시점에 주입 + + @Autowired + public ClientBean(PrototypeBean prototypeBean) { + this.prototypeBean = prototypeBean; + } + public int logic() { + prototypeBean.addCount(); + int count = prototypeBean.getCount(); + return count; + } + } @Scope("prototype") static class PrototypeBean { private int count = 0; From 218ed869fb390dc8001a0fdbafff7f9778290c77 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Thu, 28 Dec 2023 23:10:55 +0900 Subject: [PATCH 098/188] =?UTF-8?q?[BE]=20(docs)=20=EC=8B=B1=EA=B8=80?= =?UTF-8?q?=ED=86=A4=20=EB=B9=88=EC=97=90=EC=84=9C=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=86=A0=ED=83=80=EC=9E=85=20=EB=B9=88=20=EC=82=AC=EC=9A=A9=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 싱글톤 빈에서 프로토타입 빈 사용 정리 --- 7 WEEK/seob/7WEEK.md | 117 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index 7b929804..b7d625ee 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -665,4 +665,119 @@ PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@87 3. prototypeBean1는 조회한 프로토타입 빈에 `addCount()` 호출 -> count 필드가 1 증가. **결론** -- 프로토타입 빈은 요청시 항상 새로운 빈을 생성하기 때문에 서로 다른 필드라 생각하면 됨 \ No newline at end of file +- 프로토타입 빈은 요청시 항상 새로운 빈을 생성하기 때문에 서로 다른 필드라 생각하면 됨 + +### 싱글톤 빈에서 프로토타입 빈 사용 + +**싱글톤에서 프로토타입 빈 사용1** +- `clientBean`은 싱글톤임. 스프링 컨테이너 생성 시점에 함께 생성, 의존관계 주입도 발생 +- 1. `clientBean`은 의존관계 자동 주입 사용. 주입 시점에 스프링 컨테이너에 프로토타입 빈 요청 +- 2. 스프링 컨테이너는 프로토타입 빈을 생성해서 `clientBean`에 반환. -> 프로토타입 빈의 count 필드 값 = 0 +- `clientBean`은 프로토타입 빈을 내부 필드에 보관(참조값 보관) + +**싱글톤에서 프로토타입 빈 사용2** +- 클라이언트A가 `clientBean`을 스프링 컨테이너에 요청. 싱글톤이므로 항상 같은 `clientBean` 반환 +- 3. 클라이언트A는 `clientBean.logic()`호출 +- 4. `clientBean`은 prototypeBean의 `addCount()`호출해서 프로토타입 빈의 count를 증가시킴. -> count = 1 + +**싱글톤에서 프로토타입 빈 사용3** +- 클라이언트A가 `clientBean`을 스프링 컨테이너에 요청. 싱글톤이므로 항상 같은 `clientBean` 반환 +- **clientBean이 내부에 가지고 있는 프로토타입 빈은 이미 과거에 주입이 끝난 빈. 주입 시점에 스프링 컨테이너에 +요청해서 프로토타입이 새로 생성된 것이지, 사용할 때마다 생성되는것이 아님.** +- 3. 클라이언트A는 `clientBean.logic()`호출 +- 4. `clientBean`은 prototypeBean의 `addCount()`호출해서 프로토타입 빈의 count를 증가시킴. -> count = 2 + +코드를 확인해보자 +```java +package week7.seob.scope; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Scope; + +public class SingletonWithPrototypeTest1 { + + @Test + void prototypeFind() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); + + PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); + prototypeBean1.addCount(); + Assertions.assertThat(prototypeBean1.getCount()).isEqualTo(1); + + PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); + prototypeBean2.addCount(); + Assertions.assertThat(prototypeBean2.getCount()).isEqualTo(1); + } + + @Test + void singletonClientUsePrototype() { + AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); + + ClientBean clientBean1 = ac.getBean(ClientBean.class); + int count1 = clientBean1.logic(); + Assertions.assertThat(count1).isEqualTo(1); + + ClientBean clientBean2 = ac.getBean(ClientBean.class); + int count2 = clientBean2.logic(); + Assertions.assertThat(count2).isEqualTo(2); + + } + + @Scope("singleton") + static class ClientBean{ + private final PrototypeBean prototypeBean; //생성 시점에 주입 + + @Autowired + public ClientBean(PrototypeBean prototypeBean) { + this.prototypeBean = prototypeBean; + } + + public int logic() { + prototypeBean.addCount(); + int count = prototypeBean.getCount(); + return count; + } + } + @Scope("prototype") + static class PrototypeBean { + private int count = 0; + + public void addCount() { + count++; + } + + public int getCount() { + return count; + } + + @PostConstruct + public void init() { + System.out.println("PrototypeBean.init " + this); + } + + @PreDestroy + public void destroy() {//호출 X + System.out.println("PrototypeBean.destory "+ this); + } + } +} +``` +실행결과 +``` +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@25748410 +``` + +스프링은 일반적으로 싱글톤 빈을 사용하므로, 싱글톤 빈이 프로토타입 빈을 사용하게 된다. +그런데 싱글톤 빈은 생성 시점에만 의존관계 주입을 받기 때문에 프로토타입 빈이 새로 생성되기는 하지만, +싱글톤 빈과 함꼐 계속 유지되는것이 문제이다 + +> **참고** : 여러번 빈에서 같은 프로토타입 빈을 주입 받으면, **주입 받는 시점에 각각 새로운 프로토타입 빈이 생성**
+> clientA. clientB가 각각 의존관계 주입을 받으면 각각 다른 인스턴스의 프로토타입 빈을 주입 받는다.
+> clientA -> prototypeBean@x01 +> clientB -> prototypeBean@x02
+> 물론 사용할 때 마다 새로 생성되는 것은 아니다. \ No newline at end of file From 44ebe57e93436e3a22a39727b70df0b75aa22c14 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 16:10:20 +0900 Subject: [PATCH 099/188] [BE] (refactor) Edit Client static class to SingletonWithProrototyleTest1.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Edit Client static class to SingletonWithProrototyleTest1.java 싱글톤 빈이 프로토타입 빈을 사용할 때 마다 스프링 컨테이너에 새로 요청하도록 변경 --- .../seob/scope/SingletonWithPrototypeTest1.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java index 6124474e..ccc9bc45 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java +++ b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java @@ -5,6 +5,7 @@ import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; @@ -33,20 +34,24 @@ void singletonClientUsePrototype() { ClientBean clientBean2 = ac.getBean(ClientBean.class); int count2 = clientBean2.logic(); - Assertions.assertThat(count2).isEqualTo(2); + Assertions.assertThat(count2).isEqualTo(1); } @Scope("singleton") static class ClientBean{ - private final PrototypeBean prototypeBean; //생성 시점에 주입 +// private final PrototypeBean prototypeBean; //생성 시점에 주입 +// +// @Autowired +// public ClientBean(PrototypeBean prototypeBean) { +// this.prototypeBean = prototypeBean; +// } @Autowired - public ClientBean(PrototypeBean prototypeBean) { - this.prototypeBean = prototypeBean; - } + private ApplicationContext ac; public int logic() { + PrototypeBean prototypeBean = ac.getBean(PrototypeBean.class); prototypeBean.addCount(); int count = prototypeBean.getCount(); return count; From 2cda2e2b9c70ef03b6672a68d531533b043fd91e Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 16:12:18 +0900 Subject: [PATCH 100/188] =?UTF-8?q?[BE]=20(docs)=20DL=EC=97=90=20=EB=8C=80?= =?UTF-8?q?=ED=95=9C=20=EA=B0=9C=EB=85=90=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) DL에 대한 개념 정리 --- 7 WEEK/seob/7WEEK.md | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index b7d625ee..133506f0 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -780,4 +780,39 @@ PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@25 > clientA. clientB가 각각 의존관계 주입을 받으면 각각 다른 인스턴스의 프로토타입 빈을 주입 받는다.
> clientA -> prototypeBean@x01 > clientB -> prototypeBean@x02
-> 물론 사용할 때 마다 새로 생성되는 것은 아니다. \ No newline at end of file +> 물론 사용할 때 마다 새로 생성되는 것은 아니다.> 물론 사용할 때 마다 새로 생성되는 것은 아니다. + + + +## 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결 +싱글톤 빈과 프로토타입 빈을 함께 사용할때 Provider를 사용하면 항상 새로운 프로토타입 빈을 생성할 수 있다. + + +가장 간단한 방법은 싱글톤 빈이 프로토타입 빈을 사용할 때 마다 스프링 컨테이너에 새로 요청하는 것이다. +```java + @Scope("singleton") + static class ClientBean{ + + @Autowired + private ApplicationContext ac; + + public int logic() { + PrototypeBean prototypeBean = ac.getBean(PrototypeBean.class); + prototypeBean.addCount(); + int count = prototypeBean.getCount(); + return count; + } + } +``` +실행결과 +``` +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@77602954 +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@6fff253c +``` + +- `ac.getBean()`을 통해 항상 새로운 프로토타입 빈을 불러오는 것을 확인할 수 있다. +- 의존관계를 외부에서 주입(DI)받는게 아니라 위처럼 직접 필요한 의존관계를 찾는 것을 +**Dependency Lookup(DL)** 의존관계 조회(탐색) 이라고 한다. +- 그런데 스프링의 애플리케이션 컨텍스트 전체를 주입받게 되면, 스프링 컨테이너에 종속적인 코드가 되고, 단위 테스트가 어려워진다. +- 현재 필요한 기능 -> 지정한 프로토타입 빈을 컨테이너에서 대신 찾아주는 DL 정도의 기능만 제공하는 무언가가 있으면 된다. + From 878c2f9edadc080f9abbc51ed3fc7a6e061670e0 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 16:58:43 +0900 Subject: [PATCH 101/188] [BE] (refactor) Using ObjectProvider to SingletonWithPrototypeTest1.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Using ObjectProvider to SingletonWithPrototypeTest1.java ObjectProvider를 사용하도록 변경 --- .../seob/scope/SingletonWithPrototypeTest1.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java index ccc9bc45..73d8febf 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java +++ b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java @@ -4,8 +4,8 @@ import jakarta.annotation.PreDestroy; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; @@ -40,18 +40,12 @@ void singletonClientUsePrototype() { @Scope("singleton") static class ClientBean{ -// private final PrototypeBean prototypeBean; //생성 시점에 주입 -// -// @Autowired -// public ClientBean(PrototypeBean prototypeBean) { -// this.prototypeBean = prototypeBean; -// } @Autowired - private ApplicationContext ac; + private ObjectProvider prototypeBeanProvider; public int logic() { - PrototypeBean prototypeBean = ac.getBean(PrototypeBean.class); + PrototypeBean prototypeBean = prototypeBeanProvider.getObject(); prototypeBean.addCount(); int count = prototypeBean.getCount(); return count; From 441005fef65f7f1760fc529b71afd2a89960f8a1 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 17:01:27 +0900 Subject: [PATCH 102/188] =?UTF-8?q?[BE]=20(docs)=20ObjectProvider=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) ObjectProvider 정리 --- 7 WEEK/seob/7WEEK.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index 133506f0..d9bcf8eb 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -780,7 +780,8 @@ PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@25 > clientA. clientB가 각각 의존관계 주입을 받으면 각각 다른 인스턴스의 프로토타입 빈을 주입 받는다.
> clientA -> prototypeBean@x01 > clientB -> prototypeBean@x02
-> 물론 사용할 때 마다 새로 생성되는 것은 아니다.> 물론 사용할 때 마다 새로 생성되는 것은 아니다. +> 물론 사용할 때 마다 새로 생성되는 것은 아니다. + @@ -816,3 +817,38 @@ PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@6f - 그런데 스프링의 애플리케이션 컨텍스트 전체를 주입받게 되면, 스프링 컨테이너에 종속적인 코드가 되고, 단위 테스트가 어려워진다. - 현재 필요한 기능 -> 지정한 프로토타입 빈을 컨테이너에서 대신 찾아주는 DL 정도의 기능만 제공하는 무언가가 있으면 된다. + +### ObjectFactory, ObjectProvider +지정한 빈을 컨테이너에서 대신 찾아주는 DL 서비스를 제공하는 것이 `ObjectProvider`이다.
+과거에는 `ObjectFactory`가 존재했는데, 여기에 편의 기능을 추가한 `ObjectProvider`가 만들어졌다. + +```java + @Scope("singleton") + static class ClientBean{ + + @Autowired + private ObjectProvider prototypeBeanProvider; + + public int logic() { + PrototypeBean prototypeBean = prototypeBeanProvider.getObject(); + prototypeBean.addCount(); + int count = prototypeBean.getCount(); + return count; + } + } +``` +실행결과 +```java +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@10fde30a +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@72f46e16 +``` +- `prototypeBeanProvider.getObject()`를 통해서 항상 새로운 프로토타입 빈이 생성된다. +- `ObjectProvider`의 `getObject()`를 호출하면 내부에서는 스프링 컨테이너를 통해 해당 빈을 찾아 반환한다.(**DL**) +- 기능이 단순하므로 단위테스트 및 mock 코드를 만들기 훨씬 쉽다.
+mock : 실제 객체를 만들기에는 비용과 시간이 많이 들거나 의존성이 크게 걸쳐져 있어서 테스트 시 제대로 구현하기 어려울 경우 가짜 객체를 만들어서 사용하는 기술. +- `ObjectProvider`는 지금 딱 필요한 DL정도의 기능만 제공한다. + +**특징** +- ObjectFactory : 기능이 단순,별도의 라이브러리 필요 없음, 스프링에 의존 +- ObjectProvider : ObjectFactory 상속, 옵션, 스트림 처리등 편의 기능이 많고, 별도의 라이브러리 필요 없음, 스프링에 의존 + From fb19efcb68e2310b017d9573ab5d0598d0694c65 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 19:33:01 +0900 Subject: [PATCH 103/188] [BE] (refactor) Using JSR-330 Provider to SingletonWithPrototypeTest1.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Using JSR-330 Provider to SingletonWithPrototypeTest1.java 기존 스프링의 ObjectProvider 에서 자바 표준 Object를 사용하도록 변경 --- .../java/week7/seob/scope/SingletonWithPrototypeTest1.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java index 73d8febf..25a1b193 100644 --- a/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java +++ b/7 WEEK/seob/src/test/java/week7/seob/scope/SingletonWithPrototypeTest1.java @@ -9,6 +9,8 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; +import javax.inject.Provider; + public class SingletonWithPrototypeTest1 { @Test @@ -42,10 +44,10 @@ void singletonClientUsePrototype() { static class ClientBean{ @Autowired - private ObjectProvider prototypeBeanProvider; + private Provider prototypeBeanProvider; public int logic() { - PrototypeBean prototypeBean = prototypeBeanProvider.getObject(); + PrototypeBean prototypeBean = prototypeBeanProvider.get(); prototypeBean.addCount(); int count = prototypeBean.getCount(); return count; From ee8336b774f8c3bb9e978b610b78ce2fad2dd368 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 19:33:26 +0900 Subject: [PATCH 104/188] =?UTF-8?q?[BE]=20(docs)=20JSR-330=20Provider=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) JSR-330 Provider 정리 --- 7 WEEK/seob/7WEEK.md | 53 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index d9bcf8eb..fdcfc9dc 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -852,3 +852,56 @@ mock : 실제 객체를 만들기에는 비용과 시간이 많이 들거나 의 - ObjectFactory : 기능이 단순,별도의 라이브러리 필요 없음, 스프링에 의존 - ObjectProvider : ObjectFactory 상속, 옵션, 스트림 처리등 편의 기능이 많고, 별도의 라이브러리 필요 없음, 스프링에 의존 + +### JSR-330 Provider +`javax.inject.Provider`라는 JSR-300 자바 표준을 사용하는 방법이 있다. **스프링에 의존하지 않는다** +
이 방법을 사용하려면 `javax.inject:javax.inject:1` 라이브러리를 gradle에 추가해야 한다. + + +```java +//build.gradle에 추가 -> implementation 'javax.inject:javax.inject:1' +@Scope("singleton") + static class ClientBean{ + + @Autowired + private Provider prototypeBeanProvider; + + public int logic() { + PrototypeBean prototypeBean = prototypeBeanProvider.get(); + prototypeBean.addCount(); + int count = prototypeBean.getCount(); + return count; + } + } +``` +실행결과 +``` +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@7b64240d +PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@46e8a539 +``` + +- 실행해보면 `provider.get()`을 통해서 항상 새로운 프로토타입 빈이 생성되는 것을 확인할 수 있다. +- `provider`의 `get()`을 호출하면 내부에서는 스프링 컨테이너를 통해 해당 빈을 찾아서 반환한다(DL) +- 자바표준, 기능이 단순해 단위테스트를 만들거나 mock 코드를 만들기는 훨씬 쉬워진다 +- `provider`는 현재 필요한 DL정도의 기능을 제공한다 + +**특징** +- `get()` 메서드 하나로 기능이 매우 단순하다. +- 별도의 라이브러리가 필요하다. +- 자바 표준이므로 스프링이 아닌 다른 컨테이너에서도 사용할 수 있다. + + +**정리** +- 프로토타입 빈은 매번 사용할 때 마다 의존관계 주입이 완료된 새로운 객체가 필요하면 사용하면 된다. +하지만 실무에선 싱글톤 빈으로 대부분의 문제를 해결할 수 있기 때문에 프로토타입 빈을 직접적으로 사용하는 일이 매우 드물다고 한다 +- `ObjectProvider`, `JSR330 Provider`등은 프로토타입 뿐만 아니라 DL이 필요한 경우는 언제든지 사용할 수 있다. + +> **참고** : 스프링이 제공하는 메서드에 `@Lookup`애노테이션을 사용하는 방법도 있지만, 이전 방법들로 충분하고, +고려해야할 내용도 많다. + + +> **참고** : ObjectProvider는 DL을 위한 편의 기능을 많이 제공해주고 스프링 외에 별도의 의존관계 추가가 +> 필요 없기 때문에 편리하다. +> +> 스프링을 사용하다보면 다른 기능들도 자바 표준과 스프링이 제공하는 기능이 겹칠 때가 있다. 대부분 스프링이 더 다양하고 +> 편리한 기능을 제공해주기 때문에, 특별히 다른 컨테이너를 사용할 일이 없다면, 스프링이 제공하는 기능을 쓰자! \ No newline at end of file From 320beabfdd14aa44fccd5a1b51deb34ba0a599ab Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 19:35:08 +0900 Subject: [PATCH 105/188] [BE] (build) Add javax.inject dependency [BE] (build) Add javax.inject dependency --- 7 WEEK/seob/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/7 WEEK/seob/build.gradle b/7 WEEK/seob/build.gradle index 80833c1b..d2e2bdaa 100644 --- a/7 WEEK/seob/build.gradle +++ b/7 WEEK/seob/build.gradle @@ -17,6 +17,7 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter' + implementation 'javax.inject:javax.inject:1' testImplementation 'org.springframework.boot:spring-boot-starter-test' } From 8e0ac23956b870ba3002fbefb1bed61f2353cb74 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 22:12:13 +0900 Subject: [PATCH 106/188] [BE] (build) Add spring-boot-starter-web dependency [BE] (build) Add spring-boot-starter-web dependency --- 7 WEEK/seob/build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/7 WEEK/seob/build.gradle b/7 WEEK/seob/build.gradle index d2e2bdaa..0459288f 100644 --- a/7 WEEK/seob/build.gradle +++ b/7 WEEK/seob/build.gradle @@ -18,6 +18,8 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'javax.inject:javax.inject:1' + //web 라이브러리 추가 + implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } From c75bdb88a3a9710dac11b8c22ecc5450ef30fbd1 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 22:12:55 +0900 Subject: [PATCH 107/188] [BE] (feat) Create MyLogger.java [BE] (feat) Create MyLogger.java --- .../main/java/week7/seob/common/MyLogger.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java diff --git a/7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java b/7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java new file mode 100644 index 00000000..f16b97b7 --- /dev/null +++ b/7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java @@ -0,0 +1,36 @@ +package week7.seob.common; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +@Scope(value = "request") +public class MyLogger { + + private String uuid; + private String requestURL; + + public void setRequestURL(String requestURL) { + this.requestURL = requestURL; + } + + public void log(String message) { + System.out.println("[" + uuid + "][" + requestURL + "]" + message); + } + + @PostConstruct + public void init() { + uuid = UUID.randomUUID().toString(); + System.out.println("[" + uuid + "] request scope bean create : " + this); + } + + @PreDestroy + public void close() { + System.out.println("[" + uuid + "] request scope bean close : " + this); + System.out.println(); + } +} From 5de487a2da83a8500af40913d39c9349fc729f9a Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 22:14:13 +0900 Subject: [PATCH 108/188] [BE] (feat) Create LogDemoController.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Create LogDemoController.java ObjectProvider를 사용해 request scope 빈의 생성이 정상 처리되게 함 --- .../week7/seob/web/LogDemoController.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 7 WEEK/seob/src/main/java/week7/seob/web/LogDemoController.java diff --git a/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoController.java b/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoController.java new file mode 100644 index 00000000..584e5ba2 --- /dev/null +++ b/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoController.java @@ -0,0 +1,34 @@ +package week7.seob.web; + +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import week7.seob.common.MyLogger; + +@Controller +public class LogDemoController { + private final LogDemoService logDemoService; + private final ObjectProvider myLoggerProvider; + + @Autowired + public LogDemoController(LogDemoService logDemoService, ObjectProvider myLogger) { + this.logDemoService = logDemoService; + this.myLoggerProvider = myLogger; + } + + @RequestMapping("log-demo") + @ResponseBody + public String logDemo(HttpServletRequest request) { + String requestURL = request.getRequestURL().toString(); + MyLogger myLogger = myLoggerProvider.getObject(); + myLogger.setRequestURL(requestURL); + + myLogger.log("controller test"); + logDemoService.logic("testId"); + return "OK"; + } + +} From 85f448a12482151ab2f93ca40aa377f158f88a94 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 22:14:38 +0900 Subject: [PATCH 109/188] [BE] (feat) Create LogDemoService.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Create LogDemoService.java ObjectProvider를 사용해 request scope 빈의 생성이 정상 처리되게 함 --- .../java/week7/seob/web/LogDemoService.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 7 WEEK/seob/src/main/java/week7/seob/web/LogDemoService.java diff --git a/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoService.java b/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoService.java new file mode 100644 index 00000000..a2f2b9e4 --- /dev/null +++ b/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoService.java @@ -0,0 +1,22 @@ +package week7.seob.web; + +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import week7.seob.common.MyLogger; + +@Service +public class LogDemoService { + + private final ObjectProvider myLoggerProvider; + + @Autowired + public LogDemoService(ObjectProvider myLogger) { + this.myLoggerProvider = myLogger; + } + + public void logic(String id) { + MyLogger myLogger = myLoggerProvider.getObject(); + myLogger.log("service id = " + id); + } +} From 68e40dae4e9f23ea7e52a993f5cd4f90e4bfad29 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Fri, 29 Dec 2023 22:15:50 +0900 Subject: [PATCH 110/188] =?UTF-8?q?[BE]=20(docs)=20request=20scope=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) request scope 정리 --- 7 WEEK/seob/7WEEK.md | 302 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 301 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index fdcfc9dc..fb4de2d0 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -904,4 +904,304 @@ PrototypeBean.init week7.seob.scope.SingletonWithPrototypeTest1$PrototypeBean@46 > 필요 없기 때문에 편리하다. > > 스프링을 사용하다보면 다른 기능들도 자바 표준과 스프링이 제공하는 기능이 겹칠 때가 있다. 대부분 스프링이 더 다양하고 -> 편리한 기능을 제공해주기 때문에, 특별히 다른 컨테이너를 사용할 일이 없다면, 스프링이 제공하는 기능을 쓰자! \ No newline at end of file +> 편리한 기능을 제공해주기 때문에, 특별히 다른 컨테이너를 사용할 일이 없다면, 스프링이 제공하는 기능을 쓰자! + + + + +## 웹 스코프 +싱글톤은 스프링 컨테이너의 시작과 끝까지 함꼐하는 매우 긴 스코프, 프로토타입은 생성과 의존관계 주입, 그리고 초기화 까지만 진행하는 특별한 스코프 + +**웹 스코프의 특징** +- 웝 스코프는 웹 환경에서만 동작 +- 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리. 따라서 종료 메서드 호출 + +**웹 스코프 종류** +- **request** : HTTP요청 하나가 들어오고 나갈 때 까지 유지되는 스코프, 각각의 HTTP요청마다 별도의 빈 인스턴트가 생성, 관리된다. +- **session** : HTTP Session과 동일한 생명주기를 가지는 스코프 +- **application** : 서블릿 컨텍스트(`ServletContext`) 와 동일한 생명주기를 갖는 스코프 +- **websocket** : 웹 소켓과 동일한 생명주기를 가지는 스코프 + + +## request 스코프 예제 + +### 웹 환경 추가 +웹 스코프는 웹 환경에서만 동작함. 따라서 web환경이 동작하도록 라이브러리를 추가한다. +```groovy + implementation 'org.springframework.boot:spring-boot-starter-web' +``` +> **참고** : `spring-boot-starter-web` 라이브러리를 추가하면 스프링 부트는 내장 톰켓 서버를 활용해 웹 서버와 스프링을 함께 실행시킨다. + +> **참고** : 스프링 부트는 웹 라이브러리가 없으면 `AnnotationConfigApplicationContext`를 기반으로 +> 웹 애플리케이션을 구동한다. 웹 라이브러리가 추가되면 웹과 관련된 추카 설정과 환경들이 필요하므로 +> `AnnotationConfigServletWebServerApplicationContext`를 기반으로 애플리케이션을 구동한다. + +### request 스코프 예제 개발 +동시에 여러 HTTP 요청이 오면 정확히 어떤 요청이 남긴 로그인지 구분하기 어렵다.
+이럴 때 사용하기 좋은 것이 request 스코프이다. + +```java +package week7.seob.common; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +@Scope(value = "request") +public class MyLogger { + + private String uuid; + private String requestURL; + + public void setRequestURL(String requestURL) { + this.requestURL = requestURL; + } + + public void log(String message) { + System.out.println("[" + uuid + "][" + requestURL + "]" + message); + } + + @PostConstruct + public void init() { + uuid = UUID.randomUUID().toString(); + System.out.println("[" + uuid + "] request scope bean create : " + this); + } + + @PreDestroy + public void close() { + System.out.println(""); + System.out.println("[" + uuid + "] request scope bean close : " + this); + } +} +``` +- 로그를 출력하기 위한 `MyLogger` 클래스 +- `@Scope(value="request)"`를 사용해 request 스코프를 지정. 이 빈은 HTTP 요청 당 하나씩 생성되고, +요청이 끝나는 시점에 소멸된다. +- 이 빈이 생성되는 시점에 자동으로 `@PostConstruct`초기화 메서드를 사용해 uuid를 생성 및 저장한다. +이 빈은 HTTP 요청 당 하나씩 생성되기 때문에 uud를 저장해두면 다른 HTTP요청과 구분이 가능하다. +- 이 빈이 소멸되는 시점에 `@PreDestroy`를 사용해 종료 매시지를 남긴다. +- `requestURL`은 이 빈이 생성되는 시점에는 알 수 없어 외부에서 setter로 입력받는다. + + +*MyLogger* +```java +package week7.seob.common; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +@Scope(value = "request") +public class MyLogger { + + private String uuid; + private String requestURL; + + public void setRequestURL(String requestURL) { + this.requestURL = requestURL; + } + + public void log(String message) { + System.out.println("[" + uuid + "][" + requestURL + "]" + message); + } + + @PostConstruct + public void init() { + uuid = UUID.randomUUID().toString(); + System.out.println("[" + uuid + "] request scope bean create : " + this); + } + + @PreDestroy + public void close() { + System.out.println(""); + System.out.println("[" + uuid + "] request scope bean close : " + this); + } +} +``` +- 로그를 출력하기 위한 클래스. +- `@Scope(value = "request")`로 requset 스코프 지정. 이 빈은 HTTP 요청 당 하나씩 생성되고, HTTP 요청이 끝나는 시점에 소멸 +- 이 빈이 생성되는 시점에 자동으로 `@PostConstruct` 초기화 메서드를 사용해 uuid를 생성해서 저장. +이 빈은 HTTP 요총 당 하나씩 생성되므로 uuid를 저장해두면 다른 HTTP 요청과 구분할 수 있다. +- 이 빈이 소멸되는 시점에 `@PreDestroy`를 사앵해서 종료 메시지를 남긴다. +- `requestURL`은 이 빈이 생성되는 시점에는 알 수 없으므로, 외부에서 setter로 입력받는다. + + +*LogDemoController* +```java +package week7.seob.web; + +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import week7.seob.common.MyLogger; + +@Controller +public class LogDemoController { + private final LogDemoService logDemoService; + private final MyLogger myLogger; + + @Autowired + public LogDemoController(LogDemoService logDemoService, MyLogger myLogger) { + this.logDemoService = logDemoService; + this.myLogger = myLogger; + } + + @RequestMapping("log-demo") + @ResponseBody + public String logDemo(HttpServletRequest request) { + String requestURL = request.getRequestURL().toString(); + myLogger.setRequestURL(requestURL); + + myLogger.log("controller test"); + logDemoService.logic("testId"); + return "OK"; + } + +} +``` +- 로거가 잘 작동하는 확인하는 테스트용 컨트롤러 +- 여기서 HttpServletRequest를 통해서 요청 URL을 받았다. + - requestURL 값 `http://localhost:8080/log-demo` +- 이렇게 받은 requestURL 값을 myLogger에 저장한다. myLogger는 HTTP 요청 당 각각 구분되므로 +다른 HTTP요청 때문에 값이 섞이는 걱정은 하지 않아도 된다. +- 컨트롤러에서 controller test라는 로그를 남긴다. + + +*LogDemoService* +```java +package week7.seob.web; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import week7.seob.common.MyLogger; + +@Service +public class LogDemoService { + + private final MyLogger myLogger; + + @Autowired + public LogDemoService(MyLogger myLogger) { + this.myLogger = myLogger; + } + + public void logic(String id) { + myLogger.log("service id = " + id); + } +} +``` +- request scope를 사용하지 않고 파라미터로 이 모든 정보를 서비스 계층에 넘긴다면, 파라미터가 많아 +지저분해진다. 더 문제는 requestURL 같은 웹과 관련된 정보가 웹과 관련없는 서비스 계층까지 넘어가게 된다. +웹과 관련된 부분은 컨트롤러 까지만 사용해야 한다. 서비스 계층은 웹 기술에 종속되지 않고, 가급적 순수하게 유지하는 것이 +유지보수 과점에서 좋다. +- request scope의 MyLogger 덕분에 이런 부분을 파라미터로 넘기지 않고, MyLogger의 멤버변수에 저장해서 +코드와 계층을 깔끔하게 유지할 수 있다. + +실행 시 +``` +Error creating bean with name 'myLogger': Scope 'request' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton +``` + +오류가 발생한다. 왜냐하면 request 가 와야 myLogger를 사용할 수 있지만 아직 request가 오지도 않은 상태에서 스프링이 myLogger를 요청했기 때문이다. +
+스프링 애플리케이션을 실행하는 시점에 싱글톤 빈은 생성해서 주입이 가능하지만, request 스코프 빈은 아직 생성되지 않는다. +이 빈은 실제 고객의 요청이 와야 생성할 수 있다. + + +## 스코프와 Provider +위의 문제의 첫 번째 해결방법은 Provider를 사용하는 것 이다. + +*LogDemoController* +```java +package week7.seob.web; + +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import week7.seob.common.MyLogger; + +@Controller +public class LogDemoController { + private final LogDemoService logDemoService; + private final ObjectProvider myLoggerProvider; + + @Autowired + public LogDemoController(LogDemoService logDemoService, ObjectProvider myLogger) { + this.logDemoService = logDemoService; + this.myLoggerProvider = myLogger; + } + + @RequestMapping("log-demo") + @ResponseBody + public String logDemo(HttpServletRequest request) { + String requestURL = request.getRequestURL().toString(); + MyLogger myLogger = myLoggerProvider.getObject(); + myLogger.setRequestURL(requestURL); + + myLogger.log("controller test"); + logDemoService.logic("testId"); + return "OK"; + } + +} +``` + +*LogDemoService* +```java +package week7.seob.web; + +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import week7.seob.common.MyLogger; + +@Service +public class LogDemoService { + + private final ObjectProvider myLoggerProvider; + + @Autowired + public LogDemoService(ObjectProvider myLogger) { + this.myLoggerProvider = myLogger; + } + + public void logic(String id) { + MyLogger myLogger = myLoggerProvider.getObject(); + myLogger.log("service id = " + id); + } +} + +``` + + +실행결과 (두 번 요청) +``` +[ae14a061-798d-4f36-a0a4-12e304ed743f] request scope bean create : week7.seob.common.MyLogger@10437b22 +[ae14a061-798d-4f36-a0a4-12e304ed743f][http://localhost:8080/log-demo]controller test +[ae14a061-798d-4f36-a0a4-12e304ed743f][http://localhost:8080/log-demo]service id = testId +[ae14a061-798d-4f36-a0a4-12e304ed743f] request scope bean close : week7.seob.common.MyLogger@10437b22 + +[ba090d99-d6c4-4708-8fac-a74c01dd6efe] request scope bean create : week7.seob.common.MyLogger@5f0bf03 +[ba090d99-d6c4-4708-8fac-a74c01dd6efe][http://localhost:8080/log-demo]controller test +[ba090d99-d6c4-4708-8fac-a74c01dd6efe][http://localhost:8080/log-demo]service id = testId +[ba090d99-d6c4-4708-8fac-a74c01dd6efe] request scope bean close : week7.seob.common.MyLogger@5f0bf03 +``` + +- `@ObjectProvider` 덕분에 `ObjectProvider.getObject()`를 호출하는 시점까지 request scope +**빈의 생성을 지연**할 수 있다. +- `ObjectProvider.getObject()`를 호출하는 시점에는 HTTP요청이 진행중이므로 request scope 빈의 생성이 정상 처리된다. +- `ObjectProvider.getObject()`를 `LogDemoController`, `LogDemoService`에서 각각 한 번씩 따로 호출해도 +같은 HTTP 요청이면 같은 스프링이 반환된다. \ No newline at end of file From a74e6c3af65c4f227150ee418808f6fa85e023ce Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:35:34 +0900 Subject: [PATCH 111/188] [BE] (refactor) Refactor LogDemoService to proxyMode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Refactor LogDemoService to proxyMode 프록시를 사용하기 위해 Provider 제거 --- .../seob/src/main/java/week7/seob/web/LogDemoService.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoService.java b/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoService.java index a2f2b9e4..3ab42255 100644 --- a/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoService.java +++ b/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoService.java @@ -8,15 +8,14 @@ @Service public class LogDemoService { - private final ObjectProvider myLoggerProvider; + private final MyLogger myLogger; @Autowired - public LogDemoService(ObjectProvider myLogger) { - this.myLoggerProvider = myLogger; + public LogDemoService(MyLogger myLogger) { + this.myLogger = myLogger; } public void logic(String id) { - MyLogger myLogger = myLoggerProvider.getObject(); myLogger.log("service id = " + id); } } From 8f30c8473490ddb2f422dfc57808b1dc9b6315e9 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:36:15 +0900 Subject: [PATCH 112/188] [BE] (refactor) Refactor LogDemoController to proxyMode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Refactor LogDemoController to proxyMode 프록시를 사용하기 위해 Provider 제거 --- .../src/main/java/week7/seob/web/LogDemoController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoController.java b/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoController.java index 584e5ba2..d834dd0a 100644 --- a/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoController.java +++ b/7 WEEK/seob/src/main/java/week7/seob/web/LogDemoController.java @@ -11,19 +11,19 @@ @Controller public class LogDemoController { private final LogDemoService logDemoService; - private final ObjectProvider myLoggerProvider; + private final MyLogger myLogger; @Autowired - public LogDemoController(LogDemoService logDemoService, ObjectProvider myLogger) { + public LogDemoController(LogDemoService logDemoService, MyLogger myLogger) { this.logDemoService = logDemoService; - this.myLoggerProvider = myLogger; + this.myLogger = myLogger; } @RequestMapping("log-demo") @ResponseBody public String logDemo(HttpServletRequest request) { String requestURL = request.getRequestURL().toString(); - MyLogger myLogger = myLoggerProvider.getObject(); + System.out.println("myLogger = " + myLogger.getClass()); myLogger.setRequestURL(requestURL); myLogger.log("controller test"); From b50c435f44fba713411c218b7bae6a4be16d56e1 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:36:53 +0900 Subject: [PATCH 113/188] [BE] (refactor) Refactor MyLogger to proxyMode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (refactor) Refactor MyLogger to proxyMode 프록시 설정 --- 7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java b/7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java index f16b97b7..344f4442 100644 --- a/7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java +++ b/7 WEEK/seob/src/main/java/week7/seob/common/MyLogger.java @@ -3,12 +3,13 @@ import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import org.springframework.context.annotation.Scope; +import org.springframework.context.annotation.ScopedProxyMode; import org.springframework.stereotype.Component; import java.util.UUID; @Component -@Scope(value = "request") +@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) public class MyLogger { private String uuid; From bc76a32e98415bf882d3670e9eccb04c47337039 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:37:23 +0900 Subject: [PATCH 114/188] =?UTF-8?q?[BE]=20(docs)=20=ED=94=84=EB=A1=9D?= =?UTF-8?q?=EC=8B=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 프록시 정리 특징, 동작원리 정리 --- 7 WEEK/seob/7WEEK.md | 118 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 117 insertions(+), 1 deletion(-) diff --git a/7 WEEK/seob/7WEEK.md b/7 WEEK/seob/7WEEK.md index fb4de2d0..ce8f3038 100644 --- a/7 WEEK/seob/7WEEK.md +++ b/7 WEEK/seob/7WEEK.md @@ -1204,4 +1204,120 @@ public class LogDemoService { **빈의 생성을 지연**할 수 있다. - `ObjectProvider.getObject()`를 호출하는 시점에는 HTTP요청이 진행중이므로 request scope 빈의 생성이 정상 처리된다. - `ObjectProvider.getObject()`를 `LogDemoController`, `LogDemoService`에서 각각 한 번씩 따로 호출해도 -같은 HTTP 요청이면 같은 스프링이 반환된다. \ No newline at end of file +같은 HTTP 요청이면 같은 스프링이 반환된다. + + + +## Scope & Proxy +```java +@Component +@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) +public class MyLogger { +} +``` +- `proxyMode = ScopedProxyMode.TARGET_CLASS` 추가. + - 적용 대상이 클래스 일 때 `TARGET_CLASS` + - 적용 대상이 인터페이스 일 때 `INTERFACE` +- 이렇게 하면 MyLogger의 가짜 프록시 클래스를 만들어두고 HTTP request와 상관 없이 가짜 프록시 클래스를 다른 빈에 주입해 둘 수 있다. + +코드를 Provider 사용 이전으로 변경한다. +```java +@Controller +public class LogDemoController { + private final LogDemoService logDemoService; + private final MyLogger myLogger; + + @Autowired + public LogDemoController(LogDemoService logDemoService, MyLogger myLogger) { + this.logDemoService = logDemoService; + this.myLogger = myLogger; + } + + @RequestMapping("log-demo") + @ResponseBody + public String logDemo(HttpServletRequest request) { + String requestURL = request.getRequestURL().toString(); + myLogger.setRequestURL(requestURL); + + myLogger.log("controller test"); + logDemoService.logic("testId"); + return "OK"; + } + +} +``` + +```java +@Service +public class LogDemoService { + + private final MyLogger myLogger; + + @Autowired + public LogDemoService(MyLogger myLogger) { + this.myLogger = myLogger; + } + + public void logic(String id) { + myLogger.log("service id = " + id); + } +} +``` +실행결과 +```java +[bbb44759-be28-4fa0-8307-a8a983c9d824] request scope bean create : week7.seob.common.MyLogger@21cd3a44 +[bbb44759-be28-4fa0-8307-a8a983c9d824][http://localhost:8080/log-demo]controller test +[bbb44759-be28-4fa0-8307-a8a983c9d824][http://localhost:8080/log-demo]service id = testId +[bbb44759-be28-4fa0-8307-a8a983c9d824] request scope bean close : week7.seob.common.MyLogger@21cd3a44 + +[99a82c02-0a83-4ada-933f-a31d238811fc] request scope bean create : week7.seob.common.MyLogger@6a45bcb6 +[99a82c02-0a83-4ada-933f-a31d238811fc][http://localhost:8080/log-demo]controller test +[99a82c02-0a83-4ada-933f-a31d238811fc][http://localhost:8080/log-demo]service id = testId +[99a82c02-0a83-4ada-933f-a31d238811fc] request scope bean close : week7.seob.common.MyLogger@6a45bcb6 +``` + +### 웹 스코프 & 프록시 동작 원리 + +```java +System.out.println("myLogger = " + myLogger.getClass()); +``` +실행결과 +```java +myLogger = class week7.seob.common.MyLogger$$SpringCGLIB$$0 +``` + +**CGLIB 라는 라이브러리로 내 클래스를 상속 받은 가짜 프록시 개체를 만들어 주입한다.** +- `@Scope`의 `proxyMode` 를 설정하면 스프링 컨테이너는 CGLIB라는 바이트 코드를 조작하는 라이브러리를 사용해 +MyLogger를 상속받은 가짜 프록시 객체를 생성한다. +- 결과를 확인해보면 우리가 등록한 순수한 MyLogger클래스가 아니라 `MyLogger$$SpringCGLIB$$0`이라는 클래스로 만들어진 +객체가 대신 등록된 것을 확인할 수 있다. +- 그리고 스프링 컨테이너에 "myLogger"라는 이름으로 진짜 대신에 이 가짜 프록시 객체를 등록한다. +- `ac.getBean("MyLogger", MyLogger.class)`로 조회해도 프록세 객체가 조회된다. +- 따라서 의존관계 주입도 이 가짜 프록시 객체가 주입된다. + + +**가짜 프록시 객체는 요청이 오면 그때 내부에서 진짜 빈을 요청하는 위임 로직이 들어있다.** +- 가짜 프록시 객체는 내부에 진짜 myLogger를 찾는 방법을 알고 있다. +- 클라이언트가 `myLogger.logic()`을 호출하면 사실은 가짜 프록시 객체의 메서드를 호출한 것이다. +- 가짜 프록시 객체는 request스코프의 진짜 `myLogger.logic()`를 호출한다. +- 가짜 프록시 객체는 원본 클래스를 상속 받아 생성됐기 때문에 이 객체를 사용하는 클라이언트 입장에서는 사실 +원본인지 아닌지도 모르게, 동일하게 사용할 수 있다.(다형성) + + + +> **동작 정리** +> - CGLIB라는 라이브러리로 내 클래스를 상속 받은 가짜 프록시 객체를 만들어 주입 +> - 이 가짜 프록시 객체는 실제 요청이 들어오면 그때 내부에서 실제 빈을 요청하는 위임 로직이 들어있음. +> - 가짜 프록시 객체는 실제 request scope와 관계 없음. 단순히 가짜이고, 내부에 위임 로직만 존재, 싱글톤 처럼 동작. + + +**특징 정리** +- 프록시 객체 덕분에 클라이언트는 마치 싱글톤 빈을 사용하듯이 편리하게 request scope를 사용할 수 있다. +- Provider를 사용하든, proxy를 사용하든 핵심 아이디어는 진짜 객체 조회를 꼭 필요한 시점까지 지연처리 한다는 점이다. +- 단지 애노테이션 설정 변경만으로 원본 객체를 proxy 객체로 대체할 수 있다. 이것이 바로 다형성과 DI 컨테이너가 가진 큰 장점이다. +- 또한 웹 스코프가 아니어도 프록시는 사용할 수 있다. + + +**주의점** +- 마치 싱글톤을 사용하는 것 같지만 다르게 동작하기 때문에 주의해서 사용해야함 +- 이런 특별한 scope는 꼭 필요한 곳에만 최소화해서 사용, 무분별하게 사용시 유지보수하기 어려움 \ No newline at end of file From 6cd81d36b4aea28425c28464e2650fb3790c4a93 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Tue, 2 Jan 2024 18:12:34 +0900 Subject: [PATCH 115/188] [BE] (build) Create new configuration to week8 [BE] (build) Create new configuration to week8 --- 8 WEEK/servlet/.gitignore | 37 +++ 8 WEEK/servlet/build.gradle | 35 +++ .../servlet/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + 8 WEEK/servlet/gradlew | 249 ++++++++++++++++++ 8 WEEK/servlet/gradlew.bat | 92 +++++++ 8 WEEK/servlet/settings.gradle | 1 + .../hello/servlet/ServletApplication.java | 13 + .../hello/servlet/ServletInitializer.java | 13 + .../src/main/resources/application.properties | 1 + .../servlet/ServletApplicationTests.java | 13 + 11 files changed, 461 insertions(+) create mode 100644 8 WEEK/servlet/.gitignore create mode 100644 8 WEEK/servlet/build.gradle create mode 100644 8 WEEK/servlet/gradle/wrapper/gradle-wrapper.jar create mode 100644 8 WEEK/servlet/gradle/wrapper/gradle-wrapper.properties create mode 100644 8 WEEK/servlet/gradlew create mode 100644 8 WEEK/servlet/gradlew.bat create mode 100644 8 WEEK/servlet/settings.gradle create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/ServletApplication.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/ServletInitializer.java create mode 100644 8 WEEK/servlet/src/main/resources/application.properties create mode 100644 8 WEEK/servlet/src/test/java/hello/servlet/ServletApplicationTests.java diff --git a/8 WEEK/servlet/.gitignore b/8 WEEK/servlet/.gitignore new file mode 100644 index 00000000..c2065bc2 --- /dev/null +++ b/8 WEEK/servlet/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/8 WEEK/servlet/build.gradle b/8 WEEK/servlet/build.gradle new file mode 100644 index 00000000..498eedd8 --- /dev/null +++ b/8 WEEK/servlet/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'war' + id 'org.springframework.boot' version '3.2.1' + id 'io.spring.dependency-management' version '1.1.4' +} + +group = 'hello' +version = '0.0.1-SNAPSHOT' + +java { + sourceCompatibility = '17' +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-web' + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' + testImplementation 'org.springframework.boot:spring-boot-starter-test' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/8 WEEK/servlet/gradle/wrapper/gradle-wrapper.jar b/8 WEEK/servlet/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d64cd4917707c1f8861d8cb53dd15194d4248596 GIT binary patch literal 43462 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 literal 0 HcmV?d00001 diff --git a/8 WEEK/servlet/gradle/wrapper/gradle-wrapper.properties b/8 WEEK/servlet/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..1af9e093 --- /dev/null +++ b/8 WEEK/servlet/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/8 WEEK/servlet/gradlew b/8 WEEK/servlet/gradlew new file mode 100644 index 00000000..1aa94a42 --- /dev/null +++ b/8 WEEK/servlet/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/8 WEEK/servlet/gradlew.bat b/8 WEEK/servlet/gradlew.bat new file mode 100644 index 00000000..93e3f59f --- /dev/null +++ b/8 WEEK/servlet/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/8 WEEK/servlet/settings.gradle b/8 WEEK/servlet/settings.gradle new file mode 100644 index 00000000..9c5e4d1a --- /dev/null +++ b/8 WEEK/servlet/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'servlet' diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/ServletApplication.java b/8 WEEK/servlet/src/main/java/hello/servlet/ServletApplication.java new file mode 100644 index 00000000..c8fe090e --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/ServletApplication.java @@ -0,0 +1,13 @@ +package hello.servlet; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ServletApplication { + + public static void main(String[] args) { + SpringApplication.run(ServletApplication.class, args); + } + +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/ServletInitializer.java b/8 WEEK/servlet/src/main/java/hello/servlet/ServletInitializer.java new file mode 100644 index 00000000..057e157f --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/ServletInitializer.java @@ -0,0 +1,13 @@ +package hello.servlet; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +public class ServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(ServletApplication.class); + } + +} diff --git a/8 WEEK/servlet/src/main/resources/application.properties b/8 WEEK/servlet/src/main/resources/application.properties new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/8 WEEK/servlet/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/8 WEEK/servlet/src/test/java/hello/servlet/ServletApplicationTests.java b/8 WEEK/servlet/src/test/java/hello/servlet/ServletApplicationTests.java new file mode 100644 index 00000000..9df6b76e --- /dev/null +++ b/8 WEEK/servlet/src/test/java/hello/servlet/ServletApplicationTests.java @@ -0,0 +1,13 @@ +package hello.servlet; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class ServletApplicationTests { + + @Test + void contextLoads() { + } + +} From f6623d3bcef3d20cef453f8740860bb6c1e02ee9 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:10:16 +0900 Subject: [PATCH 116/188] =?UTF-8?q?[BE]=20(docs)=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 이미지 추가 --- 8 WEEK/servlet/img/S1-1.png | Bin 0 -> 101521 bytes 8 WEEK/servlet/img/S1-2.png | Bin 0 -> 196049 bytes 8 WEEK/servlet/img/S1-3.png | Bin 0 -> 198436 bytes 8 WEEK/servlet/img/S1-4.png | Bin 0 -> 120109 bytes 8 WEEK/servlet/img/S1-5.png | Bin 0 -> 67874 bytes 8 WEEK/servlet/img/S1-6.png | Bin 0 -> 68615 bytes 8 WEEK/servlet/img/S1-7.png | Bin 0 -> 38561 bytes 8 WEEK/servlet/img/S1-8.png | Bin 0 -> 88474 bytes 8 WEEK/servlet/img/S2-1.png | Bin 0 -> 41260 bytes 8 WEEK/servlet/img/S2-2.png | Bin 0 -> 30644 bytes 8 WEEK/servlet/img/S2-3.png | Bin 0 -> 53140 bytes 8 WEEK/servlet/img/S2-4.png | Bin 0 -> 7167 bytes 8 WEEK/servlet/img/S2-5.png | Bin 0 -> 11320 bytes 8 WEEK/servlet/img/S2-6.png | Bin 0 -> 45320 bytes 8 WEEK/servlet/img/S2-7.png | Bin 0 -> 35267 bytes 8 WEEK/servlet/img/S2-8.png | Bin 0 -> 31562 bytes 16 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 8 WEEK/servlet/img/S1-1.png create mode 100644 8 WEEK/servlet/img/S1-2.png create mode 100644 8 WEEK/servlet/img/S1-3.png create mode 100644 8 WEEK/servlet/img/S1-4.png create mode 100644 8 WEEK/servlet/img/S1-5.png create mode 100644 8 WEEK/servlet/img/S1-6.png create mode 100644 8 WEEK/servlet/img/S1-7.png create mode 100644 8 WEEK/servlet/img/S1-8.png create mode 100644 8 WEEK/servlet/img/S2-1.png create mode 100644 8 WEEK/servlet/img/S2-2.png create mode 100644 8 WEEK/servlet/img/S2-3.png create mode 100644 8 WEEK/servlet/img/S2-4.png create mode 100644 8 WEEK/servlet/img/S2-5.png create mode 100644 8 WEEK/servlet/img/S2-6.png create mode 100644 8 WEEK/servlet/img/S2-7.png create mode 100644 8 WEEK/servlet/img/S2-8.png diff --git a/8 WEEK/servlet/img/S1-1.png b/8 WEEK/servlet/img/S1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b4382b9bcce65b5005bb8f5f8ca3ef001846fc02 GIT binary patch literal 101521 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 z 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 OXQi`UNylA0z&TBKfM5O>r` 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

ufPlM{+ps{-_RkL4RvM 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 npKMKzapHfDWDF@{{d!4ALK8B?%Y}`71NU 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�bG6vp~DZ) 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

6JQ@54@DE~mK7zLsdc>H)I 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 Y_!K_~m6V96@ESOzCFCH5V)|bHAG&eh(f|Me literal 0 HcmV?d00001 diff --git a/8 WEEK/servlet/img/S1-6.png b/8 WEEK/servlet/img/S1-6.png new file mode 100644 index 0000000000000000000000000000000000000000..0f147271ae70d29b66dacfdb6b429d20d75e14e4 GIT binary patch literal 68615 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 literal 0 HcmV?d00001 diff --git a/8 WEEK/servlet/img/S2-4.png b/8 WEEK/servlet/img/S2-4.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ce3e899cb1bb9077fe5733c2f98bffbd1bcdbb GIT binary patch literal 7167 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 Mci%{>PQx+wUlRwrO#lD@ literal 0 HcmV?d00001 diff --git a/8 WEEK/servlet/img/S2-5.png b/8 WEEK/servlet/img/S2-5.png new file mode 100644 index 0000000000000000000000000000000000000000..5c762ffad60ed7f21837ba5b70c867627af92d7c GIT binary patch literal 11320 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Μc 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 T95ljo`;--BRY7IaMuGne48TT2 literal 0 HcmV?d00001 diff --git a/8 WEEK/servlet/img/S2-7.png b/8 WEEK/servlet/img/S2-7.png new file mode 100644 index 0000000000000000000000000000000000000000..3948838e6d2344ed9ee9b7efe15f1292a6dc3fb6 GIT binary patch literal 35267 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 z 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 XL8>DYor=&a=prR1CtChR*YCdpO*z+u literal 0 HcmV?d00001 diff --git a/8 WEEK/servlet/img/S2-8.png b/8 WEEK/servlet/img/S2-8.png new file mode 100644 index 0000000000000000000000000000000000000000..76f40bbdacd635b62ae56434dd767aabf117541b GIT binary patch literal 31562 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 p|6rZ=|9Up?KLM_ literal 0 HcmV?d00001 From e44ef63729d3dcbb9319abb1365e7e1831d87221 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:12:56 +0900 Subject: [PATCH 117/188] =?UTF-8?q?[BE]=20(feat)=20=EC=84=9C=EB=B8=94?= =?UTF-8?q?=EB=A6=BF=EC=97=90=20=EB=8C=80=ED=95=9C=20=EC=BD=94=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) 서블릿에 대한 코드 reqeust, response 정리 --- .../hello/servlet/ServletApplication.java | 2 + .../java/hello/servlet/basic/HelloData.java | 11 ++ .../hello/servlet/basic/HelloServlet.java | 26 +++++ .../basic/request/RequestBodyJsonServlet.java | 35 ++++++ .../request/RequestBodyStringServlet.java | 25 ++++ .../basic/request/RequestHeaderServlet.java | 108 ++++++++++++++++++ .../basic/request/RequestParamServlet.java | 39 +++++++ .../basic/response/ResponseHeaderServlet.java | 62 ++++++++++ .../basic/response/ResponseHtmlServlet.java | 27 +++++ .../basic/response/ResponseJsonServlet.java | 30 +++++ .../src/main/resources/application.properties | 2 +- 8 WEEK/servlet/src/main/webapp/basic.html | 40 +++++++ .../src/main/webapp/basic/hello-form.html | 14 +++ 8 WEEK/servlet/src/main/webapp/index.html | 12 ++ 14 files changed, 432 insertions(+), 1 deletion(-) create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/HelloData.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/HelloServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestBodyJsonServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestBodyStringServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestHeaderServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestParamServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseHeaderServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseHtmlServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseJsonServlet.java create mode 100644 8 WEEK/servlet/src/main/webapp/basic.html create mode 100644 8 WEEK/servlet/src/main/webapp/basic/hello-form.html create mode 100644 8 WEEK/servlet/src/main/webapp/index.html diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/ServletApplication.java b/8 WEEK/servlet/src/main/java/hello/servlet/ServletApplication.java index c8fe090e..a1c772de 100644 --- a/8 WEEK/servlet/src/main/java/hello/servlet/ServletApplication.java +++ b/8 WEEK/servlet/src/main/java/hello/servlet/ServletApplication.java @@ -2,7 +2,9 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +@ServletComponentScan //서블릿 자동 등록 @SpringBootApplication public class ServletApplication { diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/HelloData.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/HelloData.java new file mode 100644 index 00000000..c514bc33 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/HelloData.java @@ -0,0 +1,11 @@ +package hello.servlet.basic; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HelloData { + private String username; + private int age; +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/HelloServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/HelloServlet.java new file mode 100644 index 00000000..4a128f82 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/HelloServlet.java @@ -0,0 +1,26 @@ +package hello.servlet.basic; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "helloServlet", urlPatterns = "/hello") +public class HelloServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest requset, HttpServletResponse response) throws ServletException, IOException { + System.out.println("HelloServlet.service"); + System.out.println("requset = " + requset); + System.out.println("response = " + response); + + String username = requset.getParameter("username"); + System.out.println("username = " + username); + + response.setContentType("text/plain"); + response.setCharacterEncoding("utf-8"); + response.getWriter().write("hello " + username); + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestBodyJsonServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestBodyJsonServlet.java new file mode 100644 index 00000000..3bb95632 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestBodyJsonServlet.java @@ -0,0 +1,35 @@ +package hello.servlet.basic.request; + +import com.fasterxml.jackson.databind.ObjectMapper; +import hello.servlet.basic.HelloData; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletInputStream; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.util.StreamUtils; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +@WebServlet(name = "requestBodyJsonServlet", urlPatterns = "/request-body-json") +public class RequestBodyJsonServlet extends HttpServlet { + + private ObjectMapper objectMapper = new ObjectMapper(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + ServletInputStream inputStream = request.getInputStream(); + String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); + + System.out.println("messageBody = " + messageBody); + + HelloData helloData = objectMapper.readValue(messageBody, HelloData.class); + + System.out.println("helloData.username = " + helloData.getUsername()); + System.out.println("helloData.age = " + helloData.getAge()); + + response.getWriter().write("ok"); + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestBodyStringServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestBodyStringServlet.java new file mode 100644 index 00000000..660342ba --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestBodyStringServlet.java @@ -0,0 +1,25 @@ +package hello.servlet.basic.request; + +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletInputStream; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.util.StreamUtils; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +@WebServlet(name="requestBodyStringServlet", urlPatterns = "/request-body-string") +public class RequestBodyStringServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + ServletInputStream inputStream = request.getInputStream(); + String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); + + System.out.println("messageBody = " + messageBody); + + response.getWriter().write("OK"); + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestHeaderServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestHeaderServlet.java new file mode 100644 index 00000000..3d19efca --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestHeaderServlet.java @@ -0,0 +1,108 @@ +package hello.servlet.basic.request; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header") +public class RequestHeaderServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + printStartLine(request); + printHeaders(request); + printHeaderUtils(request); + printEtc(request); + + } + + //start line 정보 + private void printStartLine(HttpServletRequest request) { + System.out.println("--- REQUEST-LINE - start ---"); + System.out.println("request.getMethod() = " + request.getMethod()); //GET + System.out.println("request.getProtocol() = " + request.getProtocol()); //HTTP/1.1 + System.out.println("request.getScheme() = " + request.getScheme()); //http + // http://localhost:8080/request-header + System.out.println("request.getRequestURL() = " + request.getRequestURL()); + // /request-header + System.out.println("request.getRequestURI() = " + request.getRequestURI()); + //username=hi + System.out.println("request.getQueryString() = " + + request.getQueryString()); + System.out.println("request.isSecure() = " + request.isSecure()); //https 사용유무 + System.out.println("--- REQUEST-LINE - end ---"); + System.out.println(); + } + + //Header 모든 정보 + private void printHeaders(HttpServletRequest request) { + System.out.println("--- Headers - start ---"); + /* + Enumeration headerNames = request.getHeaderNames(); + while (headerNames.hasMoreElements()) { + String headerName = headerNames.nextElement(); + System.out.println(headerName + ": " + request.getHeader(headerName)); + } + */ + request.getHeaderNames().asIterator() + .forEachRemaining(headerName -> System.out.println(headerName + ": " + + request.getHeader(headerName))); + System.out.println("--- Headers - end ---"); + System.out.println(); + } + + + //Header 편리한 조회 + private void printHeaderUtils(HttpServletRequest request) { + System.out.println("--- Header 편의 조회 start ---"); + System.out.println("[Host 편의 조회]"); + System.out.println("request.getServerName() = " + + request.getServerName()); //Host 헤더 + System.out.println("request.getServerPort() = " + + request.getServerPort()); //Host 헤더 + System.out.println(); + System.out.println("[Accept-Language 편의 조회]"); + request.getLocales().asIterator() + .forEachRemaining(locale -> System.out.println("locale = " + + locale)); + System.out.println("request.getLocale() = " + request.getLocale()); + System.out.println(); + System.out.println("[cookie 편의 조회]"); + if (request.getCookies() != null) { + for (Cookie cookie : request.getCookies()) { + System.out.println(cookie.getName() + ": " + cookie.getValue()); + } + } + System.out.println(); + System.out.println("[Content 편의 조회]"); + System.out.println("request.getContentType() = " + + request.getContentType()); + System.out.println("request.getContentLength() = " + + request.getContentLength()); + System.out.println("request.getCharacterEncoding() = " + + request.getCharacterEncoding()); + } + + //기타 정보 + private void printEtc(HttpServletRequest request) { + System.out.println("--- 기타 조회 start ---"); + System.out.println("[Remote 정보]"); + System.out.println("request.getRemoteHost() = " + + request.getRemoteHost()); // + System.out.println("request.getRemoteAddr() = " + + request.getRemoteAddr()); // + System.out.println("request.getRemotePort() = " + + request.getRemotePort()); // + System.out.println(); + System.out.println("[Local 정보]"); + System.out.println("request.getLocalName() = " + request.getLocalName()); // + System.out.println("request.getLocalAddr() = " + request.getLocalAddr()); // + System.out.println("request.getLocalPort() = " + request.getLocalPort()); // + System.out.println("--- 기타 조회 end ---"); + System.out.println(); + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestParamServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestParamServlet.java new file mode 100644 index 00000000..d90e08d1 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/request/RequestParamServlet.java @@ -0,0 +1,39 @@ +package hello.servlet.basic.request; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.util.Enumeration; + +@WebServlet(name = "requestParamServlet", urlPatterns = "/request-param") +public class RequestParamServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest requset, HttpServletResponse response) throws ServletException, IOException { + System.out.println("[전체 파라미터 조회] - start"); + +// Enumeration parameterNames = requset.getParameterNames(); + requset.getParameterNames().asIterator().forEachRemaining( + paramName -> System.out.println(paramName + "=" + requset.getParameter(paramName)) + ); + + System.out.println("[전체 파라미터 조회] - end"); + System.out.println(); + + System.out.println("[단일 파라미터 조회]"); + String username= requset.getParameter("username"); + String age = requset.getParameter("age"); + + System.out.println("username = " + username); + System.out.println("age = " + age); + + System.out.println("[이름이 같은 복수 파라미터 조회]"); + String[] usernames = requset.getParameterValues("username"); + for(String name: usernames) { + System.out.println("username = " + name); + } + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseHeaderServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseHeaderServlet.java new file mode 100644 index 00000000..12923c0a --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseHeaderServlet.java @@ -0,0 +1,62 @@ +package hello.servlet.basic.response; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header") +public class ResponseHeaderServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //[status-line] + response.setStatus(HttpServletResponse.SC_OK); + + //[response-headers] + response.setHeader("Content-Type", "text/plain;charset=utf-8"); + response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("my-header","hello"); + + //[Header 편의 메서드] +// content(response); +// cookie(response); +// redirect(response); + + //[message body] + PrintWriter writer = response.getWriter(); + writer.println("ok"); + } + + private void content(HttpServletResponse response) { + //Content-Type: text/plain;charset=utf-8 + //Content-Length: 2 + //response.setHeader("Content-Type", "text/plain;charset=utf-8"); + response.setContentType("text/plain"); + response.setCharacterEncoding("utf-8"); + //response.setContentLength(2); //(생략시 자동 생성) + } + + private void cookie(HttpServletResponse response) { + //Set-Cookie: myCookie=good; Max-Age=600; + //response.setHeader("Set-Cookie", "myCookie=good; Max-Age=600"); + Cookie cookie = new Cookie("myCookie", "good"); + cookie.setMaxAge(600); //600초 + response.addCookie(cookie); + } + + private void redirect(HttpServletResponse response) throws IOException { + //Status Code 302 + //Location: /basic/hello-form.html + //response.setStatus(HttpServletResponse.SC_FOUND); //302 + //response.setHeader("Location", "/basic/hello-form.html"); + response.sendRedirect("/basic/hello-form.html"); + } + +} + diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseHtmlServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseHtmlServlet.java new file mode 100644 index 00000000..a64c8450 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseHtmlServlet.java @@ -0,0 +1,27 @@ +package hello.servlet.basic.response; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "responseHtmlServlet", urlPatterns = "/response-html") +public class ResponseHtmlServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //Content-Type: text/html;charset=utf-8 + response.setContentType("text/html"); + response.setCharacterEncoding("utf-8"); + PrintWriter writer = response.getWriter(); + writer.println(""); + writer.println(""); + writer.println("

HI?
"); + writer.println(""); + writer.println(""); + } +} + diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseJsonServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseJsonServlet.java new file mode 100644 index 00000000..5260635b --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/basic/response/ResponseJsonServlet.java @@ -0,0 +1,30 @@ +package hello.servlet.basic.response; + +import com.fasterxml.jackson.databind.ObjectMapper; +import hello.servlet.basic.HelloData; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "responseJsonServlet", urlPatterns = "/response-json") +public class ResponseJsonServlet extends HttpServlet { + + private ObjectMapper objectMapper = new ObjectMapper(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + + HelloData helloData = new HelloData(); + helloData.setUsername("lee"); + helloData.setAge(20); + + String result = objectMapper.writeValueAsString(helloData); + response.getWriter().write(result); + } +} diff --git a/8 WEEK/servlet/src/main/resources/application.properties b/8 WEEK/servlet/src/main/resources/application.properties index 8b137891..efc5ff2f 100644 --- a/8 WEEK/servlet/src/main/resources/application.properties +++ b/8 WEEK/servlet/src/main/resources/application.properties @@ -1 +1 @@ - +logging.level.org.apache.coyote.http11=debug diff --git a/8 WEEK/servlet/src/main/webapp/basic.html b/8 WEEK/servlet/src/main/webapp/basic.html new file mode 100644 index 00000000..813a0b8e --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/basic.html @@ -0,0 +1,40 @@ + + + + + Title + + +
+ + \ No newline at end of file diff --git a/8 WEEK/servlet/src/main/webapp/basic/hello-form.html b/8 WEEK/servlet/src/main/webapp/basic/hello-form.html new file mode 100644 index 00000000..a712358f --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/basic/hello-form.html @@ -0,0 +1,14 @@ + + + + + Title + + +
+ username: + age: + +
+ + \ No newline at end of file diff --git a/8 WEEK/servlet/src/main/webapp/index.html b/8 WEEK/servlet/src/main/webapp/index.html new file mode 100644 index 00000000..bfac4bd3 --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/index.html @@ -0,0 +1,12 @@ + + + + + Title + + + + + \ No newline at end of file From 2445536331f8aed228b193c774d98459c5c24535 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:13:46 +0900 Subject: [PATCH 118/188] =?UTF-8?q?[BE]=20(docs)=20=EC=84=9C=EB=B8=94?= =?UTF-8?q?=EB=A6=BF=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 서블릿 정리 --- 8 WEEK/servlet/SECTION2.md | 826 +++++++++++++++++++++++++++++++++++++ 1 file changed, 826 insertions(+) create mode 100644 8 WEEK/servlet/SECTION2.md diff --git a/8 WEEK/servlet/SECTION2.md b/8 WEEK/servlet/SECTION2.md new file mode 100644 index 00000000..17c3e7e9 --- /dev/null +++ b/8 WEEK/servlet/SECTION2.md @@ -0,0 +1,826 @@ +# 서블릿 + + +## Hello 서블릿 + +> **참고**
+> 서블릿은 톰캣 같은 WAS 서버를 직접 설치, 그 위에 서블리 ㅅ코드를 클래스 파일로 빌드해서 +> 올린 다음, 톰캣 서버를 실행한다. 이 과정은 매우 번거롭다.
+> 스프링 부트는 톰캣 서버를 내장하고 있으므로, 톰캣 서버 설치 없이 편리하게 서블릿 코드를 실행할 수 있다. + + +### 스프링 부트 서블릿 환경 구성 + +`@ServletComponentScan`
+스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 `@ServletComponentScan`을 지원한다. +다음과 같이 추가한다. + +*ServletApplication* +```java +package hello.servlet; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; + +@ServletComponentScan //서블릿 자동 등록 +@SpringBootApplication +public class ServletApplication { + + public static void main(String[] args) { + SpringApplication.run(ServletApplication.class, args); + } + +} +``` +
+ +**서블릿 등록하기** + +*HelloServlet* +```java +package hello.servlet.basic; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "helloServlet", urlPatterns = "/hello") +public class HelloServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest requset, HttpServletResponse response) throws ServletException, IOException { + System.out.println("HelloServlet.service"); + System.out.println("requset = " + requset); + System.out.println("response = " + response); + + String username = requset.getParameter("username"); + System.out.println("username = " + username); + + response.setContentType("text/plain"); + response.setCharacterEncoding("utf-8"); + response.getWriter().write("hello " + username); + } +} +``` + +- `@WebServlet` 서블릿 애노테이션 + - name : 서블릿 이름 + - urlPatterns : URL매핑 + +HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행
+`protected void service(HttpServletRequest requset, HttpServletResponse response)` + +- 웹 브라우저 실행 + - http://localhost8080/hello?username=world + - 결과 : hello world + +- 콘솔 실행결과 +``` +HelloServlet.service +requset = org.apache.catalina.connector.RequestFacade@42a1a9b6 +response = org.apache.catalina.connector.ResponseFacade@e7a3bb +username = world +``` + + +### 서블릿 컨테이너 동작 방식 +**내장 톰캣 서버 생성** +![S2-1.png](img%2FS2-1.png) + +**HTTP 요청, HTTP응답 메시지** +![S2-2.png](img%2FS2-2.png) + +**웹 애플리케이션 서버의 요청 응답 구조** +![S2-3.png](img%2FS2-3.png) + +> **참고**
+> HTTP응답에서 Content-Length는 웹 애플리케이션 서버가 자동으로 생성해준다. + + +### welcome 페이지 추가 + +```html + + + + + Title + + + + + +``` + + +## HttpServletRequest - 개요 + +**HttpServletRequest 역할**
+HTTP 요청 메시지를 개발자가 직접 파싱해도 사용해도 되지만, 매우 불편하다. 서블릿은 개발자가 HTTP 요청 메시지를 +편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 `HttpServletRequest`객체에 담아서 제공한다. + +HttpServletRequest를 사용하면 다음과 같은 HTTP 요청 메시지를 편리하게 조회할 수 있다. + +*HTTP 요청 메시지* +``` +POST /save HTTP/1.1 +Host: localhost:8080 +Content-Type: application/x-www-form-urlencoded +username=kim&age=20 +``` + +- START LINE + - HTTP 메서드 + - URL + - 쿼리 스트링 + - 스키마, 프로토콜 +- 헤더 + - 헤더 조회 +- 바디 + - form 파라미터 형식 조회 + - message body 데이터 직접 조회 + +HttpServletRequest 객체는 추가로 여러가지 부가기능도 함께 제공한다. + +**임시 저장소 기능** +- 해당 HTTP 요청이 시작부터 끝날 때 까지 유지되는 임시 저장소 기능 + - 저장 : `request.setAttribute(name, value)` + - 조회 : `request.getAttribute(name)` + +**세션 관리 기능** +- `request.getSession(create: true)` + +> **중요**
+> HttpServletRequest, HttpServletResponse를 사용할 때 가장 중요한 점은 이 객체들이 HTTP 요청 메시지, +> HTTP 응답 메시지를 편리하게 사용하도록 도와주는 객체라는 점이다. 따라서 이 기능에 대해 깊이 이해하려면 +> **HTTP 스팩이 제공하는 요청, 응답 메시지 자체를 이해**해야 한다. + + + +## HttpServletRequest - 기본 사용법 +HttpServletRequest가 제공하는 기본 기능 + +*RequestHeaderServlet* +```java +package hello.servlet.basic.request; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header") +public class RequestHeaderServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + printStartLine(request); + printHeaders(request); + printHeaderUtils(request); + printEtc(request); + + } + + //start line 정보 + private void printStartLine(HttpServletRequest request) { + System.out.println("--- REQUEST-LINE - start ---"); + System.out.println("request.getMethod() = " + request.getMethod()); //GET + System.out.println("request.getProtocol() = " + request.getProtocol()); //HTTP/1.1 + System.out.println("request.getScheme() = " + request.getScheme()); //http + // http://localhost:8080/request-header + System.out.println("request.getRequestURL() = " + request.getRequestURL()); + // /request-header + System.out.println("request.getRequestURI() = " + request.getRequestURI()); + //username=hi + System.out.println("request.getQueryString() = " + + request.getQueryString()); + System.out.println("request.isSecure() = " + request.isSecure()); //https 사용유무 + System.out.println("--- REQUEST-LINE - end ---"); + System.out.println(); + } + + //Header 모든 정보 + private void printHeaders(HttpServletRequest request) { + System.out.println("--- Headers - start ---"); + /* + Enumeration headerNames = request.getHeaderNames(); + while (headerNames.hasMoreElements()) { + String headerName = headerNames.nextElement(); + System.out.println(headerName + ": " + request.getHeader(headerName)); + } + */ + request.getHeaderNames().asIterator() + .forEachRemaining(headerName -> System.out.println(headerName + ": " + + request.getHeader(headerName))); + System.out.println("--- Headers - end ---"); + System.out.println(); + } + + + //Header 편리한 조회 + private void printHeaderUtils(HttpServletRequest request) { + System.out.println("--- Header 편의 조회 start ---"); + System.out.println("[Host 편의 조회]"); + System.out.println("request.getServerName() = " + + request.getServerName()); //Host 헤더 + System.out.println("request.getServerPort() = " + + request.getServerPort()); //Host 헤더 + System.out.println(); + System.out.println("[Accept-Language 편의 조회]"); + request.getLocales().asIterator() + .forEachRemaining(locale -> System.out.println("locale = " + + locale)); + System.out.println("request.getLocale() = " + request.getLocale()); + System.out.println(); + System.out.println("[cookie 편의 조회]"); + if (request.getCookies() != null) { + for (Cookie cookie : request.getCookies()) { + System.out.println(cookie.getName() + ": " + cookie.getValue()); + } + } + System.out.println(); + System.out.println("[Content 편의 조회]"); + System.out.println("request.getContentType() = " + + request.getContentType()); + System.out.println("request.getContentLength() = " + + request.getContentLength()); + System.out.println("request.getCharacterEncoding() = " + + request.getCharacterEncoding()); + } + + //기타 정보 + private void printEtc(HttpServletRequest request) { + System.out.println("--- 기타 조회 start ---"); + System.out.println("[Remote 정보]"); + System.out.println("request.getRemoteHost() = " + + request.getRemoteHost()); // + System.out.println("request.getRemoteAddr() = " + + request.getRemoteAddr()); // + System.out.println("request.getRemotePort() = " + + request.getRemotePort()); // + System.out.println(); + System.out.println("[Local 정보]"); + System.out.println("request.getLocalName() = " + request.getLocalName()); // + System.out.println("request.getLocalAddr() = " + request.getLocalAddr()); // + System.out.println("request.getLocalPort() = " + request.getLocalPort()); // + System.out.println("--- 기타 조회 end ---"); + System.out.println(); + } +} +``` +실행결과 +``` +--- REQUEST-LINE - start --- +request.getMethod() = GET +request.getProtocol() = HTTP/1.1 +request.getScheme() = http +request.getRequestURL() = http://localhost:8080/request-header +request.getRequestURI() = /request-header +request.getQueryString() = null +request.isSecure() = false +--- REQUEST-LINE - end --- + +--- Headers - start --- +host: localhost:8080 +connection: keep-alive +cache-control: max-age=0 +sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120" +sec-ch-ua-mobile: ?0 +sec-ch-ua-platform: "Windows" +upgrade-insecure-requests: 1 +user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 +accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 +sec-fetch-site: same-origin +sec-fetch-mode: navigate +sec-fetch-user: ?1 +sec-fetch-dest: document +referer: http://localhost:8080/basic.html +accept-encoding: gzip, deflate, br +accept-language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7 +cookie: Idea-1afd2dea=715e6892-4a57-4307-afc0-f323498e55fb +--- Headers - end --- + +--- Header 편의 조회 start --- +[Host 편의 조회] +request.getServerName() = localhost +request.getServerPort() = 8080 + +[Accept-Language 편의 조회] +locale = ko_KR +locale = ko +locale = en_US +locale = en +request.getLocale() = ko_KR + +[cookie 편의 조회] +Idea-1afd2dea: 715e6892-4a57-4307-afc0-f323498e55fb + +[Content 편의 조회] +request.getContentType() = null +request.getContentLength() = -1 +request.getCharacterEncoding() = UTF-8 +--- 기타 조회 start --- +[Remote 정보] +request.getRemoteHost() = 0:0:0:0:0:0:0:1 +request.getRemoteAddr() = 0:0:0:0:0:0:0:1 +request.getRemotePort() = 57354 + +[Local 정보] +request.getLocalName() = 0:0:0:0:0:0:0:1 +request.getLocalAddr() = 0:0:0:0:0:0:0:1 +request.getLocalPort() = 8080 +--- 기타 조회 end --- +``` + +> **참고**
+> 로컬에서 테스트하면 IPv6정보가 나오는데, IPv4 정보를 보고싶다면 다음 옵션을 VM options에 넣어주면 된다. +>
`-Djava.net.preferIPv4Stack=true` + + +## HTTP 요청 데이터 - 개요 +HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법이 있다. + +**주로 다음 3가지 방법을 사용** +- **GET - 쿼리 파라미터** + - /url?username=seob&age=24 + - 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 + - 예)검색, 필터, 페이징등등에서 많이 사용하는 방식 +- **POST - HTML Form** + - content-type : application/x-www-form-urlencoded + - 메시지 바디에 쿼리 파라미터 형식으로 전달 username=seob&age=24 + - 예)회원 가입, 상품 주문, HTML Form 사용 +- **HTTP message body**에 데이터를 직접 담아서 요청 + - HTTP API에서 주로 사용, JSON, XML, TEXT + - 데이터 형식은 주로 JSON에 사용 + - POST, PUT, PATCH + + +### HTTP 요청 데이터 - GET 쿼리 파라미터 + +전달 데이터 +- username=hello +- age=20 + +메시지 바디 없이, URL의 **쿼리 파라미터**를 사용해서 데이터 전달 +- 예)검색, 필터, 페이징등등에서 많이 사용하는 방식 + +쿼리 파라미터는 URL에 다음과 같이 `?`를 시작으로 보낼 수 있다. 추가 파라미터는 `&`로 구분 +- http://localhost:8080/request-param?username=hello&age=20 + +*RequestParamServlet* +```java +package hello.servlet.basic.request; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.util.Enumeration; + +@WebServlet(name = "requestParamServlet", urlPatterns = "/request-param") +public class RequestParamServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest requset, HttpServletResponse response) throws ServletException, IOException { + System.out.println("[전체 파라미터 조회] - start"); + +// Enumeration parameterNames = requset.getParameterNames(); + requset.getParameterNames().asIterator().forEachRemaining( + paramName -> System.out.println(paramName + "=" + requset.getParameter(paramName)) + ); + + System.out.println("[전체 파라미터 조회] - end"); + System.out.println(); + + System.out.println("[단일 파라미터 조회]"); + String username= requset.getParameter("username"); + String age = requset.getParameter("age"); + + System.out.println("username = " + username); + System.out.println("age = " + age); + + System.out.println("[이름이 같은 복수 파라미터 조회]"); + String[] usernames = requset.getParameterValues("username"); + for(String name: usernames) { + System.out.println("username = " + name); + } + } +} +``` +실행결과 - 파라미터 전송
+http://localhost:8080/request-param?username=hello&age=20 +``` +[전체 파라미터 조회] - start +username=hello +age=20 +[전체 파라미터 조회] - end + +[단일 파라미터 조회] +username = hello +age = 20 +[이름이 같은 복수 파라미터 조회] +username = hello +``` +
+ +실행결과 - 동일 파라미터 전송 +``` +[전체 파라미터 조회] - start +username=hello +age=20 +[전체 파라미터 조회] - end +[단일 파라미터 조회] +request.getParameter(username) = hello +request.getParameter(age) = 20 +[이름이 같은 복수 파라미터 조회] +request.getParameterValues(username) +username=hello +username=Lee +``` + +파라미터의 값은 하나인데, 값이 중복이면 `request.getParameterValue()` 를 사용해야한다.
+중복일 때 `request.getParameter()`를 사용하면 `request.getParameterValue()`의 첫 번째 값을 반환한다. + + +## HTTP 요청 데이터 - POST HTML FORM +주로 회원가입, 상품주문 등에서 사용 + +**특징** +- content-type : `application/x-www-form-urlencode` +- 메시지 바디에 쿼리 파라미터 형식으로 데이터를 전달. `username=hello&age=20` + +*hello-form.html* +```html + + + + + Title + + +
+ username: + age: + +
+ + +``` + +실행결과 + +![S2-4.png](img%2FS2-4.png) + +전송버튼 클릭 + +![S2-5.png](img%2FS2-5.png) + +POST의 HTML FORM을 전송하면 웹 브라우저는 다음 형식으로 HTTP 메시지를 만든다. +- **요청 URL** : http://localhost:8080/request-param +- **content-type** : `application/x-www-form-urlencoded` +- **message body** : `username=hello&age=20` + +`application/x-www-form-urlencoded`형식은 앞서 GET에서 살펴본 쿼리 파라미터 형식과 같다. +따라서 **쿼리 파라미터 조회 메서드를 그대로 사용**하면 된다. + +`request.getParameter()`는 GET URL 쿼리 파라미터 형식도 지원, POST HTML FORM 형식도 지원한다. + +> **참고**
+> content-type은 HTTP메시지 바디에 데이터 형식을 지정.
+> **GET URL 쿼리 파라미터 형식**으로 클라이언트에서 서버로 데이터를 전달할 때는 HTTP 메시지 바디를 사용하지 않기 때문에 content-type이 없다.
+> **POST FHTML Form 형식**으로 데이터를 전달하면 HTTP 메시지 바디에 해당 데이터를 포함해서 보내기 때문에 바디에 포함된 +> 데이터가 어떤 형식인지 content-type을 반드시 지정해야 한다. 이렇게 폼으로 데이터를 전송하는 형식을 `application/x-www-form-urlencoded`라 한다. + + +### Postman을 사용한 테스트 +Postman을 사용하면 굳이 HTML form 을 생성하지 않고 테스트 가능하다. +![S2-6.png](img%2FS2-6.png) + + +## HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트 +- **HTTP message body**에 데이터를 직접 담아서 요청 + - HTTP API에서 주로 사용, JSON, XML, TEXT + - 데이터 형식은 주로 JSON사용 + - POST, PUT, PATCH + + +- 먼저 가장 단순한 텍스트 메시지를 HTTP 메시지에 담아 전송하고 읽기. +- HTTP 메시지 바디의 데이터를 InputStream을 사용해 직접 읽을 수 있다. + +*RequestBodyStringServlet* +```java +package hello.servlet.basic.request; + +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletInputStream; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.util.StreamUtils; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +@WebServlet(name="RequestBodyStringServlet", urlPatterns = "/request-body-string") +public class RequestBodyStringServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + ServletInputStream inputStream = request.getInputStream(); + String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); + + System.out.println("messageBody = " + messageBody); + + response.getWriter().write("OK"); + } +} +``` + +Postman 테스트 + +![S2-7.png](img%2FS2-7.png) + +문자 전송 +- POST http://localhost:8080/request-body-string +- content-type: text/plain +- message body: hello + +실행결과 +``` +messageBody = helloooo! +``` + +> **참고**
+> inputStream은 byte코드로 반환. byte코드를 우리가 읽을 수 있는 문자(String)로 보려면 +> 문자표(Charset)를 지정해야함. 여기서 UTF_8을 지정 + + + +## HTTP 요청 데이터 - API 메시지 바디 - JSON +HTTP API에서 주로 사용하는 JSON형식으로 데이터 전달해보기 + +**JSON 형식 전송** +- content-type : **application/json** +- message body : `{"username": "hello","age": 20}` +- 결과 : `messageBody = {"username":"hello","age":20}` + +**JSON 형식 바싱 추가** + +*HelloData* +```java +package hello.servlet.basic; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HelloData { + private String username; + private int age; +} +``` + +*RequestBodyJsonServlet* +```java +package hello.servlet.basic.request; + +import com.fasterxml.jackson.databind.ObjectMapper; +import hello.servlet.basic.HelloData; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletInputStream; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.util.StreamUtils; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +@WebServlet(name = "requestBodyJsonServlet", urlPatterns = "/request-body-json") +public class RequestBodyJsonServlet extends HttpServlet { + + private ObjectMapper objectMapper = new ObjectMapper(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + ServletInputStream inputStream = request.getInputStream(); + String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); + + System.out.println("messageBody = " + messageBody); + + HelloData helloData = objectMapper.readValue(messageBody, HelloData.class); + + System.out.println("helloData.username = " + helloData.getUsername()); + System.out.println("helloData.age = " + helloData.getAge()); + + response.getWriter().write("ok"); + } +} + +``` +Postman으로 실행 + +![S2-8.png](img%2FS2-8.png) + +실행결과 +``` +messageBody = {"username": "hello","age": 20} +helloData.username = hello +helloData.age = 20 +``` + +> **참고**
+> JSON결과를 파싱해서 사용할 수 있는 자바 객체로 변환하려면 Jackson, Gson 같은 JSON 변환 라이브러리를 추가해서 사용해야한다. +> Spring MVC를 선택하면 기본으로 Jackson 라이브러리(ObjectMapper)를 함께 제공한다. + + +> **참고**
+> HTML form 데이터도 메시지 바디를 통해 전송되므로 직접 읽을 수 있다. 하지만 편리한 파라미터 조회기능 +> (request.getParameter(...))을 이미 제공하기 때문에 파라미터 조회 기능을 사용하면 된다. + + + +## HttpServletResponse - 기본 사용법 +### HttpServletResponse 역할 + +**HTTP 응답 메시지 생성** +- HTTP 응답 코드 지정 +- 헤더 생성 +- 바디 생성 + +**편의 기능 제공** +- Content-Type, 쿠키, Redirect + + +### HttpServletResponse - 기본 사용법 + +*ResponseHeaderServlet* +```java +package hello.servlet.basic.response; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header") +public class ResponseHeaderServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //[status-line] + response.setStatus(HttpServletResponse.SC_OK); + + //[response-headers] + response.setHeader("Content-Type", "text/plain;charset=utf-8"); + response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("my-header", "hello"); + + //[Header 편의 메서드] +// content(response); +// cookie(response); +// redirect(response); + + //[message body] + PrintWriter writer = response.getWriter(); + writer.println("ok"); + } +} +``` + +*Content 편의 메서드* +```java + private void content(HttpServletResponse response) { + //Content-Type: text/plain;charset=utf-8 + //Content-Length: 2 + //response.setHeader("Content-Type", "text/plain;charset=utf-8"); + response.setContentType("text/plain"); + response.setCharacterEncoding("utf-8"); + //response.setContentLength(2); //(생략시 자동 생성) + } +``` + +*Cookie 편의 메서드* +```java + private void cookie(HttpServletResponse response) { + //Set-Cookie: myCookie=good; Max-Age=600; + //response.setHeader("Set-Cookie", "myCookie=good; Max-Age=600"); + Cookie cookie = new Cookie("myCookie", "good"); + cookie.setMaxAge(600); //600초 + response.addCookie(cookie); + } +``` + +*Redirect 편의 메서드* +```java + private void redirect(HttpServletResponse response) throws IOException { + //Status Code 302 + //Location: /basic/hello-form.html + //response.setStatus(HttpServletResponse.SC_FOUND); //302 + //response.setHeader("Location", "/basic/hello-form.html"); + response.sendRedirect("/basic/hello-form.html"); + } +``` + + +## HTTP 응답 데이터 - 단순 텍스트, HTML +HTTP 응답 메시지는 주로 아래와 같은 내용을 담아 전달 +- 단순 텍스트 응답 + - `writer.println("ok");` +- HTML 응답 +- HTML API - MessageBody JSON 응답 + +### HttpServletResponse - HTML 응답 + +*ResponseHtmlServlet* +```java +package hello.servlet.basic.response; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "responseHtmlServlet", urlPatterns = "/response-html") +public class ResponseHtmlServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //Content-Type: text/html;charset=utf-8 + response.setContentType("text/html"); + response.setCharacterEncoding("utf-8"); + PrintWriter writer = response.getWriter(); + writer.println(""); + writer.println(""); + writer.println("
HI?
"); + writer.println(""); + writer.println(""); + } +} +``` + +HTTP 응답으로 HTML을 반환할 때 content-type을 `text/html`로 지정해야 한다. + + +## HTTP 응답 데이터 - API JSON + + +*ResponseJsonServlet* +```java +package hello.servlet.basic.response; + +import com.fasterxml.jackson.databind.ObjectMapper; +import hello.servlet.basic.HelloData; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "responseJsonServlet", urlPatterns = "/response-json") +public class ResponseJsonServlet extends HttpServlet { + + private ObjectMapper objectMapper = new ObjectMapper(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + + HelloData helloData = new HelloData(); + helloData.setUsername("lee"); + helloData.setAge(20); + + String result = objectMapper.writeValueAsString(helloData); + response.getWriter().write(result); + } +} +``` + +HTTP 응답으로 JSON을 반환할 때 content-type을 `application/json`로 지정해야 한다.
+Jackson 라이브러리가 제공하는 `objectMapper.writeValueAsString()`를 사용하면 객체를 JSON 문자로 변경할 수 있다. + + From d59768ecd4afde5e970086e81f615092e461b920 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:14:02 +0900 Subject: [PATCH 119/188] =?UTF-8?q?[BE]=20(docs)=20=EC=9B=B9=20=EC=95=A0?= =?UTF-8?q?=ED=94=8C=EB=A6=AC=EC=BC=80=EC=9D=B4=EC=85=98=20=EC=9D=B4?= =?UTF-8?q?=ED=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 웹 애플리케이션 이해 --- 8 WEEK/servlet/SECTION1.md | 201 +++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 8 WEEK/servlet/SECTION1.md diff --git a/8 WEEK/servlet/SECTION1.md b/8 WEEK/servlet/SECTION1.md new file mode 100644 index 00000000..4f8c2930 --- /dev/null +++ b/8 WEEK/servlet/SECTION1.md @@ -0,0 +1,201 @@ +# 스프링 웹 MVC + +## 웹 서버, 웹 애플리케이션 서버 + +### 모든 것이 HTTP +HTTP 메시지에 모든 것을 전송 +- HTML, TEXT +- IMAGE, 음성, 영상, 파일 +- JSON, XML(API) +- 거의 모든 형태의 데이터 전송 가능 +- 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 +- **지금은 HTTP 시대** + +### 웹 서버(Web Server) +- HTTP 기반으로 동작 +- 정적 리소스 제공, 기타 부가기능 +- 정적(파일) HTML, CSS, JS, 이미지, 영상 +- 예) NGINX, APACHE + +### 웹 애플리케이션 서버(WAS - Web Application Server) +- HTTP 기반으로 동작 +- 웹 서버 기능 포함 + (정적 리소스 제공 가능) +- 프로그램 코드를 실행해서 애플리케이션 로직 수행 + - 동적 HTML, HTTP API(JSON) + - Servlet, Jsp, Spring MVC +- 예) Tomcat, Jetty, Undertow + +### 웹 서버, 웹 애플리케이션 서버(WAS) 차이 +- 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직 +- 둘의 용어 경계가 모호함 + - WS 서버도 프로그램을 실행하는 기능을 포함하기도 함 + - WAS도 WS의 기능을 제공 +- 자바는 서블릿 컨테이너 기능을 제공하면 WAS + - 서블릿 없이 자바코드를 실행하는 서버 프레임워크도 존재 + + +### 웹 시스템 구성 - WAS, DB +- WAS, DB만으로 시스템 구성 가능 +- WAS는 정적 리소스, 애플리케이션 로직 모두 제공 가능 + + +- WAS가 너무 많은 역할을 담당 -> 서버 과부하 우려 +- 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있음 +- WAS 장애시 오류 화면도 노출 불가 + +### 웹 시스템 구성 - WEB, WAS, DB +- 정적 리소스는 웹 서버가 처리 +- 웹 서버는 애플리케이션 로직같은 동적인 처리가 필요하면 WAS에 요청을 위임 +- WAS는 중요한 애플리케이션 로직 처리 전담 + +>WS = HTML, CSS, JS, 이미지 처리
+>WAS = 애플리케이션 로직 처리 + +- 효율적인 리소스 관리 + - 정적 리소스가 많이 사용되면 WS 증설 + - 애플리케이션 리소스가 많이 사용되면 WAS 증설 +- 정적 리소스만 제공하는 WS는 잘 죽지 않음 +- 애플리캐이션 로직이 동작하는 WAS서버는 잘 죽음 +- WAS, DB 장애시 WEB 서버가 오류 화면 제공 가능 + + +## Servlet +### HTML Form 데이터 전송 +#### POST 전송 - 저장 +![S1-1.png](img%2FS1-1.png) + + +### 서버에서 처리해야 하는 업무 +#### 웹 애플리케이션 서버 직접 구현시 + - ![S1-2.png](img%2FS1-2.png) +#### 서블릿을 지원하는 WAS 사용시 + - ![S1-3.png](img%2FS1-3.png) + +### 서블릿 +#### 특징 +```java +@WebServlet(name = "helloServlet", urlPatterns = "/hello") +public class HelloServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response){ + //애플리케이션 로직 + } +``` +- urlPatterns(/hello)의 URL 호출되면 서블릿 코드 실행 +- HTTP 요청 정보를 편리하게 사용할 수 있는 HttpServletRequest +- HTTP 응답 정보를 편리하게 제공할 수 있는 HttpServletResponse +![S1-4.png](img%2FS1-4.png) + +#### HTTP 요청, 응답 흐름 +- HTTP 요청시 + - WAS는 Request, Response 객체를 새로 만들어 서블릿 객체 호출 + - 개발자는 Request객체에서 HTTP요청 정보를 편리하게 꺼내 사용 + - 개발자는 Response 객체에 HTTP 응답 정보를 편리하게 입력 + - WAS는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성 + + +#### 서블릿 컨테이너 +![S1-5.png](img%2FS1-5.png) + +- 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 함 +- 서블릿 컨테이너는 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기 관리 +- 서블릿 객체는 싱글톤으로 관리 + - 고객의 요청이 올 때 마다 계속 객체를 생성하는 것은 비효율 + - 최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용 + - 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근 + - 공유 변수 사용 주의 + - 서블릿 컨테이너 종료시 함께 종료 +- JSP도 서블릿으로 변환 되어서 사용 +- 동시 요청을 위한 멀티 스레드 처리 지원 + + +## 동시 요청 - 멀티 스레드 + +### 스레드 +- 애플리케이션 코드를 하나하나 순차적으로 실행하는 것 = 스레드 +- 자바 메인 메서드 첫 실행 시 main이라는 이름의 스레드 실행 +- 스레드가 없다면 자바 애플리케이션 실행 불가 +- 스레드는 한번에 하나의 코드 라인 실행 +- 동시 처리가 필요하면 스레드를 추가로 생성 + +### 요청 마다 스레드 생성 + +- 장점 + - 동시 요청 처리 가능 + - 리소스(CPU, 메모리)가 허용할 때 까지 처리 가능 + - 하나의 스레드 지연 돼도, 나머지 스레드 정상 작동 +- 단점 + - 스레드는 생성 비용이 매우 비쌈 + - 고객의 요청이 올 때마다 스레드 생성 시, 응답 속도가 느림 + - 스레드는 컨텍스트 스위칭 비용 발생 + - 스레드 생성에 제한이 없음. + - 고객 요청이 너무 많이 오면, CPU, 메모리 임계점을 넘어 서버가 죽을 수 있다. + +### 스레드 풀 +#### 요청 마다 스레드 생성의 단점 보완 +- 특징 + - 필요한 스레드를 스레드 풀에 보관하고 관리. + - 스레드 풀에 생성 가능한 스레드의 최대치를 관리. 톰캣은 최대 200개 기본 설정 +- 사용 + - 스레드가 필요하면, 이미 생성되어 있는 스레드를 스레드 풀에서 꺼내 사용. + - 사용을 종료하면 스레드 풀에 해당 스레드 반납. + - 최대 스레드가 모두 사용중이어서 스레드 풀에 스레드가 없다면 + - 기다리는 요청은 거절하거나 특정 숫자만틈만 대기하도록 설정 가능 +- 장점 + - 스레드가 미리 생성돼 있어, 스레드를 생성하고 종료하는 비용(CPU)가 절약, 응답 시간이 빠름 + - 생성 가능한 스레드의 최대치가 있어 너무 많은 요청이 들어와도 기존 요청을 안전하게 처리 가능 + +### WAS의 멀티 스레드 지원 +- 멀티 스레드에 대한 부분은 WAS가 처리 +- 개발자가 멀티 스레드 관련 코드를 신경쓰지 않아도 됨 +- 개발자는 마치 싱글 스레드 프로그래밍 하듯 편리하게 코드 개발 가능 +- 멀티 스레드 환경이므로 싱글톤 객체(서블릿, 스프링 빈)는 주의해서 사용 + + + +## HTML, HTTP API, CSR, SSR + +### 정적 리소스 +- 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공 +- 주로 웹 브라우저 + +### HTML 페이지 +- 동적으로 필요한 HTML 파일을 생성해 전달 +- 웹 브라우저 : HTML 해석 + +### HTML API +- HTML이 아니라 데이터 전달 +- 주로 JSON 형식 사용 +- 다양한 시스템에서 호출 +- 데이터만 주고 받음, UI 화면이 필요하면, 클라이언트가 별도 처리 +- 앱, 웹 클라이언트, 서버 to 서버 +![S1-6.png](img%2FS1-6.png) + +#### 다양한 시스템 연동 +- 주로 JSON 형태로 데이터 통신 +- UI클라이언트 접점 + - 앱 클라이언트(아이폰, 안드로이드, PC앱) + - 웹 브라우저에서 JS를 통한 HTTP API 호출 + - React, Vue.js 같은 웹 클라이언트 +- 서버 to 서버 + - 주문 서버 -> 결제 서버 + - 기업간 데이터 통신 + +### 서버 사이드 렌더링, 클라이언트 사이드 렌더링 +#### - SSR - 서버 사이드 렌더링 + - HTML 최종 결과를 서버에서 만들어 웹 브라우저에 전달 + - 주로 정적인 화면에 사용 + - 관련기술 : JSP, 타임리프 -> BE 개발자 +![S1-7.png](img%2FS1-7.png) + +#### - CSR - 클라이언트 사이드 렌더링 + - HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해 적용 + - 주로 동적인 화면에 사용, 웹 환경을 마치 앱 처럼 필요한 부분만 변경할 수 있음 + - 예) 구글지도, Gmail, 구글 캘린더 + - 관련기술 : React, Vue.js -> FE 개발자 +![S1-8.png](img%2FS1-8.png) + + +- 참고 + - React, Vue.js를 CSR + SSR 동시에 진원하는 웹 프레임워크 존재 + - SSR을 사용하더라도 자바스크립트를 사용해 화면 일부를 동적으로 변경 가능 From c8eb035ea739d5bc899825e796c6601eac7c9ed2 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Wed, 3 Jan 2024 21:07:59 +0900 Subject: [PATCH 120/188] =?UTF-8?q?[BE]=20(feat)=20Jsp/Servlet,=20MVC=20?= =?UTF-8?q?=ED=8C=A8=ED=84=B4=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Jsp/Servlet, MVC 패턴 적용 --- 8 WEEK/servlet/build.gradle | 8 ++ .../hello/servlet/domain/member/Member.java | 18 +++++ .../domain/member/MemberRepository.java | 38 ++++++++++ .../web/servlet/MemberFormServlet.java | 38 ++++++++++ .../web/servlet/MemberListServlet.java | 62 ++++++++++++++++ .../web/servlet/MemberSaveServlet.java | 47 ++++++++++++ .../web/servletmvc/MvcMemberFormServlet.java | 21 ++++++ .../web/servletmvc/MvcMemberListServlet.java | 30 ++++++++ .../web/servletmvc/MvcMemberSaveServlet.java | 34 +++++++++ .../src/main/webapp/WEB-INF/views/members.jsp | 27 +++++++ .../main/webapp/WEB-INF/views/new-form.jsp | 15 ++++ .../main/webapp/WEB-INF/views/save-result.jsp | 15 ++++ 8 WEEK/servlet/src/main/webapp/index.html | 74 +++++++++++++++++++ .../servlet/src/main/webapp/jsp/members.jsp | 36 +++++++++ .../src/main/webapp/jsp/members/new-form.jsp | 13 ++++ .../src/main/webapp/jsp/members/save.jsp | 27 +++++++ .../domain/member/MemberRepositoryTest.java | 46 ++++++++++++ 17 files changed, 549 insertions(+) create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/domain/member/Member.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/domain/member/MemberRepository.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberFormServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberListServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberSaveServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberFormServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberListServlet.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberSaveServlet.java create mode 100644 8 WEEK/servlet/src/main/webapp/WEB-INF/views/members.jsp create mode 100644 8 WEEK/servlet/src/main/webapp/WEB-INF/views/new-form.jsp create mode 100644 8 WEEK/servlet/src/main/webapp/WEB-INF/views/save-result.jsp create mode 100644 8 WEEK/servlet/src/main/webapp/jsp/members.jsp create mode 100644 8 WEEK/servlet/src/main/webapp/jsp/members/new-form.jsp create mode 100644 8 WEEK/servlet/src/main/webapp/jsp/members/save.jsp create mode 100644 8 WEEK/servlet/src/test/java/hello/servlet/domain/member/MemberRepositoryTest.java diff --git a/8 WEEK/servlet/build.gradle b/8 WEEK/servlet/build.gradle index 498eedd8..de959ed2 100644 --- a/8 WEEK/servlet/build.gradle +++ b/8 WEEK/servlet/build.gradle @@ -23,6 +23,14 @@ repositories { } dependencies { + + //JSP 추가 시작 + implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' + implementation 'jakarta.servlet:jakarta.servlet-api' //스프링부트 3.0 이상 + implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' //스프링부트3.0 이상 + implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //스프링부트 3.0 이상 + //JSP 추가 끝 + implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/domain/member/Member.java b/8 WEEK/servlet/src/main/java/hello/servlet/domain/member/Member.java new file mode 100644 index 00000000..6fe75506 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/domain/member/Member.java @@ -0,0 +1,18 @@ +package hello.servlet.domain.member; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Member { + + private Long id; + private String username; + private int age; + + public Member(String username, int age) { + this.username = username; + this.age = age; + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/domain/member/MemberRepository.java b/8 WEEK/servlet/src/main/java/hello/servlet/domain/member/MemberRepository.java new file mode 100644 index 00000000..15eaaf81 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/domain/member/MemberRepository.java @@ -0,0 +1,38 @@ +package hello.servlet.domain.member; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MemberRepository { + + private static Map store = new HashMap<>(); + private static long sequence = 0L; + + //싱글톤 + private static final MemberRepository instance = new MemberRepository(); + + public static MemberRepository getInstance() { + return instance; + } + private MemberRepository(){} + + public Member save(Member member) { + member.setId(++sequence); + store.put(member.getId(), member); + return member; + } + + public Member findById(Long id) { + return store.get(id); + } + + public List findAll() { + return new ArrayList<>(store.values()); + } + + public void clearStore() { + store.clear(); + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberFormServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberFormServlet.java new file mode 100644 index 00000000..8c127920 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberFormServlet.java @@ -0,0 +1,38 @@ +package hello.servlet.web.servlet; + +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "memberFormServlet", urlPatterns = "/servlet/members/new-form") +public class MemberFormServlet extends HttpServlet { + + private MemberRepository memberRepository = MemberRepository.getInstance(); + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setContentType("text/html"); + response.setCharacterEncoding("utf-8"); + + PrintWriter w = response.getWriter(); + + w.write("\n" + + "\n" + + "\n" + + " \n" + + " Title\n" + + "\n" + + "\n" + + "
\n" + + " username: \n" + + " age: \n" + + " \n" + + "
\n" + + "\n" + + "\n"); } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberListServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberListServlet.java new file mode 100644 index 00000000..5a3dd1e6 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberListServlet.java @@ -0,0 +1,62 @@ +package hello.servlet.web.servlet; + +import hello.servlet.domain.member.Member; +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.List; + +@WebServlet(name = "memberListServlet", urlPatterns = "/servlet/members") +public class MemberListServlet extends HttpServlet { + + private MemberRepository memberRepository = MemberRepository.getInstance(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + List members = memberRepository.findAll(); + + response.setContentType("text/html"); + response.setCharacterEncoding("utf-8"); + + PrintWriter w = response.getWriter(); + w.write(""); + w.write(""); + w.write(" "); + w.write(" Title"); + w.write(""); + w.write(""); + w.write("메인"); + w.write(""); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); +/* + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); +*/ + for (Member member : members) { + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + } + w.write(" "); + w.write("
idusernameage
1userA10
" + member.getId() + "" + member.getUsername() + "" + member.getAge() + "
"); + w.write(""); + w.write(""); + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberSaveServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberSaveServlet.java new file mode 100644 index 00000000..1c6159b7 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/web/servlet/MemberSaveServlet.java @@ -0,0 +1,47 @@ +package hello.servlet.web.servlet; + +import hello.servlet.domain.member.Member; +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save") +public class MemberSaveServlet extends HttpServlet { + + private MemberRepository memberRepository = MemberRepository.getInstance(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + System.out.println("MemberSaveServlet.service"); + String username = request.getParameter("username"); + int age = Integer.parseInt(request.getParameter("age")); + + Member member = new Member(username, age); + memberRepository.save(member); + + response.setContentType("text/html"); + response.setCharacterEncoding("utf-8"); + PrintWriter w = response.getWriter(); + + w.write("\n" + + "\n" + + " \n" + + "\n" + + "\n" + + "성공\n" + + "
    \n" + + "
  • id="+member.getId()+"
  • \n" + + "
  • username="+member.getUsername()+"
  • \n" + + "
  • age="+member.getAge()+"
  • \n" + + "
\n" + + "메인\n" + + "\n" + + ""); + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberFormServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberFormServlet.java new file mode 100644 index 00000000..01ead1c9 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberFormServlet.java @@ -0,0 +1,21 @@ +package hello.servlet.web.servletmvc; + +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/new-form") +public class MvcMemberFormServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String viewPath = "/WEB-INF/views/new-form.jsp"; + RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); + dispatcher.forward(request, response); + + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberListServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberListServlet.java new file mode 100644 index 00000000..56ef49e9 --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberListServlet.java @@ -0,0 +1,30 @@ +package hello.servlet.web.servletmvc; + +import hello.servlet.domain.member.Member; +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.util.List; + +@WebServlet(name = "mvcMemberListServlet", urlPatterns = "/servlet-mvc/members") +public class MvcMemberListServlet extends HttpServlet { + + private MemberRepository memberRepository = MemberRepository.getInstance(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + List members = memberRepository.findAll(); + + request.setAttribute("members", members); + + String viewPath = "/WEB-INF/views/members.jsp"; + RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); + dispatcher.forward(request, response); + } +} diff --git a/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberSaveServlet.java b/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberSaveServlet.java new file mode 100644 index 00000000..31f9428d --- /dev/null +++ b/8 WEEK/servlet/src/main/java/hello/servlet/web/servletmvc/MvcMemberSaveServlet.java @@ -0,0 +1,34 @@ +package hello.servlet.web.servletmvc; + +import hello.servlet.domain.member.Member; +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "mvcMemberSaveServlet", urlPatterns = "/servlet-mvc/members/save") +public class MvcMemberSaveServlet extends HttpServlet { + + MemberRepository memberRepository = MemberRepository.getInstance(); + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String username = request.getParameter("username"); + int age = Integer.parseInt(request.getParameter("age")); + + Member member = new Member(username, age); + memberRepository.save(member); + + + //Model에 데이터 보관. + request.setAttribute("member", member); + + String viewPath = "/WEB-INF/views/save-result.jsp"; + RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); + dispatcher.forward(request, response); + } +} diff --git a/8 WEEK/servlet/src/main/webapp/WEB-INF/views/members.jsp b/8 WEEK/servlet/src/main/webapp/WEB-INF/views/members.jsp new file mode 100644 index 00000000..d9faff4a --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/WEB-INF/views/members.jsp @@ -0,0 +1,27 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + Title + + +메인 + + + + + + + + + + + + + + + +
idusernameage
${item.id}${item.username}${item.age}
+ + \ No newline at end of file diff --git a/8 WEEK/servlet/src/main/webapp/WEB-INF/views/new-form.jsp b/8 WEEK/servlet/src/main/webapp/WEB-INF/views/new-form.jsp new file mode 100644 index 00000000..39d9e9b7 --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/WEB-INF/views/new-form.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + Title + + + +
+ username: + age: + +
+ + \ No newline at end of file diff --git a/8 WEEK/servlet/src/main/webapp/WEB-INF/views/save-result.jsp b/8 WEEK/servlet/src/main/webapp/WEB-INF/views/save-result.jsp new file mode 100644 index 00000000..d3c0ed84 --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/WEB-INF/views/save-result.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + +성공 +
    +
  • id=${member.id}
  • +
  • username=${member.username}
  • +
  • age=${member.age}
  • +
+메인 + + \ No newline at end of file diff --git a/8 WEEK/servlet/src/main/webapp/index.html b/8 WEEK/servlet/src/main/webapp/index.html index bfac4bd3..22f9745d 100644 --- a/8 WEEK/servlet/src/main/webapp/index.html +++ b/8 WEEK/servlet/src/main/webapp/index.html @@ -7,6 +7,80 @@ \ No newline at end of file diff --git a/8 WEEK/servlet/src/main/webapp/jsp/members.jsp b/8 WEEK/servlet/src/main/webapp/jsp/members.jsp new file mode 100644 index 00000000..3a036b59 --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/jsp/members.jsp @@ -0,0 +1,36 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page import="hello.servlet.domain.member.Member" %> +<%@ page import="java.util.List" %> +<%@ page import="hello.servlet.domain.member.MemberRepository" %> +<% + MemberRepository memberRepository = MemberRepository.getInstance(); + + List members = memberRepository.findAll(); +%> + + + + Title + + +메인 + + + + + + + + <% + for (Member member : members) { + out.write(" "); + out.write(" "); + out.write(" "); + out.write(" "); + out.write(" "); + } + %> + +
idusernameage
" + member.getId() + "" + member.getUsername() + "" + member.getAge() + "
+ + \ No newline at end of file diff --git a/8 WEEK/servlet/src/main/webapp/jsp/members/new-form.jsp b/8 WEEK/servlet/src/main/webapp/jsp/members/new-form.jsp new file mode 100644 index 00000000..705255aa --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/jsp/members/new-form.jsp @@ -0,0 +1,13 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + +
+ username: + age: + +
+ + diff --git a/8 WEEK/servlet/src/main/webapp/jsp/members/save.jsp b/8 WEEK/servlet/src/main/webapp/jsp/members/save.jsp new file mode 100644 index 00000000..6a102d8d --- /dev/null +++ b/8 WEEK/servlet/src/main/webapp/jsp/members/save.jsp @@ -0,0 +1,27 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page import="hello.servlet.domain.member.Member" %> +<%@ page import="hello.servlet.domain.member.MemberRepository" %> +<% + MemberRepository memberRepository = MemberRepository.getInstance(); + //request, response는 지원함 + System.out.println("MemberSaveServlet.service"); + String username = request.getParameter("username"); + int age = Integer.parseInt(request.getParameter("age")); + + Member member = new Member(username, age); + memberRepository.save(member); +%> + + + Title + + + 성공 +
    +
  • id=<%=member.getId()%>
  • +
  • username=<%=member.getUsername()%>
  • +
  • age=<%=member.getAge()%>
  • +
+ 메인 + + diff --git a/8 WEEK/servlet/src/test/java/hello/servlet/domain/member/MemberRepositoryTest.java b/8 WEEK/servlet/src/test/java/hello/servlet/domain/member/MemberRepositoryTest.java new file mode 100644 index 00000000..f6c6f6b3 --- /dev/null +++ b/8 WEEK/servlet/src/test/java/hello/servlet/domain/member/MemberRepositoryTest.java @@ -0,0 +1,46 @@ +package hello.servlet.domain.member; + +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class MemberRepositoryTest { + + MemberRepository memberRepository = MemberRepository.getInstance(); + + @AfterEach + void afterEach() { + memberRepository.clearStore(); + } + + @Test + void save() { + Member member = new Member("Hello", 20); + + Member savedMember = memberRepository.save(member); + + Member findMember = memberRepository.findById(savedMember.getId()); + Assertions.assertThat(findMember).isEqualTo(savedMember); + + } + + @Test + void findAll() { + Member member1 = new Member("Hello1", 20); + Member member2 = new Member("Hello2", 20); + + memberRepository.save(member1); + memberRepository.save(member2); + + List memberList = memberRepository.findAll(); + + Assertions.assertThat(memberList.size()).isEqualTo(2); + Assertions.assertThat(memberList).contains(member1, member2); + } + + +} \ No newline at end of file From 819f76f5c69140bbd6514e5b641086e37a3d9578 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Wed, 3 Jan 2024 21:08:19 +0900 Subject: [PATCH 121/188] =?UTF-8?q?[BE]=20(docs)=20=EC=84=9C=EB=B8=94?= =?UTF-8?q?=EB=A6=BF,=20JSP,=20MVC=ED=8C=A8=ED=84=B4=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (docs) 서블릿, JSP, MVC패턴 정리 --- 8 WEEK/servlet/SECTION3.md | 803 +++++++++++++++++++++++++++++++++++++ 1 file changed, 803 insertions(+) create mode 100644 8 WEEK/servlet/SECTION3.md diff --git a/8 WEEK/servlet/SECTION3.md b/8 WEEK/servlet/SECTION3.md new file mode 100644 index 00000000..5f56ad9a --- /dev/null +++ b/8 WEEK/servlet/SECTION3.md @@ -0,0 +1,803 @@ +# 3. 서블릿, JSP, MVC 패턴 + + +## 회원 관리 웹 애플리케이션 요구사항 + +회원정보 - 이름, 나이
+기능 요구사항 - 회원 저장, 회원 목록 조회 + +*Member* +```java +package hello.servlet.domain.member; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Member { + + private Long id; + private String username; + private int age; + + public Member(String username, int age) { + this.username = username; + this.age = age; + } +} +``` + + +*MemberRepository* +```java +package hello.servlet.domain.member; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MemberRepository { + + private static Map store = new HashMap<>(); + private static long sequence = 0L; + + //싱글톤 + private static final MemberRepository instance = new MemberRepository(); + + public static MemberRepository getInstance() { + return instance; + } + private MemberRepository(){} + + public Member save(Member member) { + member.setId(++sequence); + store.put(member.getId(), member); + return member; + } + + public Member findById(Long id) { + return store.get(id); + } + + public List findAll() { + return new ArrayList<>(store.values()); + } + + public void clearStore() { + store.clear(); + } +} +``` + +싱글톤 패턴 적용. 싱글톤 패턴은 객체를 단 하나만 생성해서 공유해야 하므로 생성자를 private 접근자로 막아둔다. + + +*MemberRepositoryTest* +```java +package hello.servlet.domain.member; + +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class MemberRepositoryTest { + + MemberRepository memberRepository = MemberRepository.getInstance(); + + @AfterEach + void afterEach() { + memberRepository.clearStore(); + } + + @Test + void save() { + Member member = new Member("Hello", 20); + + Member savedMember = memberRepository.save(member); + + Member findMember = memberRepository.findById(savedMember.getId()); + Assertions.assertThat(findMember).isEqualTo(savedMember); + + } + + @Test + void findAll() { + Member member1 = new Member("Hello1", 20); + Member member2 = new Member("Hello2", 20); + + memberRepository.save(member1); + memberRepository.save(member2); + + List memberList = memberRepository.findAll(); + + Assertions.assertThat(memberList.size()).isEqualTo(2); + Assertions.assertThat(memberList).contains(member1, member2); + } + + +} +``` + + +## 서블릿으로 회원 관리 웹 애플리케이션 만들기 + +*MemberFormServlet - 회원 등록 폼* +```java +package hello.servlet.web.servlet; + +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "memberFormServlet", urlPatterns = "/servlet/members/new-form") +public class MemberFormServlet extends HttpServlet { + + private MemberRepository memberRepository = MemberRepository.getInstance(); + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setContentType("text/html"); + response.setCharacterEncoding("utf-8"); + + PrintWriter w = response.getWriter(); + + w.write("\n" + + "\n" + + "\n" + + " \n" + + " Title\n" + + "\n" + + "\n" + + "
\n" + + " username: \n" + + " age: \n" + + " \n" + + "
\n" + + "\n" + + "\n"); } +} +``` + + +*MemberSaveServlet - 회원 저장* +```java +package hello.servlet.web.servlet; + +import hello.servlet.domain.member.Member; +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save") +public class MemberSaveServlet extends HttpServlet { + + private MemberRepository memberRepository = MemberRepository.getInstance(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + System.out.println("MemberSaveServlet.service"); + String username = request.getParameter("username"); + int age = Integer.parseInt(request.getParameter("age")); + + Member member = new Member(username, age); + memberRepository.save(member); + + response.setContentType("text/html"); + response.setCharacterEncoding("utf-8"); + PrintWriter w = response.getWriter(); + + w.write("\n" + + "\n" + + " \n" + + "\n" + + "\n" + + "성공\n" + + "
    \n" + + "
  • id="+member.getId()+"
  • \n" + + "
  • username="+member.getUsername()+"
  • \n" + + "
  • age="+member.getAge()+"
  • \n" + + "
\n" + + "메인\n" + + "\n" + + ""); + } +} +``` + +- `MemberSaveServlet` 동작 순서 + 1. 파라미터를 조회해 Member 객체 생성 + 2. Member 객체를 MemberRepository를 통해 저장. + 3. Member 객체를 사용해 결과 화면용 HTML을 동적으로 만들어 응답. + + + +*MemberListServlet - 회원 목록* +```java +package hello.servlet.web.servlet; + +import hello.servlet.domain.member.Member; +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.List; + +@WebServlet(name = "memberListServlet", urlPatterns = "/servlet/members") +public class MemberListServlet extends HttpServlet { + + private MemberRepository memberRepository = MemberRepository.getInstance(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + List members = memberRepository.findAll(); + + response.setContentType("text/html"); + response.setCharacterEncoding("utf-8"); + + PrintWriter w = response.getWriter(); + w.write(""); + w.write(""); + w.write(" "); + w.write(" Title"); + w.write(""); + w.write(""); + w.write("메인"); + w.write(""); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); +/* + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); +*/ + for (Member member : members) { + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + w.write(" "); + } + w.write(" "); + w.write("
idusernameage
1userA10
" + member.getId() + "" + member.getUsername() + "" + member.getAge() + "
"); + w.write(""); + w.write(""); + } +} +``` + +- `MemberListServlet` 동작 순서 + 1. `memberRepository.findAll()`을 통해 모든 회원을 조회. + 2. 회원 목록 HTML을 for 루프를 통해 회원 수 만큼 동적으로 생성하고 응답. + + + +### Welcome 페이지 변경 + +*index.html* +```html + + + + + Title + + + + + +``` + + + + +## JSP로 회원 관리 웹 애플리케이션 만들기 + +### JSP 라이브러리 추가 + +*build.gradle* +```groovy + //JSP 추가 시작 +implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' +implementation 'jakarta.servlet:jakarta.servlet-api' //스프링부트 3.0 이상 +implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' //스프링부트3.0 이상 +implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //스프링부트 3.0 이상 +//JSP 추가 끝 +``` + +*new-form.jsp - 회원 등록 폼* +```html +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + +
+ username: + age: + +
+ + +``` + +- `<%@ page contentType="text/html;charset=UTF-8" language="java" %>` + - 첫 줄은 JSP 문서라는 뜻. + +*save.jsp - 회원 저장* +```html +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page import="hello.servlet.domain.member.Member" %> +<%@ page import="hello.servlet.domain.member.MemberRepository" %> +<% + MemberRepository memberRepository = MemberRepository.getInstance(); + //request, response는 지원함 + System.out.println("MemberSaveServlet.service"); + String username = request.getParameter("username"); + int age = Integer.parseInt(request.getParameter("age")); + + Member member = new Member(username, age); + memberRepository.save(member); +%> + + + Title + + + 성공 +
    +
  • id=<%=member.getId()%>
  • +
  • username=<%=member.getUsername()%>
  • +
  • age=<%=member.getAge()%>
  • +
+ 메인 + + +``` + +- '<%@ page import= %>' + - 자바의 import 문과 동일. +- '<% %>' + - 이 부분에 자바 코드 입력 가능. +- `<%= %>` + - 이 부분에 자바 코드 출력 가능. + +회원 저장 JSP는 회원 저장 servlet 코드와 같다. 다른 점은, HTML을 중심으로 하고, +자바 코드를 부분부분 입력해 주었다는 점이다. `<% %>`를 사용해 HTML 중간에 자바 코드를 출력하고 있다. + +*members.jsp - 회원 목록* +```html +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page import="hello.servlet.domain.member.Member" %> +<%@ page import="java.util.List" %> +<%@ page import="hello.servlet.domain.member.MemberRepository" %> +<% + MemberRepository memberRepository = MemberRepository.getInstance(); + + List members = memberRepository.findAll(); +%> + + + + Title + + +메인 + + + + + + + + <% + for (Member member : members) { + out.write(" "); + out.write(" "); + out.write(" "); + out.write(" "); + out.write(" "); + } + %> + +
idusernameage
" + member.getId() + "" + member.getUsername() + "" + member.getAge() + "
+ + +``` + +회원 repository를 먼저 조회, 결과 List를 사용해 중간에 ``HTML 태그를 반복해서 출력하고 있다. + + +### 서블릿과 JSP의 한계 +서블릿으로 개발할 때는 뷰(view)화면을 위한 HTML을 만드는 작업이 자바 코드에 섞여 복잡했다.
+JSP를 사용한 덕분에 뷰를 생성하는 HTML 작업을 깔끔하게 정리하고, 중간중간 동적으로 변경이 필요한 부분에만 +자바 코드를 적용했다. 하지만 몇 가지 문제점이 존재한다. + +회원 저장 폼에서 코드의 상위 절반은 회원을 저장하는 비지니스 로직, 나머지 절반은 결과를 보여주는 HTML 뷰 영역이다. 회원 목록도 마찬가지이다.
+JAVA코드, 데이터를 조회하는 repository 등등 다양한 코드가 모두 JSP에 노출돼 있다. 만약 수백, 수천줄이 넘어간다면 유지보수에 큰 어려움이 발생한다. + +
+**MVC 패턴 등장** +
비지니스 로직은 서블릿 처럼 다른곳에서 처리하고, JSP는 목적에 맞게 HTML로 화면(VIEW)을 보여주는 일에 집중하도록 하게 해준다. + + + + +## MVC 패턴 -적용 +서블릿을 컨트롤러로 사용하고, JSP를 뷰로 사용해 MVC 패턴 적용 +
Model은 HttpServletRequest 객체 사용. request는 내부에 데이터 저장소를 가지고 있는데, +'request.setAttribute()', `request.getAttribute`를 사용하면 데이터를 보관하고, 조회할 수 있다. + + +### 회원 등록 + +*MvcMemberFormServlet - 회원 등록 폼 컨트롤러* +```java +package hello.servlet.web.servletmvc; + +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/new-form") +public class MvcMemberFormServlet extends HttpServlet { + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String viewPath = "/WEB-INF/views/new-form.jsp"; + RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); + dispatcher.forward(request, response); + + } +} +``` + +`dispatcher.forward()` : 다른 서블릿이나 JSP로 이동할 수 있는 기능. 서버 내부에서 다시 호출 발생 + +> `/WEB-INF`
+> 이 경로 안에 JSP가 있으면 외부에서 직접 JSP를 호출할 수 없다. 즉 항상 컨트롤러를 통해서 JSP를 호출하는 것이다. + +> **redirect vs forward**
+> 리다이렉트는 실제 클라이언트(web)에 응답이 나갔다가, 클라이언트가 redirect 경로로 다시 요청한다. +> 따라서 클라이언트가 인지할 수 있고, URL 경로도 실제로 변경된다. 반면에 포워드는 서버 내부에서 +> 일어나는 호출이기 때문에 클라이언트가 전혀 인지하지 못한다. + + +*new-form.jsp - 회원 등록 폼 뷰* +```html +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + Title + + + +
+ username: + age: + +
+ + +``` + +여기서 form의 action이 상대경로로 지정돼 있다. 이렇게 상대경로로 지정하면 폼 전송시 +현재 URL이 속한 계층 경로 + save가 호출된다.
+현재 계층 경로 : `/servlet-mvc/members/`
+결과 : `/servlet-mvc/members/save` + + +### 회원 저장 + +*MvcMemberSaveServlet - 회원 저장 컨트롤러* +```java +package hello.servlet.web.servletmvc; + +import hello.servlet.domain.member.Member; +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +@WebServlet(name = "mvcMemberSaveServlet", urlPatterns = "/servlet-mvc/members/save") +public class MvcMemberSaveServlet extends HttpServlet { + + MemberRepository memberRepository = MemberRepository.getInstance(); + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String username = request.getParameter("username"); + int age = Integer.parseInt(request.getParameter("age")); + + Member member = new Member(username, age); + memberRepository.save(member); + + + //Model에 데이터 보관. + request.setAttribute("member", member); + + String viewPath = "/WEB-INF/views/save-result.jsp"; + RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); + dispatcher.forward(request, response); + } +} +``` +HttpServletRequest를 Model로 사용.
+request가 제공하는 setAttribute()를 사용하면 request 객체에 데이터를 보관해 뷰에 전달할 수 있다.
+뷰는 request.getAttribute()를 사용해 데이터를 꺼내면 된다. + + +*save-result - 회원저장 뷰* +```html +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + +성공 +
    +
  • id=${member.id}
  • +
  • username=${member.username}
  • +
  • age=${member.age}
  • +
+메인 + + +``` + +JSP는 `${}` 문법을 제공. 이 문법을 사용하면 request의 attribute에 담긴 데이터를 편리하게 조회할 수 있다. + + +### 회원 목록 조회 + +*MvcMemberListServlet - 회원 목록 조회 컨트롤러* +```java +package hello.servlet.web.servletmvc; + +import hello.servlet.domain.member.Member; +import hello.servlet.domain.member.MemberRepository; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.util.List; + +@WebServlet(name = "mvcMemberListServlet", urlPatterns = "/servlet-mvc/members") +public class MvcMemberListServlet extends HttpServlet { + + private MemberRepository memberRepository = MemberRepository.getInstance(); + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + List members = memberRepository.findAll(); + + request.setAttribute("members", members); + + String viewPath = "/WEB-INF/views/members.jsp"; + RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); + dispatcher.forward(request, response); + } +} +``` + +request 객체를 사용해 `List members`를 모델에 보관한다. + + +*members - 회원 목록 조회 뷰* +```html +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + Title + + +메인 + + + + + + + + + + + + + + + +
idusernameage
${item.id}${item.username}${item.age}
+ + +``` +모델에 담아둔 members를 JSP가 제공하는 taglib기능을 사용해 반복해서 출력한다. +`memebers`리스트에서 `members`를 순서대로 꺼내 `item`변수에 담고, 출력하는 과정을 반복한다. +

+``이 기능을 사용하려면 다음과 같이 선언해야 한다.
+`<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>` + + + +## MVC 패턴 - 한계 +MVC 패턴을 적용한 덕분에 컨트롤러의 역할과 뷰를 렌더링 하는 역할을 명확하게 구분할 수 있다.
+뷰는 화면을 그리는 역할에 충실한 덕분에, 코드가 깔끔하고 직관적이다. 단순하게 모델에서 필요한 데이터를 수집하고, 화면을 만들면 된다. +
+하지만 컨트롤러는 중복코드가 많고, 필요하지 않은 코드가 많이 존재한다. + + +**MVC 컨트롤러의 단점**
+ +*foward 중복*
+view로 이동하는 코드가 항상 중복 호출된다. +``` +RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); +dispatcher.forward(request, response); +``` + + +**ViewPath 중복** +```java +String viewPath = "/WEB-INF/views/save-result.jsp"; +``` + +- prefix : `/WEB-INF/views/` +- suffix : `.jsp`
+그리고 만약 jsp가 아닌 thymeleaf같은 뷰로 변경한다면 전체 코드를 다 변경 작업을 해야 한다. + + +**사용하지 않는 코드**
+다음 코드를 사용할 때도 있고, 사용하지 않을 때도 있다. +``` +HttpServletRequest request, HttpServletResponse response +``` +그리고 이런 `HttpServletRequest`, `HttpServletResponse`를 사용하는 코드는 테스트 케이스를 작성하기 어렵다. + + +**공통 처리 어려움**
+기능이 복잡해질수록 컨트롤러에서 공통으로 처리해야 하는 부분이 점점 더 많이 증가한다. 단순히 공통 기능을 메서드로 +생성하면 될 것 같지만, 결과적으로 해당 메서드를 항상 호출해야 하고, 실수로 호출하지 않으면 문제가 될 수도 있다. 그리고 호출하는 것 자체도 중복이다. + + +**정리!**
+이 문제를 해결하려면 컨트롤러 호출 전에 먼저 공통 기능을 처리해야 한다. 소위 **수문장 역할**을 하는 기능이 필요하다. +**Front Controller**패턴을 도입하면 이런 문제를 깔끔하게 해결할 수 있다.(입구를 하나로)
+스프링 MVC의 핵심도 바로 이 프론트 컨트롤러에 있다. + + + + + + + + + + + + + + + + + From ba4b9ddeed051891fedf65d0a19458eb973f6734 Mon Sep 17 00:00:00 2001 From: SEOB <67796853+seob7@users.noreply.github.com> Date: Thu, 4 Jan 2024 23:52:56 +0900 Subject: [PATCH 122/188] =?UTF-8?q?[BE]=20(feat)=20Servlet=20MVC=20?= =?UTF-8?q?=ED=94=84=EB=A0=88=EC=9E=84=EC=9B=8C=ED=81=AC=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [BE] (feat) Servlet MVC 프레임워크 생성 --- 8 WEEK/servlet/img/S4-1.png | Bin 0 -> 49530 bytes 8 WEEK/servlet/img/S4-2.png | Bin 0 -> 45778 bytes 8 WEEK/servlet/img/S4-3.png | Bin 0 -> 44134 bytes 8 WEEK/servlet/img/S4-4.png | Bin 0 -> 50715 bytes 8 WEEK/servlet/img/S4-5.png | Bin 0 -> 61793 bytes 8 WEEK/servlet/img/S4-6.png | Bin 0 -> 61503 bytes 8 WEEK/servlet/img/S4-7.png | Bin 0 -> 42993 bytes .../web/frontcontroller/ModelView.java | 23 ++++++ .../servlet/web/frontcontroller/MyView.java | 32 ++++++++ .../web/frontcontroller/v1/ControllerV1.java | 11 +++ .../v1/FrontControllerServiceV1.java | 40 ++++++++++ .../v1/controller/MemberFormControllerV1.java | 18 +++++ .../v1/controller/MemberListControllerV1.java | 28 +++++++ .../v1/controller/MemberSaveControllerV1.java | 30 ++++++++ .../web/frontcontroller/v2/ControllerV2.java | 12 +++ .../v2/FrontControllerServiceV2.java | 42 +++++++++++ .../v2/controller/MemberFormControllerV2.java | 16 ++++ .../v2/controller/MemberListControllerV2.java | 24 ++++++ .../v2/controller/MemberSaveControllerV2.java | 28 +++++++ .../web/frontcontroller/v3/ControllerV3.java | 9 +++ .../v3/FrontControllerServiceV3.java | 56 ++++++++++++++ .../v3/controller/MemberFormControllerV3.java | 13 ++++ .../v3/controller/MemberListControllerV3.java | 24 ++++++ .../v3/controller/MemberSaveControllerV3.java | 25 ++++++ .../web/frontcontroller/v4/ControllerV4.java | 7 ++ .../v4/FrontControllerServiceV4.java | 58 ++++++++++++++ .../v4/controller/MemberFormControllerV4.java | 12 +++ .../v4/controller/MemberListControllerV4.java | 22 ++++++ .../v4/controller/MemberSaveControllerV4.java | 24 ++++++ .../v5/FrontControllerServletV5.java | 71 ++++++++++++++++++ .../frontcontroller/v5/MyHandlerAdapter.java | 14 ++++ .../adapter/ControllerV3HandlerAdapter.java | 29 +++++++ .../adapter/ControllerV4HandlerAdapter.java | 40 ++++++++++ 33 files changed, 708 insertions(+) create mode 100644 8 WEEK/servlet/img/S4-1.png create mode 100644 8 WEEK/servlet/img/S4-2.png create mode 100644 8 WEEK/servlet/img/S4-3.png create mode 100644 8 WEEK/servlet/img/S4-4.png create mode 100644 8 WEEK/servlet/img/S4-5.png create mode 100644 8 WEEK/servlet/img/S4-6.png create mode 100644 8 WEEK/servlet/img/S4-7.png create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/ModelView.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/MyView.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v1/ControllerV1.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v1/FrontControllerServiceV1.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v1/controller/MemberFormControllerV1.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v1/controller/MemberListControllerV1.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v1/controller/MemberSaveControllerV1.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v2/ControllerV2.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v2/FrontControllerServiceV2.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v2/controller/MemberFormControllerV2.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v2/controller/MemberListControllerV2.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v2/controller/MemberSaveControllerV2.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v3/ControllerV3.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v3/FrontControllerServiceV3.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v3/controller/MemberFormControllerV3.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v3/controller/MemberListControllerV3.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v3/controller/MemberSaveControllerV3.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v4/ControllerV4.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v4/FrontControllerServiceV4.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v4/controller/MemberFormControllerV4.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v4/controller/MemberListControllerV4.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v4/controller/MemberSaveControllerV4.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v5/FrontControllerServletV5.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v5/MyHandlerAdapter.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v5/adapter/ControllerV3HandlerAdapter.java create mode 100644 8 WEEK/servlet/src/main/java/hello/servlet/web/frontcontroller/v5/adapter/ControllerV4HandlerAdapter.java diff --git a/8 WEEK/servlet/img/S4-1.png b/8 WEEK/servlet/img/S4-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3944b4aa58a8f3c6aab4a883b0e9ecdebbaad643 GIT binary patch literal 49530 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%0Al%R|+* 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∨Tt(nxk5@d~`wa){)+j5?X{iDkGqFs@ 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 Z)B5V=T2QqIrBc8jqf=+`WjOn&{{zB5)2aXf literal 0 HcmV?d00001 diff --git a/8 WEEK/servlet/img/S4-3.png b/8 WEEK/servlet/img/S4-3.png new file mode 100644 index 0000000000000000000000000000000000000000..d907f0d0b318103575e092d0c8c0b9d884532f08 GIT binary patch literal 44134 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 FzW}4C_V)k) literal 0 HcmV?d00001 diff --git a/8 WEEK/servlet/img/S4-4.png b/8 WEEK/servlet/img/S4-4.png new file mode 100644 index 0000000000000000000000000000000000000000..bd12948f9eeae3f12f99f3af558fdc9f49b81247 GIT binary patch literal 50715 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