diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..c3f502a --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 디폴트 무시된 파일 +/shelf/ +/workspace.xml +# 에디터 기반 HTTP 클라이언트 요청 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..f9163b4 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b19d6c6 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/legacy/CustomerService.java b/src/main/java/legacy/CustomerService.java index 49cd903..8b5afd8 100644 --- a/src/main/java/legacy/CustomerService.java +++ b/src/main/java/legacy/CustomerService.java @@ -1,66 +1,25 @@ package legacy; -import java.util.ArrayList; +import legacy.service.UserService; +import legacy.service.UserServiceImpl; public class CustomerService { - ArrayList customers = new ArrayList<>(); + UserService userService = new UserServiceImpl(); public void run() { - registerCustomer("101", "홍길동", "ACTIVE"); - registerCustomer("102", "이순신", "ACTIVE"); - registerCustomer("103", "강감찬", "ACTIVE"); + System.out.println("===== 고객 관리 시스템 실행 ====="); - System.out.println("모든 고객 조회:"); - listCustomers(); + userService.addUserData("101", "홍길동", "ACTIVE"); + userService.addUserData("102", "이순신", "ACTIVE"); + userService.addUserData("103", "강감찬", "ACTIVE"); - updateCustomer("101", "홍길순"); + userService.getAllUserData(); - deleteCustomer("102"); + userService.updateUserData("101", "홍길순", "ACTIVE"); - System.out.println("모든 고객 조회:"); - listCustomers(); - } - - public void registerCustomer(String id, String name, String status) { - CustomerLegacy c = new CustomerLegacy(); - c.id = id; - c.name = name; - c.status = status; - customers.add(c); - System.out.println("고객 등록: " + id + ", " + name + ", " + status); - } - - public void updateCustomer(String id, String newName) { - for (CustomerLegacy c : customers) { - if (c.id.equals(id)) { - System.out.print("고객 정보 수정: "); - System.out.print("수정 전 - " + c.name); - c.name = newName; - System.out.println(", 수정 후 - " + c.name); - break; - } - } - } - - public void deleteCustomer(String id) { - for (int i = 0; i < customers.size(); i++) { - if (customers.get(i).id.equals(id)) { - customers.remove(i); - System.out.println("고객 삭제 완료: " + id); - break; - } - } - } + userService.deleteUserData("102"); - public void listCustomers() { - for (CustomerLegacy c : customers) { - System.out.println("ID: " + c.id + ", 이름: " + c.name + ", 상태: " + c.status); - } + userService.getAllUserData(); } } -class CustomerLegacy { - public String id; - public String name; - public String status; -} \ No newline at end of file diff --git a/src/main/java/legacy/repository/UserRepository.java b/src/main/java/legacy/repository/UserRepository.java new file mode 100644 index 0000000..15d7418 --- /dev/null +++ b/src/main/java/legacy/repository/UserRepository.java @@ -0,0 +1,15 @@ +package legacy.repository; + +import legacy.vo.User; + +import java.util.ArrayList; + +public interface UserRepository { + + void addData(User user); + void updateData(String id, String name, String status); + void deleteData(String id); + User getUser(String id); + ArrayList getUsers(); + +} diff --git a/src/main/java/legacy/repository/UserRepositoryImpl.java b/src/main/java/legacy/repository/UserRepositoryImpl.java new file mode 100644 index 0000000..728ca70 --- /dev/null +++ b/src/main/java/legacy/repository/UserRepositoryImpl.java @@ -0,0 +1,72 @@ +package legacy.repository; + +import legacy.vo.User; + +import java.util.ArrayList; + +public class UserRepositoryImpl implements UserRepository { + private ArrayList users = new ArrayList<>(); + + @Override + public void addData(User user) { + users.add(user); + } + + @Override + public void updateData(String id, String name, String status) { + for(User data : users){ + if(data.getId().equals(id)){ + System.out.print("[INFO] 고객 수정 성공: "); + String beforeName = data.getName(); + String beforeStatus = data.getStatus(); + + + data.setUser(name, status); + + System.out.print("ID: " + data.getId()); + + if(!beforeName.equals(name)){ + System.out.print(" | 이름: " + beforeName + " -> " + data.getName()); + } + if(!beforeStatus.equals(status)){ + System.out.print(" | 상태: " + beforeStatus + " -> " + data.getStatus()); + } + System.out.println(); + return; + } + } + System.out.println("해당 id의 고객을 찾을 수 없습니다"); + } + + @Override + public void deleteData(String id) { + for(User data : users){ + if(data.getId().equals(id)){ + System.out.print("[INFO] 고객 삭제 성공: "); + System.out.print("ID: " + data.getId() + " | 이름: " + data.getName()); + System.out.println(); + users.remove(data); + + return; + } + } + System.out.println("해당 id의 고객을 찾을 수 없습니다"); + } + + @Override + public User getUser(String id) { + for (User data : users) { + if (data.getId().equals(id)) { + return data; + } + } + System.out.println("해당 id의 고객을 찾을 수 없습니다"); + return null; + } + + @Override + public ArrayList getUsers() { + return users; + } + +} diff --git a/src/main/java/legacy/service/UserService.java b/src/main/java/legacy/service/UserService.java new file mode 100644 index 0000000..827a1b0 --- /dev/null +++ b/src/main/java/legacy/service/UserService.java @@ -0,0 +1,11 @@ +package legacy.service; + +public interface UserService { + + + void addUserData(String id, String name, String status); + void updateUserData(String id, String name, String status); + void deleteUserData(String id); + void getAllUserData(); + +} diff --git a/src/main/java/legacy/service/UserServiceImpl.java b/src/main/java/legacy/service/UserServiceImpl.java new file mode 100644 index 0000000..ed91fbc --- /dev/null +++ b/src/main/java/legacy/service/UserServiceImpl.java @@ -0,0 +1,42 @@ +package legacy.service; + +import legacy.repository.UserRepository; +import legacy.repository.UserRepositoryImpl; +import legacy.vo.User; + +import java.util.ArrayList; + +public class UserServiceImpl implements UserService { + UserRepository userRepository = new UserRepositoryImpl(); + + @Override + public void addUserData(String id, String name, String status) { + User user = new User(id, name, status); + userRepository.addData(user); + System.out.println("[INFO] 고객 등록 성공: " + userRepository.getUser(id).toString()); + } + + @Override + public void updateUserData(String id, String name, String status) { + userRepository.updateData(id, name, status); + } + + @Override + public void deleteUserData(String id) { + userRepository.deleteData(id); + } + + + @Override + public void getAllUserData() { + ArrayList users = userRepository.getUsers(); + System.out.println("----- 고객 조회 결과 -----"); + System.out.println("총 고객 수: " + users.size()); + int i = 0; + for (User user : users) { + System.out.print(i++ + ". "); + System.out.println(user.toString()); + } + } + +} diff --git a/src/main/java/legacy/vo/User.java b/src/main/java/legacy/vo/User.java new file mode 100644 index 0000000..2954134 --- /dev/null +++ b/src/main/java/legacy/vo/User.java @@ -0,0 +1,44 @@ +package legacy.vo; + +public class User { + private String id; + private String name; + private String status; + + public User(){} + + public User(String id, String name, String status) { + this.id = id; + this.name = name; + this.status = status; + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public String getStatus() { + return status; + } + + public void setUser(String name, String status) { + this.name = name; + this.status = status; + } + + @Override + public String toString() { + String status; + if(this.status.equals("ACTIVE")){ + status = "활성"; + } + else{ + status = "비활성"; + } + return "ID: " + this.id + ", 이름: " + this.name + ", 상태: " + status; + } +}