Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/ddd-test-refactoring-roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ keyKeywords / PostKeyword // 서로 다른 도

2026-04-28 현재 상태:

- `domain/useraccount`와 `domain/personalization` 패키지는 이미 분리되어 있다.
- `useraccount`와 `domain/personalization` 패키지는 이미 분리되어 있다.
- `PersonalizationProfileServiceTest` 일반 테스트 lane이 존재한다.
- 다만 `InterestCommandService`가 `PersonalizationProfileService`를 직접 호출하는 결합은 남아 있다.

Expand Down
2 changes: 1 addition & 1 deletion docs/domain-strategy.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ TechFork의 비즈니스 도메인은 다음으로 정의할 수 있다.
현재 문서 기준 결론은 다음과 같다.

- **전략 문서와 glossary에서는 `User Account`와 `Personalization Profile`을 별도 컨텍스트로 본다.**
- 현재 구현은 `domain/useraccount`와 `domain/personalization`으로 물리 분리되어 있다.
- 현재 구현은 `useraccount`와 `domain/personalization`으로 물리 분리되어 있다.

의미:

Expand Down
2 changes: 1 addition & 1 deletion docs/test-gap-analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
| domain/post | 4 | 72 | tracked 기준 controller/repository/query service 중심. batch 테스트 3개는 아직 untracked |
| domain/recommendation | 3 | 8 | 조회/컨버터 중심, 생성 로직 부족 |
| domain/source | 10 | 38 | RSS/배치/스케줄러/락/웹훅 커버 좋음 |
| domain/useraccount + domain/personalization | 8 | 61 | User Account service/controller/repository 커버 + Personalization Profile 기본 unit 안전망 확보 |
| useraccount + domain/personalization | 8 | 61 | User Account service/controller/repository 커버 + Personalization Profile 기본 unit 안전망 확보 |
| global | 6 | 32 | Security, cache, util, integration base |
| evaluation | 28 | 16 | 검색/추천 품질 평가 및 fixture setup |

Expand Down
4 changes: 2 additions & 2 deletions docs/ubiquitous-language/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

- **기준 단위는 패키지가 아니라 바운디드 컨텍스트다.** 다만 각 문서에 현재 owning package를 함께 적어 코드 탐색 경로를 명확히 한다.
- **유비쿼터스 언어 문서는 도메인 전략과 왕복한다.** 새 용어가 나오면 먼저 이 문서를 고치고, 경계가 바뀌면 `domain-strategy.md`를 함께 조정한다.
- **전략 문서에서는 `User Account`와 `Personalization Profile`을 별도 컨텍스트로 본다.** 현재 구현도 `domain/useraccount`와 `domain/personalization`으로 물리 분리되어 있다.
- **전략 문서에서는 `User Account`와 `Personalization Profile`을 별도 컨텍스트로 본다.** 현재 구현도 `useraccount`와 `domain/personalization`으로 물리 분리되어 있다.
- 레거시 코드명(`ScrabPost`, `searchWord`, `markAsisClicked`)은 허용하되, 문서/PR/API에서는 표준 용어를 우선 사용한다.
- 각 컨텍스트 문서는 가능하면 아래 다섯 블록을 유지한다.
1. 표준 용어
Expand All @@ -26,7 +26,7 @@
|---|---|---|---|
| Source / Ingestion | [`source-ingestion.md`](./source-ingestion.md) | `src/main/java/com/techfork/domain/source` | RSS 수집, 소스 블로그, 파이프라인 시작점 |
| Post / Content | [`post-content.md`](./post-content.md) | `src/main/java/com/techfork/post` | 기술 게시글 본문, 요약, 키워드, 검색 projection |
| User Account | [`user-account.md`](./user-account.md) | `src/main/java/com/techfork/domain/useraccount` | 계정, 온보딩, 관심사, 계정 프로필 |
| User Account | [`user-account.md`](./user-account.md) | `src/main/java/com/techfork/useraccount` | 계정, 온보딩, 관심사, 계정 프로필 |
| Personalization Profile | [`personalization-profile.md`](./personalization-profile.md) | `src/main/java/com/techfork/domain/personalization` | 개인화 프로필 생성, 벡터, 핵심 키워드, 재생성 |
| Activity | [`activity.md`](./activity.md) | `src/main/java/com/techfork/activity` | 읽기/검색/북마크 행동 기록 |
| Search | [`search.md`](./search.md) | `src/main/java/com/techfork/domain/search` | query service / read model 중심 컨텍스트 |
Expand Down
2 changes: 1 addition & 1 deletion docs/ubiquitous-language/activity.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
- `src/main/java/com/techfork/activity/bookmark/infrastructure/BookmarkRepository.java`
- `src/main/java/com/techfork/activity/bookmark/presentation/BookmarkConverter.java`
- `src/main/java/com/techfork/activity/bookmark/presentation/BookmarkController.java`
- `src/main/java/com/techfork/domain/useraccount/service/UserLookupService.java`
- `src/main/java/com/techfork/useraccount/application/query/lookup/UserLookupService.java`
- `src/main/java/com/techfork/post/application/query/lookup/PostLookupService.java`
- `src/main/java/com/techfork/post/application/command/PostViewCountCommandService.java`
- `src/main/java/com/techfork/post/application/query/lookup/PostKeywordLookupService.java`
Expand Down
20 changes: 10 additions & 10 deletions docs/ubiquitous-language/user-account.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# User Account

