Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

경북대 FE_이정민 4주차 과제 Step 2 #75

Open
wants to merge 24 commits into
base: userjmmm
Choose a base branch
from

Conversation

userjmmm
Copy link

@userjmmm userjmmm commented Jul 19, 2024

안녕하세요 멘토님, 경북대 FE 이정민입니다.
2단계 - validation 구현 완료한 코드를 제출합니다!

README.md에 작성한 기능 목록 구현 중 상품 상세 페이지에서 상품의 개수를 option API의 giftOrderLimit을 초과한 경우 선택이 불가하도록 구현을 하다가 이슈가 너무 많이 생겨, 일단 카드 메시지를 입력하지 않으면 메시지를 입력하도록 안내를 먼저 구현했습니다.

이때 카드 메시지를 입력하지 않으면 메시지를 입력하도록 안내와는 관련이 없는, 이전에 변경한 코드까지 commit 기록에 포함이 되는 문제가 생겼습니다.
코드를 원상태로 돌리기엔 작성한 양이 많고 그렇다고 함께 status를 modify 하기엔 commit가 관련 없는 경우가 발생합니다. 이런 경우에 어떤 방법이 더 나을지 함께 여쭙고 싶습니다.

시간 내어 코드를 봐주셔서 감사합니다 :)

userjmmm added 24 commits July 17, 2024 14:29
Copy link

@sjoleee sjoleee left a comment

Choose a reason for hiding this comment

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

고생하셨습니다~!
현재 step1 머지 후 충돌이 발생한 상태입니다. 한 번 해결해보시면 좋을 것 같습니다 ㅎㅎ

README.md에 작성한 기능 목록 구현 중 상품 상세 페이지에서 상품의 개수를 option API의 giftOrderLimit을 초과한 경우 선택이 불가하도록 구현을 하다가 이슈가 너무 많이 생겨, 일단 카드 메시지를 입력하지 않으면 메시지를 입력하도록 안내를 먼저 구현했습니다.

이때 카드 메시지를 입력하지 않으면 메시지를 입력하도록 안내와는 관련이 없는, 이전에 변경한 코드까지 commit 기록에 포함이 되는 문제가 생겼습니다.
코드를 원상태로 돌리기엔 작성한 양이 많고 그렇다고 함께 status를 modify 하기엔 commit가 관련 없는 경우가 발생합니다. 이런 경우에 어떤 방법이 더 나을지 함께 여쭙고 싶습니다.

정리해보면 관심사가 다른 A기능과 B기능이 있는데, A를 개발하다가 중간에 B를 개발할때 어떻게 해야할지에 대한 질문인 것 같아요.
이런 경우, 저는 보통 A 작업한 부분까지 stash로 저장해둔 후 B를 개발하고, 이후 다시 A를 개발할 때 pop합니다.
두 기능이 관심사가 다르기 때문에 충돌이 발생하지 않거나, 발생해도 해결하는데 어려움이 없는 정도일 거에요.
중요한건 관심사가 다른 내용을 하나의 커밋이나 pr에 작성하지 않는 거에요.

git stash로 검색해보시면 사용법을 찾으실 수 있을거에요!

Comment on lines +34 to +37
if (!productOption) {
alert("상품 옵션 정보를 로드하는 중입니다. 잠시 후 다시 시도해주세요.");
return;
}
Copy link

Choose a reason for hiding this comment

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

productOption이 없는 경우는 반드시 로딩중인 경우인가요?🤔

Comment on lines +39 to +46
if (productDetail) {
navigate("/order", {
state: {
productDetail,
productQuantity: Number(data.productQuantity),
},
});
}
Copy link

Choose a reason for hiding this comment

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

이 경우, 버튼을 눌렀을 때 productDetail이 없는 경우는 어떻게 동작할까요? 어떻게 동작하는게 좋은 UX일까요?

Comment on lines +95 to +101
validate: (value) => {
const numberValue = Number(value);
if (productOption && numberValue > productOption.options.giftOrderLimit) {
return `최대 주문 가능 수량은 ${productOption.options.giftOrderLimit}개 입니다.`;
}
return true;
}
Copy link

Choose a reason for hiding this comment

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

혹시 max를 사용하지 않고 validate를 사용한 이유가 있을까요?

type="button"
onClick={() => {
setValue("productQuantity", Math.max(Number(productQuantity) - 1, 1).toString());
trigger("productQuantity");
Copy link

Choose a reason for hiding this comment

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

수동으로 validation을 trigger하는 이유는 무엇인가요? 해당 부분이 없어도 정상적으로 동작하는 것 같은데 작성하신 배경이 궁금하네요

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.

2 participants