Skip to content

Commit 5019046

Browse files
committed
refator: ErrorMessage관리, 리뷰참고
1 parent 78af390 commit 5019046

23 files changed

+200
-101
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.sprint.mission.discodeit.common;
2+
3+
public class ErrorMessages {
4+
public static final String ERROR_NOT_FOUND = "해당 %s을(를) 찾을 수 없습니다!";
5+
public static final String ERROR_EXISTS = "이미 등록된 %s입니다!";
6+
public static final String ERROR_MISMATCH = "%s 불 일치!";
7+
8+
public static final String ERROR_FILE_UPLOAD_INVALID = "%s 업로드 대상 또는 내용이 잘못되었습니다!";
9+
10+
public static final String ERROR_PRIVATE_CHANNEL_NOT_UPDATE = "private 채널은 수정할 수 없습니다.";
11+
12+
public static final String ERROR_EMPTY = "%s 내용은 비어있을 수 없습니다.";
13+
14+
public static final String ERROR_FILE_PATH_NULL = "%s 설정이 null입니다. application.yaml 설정 확인 필요";
15+
public static final String ERROR_SAVE = "%s 저장 중 오류 발생!";
16+
public static final String ERROR_LOAD = "%s 불러오기 중 오류 발생!";
17+
18+
public static String format(String entityName, String messageTemplate) {
19+
return String.format(messageTemplate, entityName);
20+
}
21+
22+
}

src/main/java/com/sprint/mission/discodeit/entity/Channel.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sprint.mission.discodeit.entity;
22

3+
import com.sprint.mission.discodeit.common.ErrorMessages;
34
import lombok.Getter;
45
import lombok.Setter;
56

@@ -60,7 +61,7 @@ public void setMembers(Set<User> members) {
6061
public void validateMembership(User sender) {
6162
if (!members.contains(sender)) {
6263
throw new IllegalArgumentException(
63-
" ---" + sender.getName() + "(은/는) [" + channelName + "]채널 멤버가 아닙니다.");
64+
ErrorMessages.format("Sender", ErrorMessages.ERROR_NOT_FOUND));
6465
}
6566
}
6667

@@ -69,7 +70,9 @@ public void validateUniqueCategory() {
6970
Set<String> unique = new HashSet<>();
7071
for (String category : this.categories) {
7172
if (!unique.add(category)) {
72-
throw new IllegalArgumentException(" --- 중복된 카테고리가 포함되어 있습니다.");
73+
throw new IllegalArgumentException(
74+
ErrorMessages.format("Category", ErrorMessages.ERROR_EXISTS)
75+
);
7376
}
7477
}
7578
}
@@ -78,11 +81,12 @@ public void validateUniqueCategory() {
7881
public void validateCategory(String category){
7982
if (!categories.contains(category)) {
8083
throw new IllegalArgumentException(
81-
" ---"+ category + "(은/는) [" +channelName + "]채널에 존재 하지 않는 카테고리입니다.");
84+
ErrorMessages.format("Category", ErrorMessages.ERROR_NOT_FOUND)
85+
);
8286
}
8387
}
8488

