From 88f3ebcb223afcdb53a3735b0051181072d95ed7 Mon Sep 17 00:00:00 2001 From: projectmiluju Date: Sat, 2 Aug 2025 16:20:11 +0900 Subject: [PATCH 1/7] =?UTF-8?q?fix(ChatMessageWriteService):=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=EC=B0=B8=EC=A1=B0=EA=B0=80=20=EB=B9=88=EB=B0=B0?= =?UTF-8?q?=EC=97=B4=EB=A1=9C=20=EB=93=A4=EC=96=B4=EC=98=A4=EB=A9=B4=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=EC=9D=B4=20=EC=95=88=EB=90=98=EA=B2=8C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20DP-195?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deepwebide_be/chat/service/ChatMessageWriteService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/deepdirect/deepwebide_be/chat/service/ChatMessageWriteService.java b/src/main/java/com/deepdirect/deepwebide_be/chat/service/ChatMessageWriteService.java index 93c6693..c3bc02d 100644 --- a/src/main/java/com/deepdirect/deepwebide_be/chat/service/ChatMessageWriteService.java +++ b/src/main/java/com/deepdirect/deepwebide_be/chat/service/ChatMessageWriteService.java @@ -63,7 +63,7 @@ public ChatMessageBroadcast saveChatMessage(Long userId, ChatMessageRequest requ // 2. 참조 저장 (있으면) CodeReferenceRequest refRequest = request.getCodeReference(); ChatMessageReference reference = null; - if (refRequest != null && refRequest.getPath() != null) { + if (refRequest != null && refRequest.getPath() != null && !refRequest.getPath().isBlank()) { reference = referenceRepository.save(ChatMessageReference.builder() .chatMessage(chatMessage) .path(refRequest.getPath()) From 64a1765bcf22b8225915de6d57dd8aaf8b02a2bc Mon Sep 17 00:00:00 2001 From: projectmiluju Date: Sat, 2 Aug 2025 16:25:00 +0900 Subject: [PATCH 2/7] =?UTF-8?q?fix(ChatMessageReference):=20=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=20=ED=98=95=EC=8B=9D=20=EC=9E=AC=EC=A7=80?= =?UTF-8?q?=EC=A0=95=20DP-195?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deepwebide_be/chat/domain/ChatMessageReference.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/deepdirect/deepwebide_be/chat/domain/ChatMessageReference.java b/src/main/java/com/deepdirect/deepwebide_be/chat/domain/ChatMessageReference.java index a141173..3cf8eb0 100644 --- a/src/main/java/com/deepdirect/deepwebide_be/chat/domain/ChatMessageReference.java +++ b/src/main/java/com/deepdirect/deepwebide_be/chat/domain/ChatMessageReference.java @@ -13,7 +13,8 @@ @Builder public class ChatMessageReference { - @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToOne(fetch = FetchType.LAZY) From dbe38b1e2476756e8eed7008a0bf35fe7721060f Mon Sep 17 00:00:00 2001 From: projectmiluju Date: Sat, 2 Aug 2025 19:53:20 +0900 Subject: [PATCH 3/7] =?UTF-8?q?fix(RedisConfig):=20log=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20DP-195?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/deepdirect/deepwebide_be/global/config/RedisConfig.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/deepdirect/deepwebide_be/global/config/RedisConfig.java b/src/main/java/com/deepdirect/deepwebide_be/global/config/RedisConfig.java index 8bb047c..d659268 100644 --- a/src/main/java/com/deepdirect/deepwebide_be/global/config/RedisConfig.java +++ b/src/main/java/com/deepdirect/deepwebide_be/global/config/RedisConfig.java @@ -25,7 +25,6 @@ public class RedisConfig { public RedisMessageListenerContainer redisMessageListenerContainer() { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); -// container.addMessageListener(redisSubscriber, new PatternTopic("chat:*")); return container; } From 69cc39f29fa97b32c8094d5eb2d7d4c63e392c48 Mon Sep 17 00:00:00 2001 From: projectmiluju Date: Sat, 2 Aug 2025 19:55:01 +0900 Subject: [PATCH 4/7] =?UTF-8?q?fix(ChatWebSocketController):=20log=20?= =?UTF-8?q?=EB=B0=8F=20sout=20=EC=82=AD=EC=A0=9C=20DP-195?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/controller/ChatWebSocketController.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/com/deepdirect/deepwebide_be/chat/controller/ChatWebSocketController.java b/src/main/java/com/deepdirect/deepwebide_be/chat/controller/ChatWebSocketController.java index 652d62d..b3830d2 100644 --- a/src/main/java/com/deepdirect/deepwebide_be/chat/controller/ChatWebSocketController.java +++ b/src/main/java/com/deepdirect/deepwebide_be/chat/controller/ChatWebSocketController.java @@ -30,10 +30,6 @@ public void sendMessage( // 1. WebSocket 세션에서 userId 추출 Long userId = (Long) headerAccessor.getSessionAttributes().get("userId"); - String username = userRepository.findById(userId).get().getUsername(); - log.info("WebSocket 메시지 전송: userId={}, username={}", userId, username); - - System.out.println(request.getMessage()); // 2. 메시지 저장 + DTO 응답 변환 ChatMessageBroadcast broadcast = chatMessageWriteService.saveChatMessage(userId, request); From c5759ae22005a1238353153c4255d668f3363776 Mon Sep 17 00:00:00 2001 From: projectmiluju Date: Sat, 2 Aug 2025 19:55:30 +0900 Subject: [PATCH 5/7] =?UTF-8?q?fix(application.properties):=20sql=20log=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20DP-195?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3a9438e..a1bf341 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -14,8 +14,8 @@ spring.h2.console.path=/h2-console # JPA settings (H2) spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true -spring.jpa.properties.hibernate.format_sql=true +#spring.jpa.show-sql=true +#spring.jpa.properties.hibernate.format_sql=true spring.data.redis.host=localhost spring.data.redis.port=6379 From 1f7b8be2584cc60330ef0fd370a4d8b6f155c204 Mon Sep 17 00:00:00 2001 From: projectmiluju Date: Sat, 2 Aug 2025 19:56:11 +0900 Subject: [PATCH 6/7] =?UTF-8?q?fix(RedisConfig):=20unused=20imports=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0=20DP-195?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deepdirect/deepwebide_be/global/config/RedisConfig.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/com/deepdirect/deepwebide_be/global/config/RedisConfig.java b/src/main/java/com/deepdirect/deepwebide_be/global/config/RedisConfig.java index d659268..8a7d076 100644 --- a/src/main/java/com/deepdirect/deepwebide_be/global/config/RedisConfig.java +++ b/src/main/java/com/deepdirect/deepwebide_be/global/config/RedisConfig.java @@ -1,14 +1,11 @@ package com.deepdirect.deepwebide_be.global.config; import com.deepdirect.deepwebide_be.chat.util.RedisSubscriber; -import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.data.redis.listener.ChannelTopic; -import org.springframework.data.redis.listener.PatternTopic; import org.springframework.data.redis.listener.RedisMessageListenerContainer; @Configuration From 99711db8860c56afd9d323a21b7aa986bb38d58e Mon Sep 17 00:00:00 2001 From: projectmiluju Date: Sat, 2 Aug 2025 20:05:18 +0900 Subject: [PATCH 7/7] =?UTF-8?q?fix(FileService):=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=20=EC=A1=B0=ED=9A=8C=20=EC=8B=9C=20=EC=A0=95?= =?UTF-8?q?=EB=A0=AC=20=EA=B8=B0=EC=A4=80=20=EC=B6=94=EA=B0=80=20DP-195?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deepwebide_be/file/service/FileService.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/com/deepdirect/deepwebide_be/file/service/FileService.java b/src/main/java/com/deepdirect/deepwebide_be/file/service/FileService.java index 819f9d8..2a678ae 100644 --- a/src/main/java/com/deepdirect/deepwebide_be/file/service/FileService.java +++ b/src/main/java/com/deepdirect/deepwebide_be/file/service/FileService.java @@ -66,6 +66,9 @@ public List getFileTree(Long repositoryId, Long userId) { if (parent != null) parent.getChildren().add(node); } } + + sortChildrenRecursively(roots); + return roots; } @@ -504,4 +507,18 @@ private void validateFolderName(String name) { throw new GlobalException(ErrorCode.INVALID_FOLDER_NAME_RESERVED); } + private void sortChildrenRecursively(List nodes) { + if (nodes == null) return; + nodes.sort( + Comparator + // FOLDER가 먼저 오도록 (폴더면 false, 파일이면 true) + .comparing((FileTreeNodeResponse n) -> !n.getFileType().equalsIgnoreCase("FOLDER")) + // 이름 오름차순(대소문자 무시) + .thenComparing(FileTreeNodeResponse::getFileName, String.CASE_INSENSITIVE_ORDER) + ); + for (FileTreeNodeResponse node : nodes) { + sortChildrenRecursively(node.getChildren()); + } + } + }