Skip to content

[장바구니 리팩토링 Homework: Layered Architecture] 찰리(김상윤) 과제 제출합니다. - #2

Open
yuncic wants to merge 1 commit into
woowacourse:mainfrom
yuncic:yuncic
Open

[장바구니 리팩토링 Homework: Layered Architecture] 찰리(김상윤) 과제 제출합니다.#2
yuncic wants to merge 1 commit into
woowacourse:mainfrom
yuncic:yuncic

Conversation

@yuncic

@yuncic yuncic commented Jun 2, 2026

Copy link
Copy Markdown
Member

리팩토링 내용

기존에 ProductSection.tsx 한 파일에 몰려있던 로직을 역할 단위로 분리했습니다.

각 파일의 책임

  • domain/product.ts : Product 타입 정의, isValidName / isValidPrice 도메인 검증 규칙
  • api/productApi.ts : 서버 통신 (POST /products, DELETE /products/:id)
  • hooks/useProductSection.ts : 상품 목록 상태, 추가/삭제 동작
  • hooks/useError.ts : 에러 상태, 도메인 규칙을 호출해 검증 수행 후 boolean 반환
  • util/message.ts : 사용자에게 보여줄 에러 메시지 상수
  • ProductSection.tsx : 입력 상태 관리, 훅 조합, UI 렌더링

간단한 예제를 통해 로직을 분리해보는 경험이 재밌었습니다.
우테코에 와서 한 미션중에 거의 처음으로 AI를 아예 안 쓰고 해결한 첫 미션이어서 저에겐 큰 의미가 있었습니다.
"도메인 규칙, 핸들러 메서드 로직, 검증 로직, API 관리 메서드" 를 나누는 과정에서
의존 방향과 각 파일의 책임에 대해 고민해볼 수 있던 유익한 시간이었습니다.

이런 연습용 숙제 너무 좋은것 같아요!
감사합니다 시지프!

@yuncic yuncic changed the title [찰리] 장바구니 리팩토링 Homework: Layered Architecture 제출합니다. [장바구니 리팩토링 Homework: Layered Architecture] 찰리 제출합니다. Jun 2, 2026
@yuncic yuncic changed the title [장바구니 리팩토링 Homework: Layered Architecture] 찰리 제출합니다. [장바구니 리팩토링 Homework: Layered Architecture] 찰리(김상윤) 숙제 제출합니다. Jun 2, 2026
@yuncic yuncic changed the title [장바구니 리팩토링 Homework: Layered Architecture] 찰리(김상윤) 숙제 제출합니다. [장바구니 리팩토링 Homework: Layered Architecture] 찰리(김상윤) 과제 제출합니다. Jun 4, 2026
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