Skip to content

Commit 03ed421

Browse files
authored
Merge branch 'main' into 박인규-sprint1
2 parents eef6ff7 + 473b359 commit 03ed421

14 files changed

+304
-22
lines changed

.gitignore

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ build/
1515
out/
1616
!**/src/main/**/out/
1717
!**/src/test/**/out/
18-
.idea/workspace.xml
19-
18+
.idea
2019
### Eclipse ###
2120
.apt_generated
2221
.classpath

build.gradle.kts

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
plugins {
2+
id("java")
3+
}
4+
5+
group = "com.sprint.mission"
6+
version = "1.0-SNAPSHOT"
7+
8+
repositories {
9+
mavenCentral()
10+
}
11+
12+
dependencies {
13+
testImplementation(platform("org.junit:junit-bom:5.10.0"))
14+
testImplementation("org.junit.jupiter:junit-jupiter")
15+
}
16+
17+
tasks.test {
18+
useJUnitPlatform()
19+
}

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#Mon Apr 14 18:05:24 KST 2025
1+
#Sun Apr 13 14:32:04 KST 2025
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip

settings.gradle.kts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
rootProject.name = "1-sprint-mission"
2+

src/main/java/JavaApplication.java

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import com.sprint.mission.discodeit.entity.*;
2+
import com.sprint.mission.discodeit.service.*;
3+
import com.sprint.mission.discodeit.service.jcf.*;
4+
5+
import java.util.List;
6+
import java.util.UUID;
7+
8+
public class JavaApplication {
9+
public static void main(String[] args) {
10+
// 서비스 인스턴스 생성
11+
UserService userService = new JCFUserService();
12+
ChannelService channelService = new JCFChannelService();
13+
MessageService messageService = new JCFMessageService();
14+
15+
// 등록
16+
User user = userService.create("chat");
17+
Channel channel = channelService.create("channel");
18+
Message message = messageService.create(user.getId(), channel.getId(), "hi hellooo");
19+
20+
System.out.println("===== Registration Completed =====");
21+
System.out.println("User: " + user.getUsername());
22+
System.out.println("Channel: " + channel.getName());
23+
System.out.println("Message: " + message.getContent());
24+
System.out.println();
25+
26+
// 단일 조회
27+
User foundUser = userService.findById(user.getId());
28+
Channel foundChannel = channelService.findById(channel.getId());
29+
Message foundMessage = messageService.findById(message.getId());
30+
31+
System.out.println("===== Data Retrieved =====");
32+
System.out.println("User: " + foundUser.getUsername());
33+
System.out.println("Channel: " + foundChannel.getName());
34+
System.out.println("Message: " + foundMessage.getContent());
35+
System.out.println();
36+
37+
// 수정
38+
userService.update(user.getId(), "update");
39+
channelService.update(channel.getId(), "chat channel");
40+
messageService.update(message.getId(), "updated message");
41+
42+
// 수정 후 조회
43+
System.out.println("===== Updated Data =====");
44+
System.out.println("User: " + userService.findById(user.getId()).getUsername());
45+
System.out.println("Channel: " + channelService.findById(channel.getId()).getName());
46+
System.out.println("Message: " + messageService.findById(message.getId()).getContent());
47+
System.out.println();
48+
49+
// 삭제
50+
userService.delete(user.getId());
51+
channelService.delete(channel.getId());
52+
messageService.delete(message.getId());
53+
54+
// 삭제 확인
55+
System.out.println("===== Check After Deletion =====");
56+
System.out.println("User: " + userService.findById(user.getId())); // null
57+
System.out.println("Channel: " + channelService.findById(channel.getId())); // null
58+
System.out.println("Message: " + messageService.findById(message.getId())); // null
59+
System.out.println();
60+
61+
// ========== 여러 사용자와 메시지 등록 ==========
62+
Channel commonChannel = channelService.create("general");
63+
64+
User user1 = userService.create("Yujin");
65+
User user2 = userService.create("Ginnie");
66+
User user3 = userService.create("Matilda");
67+
68+
messageService.create(user1.getId(), commonChannel.getId(), "H i");
69+
messageService.create(user2.getId(), commonChannel.getId(), "H e l l o");
70+
messageService.create(user3.getId(), commonChannel.getId(), "H e y");
71+
72+
// 사용자 목록 조회
73+
System.out.println("===== All Users =====");
74+
List<User> users = userService.findAll();
75+
for (User u : users) {
76+
System.out.println("- " + u.getUsername());
77+
}
78+
System.out.println();
79+
80+
// 메시지 목록 조회
81+
System.out.println("===== All Messages =====");
82+
List<Message> messages = messageService.findAll();
83+
for (Message m : messages) {
84+
System.out.println("- From User ID: " + m.getUserId());
85+
System.out.println(" Content: " + m.getContent());
86+
}
87+
System.out.println();
88+
}
89+
}
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.sprint.mission;
2+
3+
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
4+
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
5+
public class Main {
6+
public static void main(String[] args) {
7+
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
8+
// to see how IntelliJ IDEA suggests fixing it.
9+
System.out.printf("Hello and welcome!");
10+
11+
for (int i = 1; i <= 5; i++) {
12+
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
13+
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
14+
System.out.println("i = " + i);
15+
}
16+
}
17+
}

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.sprint.mission.discodeit.entity;
22

33
import com.sprint.mission.discodeit.jcf.JCFMessageService;
4-
54
import java.text.SimpleDateFormat;
65
import java.util.UUID;
76