> 사용자 계정, 온보딩, 관심사, 계정 프로필을 다루는 개념적 바운디드 컨텍스트입니다.
> 현재 구현은 `domain/useraccount`로 분리되어 있으며, `Personalization Profile`과 물리적으로도 구분됩니다.
> 현재 구현은 `useraccount`로 분리되어 있으며, `Personalization Profile`과 물리적으로도 구분됩니다.

## Owning packages

- `src/main/java/com/techfork/domain/useraccount`
- `src/main/java/com/techfork/useraccount`

## 표준 용어

Expand Down Expand Up @@ -50,11 +50,11 @@

## 주요 근거 파일

- `src/main/java/com/techfork/domain/useraccount/entity/User.java`
- `src/main/java/com/techfork/domain/useraccount/enums/UserStatus.java`
- `src/main/java/com/techfork/domain/useraccount/enums/EInterestCategory.java`
- `src/main/java/com/techfork/domain/useraccount/enums/EInterestKeyword.java`
- `src/main/java/com/techfork/domain/useraccount/service/UserCommandService.java`
- `src/main/java/com/techfork/domain/useraccount/service/InterestCommandService.java`
- `src/main/java/com/techfork/domain/useraccount/controller/OnboardingController.java`
- `src/main/java/com/techfork/domain/useraccount/controller/UserController.java`
- `src/main/java/com/techfork/useraccount/domain/User.java`
- `src/main/java/com/techfork/useraccount/domain/enums/UserStatus.java`
- `src/main/java/com/techfork/useraccount/domain/enums/EInterestCategory.java`
- `src/main/java/com/techfork/useraccount/domain/enums/EInterestKeyword.java`
- `src/main/java/com/techfork/useraccount/application/command/UserCommandService.java`
- `src/main/java/com/techfork/useraccount/application/command/InterestCommandService.java`
- `src/main/java/com/techfork/useraccount/presentation/OnboardingController.java`
- `src/main/java/com/techfork/useraccount/presentation/UserController.java`
2 changes: 1 addition & 1 deletion docs/ubiquitous-language/user-profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
- [User Account](./user-account.md)
- [Personalization Profile](./personalization-profile.md)

현재 구현은 `src/main/java/com/techfork/domain/useraccount`와
현재 구현은 `src/main/java/com/techfork/useraccount`와
`src/main/java/com/techfork/domain/personalization`로 분리되어 있습니다.
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import com.techfork.activity.bookmark.infrastructure.BookmarkRepository;
import com.techfork.post.domain.Post;
import com.techfork.post.application.query.lookup.PostLookupService;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.service.UserLookupService;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.application.query.lookup.UserLookupService;
import com.techfork.global.exception.GeneralException;
import java.time.LocalDateTime;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import com.techfork.activity.bookmark.infrastructure.BookmarkQueryRow;
import com.techfork.activity.bookmark.infrastructure.BookmarkRepository;
import com.techfork.post.application.query.lookup.PostKeywordLookupService;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.service.UserLookupService;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.application.query.lookup.UserLookupService;
import com.techfork.global.util.CloudflareThirdPartyThumbnailOptimizer;
import java.util.List;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.techfork.activity.bookmark.domain;

import com.techfork.post.domain.Post;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import com.techfork.global.common.BaseEntity;
import jakarta.persistence.*;
import lombok.AccessLevel;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.techfork.activity.bookmark.domain.Bookmark;
import com.techfork.post.domain.Post;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import com.techfork.activity.readhistory.domain.SearchHistory;
import com.techfork.activity.readhistory.infrastructure.SearchHistoryRepository;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.service.UserLookupService;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.application.query.lookup.UserLookupService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.techfork.activity.readhistory.domain;

