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;
+ }
+}