Skip to content

Commit 83fb451

Browse files
committed
refactor: 사용자 생성 및 로그인 관련 책임을 UserMenu로 위임
- JavaApplication에서 User를 직접 생성하거나 관리하던 코드를 제거
1 parent 4a0aaff commit 83fb451

File tree

2 files changed

+34
-20
lines changed

2 files changed

+34
-20
lines changed

src/main/java/com/sprint/JavaApplication.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,7 @@ public static void main(String[] args) {
3131
UserMenu userMenu = new UserMenu(sc, userService, users);
3232
ChannelMenu channelMenu = new ChannelMenu(sc, channelService);
3333
MessageMenu messageMenu = new MessageMenu(sc, messageService);
34-
35-
User user = userService.inputUserName();
36-
users.add(user);
37-
System.out.println("로그인 하실 프로필 번호를 입력해 주세요.");
38-
userService.outputAllUsersInfo();
39-
int loginNumber = Integer.parseInt(sc.nextLine());
40-
userService.login(loginNumber, users);
41-
System.out.println(user.getUsername() + "님 반갑습니다.");
34+
userMenu.loginUser();
4235

4336
System.out.println("모든 채널 정보를 출력합니다.");
4437
channelService.outputAllChannelInfo();
@@ -53,7 +46,7 @@ public static void main(String[] args) {
5346

5447
switch (choice) {
5548
case 1 -> {
56-
userMenu.run(user);
49+
userMenu.run();
5750
}
5851
case 2 -> {
5952
channelMenu.run();

src/main/java/com/sprint/mission/discodeit/menu/UserMenu.java

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,45 +9,66 @@ public class UserMenu {
99
private final Scanner scanner;
1010
private final UserService userService;
1111
private final List<User> users;
12+
private User loginUser;
1213

1314
public UserMenu(Scanner scanner, UserService userService, List<User> users) {
1415
this.scanner = scanner;
1516
this.userService = userService;
1617
this.users = users;
1718
}
1819

19-
public void run(User user) {
20+
public void loginUser() {
21+
System.out.println("안녕하세요. DisCodeit에 오신 걸 환영합니다.");
22+
System.out.println("사용자의 이름을 입력해 주세요.");
23+
String name = scanner.nextLine();
24+
loginUser = new User(name);
25+
users.add(loginUser);
26+
27+
System.out.println("로그인 하실 프로필 번호를 입력해 주세요.");
28+
userService.outputAllUsersInfo();
29+
int loginNumber = Integer.parseInt(scanner.nextLine());
30+
userService.login(loginNumber, users);
31+
loginUser = userService.changeUser(loginNumber);
32+
33+
System.out.println(loginUser.getUsername() + "님, 반갑습니다.");
34+
}
35+
36+
public void run() {
37+
if (loginUser == null) {
38+
System.out.println("사용자가 로그인되지 않았습니다.");
39+
return;
40+
}
2041
while (true) {
2142
System.out.println(
2243
"1. 새로운 프로필 추가\t2. 모든 프로필 정보 출력\t3. 프로필 정보 출력\t4. 프로필 이름 수정\t5. 프로필 정보 삭제\t6. 프로필 변경\t7. 이전 메뉴");
2344
int n = Integer.parseInt(scanner.nextLine());
2445

2546
switch (n) {
2647
case 1 -> {
27-
System.out.println("새롭게 추가할 프로필 이름을 입력해 주세요.");
48+
System.out.println("새로운 프로필 이름을 입력해 주세요.");
2849
String newUser = scanner.nextLine();
29-
userService.createNewUserNames(user.getUsername(), newUser);
50+
userService.createNewUserNames(loginUser.getUsername(), newUser);
3051
}
3152
case 2 -> userService.outputAllUsersInfo();
32-
case 3 -> userService.outputOneUserInfo(user.getUsername());
53+
case 3 -> userService.outputOneUserInfo(loginUser.getUsername());
3354
case 4 -> {
34-
System.out.println("현재 사용자 이름은 " + user.getUsername() + "입니다. 새로운 이름을 입력해 주세요.");
55+
System.out.println("현재 사용자 이름: " + loginUser.getUsername() + ". 변경할 이름을 입력해 주세요.");
3556
String updateUserName = scanner.nextLine();
36-
userService.updateUserName(user, updateUserName);
57+
userService.updateUserName(loginUser, updateUserName);
3758
}
3859
case 5 -> {
3960
userService.outputAllUsersInfo();
40-
System.out.println("삭제할 사용자의 번호를 입력하세요.");
61+
System.out.println("삭제할 사용자의 번호를 입력해 주세요.");
4162
int num = Integer.parseInt(scanner.nextLine());
42-
System.out.println(user.getUsername() + " 정보를 삭제합니다.");
63+
System.out.println(loginUser.getUsername() + " 정보를 삭제합니다.");
4364
userService.deleteUserName(num);
4465
}
4566
case 6 -> {
46-
System.out.println("변경하실 프로필 번호를 입력하세요.");
67+
System.out.println("변경할 프로필 번호를 입력해 주세요.");
4768
userService.outputAllUsersInfo();
4869
int loginNumber = Integer.parseInt(scanner.nextLine());
4970
userService.login(loginNumber, users);
50-
user = userService.changeUser(loginNumber);
71+
loginUser = userService.changeUser(loginNumber);
5172
}
5273
case 7 -> {
5374
return;
@@ -56,4 +77,4 @@ public void run(User user) {
5677
}
5778
}
5879
}
59-
}
80+
}

0 commit comments

Comments
 (0)