캠페인(sequences) 도메인 — 미사용 코드 전수조사

FE: admin/ knip 정적분석 · BE: elysia-server/ import 전수추적 · 2026-06-17

10
FE 미사용 파일
50+
FE 미사용 함수/상수
45
FE 미사용 타입
3
BE 미사용 파일
3
@deprecated 마커
⚠ 삭제 전 검증 필수. knip/grep 정적분석은 동적 import·문자열 참조·라우트 동적등록·조건부 렌더를 놓칠 수 있습니다. 아래는 "미사용 후보"이며, CLAUDE.md 규칙대로 제거 전 실제 참조를 확인해야 합니다. 특히 ⚑ 표시는 false-positive 의심 항목.

FE 미사용 파일 10개 (knip Unused files)

파일비고
components/sequences/ConfirmActivationModal.tsx활성화 확인 모달 — 대체된 듯
components/sequences/proposal/blueprint/step-accordion/AddStepButton.tsx제안서 스텝 추가 버튼
lib/api/hooks/campaign-proposals.ts캠페인 제안 hooks 세트
lib/api/services/campaign-proposals.ts캠페인 제안 API 클라이언트
pages/linkedin-sdr/components/CampaignDetailPanel.tsxLinkedIn 캠페인 상세 패널
pages/linkedin-sdr/components/CampaignStatusBadge.tsxLinkedIn 상태 배지 (중복 — sequences에도 존재)
pages/sequences/CampaignScheduleBadge.tsx일정 배지
pages/sequences/components/PostGenerationOverview.tsx생성 후 개요
pages/sequences/SequencesMobileCardList.tsx 모바일 카드 리스트 — 반응형 조건부 렌더일 수 있음, 검증 필요
pages/sequences/utils/sequence-metrics.ts메트릭 유틸 (BE 메트릭으로 대체 추정)

FE 미사용 함수 / 상수 50+개 (knip Unused exports)

기능 그룹별 분류. sequence-proposal 계열은 barrel 재export·원본 양쪽이 잡힘 → 제안서 기능 미연결 의심.

제안서(Proposal) — barrel + 원본 양쪽 미사용 ⚑
useSequenceProposalCancel/Delete/Rename/Listhooks/sequence-proposal.ts · proposal/mutations.ts · queries.ts
useAddProposalChatMessage · useClearProposalChatMessages · useDeleteProposalChatMessage · useProposalChatMessageshooks/sequence-proposal/queries.ts
subscribeRefineStreamservices/sequence-proposal.ts:138
벌크 / Enrollment
useBulkEnroll · useBulkUnenroll · useBulkUpdateSequenceStatus · useCreateEnrollment · useEnrollmentMetricshooks/sequences.ts (479·522·552·572·754)
생성 / 개인화 / 미리보기
useGenerateAISequence · usePersonalizedEmail · usePersonalizedEmailsStatus · usePreviewEmailshooks/sequences.ts (776·866·969·1069)
캠페인 템플릿 — 세트 전체 미사용 ⚑
useCampaignTemplate · useCreateCampaignTemplateFromSequence · useUpdateCampaignTemplate · useDeleteCampaignTemplate · campaignTemplateKeys · campaignCalendarKeyshooks/campaign-templates.ts · campaign-calendar.ts
기타 조회 hooks
useCopySequence · useSequenceScheduleSummary · useSequenceLeads · useRecentSequences · useInboxCampaigns · useQueueSummary · useLinkedinSequenceRates · useCampaignSuggestionshooks/sequences.ts · emails.ts · email-replies.ts · sequence-health.ts · linkedin-sdr.ts · assessment.ts
컴포넌트 / 유틸 함수
SequenceBulkDeleteDialog · StepTimelinePreview · stepAutosaveHash · groupByReadiness · beginActivationSession · classifyCommitError · comparePillState · getDefaultScheduledHourpages/sequences/** · components/sequences/**
상수
MIN_STEP_COUNT · MAX_STEP_COUNT · SEQ_STATUS_TOOLTIP_KEYS · CAMPAIGN_STATUS_COLORS · GOAL_BORDER · REFINE_LIMIT_PER_MINUTE · PRESET_STRATEGY_SEQUENCES · SEQUENCE_OPTIONSlib/constants/sequence.ts · sequences/i18n-keys.ts · settings/email-templates/constants.ts

FE 미사용 타입 45개 (knip Unused types)

sequence-proposal.ts(Diagnosis*/Blueprint*) 와 sequence.ts 다수. 제안서 타입군이 대거 미사용 → 위 함수 미사용과 일관.

BE 미사용 파일 / 함수 import 전수추적

대상경로:줄근거 / 비고
sequence-step-reschedule.service.ts (파일)services/sequence-step-reschedule.service.tsimport 0건. rescheduleSequenceSteps() 등 어디서도 호출 안 됨
stopEnrollmentForLead()services/sequences/stop-enrollment-for-lead.ts:27호출 0건. FF_AGENT_ENRICHMENT 경로용 문서화됐으나 미연결
wakeAwaitingEnrichment()services/sequences/wake-awaiting-enrichment.ts:32호출 0건. lead-on-demand-enrich 워커 콜백용이나 미연결

DEPRECATED @deprecated · 레거시 마커 BE schema/service

심볼경로:줄내용
memo 컬럼db/schema/sequences.ts:116@deprecated 2026-06 캠페인 메모 제거. 읽기·쓰기 중단, 데이터 보존 위해 컬럼 유지 → 추후 DROP 마이그레이션 예정
scheduled enum 값db/schema/sequences.ts:94Deprecated — processing 으로 대체 (하위호환 유지)
signatureMode 레거시 값db/schema/sequences.ts:191user_default·specific·legacy_embedded DB 잔존 → 서비스에서 normalizeSignatureMode() 정규화 (embedded|none 으로 통합)
FE: CampaignStatusBadge.tsx · components/constants.ts 에도 @deprecated 마커 존재

BE 중복 / 대체 레거시 마이그레이션 진행 중

구버전 (legacy)신버전상태
listSequences() — OFFSET
sequence-query.service.ts:74
listSequencesWithFilters() / listSequencesPaged() — cursor keyset
sequence-query.service.ts:173·111
라우트 573에서 아직 호출. "OFFSET 금지" 규칙상 deprecate 예정 — 점진 마이그레이션
권장 정리 순서. ① BE 미사용 파일 3개(완전 고립, 가장 안전) → ② FE 미사용 파일 중 ⚑ 아닌 것 → ③ FE 미사용 함수/타입(barrel 동시 제거) → ④ @deprecated는 DROP 마이그레이션과 함께 별도 처리. ⚑ 항목(SequencesMobileCardList, 제안서·캠페인템플릿 세트)은 기능 자체가 미연결인지 먼저 확인 후 일괄 판단.