import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import com.techfork.global.common.BaseEntity;
import java.time.LocalDateTime;
import jakarta.persistence.Column;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import com.techfork.post.domain.Post;
import com.techfork.post.application.command.PostViewCountCommandService;
import com.techfork.post.application.query.lookup.PostLookupService;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.service.UserLookupService;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.application.query.lookup.UserLookupService;
import com.techfork.global.exception.GeneralException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.techfork.activity.readpost.domain;

import com.techfork.post.domain.Post;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import com.techfork.global.common.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.techfork.activity.readpost.domain;

import com.techfork.post.domain.Post;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import com.techfork.global.common.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.techfork.activity.readpost.infrastructure.FirstReadPostRepository;
import com.techfork.post.domain.Post;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import java.time.LocalDateTime;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.techfork.domain.auth.dto.DeveloperTokenResponse;
import com.techfork.domain.auth.dto.KakaoLoginResponse;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import org.springframework.stereotype.Component;

@Component
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
import com.techfork.domain.auth.dto.TokenRefreshResponse;
import com.techfork.domain.auth.dto.kakao.KakaoUserInfoResponse;
import com.techfork.domain.auth.exception.AuthErrorCode;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.enums.Role;
import com.techfork.domain.useraccount.enums.SocialType;
import com.techfork.domain.useraccount.repository.UserRepository;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.domain.enums.Role;
import com.techfork.useraccount.domain.enums.SocialType;
import com.techfork.useraccount.infrastructure.UserRepository;
import com.techfork.global.exception.GeneralException;
import com.techfork.global.security.auth.service.RefreshTokenService;
import com.techfork.global.security.auth.service.UserAuthCacheService;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.techfork.domain.notification.entity;

import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import com.techfork.global.common.BaseTimeEntity;
import jakarta.persistence.*;
import lombok.AccessLevel;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.techfork.domain.personalization.scheduler;

import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.repository.UserRepository;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.infrastructure.UserRepository;
import com.techfork.domain.personalization.service.PersonalizationProfileService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
import com.techfork.post.domain.PostKeyword;
import com.techfork.domain.recommendation.service.RecommendationService;
import com.techfork.domain.personalization.document.PersonalizationProfileDocument;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.entity.UserInterestCategory;
import com.techfork.domain.useraccount.exception.UserErrorCode;
import com.techfork.domain.useraccount.repository.UserInterestCategoryRepository;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.domain.UserInterestCategory;
import com.techfork.useraccount.domain.exception.UserErrorCode;
import com.techfork.useraccount.infrastructure.UserInterestCategoryRepository;
import com.techfork.domain.personalization.repository.PersonalizationProfileDocumentRepository;
import com.techfork.domain.useraccount.repository.UserRepository;
import com.techfork.useraccount.infrastructure.UserRepository;
import com.techfork.global.exception.GeneralException;
import com.techfork.global.llm.EmbeddingClient;
import com.techfork.global.llm.LlmClient;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.techfork.domain.recommendation.entity;

import com.techfork.post.domain.Post;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import com.techfork.global.common.BaseEntity;
import jakarta.persistence.*;
import lombok.AccessLevel;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.techfork.domain.recommendation.entity;

import com.techfork.post.domain.Post;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import com.techfork.global.common.BaseEntity;
import jakarta.persistence.*;
import lombok.AccessLevel;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.techfork.domain.recommendation.repository;

import com.techfork.domain.recommendation.entity.RecommendedPost;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import com.techfork.domain.recommendation.config.RecommendationProperties;
import com.techfork.domain.recommendation.service.RecommendationService;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.repository.UserRepository;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.infrastructure.UserRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import com.techfork.domain.recommendation.service.MmrService.MmrCandidate;
import com.techfork.domain.recommendation.service.MmrService.MmrResult;
import com.techfork.domain.personalization.document.PersonalizationProfileDocument;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;
import com.techfork.domain.personalization.repository.PersonalizationProfileDocumentRepository;
import com.techfork.global.util.RrfScorer;
import com.techfork.global.util.TimeDecayStrategy;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.techfork.domain.recommendation.service;

import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.repository.UserRepository;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.infrastructure.UserRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import com.techfork.domain.recommendation.dto.RecommendedPostDto;
import com.techfork.domain.recommendation.entity.RecommendedPost;
import com.techfork.domain.recommendation.repository.RecommendedPostRepository;
import com.techfork.domain.useraccount.entity.User;
import com.techfork.domain.useraccount.repository.UserRepository;
import com.techfork.useraccount.domain.User;
import com.techfork.useraccount.infrastructure.UserRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.techfork.domain.recommendation.service;

import com.techfork.domain.useraccount.entity.User;
import com.techfork.useraccount.domain.User;

/**
* 추천 전략 인터페이스
Expand Down

This file was deleted.

This file was deleted.

Loading