refactor: 게시판별 태그 매핑 도입으로 불필요해진 board_setting 제거
CI / build (push) Failing after 11m32s

- BoardSettingMapper(+XML)/BoardSettingRequest/Response 삭제
- TagService board_setting 의존 제거, /admin/board-setting 엔드포인트 제거
- board_setting 테이블 DDL 제거
- 글 수정 시 전체 그룹 조회(기존 글 태그 유실 방지): listWritableGroups(blank)=전체

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ByungCheol
2026-06-28 14:04:59 +09:00
parent caaad65ca2
commit b94f162f7e
7 changed files with 4 additions and 95 deletions
@@ -1,7 +1,5 @@
package com.sb.web.admin.controller;
import com.sb.web.board.dto.BoardSettingRequest;
import com.sb.web.board.dto.BoardSettingResponse;
import com.sb.web.board.dto.TagCategoryRequest;
import com.sb.web.board.dto.TagCategoryResponse;
import com.sb.web.board.dto.TagRequest;
@@ -68,16 +66,4 @@ public class AdminTagController {
tagService.deleteTag(id);
return ResponseEntity.noContent().build();
}
/* ===== 게시판 설정 (사용할 태그 카테고리) ===== */
@GetMapping("/board-setting")
public BoardSettingResponse boardSetting() {
return tagService.getBoardSetting();
}
@PutMapping("/board-setting")
public BoardSettingResponse updateBoardSetting(@RequestBody BoardSettingRequest req) {
return tagService.setBoardSetting(req.getTagCategoryId());
}
}
@@ -1,11 +0,0 @@
package com.sb.web.board.dto;
import lombok.Data;
/**
* 게시판 설정 변경 요청 — 사용할 태그 카테고리(null 이면 제한 없음).
*/
@Data
public class BoardSettingRequest {
private Long tagCategoryId;
}
@@ -1,13 +0,0 @@
package com.sb.web.board.dto;
import lombok.Builder;
import lombok.Data;
/**
* 게시판 설정 응답.
*/
@Data
@Builder
public class BoardSettingResponse {
private Long tagCategoryId;
}
@@ -1,13 +0,0 @@
package com.sb.web.board.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface BoardSettingMapper {
/** 게시판에서 사용할 태그 카테고리 ID (없으면 null) */
Long findTagCategoryId();
int updateTagCategoryId(@Param("categoryId") Long categoryId);
}
@@ -4,10 +4,8 @@ import com.sb.web.board.domain.Tag;
import com.sb.web.board.domain.TagCategory;
import com.sb.web.board.dto.TagCategoryRequest;
import com.sb.web.board.dto.TagCategoryResponse;
import com.sb.web.board.dto.BoardSettingResponse;
import com.sb.web.board.dto.TagRequest;
import com.sb.web.board.dto.TagResponse;
import com.sb.web.board.mapper.BoardSettingMapper;
import com.sb.web.board.mapper.TagCategoryBoardMapper;
import com.sb.web.board.mapper.TagCategoryMapper;
import com.sb.web.board.mapper.TagMapper;
@@ -30,7 +28,6 @@ public class TagService {
private final TagCategoryMapper categoryMapper;
private final TagMapper tagMapper;
private final BoardSettingMapper boardSettingMapper;
private final TagCategoryBoardMapper categoryBoardMapper;
/** 게시판 매핑에 허용되는 값 */
@@ -50,6 +47,10 @@ public class TagService {
* 매핑이 하나도 없는 그룹은 전체 게시판에서 노출(하위호환).
*/
public List<TagCategoryResponse> listWritableGroups(String boardCategory) {
// 게시판 미지정(수정 화면 등) → 전체 그룹 (기존 글 태그 유실 방지)
if (boardCategory == null || boardCategory.isBlank()) {
return listGrouped();
}
List<TagCategoryResponse> result = new ArrayList<>();
for (TagCategory c : categoryMapper.findAll()) {
TagCategoryResponse g = toGroup(c);
@@ -80,23 +81,6 @@ public class TagService {
.forEach(b -> categoryBoardMapper.insert(categoryId, b));
}
/* ===================== 게시판 설정 ===================== */
public BoardSettingResponse getBoardSetting() {
return BoardSettingResponse.builder()
.tagCategoryId(boardSettingMapper.findTagCategoryId())
.build();
}
@Transactional
public BoardSettingResponse setBoardSetting(Long tagCategoryId) {
if (tagCategoryId != null && categoryMapper.findById(tagCategoryId) == null) {
throw new ApiException(HttpStatus.NOT_FOUND, "카테고리를 찾을 수 없습니다.");
}
boardSettingMapper.updateTagCategoryId(tagCategoryId);
return BoardSettingResponse.builder().tagCategoryId(tagCategoryId).build();
}
/* ===================== 카테고리 ===================== */
@Transactional