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

Issue169 마이페이지 북마크 된 음식점 지도 뷰 추가 #170

Merged
merged 25 commits into from
Jul 3, 2023

Conversation

hafnium1923
Copy link
Contributor

@hafnium1923 hafnium1923 commented Jun 26, 2023

#169

  • 음식점 북마크 목록 페이지(리스트 뷰)에서 지도를 클릭하면 북마크 된 식당의 위치가 표시된 지도를 볼 수 있다.
  • 음식점 북마크 지도 페이지에서 리스트를 클릭하면 북마크 목록 페이지(리스트 뷰)를 볼 수 있다.
  • 지도 페이지에서 음식점 정보를 확인할 수 있고, 정보 클릭 시 상세 페이지로 이동할 수 있다.
  • 음식점 정보 아이템을 드래그 해서 다음 음식점 정보를 볼 수 있다.
    • 선택된 음식점은 빨간색 핀 아이콘으로 표시
    • 캠퍼스는 청록색 핀 아이콘으로 표시

* 음식점 정보 아이템에 북마크 저장 표시는 나중에 #167랑 머지한 후에 연동할 예정입니다.

image

ashleysyheo and others added 16 commits June 26, 2023 02:05
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Co-authored-by: Rulu <hafnium1923@users.noreply.github.com>
Copy link
Contributor

@liswktjs liswktjs left a comment

Choose a reason for hiding this comment

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

새로운 라이브러리들의 등장이네요 👍
kakao maps가 잘 동작해서 mat zip에 유용한 기능이 되었으면 좋겠네요 😊

슬라이드 기능을 구현하기 위해 swiper와 같은 외부라이브러리 이번에 사용하셨는데 저는 토이프로젝트이다 보니 여러 라이브러리 도입하는 것에 긍정적입니다 다른 4기분들의 의견도 궁금하네요 👀