@@ -55,5 +54,4 @@ public String toString() {
5554
}
5655
return result;
5756
}
58-
}
59-
57+
}

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,4 @@ public String toString() {
4646
}
4747
return result;
4848
}
49-
}
50-
49+
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sprint.mission.discodeit.entity;
22

3+
34
import java.text.SimpleDateFormat;
45
import java.util.UUID;
56

@@ -15,17 +16,27 @@ public User(String name, long createdAt, long updatedAt) {
1516
this.updatedAt = updatedAt;
1617
}
1718

18-
public UUID getId() {return id;}
19-
public String getName() {return name;}
20-
public void setName(String name) {this.name = name;}
19+
public UUID getId() {
20+
return id;
21+
}
22+
public String getName() {
23+
return name;
24+
}
25+
public void setName(String name) {
26+
this.name = name;
27+
}
2128

2229
public String getCreatedAt() {
2330
String formatedTime = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(createdAt);
24-
return formatedTime;}
31+
return formatedTime;
32+
}
2533
public String getUpdatedAt() {
2634
String aformatedTime = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(updatedAt);
27-
return aformatedTime;}
28-
public void setUpdatedAt(long updatedAt) {this.updatedAt = updatedAt;}
35+
return aformatedTime;
36+
}
37+
public void setUpdatedAt(long updatedAt) {
38+
this.updatedAt = updatedAt;
39+
}
2940

3041
@Override
3142
public String toString() {
@@ -36,8 +47,4 @@ public String toString() {
3647
result = "\n 사용자 이름 : " + name + "\n 생성일 : " + getCreatedAt() + "\n 수정일 : " + getUpdatedAt() + "\n 사용자 UUID : " + id + "\n";
3748
}
3849
return result;
39-
}
40-
41-
42-
43-
}
50+
}

src/main/java/com/sprint/mission/discodeit/service/MessageService.java

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.sprint.mission.discodeit.service;
22

3-
43
import com.sprint.mission.discodeit.entity.Message;
54
import com.sprint.mission.discodeit.entity.User;
65

src/main/java/com/sprint/mission/discodeit/service/UserService.java

-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import java.util.UUID;
77

88
public interface UserService {
9-
109
User createUser(String name); // 새로운 유저 생성
1110
void updateUserName(User user,String name); // 기존 유저 수정
1211
void printAllUsers();
@@ -16,5 +15,4 @@ public interface UserService {
1615
User findUserByName(String name); // 이름으로 단일유저 찾기
1716
boolean deleteUser(UUID id); // ID로 유저 삭제
1817
boolean deleteUser(String name); // 이름으로 유저 삭제
19-
2018
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.sprint.mission.discodeit.service.jcf;
2+
3+
import com.sprint.mission.discodeit.entity.Channel;
4+
import com.sprint.mission.discodeit.service.ChannelService;
5+
6+
import java.util.*;
7+
8+
public class JCFChannelService implements ChannelService {
9+
// 채널 데이터를 저장하는 Map (key: 채널 ID, value: Channel 객체)
10+
private final Map<UUID, Channel> data;
11+
12+
// 생성자: 데이터 저장용 Map 초기화
13+
public JCFChannelService() {
14+
this.data = new HashMap<>();
15+
}
16+
17+
// 채널 생성 및 저장
18+
@Override
19+
public Channel create(String name) {
20+
Channel channel = new Channel(name);
21+
data.put(channel.getId(), channel);
22+
return channel;
23+
}
24+
25+
// ID로 채널 조회
26+
@Override
27+
public Channel findById(UUID id) {
28+
return data.get(id);
29+
}
30+
31+
// 모든 채널 목록 조회
32+
@Override
33+
public List<Channel> findAll() {
34+
return new ArrayList<>(data.values());
35+
}
36+
37+
// 채널 이름 수정
38+
@Override
39+
public void update(UUID id, String newName) {
40+
Channel channel = data.get(id);
41+
if (channel != null) {
42+
channel.updateName(newName);
43+
}
44+
}
45+
46+
// 채널 삭제
47+
@Override
48+
public void delete(UUID id) {
49+
data.remove(id);
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.sprint.mission.discodeit.service.jcf;
2+
3+
import com.sprint.mission.discodeit.entity.Message;
4+
import com.sprint.mission.discodeit.service.MessageService;
5+
6+
import java.util.*;
7+
8+
public class JCFMessageService implements MessageService {
9+
// 메시지 데이터 저장 Map
10+
private final Map<UUID, Message> data;
11+
12+
// 생성자: 데이터 저장용 Map 초기화
13+
public JCFMessageService() {
14+
this.data = new HashMap<>();
15+
}
16+
17+
// 메시지 생성 및 저장
18+
@Override
19+
public Message create(UUID userId, UUID channelId, String content) {
20+
Message message = new Message(userId, channelId, content);
21+
data.put(message.getId(), message);
22+
return message;
23+
}
24+
25+
// 메시지 목록 조회
26+
@Override
27+
public List<Message> findAll() {
28+
return new ArrayList<>(data.values());
29+
}
30+
// ID로 메시지 조회
31+
@Override
32+
public Message findById(UUID id) {
33+
return data.get(id);
34+
}
35+
36+
37+
// 메시지 내용 수정
38+
@Override
39+
public void update(UUID id, String newContent) {
40+
Message message = data.get(id);
41+
if (message != null) {
42+
message.updateContent(newContent);
43+
}
44+
}
45+
46+
// 메시지 삭제
47+
@Override
48+
public void delete(UUID id) {
49+
data.remove(id);
50+
}
51+
}

0 commit comments

Comments
 (0)