From 90b127651f0c90ac8ae6575c8bfb44567882bf34 Mon Sep 17 00:00:00 2001 From: catomat0 Date: Sat, 12 Sep 2026 03:06:38 +0900 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/dto/request/GroupCreateRequestDTO.java | 4 ---- .../group/dto/response/GroupMemberResponseDTO.java | 2 -- .../domain/group/dto/response/GroupResponseDTO.java | 2 -- .../com/atmd/backend/domain/group/entity/Group.java | 11 ----------- .../backend/domain/group/service/GroupService.java | 2 +- .../migration/V7__add_users_first_group_created.sql | 13 ++++++++++--- .../db/migration/V9__drop_groups_penalty.sql | 12 ++++++++++++ 7 files changed, 23 insertions(+), 23 deletions(-) create mode 100644 src/main/resources/db/migration/V9__drop_groups_penalty.sql diff --git a/src/main/java/com/atmd/backend/domain/group/dto/request/GroupCreateRequestDTO.java b/src/main/java/com/atmd/backend/domain/group/dto/request/GroupCreateRequestDTO.java index f1e6a3b..1363d2d 100644 --- a/src/main/java/com/atmd/backend/domain/group/dto/request/GroupCreateRequestDTO.java +++ b/src/main/java/com/atmd/backend/domain/group/dto/request/GroupCreateRequestDTO.java @@ -16,10 +16,6 @@ public class GroupCreateRequestDTO { @Size(max = 10) private String name; - @NotBlank - @Size(max = 200) - private String penalty; - /** * 그룹 가용 최대 인원 (방장 포함, 2~5). * 2인은 무료(GENERAL), 3~5인은 유료(SUBSCRIBED, (maxMemberCount - 2) × 500원). diff --git a/src/main/java/com/atmd/backend/domain/group/dto/response/GroupMemberResponseDTO.java b/src/main/java/com/atmd/backend/domain/group/dto/response/GroupMemberResponseDTO.java index 4b01994..e402da4 100644 --- a/src/main/java/com/atmd/backend/domain/group/dto/response/GroupMemberResponseDTO.java +++ b/src/main/java/com/atmd/backend/domain/group/dto/response/GroupMemberResponseDTO.java @@ -10,14 +10,12 @@ public class GroupMemberResponseDTO { private Long userId; private String nickname; - private String email; private boolean isOwner; public static GroupMemberResponseDTO of(GroupUser groupUser, Long ownerId) { return GroupMemberResponseDTO.builder() .userId(groupUser.getUser().getId()) .nickname(groupUser.getUser().getNickname()) - .email(groupUser.getUser().getEmail()) .isOwner(groupUser.getUser().getId().equals(ownerId)) .build(); } diff --git a/src/main/java/com/atmd/backend/domain/group/dto/response/GroupResponseDTO.java b/src/main/java/com/atmd/backend/domain/group/dto/response/GroupResponseDTO.java index 57569c6..f2e7602 100644 --- a/src/main/java/com/atmd/backend/domain/group/dto/response/GroupResponseDTO.java +++ b/src/main/java/com/atmd/backend/domain/group/dto/response/GroupResponseDTO.java @@ -12,7 +12,6 @@ public class GroupResponseDTO { private Long id; private String name; private GroupMembership membership; - private String penalty; private int maxMemberCount; private long currentMemberCount; private int price; @@ -24,7 +23,6 @@ public static GroupResponseDTO of(Group group, long currentMemberCount, Long vie .id(group.getId()) .name(group.getName()) .membership(group.getMembership()) - .penalty(group.getPenalty()) .maxMemberCount(group.getMaxMemberCount()) .currentMemberCount(currentMemberCount) .price(group.getPrice()) diff --git a/src/main/java/com/atmd/backend/domain/group/entity/Group.java b/src/main/java/com/atmd/backend/domain/group/entity/Group.java index f76387e..e4747f0 100644 --- a/src/main/java/com/atmd/backend/domain/group/entity/Group.java +++ b/src/main/java/com/atmd/backend/domain/group/entity/Group.java @@ -47,9 +47,6 @@ public class Group extends BaseEntity { @Column(name = "invite_code", nullable = false, unique = true, length = 20) private String inviteCode; - @Column(nullable = false) - private String penalty; - @Column(name = "max_member_count", nullable = false) private int maxMemberCount; @@ -62,7 +59,6 @@ private Group( String name, GroupMembership membership, String inviteCode, - String penalty, int maxMemberCount, int price ) { @@ -70,7 +66,6 @@ private Group( this.name = name; this.membership = membership; this.inviteCode = inviteCode; - this.penalty = penalty; this.maxMemberCount = maxMemberCount; this.price = price; } @@ -79,7 +74,6 @@ public static Group create( User owner, String name, String inviteCode, - String penalty, int maxMemberCount ) { GroupMembership membership = maxMemberCount <= FREE_MEMBER_THRESHOLD @@ -91,7 +85,6 @@ public static Group create( .name(name) .membership(membership) .inviteCode(inviteCode) - .penalty(penalty) .maxMemberCount(maxMemberCount) .price(price) .build(); @@ -116,8 +109,4 @@ public boolean canAddMember(long currentMemberCount) { public void updateName(String name) { this.name = name; } - - public void updatePenalty(String penalty) { - this.penalty = penalty; - } } diff --git a/src/main/java/com/atmd/backend/domain/group/service/GroupService.java b/src/main/java/com/atmd/backend/domain/group/service/GroupService.java index 81ca577..5566d6b 100644 --- a/src/main/java/com/atmd/backend/domain/group/service/GroupService.java +++ b/src/main/java/com/atmd/backend/domain/group/service/GroupService.java @@ -54,7 +54,7 @@ public GroupResponseDTO create(Long userId, GroupCreateRequestDTO request) { } String inviteCode = generateUniqueInviteCode(); - Group group = Group.create(owner, request.getName(), inviteCode, request.getPenalty(), maxMemberCount); + Group group = Group.create(owner, request.getName(), inviteCode, maxMemberCount); groupRepository.save(group); groupUserRepository.save(GroupUser.of(group, owner)); diff --git a/src/main/resources/db/migration/V7__add_users_first_group_created.sql b/src/main/resources/db/migration/V7__add_users_first_group_created.sql index d1d405f..9b2688e 100644 --- a/src/main/resources/db/migration/V7__add_users_first_group_created.sql +++ b/src/main/resources/db/migration/V7__add_users_first_group_created.sql @@ -1,6 +1,13 @@ -- users 테이블에 그룹 도메인용 first_group_created 컬럼 추가 -- 프로덕션 DB에는 이미 수동으로 추가되어 있을 수 있으므로 IF NOT EXISTS 사용 (idempotent) --- 새 환경 배포 및 DR 상황에서도 안전하게 실행됨 +-- 신규 환경(CI 등)에서는 Hibernate ddl-auto가 users 테이블을 생성하기 전에 Flyway가 먼저 실행되므로 +-- users 테이블이 없을 수 있음 -> to_regclass 로 존재 여부 확인 후 실행 -ALTER TABLE users - ADD COLUMN IF NOT EXISTS first_group_created BOOLEAN NOT NULL DEFAULT FALSE; +DO $$ +BEGIN + IF to_regclass('public.users') IS NOT NULL THEN + ALTER TABLE users + ADD COLUMN IF NOT EXISTS first_group_created BOOLEAN NOT NULL DEFAULT FALSE; + END IF; +END +$$; diff --git a/src/main/resources/db/migration/V9__drop_groups_penalty.sql b/src/main/resources/db/migration/V9__drop_groups_penalty.sql new file mode 100644 index 0000000..ac15ce0 --- /dev/null +++ b/src/main/resources/db/migration/V9__drop_groups_penalty.sql @@ -0,0 +1,12 @@ +-- 그룹 페널티 기능 제거로 penalty 컬럼 삭제 +-- 프로덕션 DB에 컬럼이 없는 환경에서도 안전하게 실행되도록 IF EXISTS 사용 (idempotent) +-- CI/신규 환경에서 groups 테이블이 아직 없을 수 있으므로 to_regclass 로 존재 여부 확인 + +DO $$ +BEGIN + IF to_regclass('public.groups') IS NOT NULL THEN + ALTER TABLE groups + DROP COLUMN IF EXISTS penalty; + END IF; +END +$$; From 92c11841543f84dbce50ed52c86a0bc068ae2288 Mon Sep 17 00:00:00 2001 From: catomat0 Date: Sat, 12 Sep 2026 03:13:39 +0900 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migration/V7__add_users_first_group_created.sql | 13 ------------- .../V8__drop_users_first_group_created.sql | 5 ----- .../db/migration/V9__drop_groups_penalty.sql | 12 ------------ 3 files changed, 30 deletions(-) delete mode 100644 src/main/resources/db/migration/V7__add_users_first_group_created.sql delete mode 100644 src/main/resources/db/migration/V8__drop_users_first_group_created.sql delete mode 100644 src/main/resources/db/migration/V9__drop_groups_penalty.sql diff --git a/src/main/resources/db/migration/V7__add_users_first_group_created.sql b/src/main/resources/db/migration/V7__add_users_first_group_created.sql deleted file mode 100644 index 9b2688e..0000000 --- a/src/main/resources/db/migration/V7__add_users_first_group_created.sql +++ /dev/null @@ -1,13 +0,0 @@ --- users 테이블에 그룹 도메인용 first_group_created 컬럼 추가 --- 프로덕션 DB에는 이미 수동으로 추가되어 있을 수 있으므로 IF NOT EXISTS 사용 (idempotent) --- 신규 환경(CI 등)에서는 Hibernate ddl-auto가 users 테이블을 생성하기 전에 Flyway가 먼저 실행되므로 --- users 테이블이 없을 수 있음 -> to_regclass 로 존재 여부 확인 후 실행 - -DO $$ -BEGIN - IF to_regclass('public.users') IS NOT NULL THEN - ALTER TABLE users - ADD COLUMN IF NOT EXISTS first_group_created BOOLEAN NOT NULL DEFAULT FALSE; - END IF; -END -$$; diff --git a/src/main/resources/db/migration/V8__drop_users_first_group_created.sql b/src/main/resources/db/migration/V8__drop_users_first_group_created.sql deleted file mode 100644 index 29abfef..0000000 --- a/src/main/resources/db/migration/V8__drop_users_first_group_created.sql +++ /dev/null @@ -1,5 +0,0 @@ --- 그룹 생성 정책 변경(2인 무료/3~5인 유료)으로 first_group_created 플래그 미사용 처리 --- 프로덕션 DB에 컬럼이 없는 환경에서도 안전하게 실행되도록 IF EXISTS 사용 (idempotent) - -ALTER TABLE users - DROP COLUMN IF EXISTS first_group_created; diff --git a/src/main/resources/db/migration/V9__drop_groups_penalty.sql b/src/main/resources/db/migration/V9__drop_groups_penalty.sql deleted file mode 100644 index ac15ce0..0000000 --- a/src/main/resources/db/migration/V9__drop_groups_penalty.sql +++ /dev/null @@ -1,12 +0,0 @@ --- 그룹 페널티 기능 제거로 penalty 컬럼 삭제 --- 프로덕션 DB에 컬럼이 없는 환경에서도 안전하게 실행되도록 IF EXISTS 사용 (idempotent) --- CI/신규 환경에서 groups 테이블이 아직 없을 수 있으므로 to_regclass 로 존재 여부 확인 - -DO $$ -BEGIN - IF to_regclass('public.groups') IS NOT NULL THEN - ALTER TABLE groups - DROP COLUMN IF EXISTS penalty; - END IF; -END -$$;