interface EventMapMarkerProps {
position: { lat: number; lng: number };
isClicked: boolean;
onClick: () => void;
Copy link
Contributor

Choose a reason for hiding this comment

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

props들의 네이밍을 더 구체화 하는 것이 좋을 것 같아요! 물론 지금도 maker누르면 발생하는 여부인가보다 대충 어림짐작할 수 있어도 정확한 의미 전달은 힘들어서 네이밍에 수정이 필요해보입니다

Copy link
Member

Choose a reason for hiding this comment

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

더불어서 맥락을 위해서 추가적인 설명이 필요한 prop이나 변수에는 주석을 달아주세요! 저희가 항상 만나서 이야기하고 회의할 수 있는게 아니다보니 코드 안에서의 컨텍스트도 중요합니다!

Copy link
Contributor

Choose a reason for hiding this comment

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

그 부분에 대해서는 생각을 못 했네요! 코멘트로 설명 추가하고 props 명도 각각, markerPosition, isMarkerClicked, onMarkerClick로 변경해 봤습니다!

Copy link
Member

@uk960214 uk960214 left a comment

Choose a reason for hiding this comment

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

수고하셨습니다! 너무 좋은 기능일것 같아요!
로컬 환경에서 확인도 해봤는데 지금 구현된 범위가 어디 정도까지 인지 잘 감이 잡히지 않더라구요.
지금은 식당들의 핀이 찍히거나 슬라이드 했을 때 해당 지도 위치로 이동하는 것까지는 안되는 걸까요? 아님 제가 테스트를 다르게 한걸까요?

interface EventMapMarkerProps {
position: { lat: number; lng: number };
isClicked: boolean;
onClick: () => void;
Copy link
Member

Choose a reason for hiding this comment

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

더불어서 맥락을 위해서 추가적인 설명이 필요한 prop이나 변수에는 주석을 달아주세요! 저희가 항상 만나서 이야기하고 회의할 수 있는게 아니다보니 코드 안에서의 컨텍스트도 중요합니다!

Copy link
Contributor

@nan-noo nan-noo left a comment

Choose a reason for hiding this comment

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

저만 그럴수도 있지만 주황색 마커들이 내가 하트 누른 식당들이라고 하기엔 좀 헷갈려요!
기본을 빨간 하트 마커로 하고 클릭했을 때 크기가 조금 커지는 건 어떨까요?
제목도 '지도' 말고 더 구체적이면 좋을 것 같아요 :D
추가로 청록색 마커는 클릭 못하게 하거나 클릭했을 때 '잠실/선릉 캠퍼스'라고 뜨면 좋을 것 같습니다ㅎㅎ

"react-query": "^3.39.1",
"react-router-dom": "^6.3.0",
"react-scripts": "^5.0.1",
"styled-components": "^5.3.5",
"swiper": "^9.4.1",
Copy link
Contributor

Choose a reason for hiding this comment

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

많은 슬라이더 라이브러리가 있는데 얘를 선택한 이유가 있을까요?

Copy link
Contributor

Choose a reason for hiding this comment

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

처음에는 직접 구현해 보려다가 시간 안에 못할 것 같아서 라이브러리를 찾아보게 되었습니다! 그래서 react-slick이랑 swiper를 살펴봤는데, 사용 방법은 둘 다 거의 비슷하더라고요. 그런데 swiper는 slide 할 때는 click 이벤트를 막아 주는 반면, react-slick은 바로 못 해주고 그걸 하기 위한 과정이 조금 복잡했어요. 그리고 이건 제대로 테스트 한건 아니지만, Xcode에서 아이폰이랑, 아이패드에서 터치해서 슬라이드 할 때 swiper를 사용할 때 제대로 원하는 인터렉션을 할 수 있었고요. 찾아보니까 swiper가 mobile first에 초점을 맞춰서 그렇다고 하더라고요!

아무래도 맛집 서비스 자체는 모바일 타겟인 것 같아서 swiper를 선택했습니다!

}

function EventMapMarker({ position, isClicked, onClick }: EventMapMarkerProps) {
const icon = isClicked ? ClickedPinIcon : PinIcon;
Copy link
Contributor

Choose a reason for hiding this comment

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

아이콘을 아예 갈아치우는 방법도 있지만 컬러만 바꾸도록 할 수도 있지 않을까요?

Copy link
Contributor

Choose a reason for hiding this comment

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

아이콘을 아예 갈아치우지 않고, 컬러만 바꾼다는 게 정확히 뭘 말하는 건가요?? 조금 더 자세히 설명 부탁합니다!

Copy link
Contributor

Choose a reason for hiding this comment

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

아 그냥 만약 기존 방식대로 색만 바뀌는 거라면 props로 컬러 받고 svg 컴포넌트에 적용한다는 이야기였어요!

src/components/common/SlideCarousel/SlideCarousel.tsx Outdated Show resolved Hide resolved
@ashleysyheo
Copy link
Contributor

@uk960214

지금은 식당들의 핀이 찍히거나 슬라이드 했을 때 해당 지도 위치로 이동하는 것까지는 안되는 걸까요? 아님 제가 테스트를 다르게 한걸까요?

원래는 슬라이드 했을 때 해당 지도 위치로 이동하지 못하는 것이 맞습니다! 이 부분에 대해서는 생각을 못 해봤네요.

리팩토링하면서 한 번 추가해 봤는데, 어떤가요??


@nan-noo

저만 그럴수도 있지만 주황색 마커들이 내가 하트 누른 식당들이라고 하기엔 좀 헷갈려요! 클릭된 마커랑 클릭 안 된 마커를 둘 다 빨간색 계열로 하되, 클릭 안 된 마커를 조금 연한 빨간색으로 하고 클릭했을 때 색깔이 진해지고 크기가 커지도록 변경해 봤습니다.


제목은 나의 맛집 지도로 변경해 봤습니다! 그리고 캠퍼스 마커도 일단 클릭 못하게 만들었습니다. (커서 자체는 hover 해도 계속 드래그 커서에요.) hover 했을 때 말풍선으로 잠실/선릉 캠퍼스를 적어주는 것도 생각해 봤는데, 마커 주변에 텍스가 많고 복잡해서 눈에 안 띄고 오히려 더 복잡해지는 느낌이어서 추가하지 않았습니다.

Comment on lines 19 to 22
markerPosition, // 마커를 표시할 위치 - 경도, 위도
isMarkerClicked, // 마커가 클릭 여부
onMarkerClick, // 마커가 클릭되었을 때 발생할 액션
}: EventMapMarkerProps) {
Copy link
Member

Choose a reason for hiding this comment

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

앗 주석을 달아준 것은 너무 좋은데 함수의 인자가 아니라 인터페이스에 달아주는 것은 어떨까요?
그리고 일반 주석이 아니라 JSDoc 주석을 사용하면 사용처에서도 빠르게 확인할 수 있답니다!

현재

image

JSDOC 주석

image

Copy link
Contributor

@ashleysyheo ashleysyheo Jul 1, 2023

Choose a reason for hiding this comment

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

오 이런 게 있었군요!! 다음부터 이렇게 정리해 보겠습니다!

Copy link
Member

@uk960214 uk960214 left a comment

Choose a reason for hiding this comment

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

오 추가해주신 지도 이동 너무 잘 되네요 확인했습니다! 수고했습니다!

@ashleysyheo ashleysyheo merged commit 93db9b8 into develop Jul 3, 2023
@sonarcloud
Copy link

sonarcloud bot commented Jul 3, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@ashleysyheo ashleysyheo deleted the issue169 branch July 4, 2023 05:33
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.

5 participants