85-
public void addKeyUserToMembers() {
89+
public void addCreatorToMembers() {
8690
this.members.add(this.creator);
8791
}
8892

src/main/java/com/sprint/mission/discodeit/entity/Message.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sprint.mission.discodeit.entity;
22

3+
import com.sprint.mission.discodeit.common.ErrorMessages;
34
import lombok.Getter;
45

56
import java.io.Serializable;
@@ -35,7 +36,9 @@ public void update(String content) {
3536

3637
public void validateContent() {
3738
if (content == null || content.trim().isEmpty()) {
38-
throw new IllegalArgumentException("메시지 내용은 비어있을 수 없습니다.");
39+
throw new IllegalArgumentException(
40+
ErrorMessages.format("MessageContent", ErrorMessages.ERROR_EMPTY)
41+
);
3942
}
4043
}
4144

src/main/java/com/sprint/mission/discodeit/entity/User.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public User(String name, String email, String phone, String password) {
3030
this.createdAt = Instant.now();
3131
this.updatedAt = this.createdAt; //updatedAt의 처음 시간은 createAt과 동일해야 함
3232

33-
this.profileImageId = null; // 나중에 등록하는 경우가 대부분??
33+
this.profileImageId = null;
3434
}
3535

3636
@Override

src/main/java/com/sprint/mission/discodeit/repository/file/FileBinaryContentRepository.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package com.sprint.mission.discodeit.repository.file;
22

3+
import com.sprint.mission.discodeit.common.ErrorMessages;
34
import com.sprint.mission.discodeit.config.DiscodeitProperties;
45
import com.sprint.mission.discodeit.entity.BinaryContent;
56
import com.sprint.mission.discodeit.repository.BinaryContentRepository;
6-
import jakarta.annotation.PostConstruct;
7+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
8+
import org.springframework.stereotype.Repository;
79

810
import java.io.*;
911
import java.util.*;
1012
import java.util.stream.Collectors;
1113

12-
14+
@ConditionalOnProperty(name = "discodeit.repository.type", havingValue = "file")
15+
@Repository
1316
public class FileBinaryContentRepository implements BinaryContentRepository {
14-
private static final long serialVersionUID = 1L;
15-
1617
private final String filePath;
1718
private Map<UUID, BinaryContent> data;
1819

@@ -93,7 +94,7 @@ private void saveData() {
9394
ObjectOutputStream oos = new ObjectOutputStream(fos)) {
9495
oos.writeObject(data);
9596
} catch (IOException e) {
96-
System.err.println("[binaryContent] 데이터 저장 중 오류 발생: " + e.getMessage());
97+
System.out.println(ErrorMessages.format("[binaryContent]", ErrorMessages.ERROR_SAVE));
9798
e.printStackTrace();
9899
}
99100
}
@@ -104,9 +105,10 @@ private Map<UUID, BinaryContent> loadData() {
104105
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
105106
return (Map<UUID, BinaryContent>) ois.readObject();
106107
} catch (FileNotFoundException e) {
107-
System.out.println("[binaryContent] 저장된 파일이 없습니다. 새 데이터를 시작합니다.");
108+
System.out.println(ErrorMessages.format("[binaryContent]", ErrorMessages.ERROR_NOT_FOUND));
109+
System.out.println("새 데이터를 시작합니다.");
108110
} catch (IOException | ClassNotFoundException e) {
109-
System.out.println("[binaryCotent] 데이터 불러오기 중 오류 발생: " + e.getMessage());
111+
System.out.println(ErrorMessages.format("[binaryContent]", ErrorMessages.ERROR_LOAD));
110112
e.printStackTrace();
111113
}
112114
// 실패 시 빈 Map 반환

src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sprint.mission.discodeit.repository.file;
22

3+
import com.sprint.mission.discodeit.common.ErrorMessages;
34
import com.sprint.mission.discodeit.config.DiscodeitProperties;
45
import com.sprint.mission.discodeit.entity.Channel;
56
import com.sprint.mission.discodeit.entity.User;
@@ -12,14 +13,12 @@
1213

1314

1415
public class FileChannelRepository implements ChannelRepository {
15-
private static final long serialVersionUID = 1L;
16-
1716
private final String filePath;
1817
private Map<UUID, Channel> data;
1918

2019
public FileChannelRepository(DiscodeitProperties properties) {
2120
if (properties.getFilePath() == null) {
22-
throw new IllegalStateException("filePath 설정이 null입니다. application.yaml 설정 확인 필요");
21+
System.out.println(ErrorMessages.format("[Channel]", ErrorMessages.ERROR_FILE_PATH_NULL));
2322
}
2423
this.filePath = properties.getFilePath() + "/channel.ser";
2524
this.data = new HashMap<>();
@@ -85,7 +84,7 @@ private void saveData() {
8584
ObjectOutputStream oos = new ObjectOutputStream(fos)) {
8685
oos.writeObject(data);
8786
} catch (IOException e) {
88-
System.err.println("[채널] 데이터 저장 중 오류 발생: " + e.getMessage());
87+
System.out.println(ErrorMessages.format("[Channel]", ErrorMessages.ERROR_SAVE));
8988
e.printStackTrace();
9089
}
9190
}
@@ -96,9 +95,10 @@ private Map<UUID, Channel> loadData() {
9695
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
9796
return (Map<UUID, Channel>) ois.readObject();
9897
} catch (FileNotFoundException e) {
99-
System.out.println("[채널] 저장된 파일이 없습니다. 새 데이터를 시작합니다.");
98+
System.out.println(ErrorMessages.format("[Channel]", ErrorMessages.ERROR_NOT_FOUND));
99+
System.out.println("새 데이터를 시작합니다.");
100100
} catch (IOException | ClassNotFoundException e) {
101-
System.out.println("[채널] 데이터 불러오기 중 오류 발생: " + e.getMessage());
101+
System.out.println(ErrorMessages.format("[Channel]", ErrorMessages.ERROR_LOAD));
102102
e.printStackTrace();
103103
}
104104
// 실패 시 빈 Map 반환

src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sprint.mission.discodeit.repository.file;
22

3+
import com.sprint.mission.discodeit.common.ErrorMessages;
34
import com.sprint.mission.discodeit.config.DiscodeitProperties;
45
import com.sprint.mission.discodeit.entity.Message;
56
import com.sprint.mission.discodeit.repository.ChannelRepository;
@@ -13,16 +14,14 @@
1314

1415

1516
public class FileMessageRepository implements MessageRepository {
16-
private static final long serialVersionUID = 1L;
17-
1817
private final String filePath;
1918
private final UserRepository userRepository;
2019
private final ChannelRepository channelRepository;
2120
private Map<UUID, Message> data;
2221

2322
public FileMessageRepository(DiscodeitProperties properties, UserRepository userRepository, ChannelRepository channelRepository) {
2423
if (properties.getFilePath() == null) {
25-
throw new IllegalStateException("filePath 설정이 null입니다. application.yaml 설정 확인 필요");
24+
System.out.println(ErrorMessages.format("[Message]", ErrorMessages.ERROR_FILE_PATH_NULL));
2625
}
2726
this.filePath = properties.getFilePath() + "/message.ser";
2827
this.userRepository = userRepository;
@@ -99,7 +98,7 @@ private void saveData() {
9998
ObjectOutputStream oos = new ObjectOutputStream(fos)) {
10099
oos.writeObject(data);
101100
} catch (IOException e) {
102-
System.err.println("[메시지] 데이터 저장 중 오류 발생: " + e.getMessage());
101+
System.out.println(ErrorMessages.format("[Message]", ErrorMessages.ERROR_SAVE));
103102
e.printStackTrace();
104103
}
105104
}
@@ -110,9 +109,11 @@ private Map<UUID, Message> loadData() {
110109
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
111110
return (Map<UUID, Message>) ois.readObject();
112111
} catch (FileNotFoundException e) {
113-
System.out.println("[메시지] 저장된 파일이 없습니다. 새 데이터를 시작합니다.");
112+
System.out.println(ErrorMessages.format("[Message]", ErrorMessages.ERROR_NOT_FOUND));
113+
System.out.println("새 데이터를 시작합니다.");
114114
} catch (IOException | ClassNotFoundException e) {
115-
System.out.println("[메시지] 데이터 불러오기 중 오류 발생: " + e.getMessage());
115+
System.out.println(ErrorMessages.format("[Message]", ErrorMessages.ERROR_LOAD));
116+
116117
e.printStackTrace();
117118
}
118119
// 실패 시 빈 Map 반환

src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sprint.mission.discodeit.repository.file;
22

3+
import com.sprint.mission.discodeit.common.ErrorMessages;
34
import com.sprint.mission.discodeit.config.DiscodeitProperties;
45
import com.sprint.mission.discodeit.entity.ReadStatus;
56
import com.sprint.mission.discodeit.repository.ReadStatusRepository;
@@ -11,14 +12,12 @@
1112

1213

1314
public class FileReadStatusRepository implements ReadStatusRepository {
14-
private static final long serialVersionUID = 1L;
15-
1615
private final String filePath;
1716
private Map<UUID, ReadStatus> data;
1817

1918
public FileReadStatusRepository(DiscodeitProperties properties) {
2019
if (properties.getFilePath() == null) {
21-
throw new IllegalStateException("filePath 설정이 null입니다. application.yaml 설정 확인 필요");
20+
System.out.println(ErrorMessages.format("[ReadStatus]", ErrorMessages.ERROR_FILE_PATH_NULL));
2221
}
2322
this.filePath = properties.getFilePath() + "/readstatus.ser";
2423
this.data = new HashMap<>();
@@ -109,7 +108,7 @@ private void saveData() {
109108
ObjectOutputStream oos = new ObjectOutputStream(fos)) {
110109
oos.writeObject(data);
111110
} catch (IOException e) {
112-
System.err.println("[readStatus] 데이터 저장 중 오류 발생: " + e.getMessage());
111+
System.out.println(ErrorMessages.format("[ReadStatus]", ErrorMessages.ERROR_SAVE));
113112
e.printStackTrace();
114113
}
115114
}
@@ -120,9 +119,10 @@ private Map<UUID, ReadStatus> loadData() {
120119
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
121120
return (Map<UUID, ReadStatus>) ois.readObject();
122121
} catch (FileNotFoundException e) {
123-
System.out.println("[readStatus] 저장된 파일이 없습니다. 새 데이터를 시작합니다.");
122+
System.out.println(ErrorMessages.format("[ReadStatus]", ErrorMessages.ERROR_NOT_FOUND));
123+
System.out.println("새 데이터를 시작합니다.");
124124
} catch (IOException | ClassNotFoundException e) {
125-
System.out.println("[readStatus] 데이터 불러오기 중 오류 발생: " + e.getMessage());
125+
System.out.println(ErrorMessages.format("[ReadStatus]", ErrorMessages.ERROR_LOAD));
126126
e.printStackTrace();
127127
}
128128
// 실패 시 빈 Map 반환

src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sprint.mission.discodeit.repository.file;
22

3+
import com.sprint.mission.discodeit.common.ErrorMessages;
34
import com.sprint.mission.discodeit.config.DiscodeitProperties;
45
import com.sprint.mission.discodeit.entity.User;
56
import com.sprint.mission.discodeit.repository.ChannelRepository;
@@ -11,15 +12,13 @@
1112

1213

1314
public class FileUserRepository implements UserRepository {
14-
private static final long serialVersionUID = 1L;
15-
1615
private final String filePath;
1716
private ChannelRepository channelRepository;
1817
private Map<UUID, User> data;
1918

2019
public FileUserRepository(DiscodeitProperties properties, ChannelRepository channelRepository) {
2120
if (properties.getFilePath() == null) {
22-
throw new IllegalStateException("filePath 설정이 null입니다. application.yaml 설정 확인 필요");
21+
System.out.println(ErrorMessages.format("[User]", ErrorMessages.ERROR_FILE_PATH_NULL));
2322
}
2423
this.filePath = properties.getFilePath() + "/user.ser";
2524
this.channelRepository = channelRepository;
@@ -79,7 +78,7 @@ private void saveData() {
7978
ObjectOutputStream oos = new ObjectOutputStream(fos)) {
8079
oos.writeObject(data);
8180
} catch (IOException e) {
82-
System.err.println("[유저] 데이터 저장 중 오류 발생: " + e.getMessage());
81+
System.out.println(ErrorMessages.format("[User]", ErrorMessages.ERROR_SAVE));
8382
e.printStackTrace();
8483
}
8584
}
@@ -90,9 +89,11 @@ private Map<UUID, User> loadData() {
9089
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
9190
return (Map<UUID, User>) ois.readObject();
9291
} catch (FileNotFoundException e) {
93-
System.out.println("[유저] 저장된 파일이 없습니다. 새 데이터를 시작합니다.");
92+
System.out.println(ErrorMessages.format("[User]", ErrorMessages.ERROR_NOT_FOUND));
93+
System.out.println("새 데이터를 시작합니다.");
9494
} catch (IOException | ClassNotFoundException e) {
95-
System.out.println("[유저] 데이터 불러오기 중 오류 발생: " + e.getMessage());
95+
System.out.println(ErrorMessages.format("[User]", ErrorMessages.ERROR_LOAD));
96+
9697
e.printStackTrace();
9798
}
9899
// 실패 시 빈 Map 반환

src/main/java/com/sprint/mission/discodeit/repository/file/FileUserStatusRepository.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sprint.mission.discodeit.repository.file;
22

3+
import com.sprint.mission.discodeit.common.ErrorMessages;
34
import com.sprint.mission.discodeit.config.DiscodeitProperties;
45
import com.sprint.mission.discodeit.entity.UserStatus;
56
import com.sprint.mission.discodeit.repository.UserStatusRepository;
@@ -10,14 +11,12 @@
1011

1112

1213
public class FileUserStatusRepository implements UserStatusRepository {
13-
private static final long serialVersionUID = 1L;
14-
1514
private final String filePath;
1615
private Map<UUID, UserStatus> data;
1716

1817
public FileUserStatusRepository(DiscodeitProperties properties) {
1918
if (properties.getFilePath() == null) {
20-
throw new IllegalStateException("filePath 설정이 null입니다. application.yaml 설정 확인 필요");
19+
System.out.println(ErrorMessages.format("[UserStatus]", ErrorMessages.ERROR_FILE_PATH_NULL));
2120
}
2221
this.filePath = properties.getFilePath() + "/userstatus.ser";
2322
this.data = new HashMap<>();
@@ -87,7 +86,7 @@ private void saveData() {
8786
ObjectOutputStream oos = new ObjectOutputStream(fos)) {
8887
oos.writeObject(data);
8988
} catch (IOException e) {
90-
System.err.println("[userStatus] 데이터 저장 중 오류 발생: " + e.getMessage());
89+
System.out.println(ErrorMessages.format("[UserStatus]", ErrorMessages.ERROR_SAVE));
9190
e.printStackTrace();
9291
}
9392
}
@@ -98,9 +97,10 @@ private Map<UUID, UserStatus> loadData() {
9897
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
9998
return (Map<UUID, UserStatus>) ois.readObject();
10099
} catch (FileNotFoundException e) {
101-
System.out.println("[userStatus] 저장된 파일이 없습니다. 새 데이터를 시작합니다.");
100+
System.out.println(ErrorMessages.format("[UserStatus]", ErrorMessages.ERROR_NOT_FOUND));
101+
System.out.println("새 데이터를 시작합니다.");
102102
} catch (IOException | ClassNotFoundException e) {
103-
System.out.println("[userStatus] 데이터 불러오기 중 오류 발생: " + e.getMessage());
103+
System.out.println(ErrorMessages.format("[UserStatus]", ErrorMessages.ERROR_LOAD));
104104
e.printStackTrace();
105105
}
106106
// 실패 시 빈 Map 반환

0 commit comments

Comments
 (0)