Skip to content

LC-3024 추상화 작업 2#2302

Merged
hyonun321 merged 9 commits intomainfrom
LC-3024-추상화-작업-2
May 4, 2026

Hidden character warning

The head ref may contain hidden characters: "LC-3024-\ucd94\uc0c1\ud654-\uc791\uc5c5-2"
Merged

LC-3024 추상화 작업 2#2302
hyonun321 merged 9 commits intomainfrom
LC-3024-추상화-작업-2

Conversation

@hyonun321
Copy link
Copy Markdown
Contributor

@hyonun321 hyonun321 commented May 3, 2026

연관 작업

hyonun321 and others added 5 commits May 3, 2026 17:52
- AsyncBoundary 공용 컴포넌트 생성 (common/boundary/)
- FaqSection에서 FaqInput, FaqButton, FaqItem 서브컴포넌트 추출 (domain/faq/ui/)
- FaqSection 로직을 useFaqList 커스텀 훅으로 분리 (domain/faq/hooks/)
- FaqChat 내부 함수명 FaqDropdown → FaqChat으로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ProgramSelectModal 모달 컴포넌트 분리 (modal/)
- ProgramRecommendItem 아이템 카드 분리 (ui/)
- isSameProgram, toRecommendItem 헬퍼로 비교/변환 로직 정리
- ProgramRecommendEditor를 조합 컴포넌트로 축소 (317줄 → 93줄)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- useSignup 훅 추출 (상태, mutation, validation, effects)
- AgreementSection 컴포넌트 분리 (약관 동의 체크박스)
- formatPhoneNumber 순수 함수 추출
- SignupPage를 UI 조합 컴포넌트로 축소 (552줄 → 168줄)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 미사용 v2 폴더 전체 삭제 (라우트 연결 없는 dead code)
- v1/ 내용을 domain/about/ 루트로 이동 (불필요한 중첩 제거)
- 상대경로 import를 @/ alias로 통일
- about/dev 페이지 import 경로 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hyonun321 hyonun321 self-assigned this May 3, 2026
@github-actions github-actions Bot changed the title Lc 3024 추상화 작업 2 LC-3024 추상화 작업 2 May 3, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request focuses on refactoring the signup and FAQ management logic by extracting complex state and logic into custom hooks (useSignup, useFaqList) and modularizing UI components. It also includes a reorganization of the 'About' domain files to align with the domain-based folder structure. Key feedback points include optimizing the buttonDisabled state in useSignup as a derived value using useMemo to prevent unnecessary re-renders, and ensuring that all necessary React hooks like useMemo and useCallback are properly imported. Additionally, a functional update pattern is recommended for the handleToggle function in ProgramSelectModal to maintain stable function identity by removing the direct dependency on the programRecommend state.

Comment thread apps/web/src/domain/auth/hooks/useSignup.ts
Comment thread apps/web/src/domain/auth/hooks/useSignup.ts Outdated
Comment thread apps/web/src/domain/auth/hooks/useSignup.ts Outdated
Comment thread apps/web/src/domain/program-recommend/ProgramRecommendEditor.tsx
Comment thread apps/web/src/domain/program-recommend/modal/ProgramSelectModal.tsx
hyonun321 and others added 4 commits May 3, 2026 18:50
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
useEffect + setState로 동기화하던 buttonDisabled를 렌더 중 계산되는
파생 변수로 변경. 추가 렌더 1회와 불필요한 상태 1개 제거.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
field === '' 검사가 공백만 입력된 경우(' ')를 통과시키던 문제를
trim() === ''로 보강.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- AsyncBoundary 충돌 해결: main 버전 채택
  - 'use client' 추가 (App Router boundary 컴포넌트 요건)
  - 정적 에러 메시지 채택 (main 테스트 계약과 일치)
  - 디자인 토큰 스타일(text-xsmall14, neutral-*) 적용
@hyonun321 hyonun321 merged commit 6d72806 into main May 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant