public void deleteById(MemberDto memberDto, Long id) {
        Category category = categoryRepository.fetchById(id);
        Member member = memberRepository.fetchById(memberDto.id());
        validateAuthorizeMember(category, member);

        if (templateRepository.existsByCategoryId(id)) {
            throw new CodeZapException(HttpStatus.BAD_REQUEST, "템플릿이 존재하는 카테고리는 삭제할 수 없습니다.");
        }
        if (category.getIsDefault()) {
            throw new CodeZapException(HttpStatus.BAD_REQUEST, "기본 카테고리는 삭제할 수 없습니다.");
        }
        categoryRepository.deleteById(id);
    }
@Test
    @DisplayName("카테고리 삭제 실패: 이미 없는 카테고리")
    void deleteCategoryFailWithNotExistCateory() {
        Member member = memberRepository.save(MemberFixture.memberFixture());
        Category category = categoryRepository.save(new Category("category1", member));

        categoryService.deleteById(MemberDto.from(member), category.getId());

        assertThatCode(() -> categoryService.deleteById(MemberDto.from(member), category.getId()))
                .isInstanceOf(CodeZapException.class)
                .hasMessage("식별자 " + category.getId() + "에 해당하는 카테고리가 존재하지 않습니다.");
    }