From 1a87492331cac784852de89c86683a90688bbad8 Mon Sep 17 00:00:00 2001 From: seungin Date: Wed, 30 Jul 2025 16:32:48 +0900 Subject: [PATCH 1/6] =?UTF-8?q?[refactor]=20UserController=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=82=AC=EC=9A=A9=ED=95=98=EC=A7=80=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20import=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/wayble/server/user/controller/UserController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/wayble/server/user/controller/UserController.java b/src/main/java/com/wayble/server/user/controller/UserController.java index 8f4115b4..ad1dfa9e 100644 --- a/src/main/java/com/wayble/server/user/controller/UserController.java +++ b/src/main/java/com/wayble/server/user/controller/UserController.java @@ -1,6 +1,5 @@ package com.wayble.server.user.controller; -import com.wayble.server.common.config.security.jwt.JwtTokenProvider; import com.wayble.server.common.exception.ApplicationException; import com.wayble.server.common.response.CommonResponse; import com.wayble.server.user.dto.UserInfoRegisterRequestDto; @@ -9,7 +8,6 @@ import com.wayble.server.user.exception.UserErrorCase; import com.wayble.server.user.service.UserInfoService; import com.wayble.server.user.service.UserService; -import com.wayble.server.auth.service.AuthService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; From db992906bc4d4993f01ee5cf794b451d758a5071 Mon Sep 17 00:00:00 2001 From: seungin Date: Wed, 30 Jul 2025 16:49:30 +0900 Subject: [PATCH 2/6] =?UTF-8?q?[feat]=20=EC=97=94=ED=8B=B0=ED=8B=B0?= =?UTF-8?q?=EC=97=90=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=ED=95=98=EA=B8=B0=20=EC=9C=84=ED=95=9C=20converter=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/converter/StringListConverter.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/com/wayble/server/common/converter/StringListConverter.java diff --git a/src/main/java/com/wayble/server/common/converter/StringListConverter.java b/src/main/java/com/wayble/server/common/converter/StringListConverter.java new file mode 100644 index 00000000..caa97770 --- /dev/null +++ b/src/main/java/com/wayble/server/common/converter/StringListConverter.java @@ -0,0 +1,34 @@ +package com.wayble.server.common.converter; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; + +import java.util.Collections; +import java.util.List; + +@Converter +public class StringListConverter implements AttributeConverter, String> { + private final ObjectMapper objectMapper = new ObjectMapper(); + + @Override + public String convertToDatabaseColumn(List list) { + try { + return list == null ? "[]" : objectMapper.writeValueAsString(list); + } catch (Exception e) { + return "[]"; + } + } + + @Override + public List convertToEntityAttribute(String json) { + try { + if (json == null || json.isBlank()) return Collections.emptyList(); + return objectMapper.readValue(json, new TypeReference>() {}); + } catch (Exception e) { + return Collections.emptyList(); + } + } +} + From c327e27973b9aa6d63b4c2c814263dcd99aa2a92 Mon Sep 17 00:00:00 2001 From: seungin Date: Wed, 30 Jul 2025 16:52:21 +0900 Subject: [PATCH 3/6] =?UTF-8?q?[refactor]=20=EC=9C=A0=EC=A0=80=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=EC=97=90=20=EC=9E=A5=EC=95=A0=EC=9C=A0?= =?UTF-8?q?=ED=98=95,=20=EC=9D=B4=EB=8F=99=EB=B3=B4=EC=A1=B0=EC=88=98?= =?UTF-8?q?=EB=8B=A8=20=ED=95=84=EB=93=9C=20List=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/wayble/server/user/entity/User.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/wayble/server/user/entity/User.java b/src/main/java/com/wayble/server/user/entity/User.java index b0a9df6d..c8861e3e 100644 --- a/src/main/java/com/wayble/server/user/entity/User.java +++ b/src/main/java/com/wayble/server/user/entity/User.java @@ -1,5 +1,6 @@ package com.wayble.server.user.entity; +import com.wayble.server.common.converter.StringListConverter; import com.wayble.server.common.entity.BaseEntity; import com.wayble.server.review.entity.Review; import jakarta.persistence.*; @@ -58,11 +59,14 @@ public class User extends BaseEntity { @Column(name = "profile_image_url") private String profileImageUrl; + @Convert(converter = StringListConverter.class) @Column(name = "disability_type") - private String disabilityType; // 장애 유형 (발달장애,시각장애,지체장애,청각장애) + private List disabilityType; // 장애 유형 (발달장애,시각장애,지체장애,청각장애) + + @Convert(converter = StringListConverter.class) @Column(name = "mobility_aid") - private String mobilityAid; // 이동 보조 수단 (안내견,지팡이,동행인,휠체어) + private List mobilityAid; // 이동 보조 수단 (안내견,지팡이,동행인,휠체어) @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List reviewList = new ArrayList<>(); @@ -117,9 +121,9 @@ public void setNickname(String nickname) { this.nickname = nickname; } - public void setDisabilityType(String disabilityType) { this.disabilityType = disabilityType; } + public void setDisabilityType(List disabilityType) { this.disabilityType = disabilityType; } - public void setMobilityAid(String mobilityAid) { this.mobilityAid = mobilityAid; } + public void setMobilityAid(List mobilityAid) { this.mobilityAid = mobilityAid; } public void setBirthDate(LocalDate birthDate) { this.birthDate = birthDate; } From 5a9475fa3250566a54f0ef9d4510b7ad95a30de2 Mon Sep 17 00:00:00 2001 From: seungin Date: Wed, 30 Jul 2025 16:53:32 +0900 Subject: [PATCH 4/6] =?UTF-8?q?[refactor]=20=EC=9C=A0=EC=A0=80=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EB=93=B1=EB=A1=9D=20=EA=B4=80=EB=A0=A8=20Dto=20?= =?UTF-8?q?=ED=95=84=EB=93=9C=20List=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20(?= =?UTF-8?q?=EC=9E=A5=EC=95=A0=EC=9C=A0=ED=98=95,=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=EB=B3=B4=EC=A1=B0=EC=88=98=EB=8B=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wayble/server/user/dto/UserInfoRegisterRequestDto.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/wayble/server/user/dto/UserInfoRegisterRequestDto.java b/src/main/java/com/wayble/server/user/dto/UserInfoRegisterRequestDto.java index 2c62901c..6c0a2bbc 100644 --- a/src/main/java/com/wayble/server/user/dto/UserInfoRegisterRequestDto.java +++ b/src/main/java/com/wayble/server/user/dto/UserInfoRegisterRequestDto.java @@ -8,6 +8,8 @@ import jakarta.validation.constraints.Size; import lombok.Getter; +import java.util.List; + @Getter public class UserInfoRegisterRequestDto { @NotBlank(message = "닉네임은 필수입니다.") @@ -23,6 +25,6 @@ public class UserInfoRegisterRequestDto { @NotNull(message = "유저 타입은 필수입니다.") private UserType userType; - private String disabilityType; // 장애 유형, (userType == DISABLED만 값 존재) - private String mobilityAid; // 이동보조수단, (userType == DISABLED만 값 존재) + private List disabilityType; // 장애 유형, (userType == DISABLED만 값 존재) + private List mobilityAid; // 이동보조수단, (userType == DISABLED만 값 존재) } From 111d37d99e3c78834540389789b4447f42eb5a2e Mon Sep 17 00:00:00 2001 From: seungin Date: Wed, 30 Jul 2025 16:54:01 +0900 Subject: [PATCH 5/6] =?UTF-8?q?[refactor]=20=EC=9C=A0=EC=A0=80=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=88=98=EC=A0=95=20=EA=B4=80=EB=A0=A8=20Dto=20?= =?UTF-8?q?=ED=95=84=EB=93=9C=20List=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20(?= =?UTF-8?q?=EC=9E=A5=EC=95=A0=EC=9C=A0=ED=98=95,=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=EB=B3=B4=EC=A1=B0=EC=88=98=EB=8B=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wayble/server/user/dto/UserInfoUpdateRequestDto.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/wayble/server/user/dto/UserInfoUpdateRequestDto.java b/src/main/java/com/wayble/server/user/dto/UserInfoUpdateRequestDto.java index 9264a72b..74d41fb0 100644 --- a/src/main/java/com/wayble/server/user/dto/UserInfoUpdateRequestDto.java +++ b/src/main/java/com/wayble/server/user/dto/UserInfoUpdateRequestDto.java @@ -4,12 +4,14 @@ import com.wayble.server.user.entity.UserType; import lombok.Getter; +import java.util.List; + @Getter public class UserInfoUpdateRequestDto { private String nickname; // 변경할 닉네임 (nullable) private String birthDate; // YYYY-MM-DD (nullable) private Gender gender; // MALE, FEMALE, UNKNOWN (nullable) private UserType userType; // GENERAL, DISABLED, COMPANION (nullable) - private String disabilityType; // userType이 DISABLED일 때만 값, 아니면 null - private String mobilityAid; // userType이 DISABLED일 때만 값, 아니면 null + private List disabilityType; // userType이 DISABLED일 때만 값, 아니면 null + private List mobilityAid; // userType이 DISABLED일 때만 값, 아니면 null } From b1c67116e84fec65956de6f44d6c581ca4ff28df Mon Sep 17 00:00:00 2001 From: seungin Date: Wed, 30 Jul 2025 17:56:20 +0900 Subject: [PATCH 6/6] =?UTF-8?q?[refactor]=20ObjectMapper=20static=20?= =?UTF-8?q?=EC=84=A0=EC=96=B8=20=EB=B0=8F=20=EC=98=88=EC=99=B8=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=8B=9C=20=EB=A1=9C=EA=B9=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wayble/server/common/converter/StringListConverter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/wayble/server/common/converter/StringListConverter.java b/src/main/java/com/wayble/server/common/converter/StringListConverter.java index caa97770..1c11c813 100644 --- a/src/main/java/com/wayble/server/common/converter/StringListConverter.java +++ b/src/main/java/com/wayble/server/common/converter/StringListConverter.java @@ -4,19 +4,22 @@ import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; +import lombok.extern.slf4j.Slf4j; import java.util.Collections; import java.util.List; +@Slf4j @Converter public class StringListConverter implements AttributeConverter, String> { - private final ObjectMapper objectMapper = new ObjectMapper(); + private static final ObjectMapper objectMapper = new ObjectMapper(); @Override public String convertToDatabaseColumn(List list) { try { return list == null ? "[]" : objectMapper.writeValueAsString(list); } catch (Exception e) { + log.warn("Failed to convert list to JSON string: {}", list, e); return "[]"; } } @@ -27,6 +30,7 @@ public List convertToEntityAttribute(String json) { if (json == null || json.isBlank()) return Collections.emptyList(); return objectMapper.readValue(json, new TypeReference>() {}); } catch (Exception e) { + log.warn("Failed to convert JSON string to list: {}", json, e); return Collections.emptyList(); } }