improvement: Tag 테이블 신설 및 도메인 모델 확정 (#243) #244

Merged
seonkyu.kim merged 1 commits from improvement/#243-tag-model into develop 2026-02-25 08:42:00 +00:00
Owner

📋 작업 요약

  • Tag 테이블 신설 (별도 엔티티로 태그 메타데이터 관리)
  • 태그 이름/설명/서비스/생성자/일시 필드 확정
  • (ServiceId, Name) 유니크 인덱스로 동일 서비스 내 태그명 중복 방지
  • 기존 Service.Tags(JSON), Device.Tags(JSON)는 변경 없음 (WP-TAG-02에서 전환)

Closes #243

🛠️ 작업 내용 (Changes)

  • SPMS.Domain/Entities/Tag.cs — Tag 엔티티 생성 (BaseEntity 상속)
  • SPMS.Domain/Interfaces/ITagRepository.cs — 리포지토리 인터페이스 (GetByIdWithService, ExistsInService)
  • SPMS.Domain/Entities/Service.cs — TagList Navigation 프로퍼티 추가
  • SPMS.Domain/Common/ErrorCodes.cs — Tag 에러코드 4종 추가 (191~194)
  • SPMS.Infrastructure/Persistence/Configurations/TagConfiguration.cs — DB 설정 (FK, Unique Index)
  • SPMS.Infrastructure/Persistence/Repositories/TagRepository.cs — 리포지토리 구현
  • SPMS.Infrastructure/AppDbContext.cs — DbSet<Tag> 추가
  • SPMS.Infrastructure/DependencyInjection.cs — ITagRepository DI 등록
  • SPMS.Infrastructure/Migrations/AddTagTable — EF Core Migration 생성 및 DB 적용

📢 리뷰어 참고 사항 (To Reviewers)

  • 기존 API (service/tags/list, device/tags 등) 영향 없음
  • Device.Tags 값은 WP-TAG-02에서 인덱스→Tag.Id로 전환 예정
  • Tag.Name은 생성 후 불변 정책 (에러코드 TagNameImmutable 사전 정의)

체크리스트 (Self Checklist)

  • 빌드(Build)가 성공적으로 수행되었는가?
  • 모든 단위 테스트(Unit Test)를 통과하였는가?
  • 불필요한 로그나 주석을 제거하였는가?
  • 컨벤션(Clean Architecture, Naming)을 준수하였는가?
  • 기밀 정보(비밀번호, 키 등)가 하드코딩 되어있지 않은가?

📸 스크린샷 / 테스트 로그 (Screenshots/Logs)

빌드했습니다.
    경고 0개
    오류 0개
## 📋 작업 요약 - Tag 테이블 신설 (별도 엔티티로 태그 메타데이터 관리) - 태그 이름/설명/서비스/생성자/일시 필드 확정 - (ServiceId, Name) 유니크 인덱스로 동일 서비스 내 태그명 중복 방지 - 기존 Service.Tags(JSON), Device.Tags(JSON)는 변경 없음 (WP-TAG-02에서 전환) ## 🔗 관련 이슈 (Related Issues) Closes #243 ## 🛠️ 작업 내용 (Changes) - [x] `SPMS.Domain/Entities/Tag.cs` — Tag 엔티티 생성 (BaseEntity 상속) - [x] `SPMS.Domain/Interfaces/ITagRepository.cs` — 리포지토리 인터페이스 (GetByIdWithService, ExistsInService) - [x] `SPMS.Domain/Entities/Service.cs` — TagList Navigation 프로퍼티 추가 - [x] `SPMS.Domain/Common/ErrorCodes.cs` — Tag 에러코드 4종 추가 (191~194) - [x] `SPMS.Infrastructure/Persistence/Configurations/TagConfiguration.cs` — DB 설정 (FK, Unique Index) - [x] `SPMS.Infrastructure/Persistence/Repositories/TagRepository.cs` — 리포지토리 구현 - [x] `SPMS.Infrastructure/AppDbContext.cs` — DbSet&lt;Tag&gt; 추가 - [x] `SPMS.Infrastructure/DependencyInjection.cs` — ITagRepository DI 등록 - [x] `SPMS.Infrastructure/Migrations/AddTagTable` — EF Core Migration 생성 및 DB 적용 ## 📢 리뷰어 참고 사항 (To Reviewers) - 기존 API (service/tags/list, device/tags 등) 영향 없음 - Device.Tags 값은 WP-TAG-02에서 인덱스→Tag.Id로 전환 예정 - Tag.Name은 생성 후 불변 정책 (에러코드 TagNameImmutable 사전 정의) ## ✅ 체크리스트 (Self Checklist) - [x] 빌드(Build)가 성공적으로 수행되었는가? - [x] 모든 단위 테스트(Unit Test)를 통과하였는가? - [x] 불필요한 로그나 주석을 제거하였는가? - [x] 컨벤션(Clean Architecture, Naming)을 준수하였는가? - [x] 기밀 정보(비밀번호, 키 등)가 하드코딩 되어있지 않은가? ## 📸 스크린샷 / 테스트 로그 (Screenshots/Logs) ``` 빌드했습니다. 경고 0개 오류 0개 ```
seonkyu.kim added 1 commit 2026-02-25 08:36:48 +00:00
- Tag 엔티티 생성 (ServiceId, Name, Description, CreatedAt, CreatedBy)
- ITagRepository 인터페이스 및 TagRepository 구현
- TagConfiguration: Unique Index (ServiceId, Name), FK Restrict
- Service.TagList Navigation 추가
- ErrorCodes에 Tag 에러코드 4종 추가 (191~194)
- AppDbContext DbSet<Tag>, DI 등록
- EF Core Migration AddTagTable 생성 및 적용

Closes #243
seonkyu.kim added the
Priority
Medium
Status
In Progress
Type
Improvement
labels 2026-02-25 08:37:01 +00:00
seonkyu.kim self-assigned this 2026-02-25 08:37:02 +00:00
seonkyu.kim added this to the Phase 3: 운영 기능 milestone 2026-02-25 08:37:04 +00:00
seonkyu.kim requested review from Owners 2026-02-25 08:37:11 +00:00
seonkyu.kim merged commit 6b4f502bb8 into develop 2026-02-25 08:42:00 +00:00
seonkyu.kim deleted branch improvement/#243-tag-model 2026-02-25 08:42:22 +00:00
seonkyu.kim added
Status
Done
and removed
Status
In Progress
labels 2026-02-25 08:43:03 +00:00
Sign in to join this conversation.
No description provided.