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

문의하기 api 적용 #983

Merged
merged 5 commits into from
Dec 25, 2024
Merged

문의하기 api 적용 #983

merged 5 commits into from
Dec 25, 2024

Conversation

Hain-tain
Copy link
Contributor

@Hain-tain Hain-tain commented Dec 21, 2024

⚡️ 관련 이슈

📍주요 변경 사항

  • 문의하기를 서버 api로 변경하였습니다.
    • 일단 문의하기 본문에서 사용되는 최소/최대 글자수는 상수로 해당 파일에 위치시켰습니다. 별도의 constants 폴더로 분리하는 것보다 같은 파일에 있는 것이 더 유지보수가 용이하다고 생각했기 때문입니다. 혹시 다른 의견 있으시다면 답글달아주세요!!
    • 논의 결과 최소 글자수는 10으로 변경하였습니다.

🎸기타

  • 백엔드 api에 최소 글자수 제한이 아직 20자로 되어있어서 그대로 구현하였습니다. 이 부분은 다함께 논의 후 확정된 값으로 업데이트 하겠습니다. 따라서 그 전에 머지하지 말아주세요!!
  • 이제 env 에서 GOOGLE_URL 지우셔도 됩니다!

🍗 PR 첫 리뷰 마감 기한

12/23 23:59
12/24 23:59 (12/23일 업데이트)

@Hain-tain Hain-tain self-assigned this Dec 21, 2024
@Hain-tain Hain-tain added FE 프론트엔드 refactor 요구사항이 바뀌지 않은 변경사항 labels Dec 21, 2024
Copy link
Contributor

@Jaymyong66 Jaymyong66 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다 헤인!
한가지 궁금한 것은 name, memberId가 비회원일 때 null이 되는 것이 맞겠죠?!
현재는 email, name, memberId가 빈 값이라면 null로 주고 있는데,
MemberInfo가 타입으로는 아래와 같이 되어있어서 혹시 타입을 null로 바꿔줘야하나? 싶었어요.
헤인 생각은 어떤가요?

export interface MemberInfo {
  memberId: number | undefined;
  name: string | undefined;
}

@Hain-tain
Copy link
Contributor Author

현재 백엔드와 합의된 api 에선 값이 없는 경우 null로 값을 할당하여 전달해주어야 하기 때문에, 아래와 같이 email, name, memberId가 없으면 null로 값을 채워 body로 전달하고 있습니다.

const contactBody = { message, email: email || null, name: name ?? null, memberId: memberId ?? null };

(원래는 ||연산자였는데, name이 0인 유저 등 혹시모를 오류를 대비하여 ??연산자로 변경하였습니다.)

이때 만약 memberId name undefined라면 위에서 ??에 의해 저절로 null 값이 할당되어 전달됩니다.
따라서 MemberInfo의 타입과 상관없이 name, memberId가 비회원일 때 null로 잘 갑니다!!


마위의 코멘트를 MemberInfo 타입을 어떻게 관리하는 것이 좋을까? 의 측면에서 바라본다면, 결국 nullundefined의 차이는 무엇이고, 우리서비스에서 이 두 타입을 어떻게 명명하여 사용할 것인가의 문제라는 생각이 들었습니다.

개인적으로 저는 개발자가 의도적으로 없다고 선언하는 경우 또는 값을 비워줄 때 null을 사용하고, 할당되지 않거나 초기값 등에 undefined를 사용하는 편입니다. 따라서 MemberInfo도 처음에 비회원일 경우에는 할당되지 않았다는 뜻에서 undefined도 괜찮아보여요! 이에 대한 마위와 헤일리의 생각도 궁금하네요!!

@Jaymyong66
Copy link
Contributor

Jaymyong66 commented Dec 23, 2024

@Hain-tain
맞아요. 그래서 undefined 타입을 활용했었습니다.
잘 정리해주신 것 같아요 헤인~~!!👍👍

@Jaymyong66 Jaymyong66 merged commit 0b8e5f6 into dev/fe Dec 25, 2024
2 checks passed
@Jaymyong66 Jaymyong66 deleted the refactor/851-apply-contact-api branch December 25, 2024 05:38
@Jaymyong66
Copy link
Contributor

@healim01 우선은 머지하겠고 추후에 한번 내용 확인해주세요~!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FE 프론트엔드 refactor 요구사항이 바뀌지 않은 변경사항
Projects
Status: Weekend Done
Development

Successfully merging this pull request may close these issues.

2 participants