TIL

33일차

haedal-uni 2021. 10. 15. 23:54
728x90

피드백 후 정리

 

issue 번호로 브랜치 새로 생성하기!

나는 브랜치 하나를 생성한 후 commiti에서 메세지를 작성할 때 issue 번호로 push 했었다.

다음 프로젝트 때는 issue 번호로 브랜치를 생성해야겠다. (ex. feature/like#25 )

 

코드 리뷰는 issue 마다 브랜치가 새로 만드는 거라서 master에서 새로운 것만 코드 리뷰 하는 것 (??)

 

그리고 내가 코드를 작성하면서 에러가 나타났던 적이 있는데 이유를 몰라서 튜터님에게 물어봤다.

 

 

위와 같이 로그인을 하면 아래와 같이 url주소가 바뀌게 하려고 하는데

 

 

크롬에서는 실행이 잘 되는데 웨일로 실행했을 때는 실행이 되지 않는 오류였다.
브라우저에 같은 결과 값을 띄우고 싶은데 어떻게 해야하는지 몰랐다.

 

결론은

자바스크립트 호출이 되기위해 파이썬을 실행하는데 파이썬 언어를 브라우저가 이해한다.

그런데 브라우저가 브라우저마다 구동되는 게 살짝 씩 다르다.

근데 크롬이 된다면 그냥 넘어가도 된다.😄

 


프로젝트 기능 구현하기

 

id로 좋아요 구분짓기

이 전에 id를 입력받았을 때 전체 좋아요 수와 사용자마다 좋아요 버튼을 따로 구분짓는 것을 

어떻게 구현할지 몰라서 미뤄왔었다.

2021.10.13 - [spartacodingclub/TIL] - 30일차_프로젝트 구현 시작

 

 

그리고 미룬 시간동안 내가 구현 해야할 다른 기능들을 구현하고 있었다.

2021.10.14 - [spartacodingclub/TIL] - 31일차_기능 구현하기

 

 

31일차에서 버튼을 클릭할 때마다 버튼 안의 글이 바뀌는 기능을 구현하기로 했었다.

num = 0
function ec() {
    if (num==0) {
        $("#hello").empty()
        $("#check_button").empty()
        $("#check_button").append("전체 추천 장소 띄우기")
        withshowbest()
        
        num = num+1
    }
    else {
        $("#hello").empty()
        $("#check_button").empty()
        $("#check_button").append("반려동물 입장 가능 장소만 보기")
        showbest()
        
        num = num-1
    }
}

num 변수를 만들어서 클릭 횟수에 따라서 보여주는 값을 다르게 했다.

버튼 클릭 시 실행되는 함수 ec이다.

 

 

전체 장소 띄우기 버튼을 클릭하고 반려동물 입장 가능 장소만 보기 버튼을 클릭하게 되면

이 전에 출력했던 장소들 밑에 출력이 되어서 $("#hello").empty()는 추천 장소 리스트를 없애기 위해 작성했다.

 

withshowbest() 함수는 반려동물 입장 가능하다고 체크한 리뷰 db를 가져와서 실행하는 함수이고

showbest()는 전체 장소를 띄우는 함수이다.

 


 

그런데 이렇게 다른 기능들을 구현하다가 문제점을 발견하게 되었다.

리뷰정보를 등록하면 자동으로 추천 리스트에 띄우는 것으로 해뒀는데 이렇게 하다보니

중복으로 동일한 장소가 뜨는 것이었다.

 

 

 

그래서 distinct로 사용해서 중복을 없애려 했는데 자꾸 에러가 떴다.

팀원 분들과 이 부분에 대해서 공유를 하고 얘기를 하다가 db를 수정하기로 했다.

그러면서 자동적으로 좋아요 id 구분도 할 수 있게 되었다...!!!

 

 

기존에는 puppy Collections만 생성을 한 후 

 

puppy Collection

 

이 db를 활용해서 마커도 찍고 주소와 동반 가능 여부를 확인했었는데

 

 

likesplaces 2개의 collection을 생성한 후 중복을 제거하기로 결정했다.

추천 목록 리스트를 띄울 때 likes와 places 2개의 collection으로 저장을 해서 

리뷰가 첫 리뷰이면 likes와 places 2개의 collection에 저장을 하고 

places collection에 있는 장소명이면 likes에만 저장하는 것이다. (이미 작성한 리뷰가 있을 경우 likes에만 저장)

 

 

places collection 양식은 장소의 정보이다.

title(장소 명), like_count(총 좋아요 개수), lat, lng 칼럼으로 구성했다.

(현재는 간편하게 구성했고 이후에 칼럼들을 추가할 예정이다.)

 

더보기

 

 

 

 

likes collection 양식은 

title, user_id, like(True, False)이다.

 


 

내가 생각한 로직은 

id가 __인 얘를 find해서 like가 true이면 버튼이 , like가 false이면  ෆ 버튼으로 변경
그래서 like가 false인데 버튼을 누르면 true로 변경되고 버튼으로 변경되는 것으로 생각했다.

 

 

db를 직접 만들어서 test 했으며, id도 먼저 입력값을 받지 않고 고정된 id로 test 했다.

db에서 "like" : True로 하면 이상하게 에러가 떴다.

그래서 "like" : "True"로 작성했다.

 

 

tes1을 id로 가정했을 때

test1 user는 낙성대 공원에서는 False → 좋아요 x

서울대 공원은 True → 좋아요 o 를 눌렀다.

 

likes collection

 

반려동물 입장 가능 장소는 일단 무시하고 전체 띄우는 것만 진행했다.

위 db처럼 likes collection에는 장소가 중복되어있지만 places collection에는 장소가 중복되어있지 않다.

 

places collection

 

 

 

구현한 화면

 

 

 

보완해야할 점

추후에는 고정된 id가 아닌 입력 값을 받아 진행을 해야겠다.

이 전에 좋아요 버튼을 누르면 로그인 하라는 창을 띄우고 입력하는 것 까지 진행했었는데

그 값을 받아서 한 번 시도를 해봐야 할 듯 싶다.!!

 

728x90

'TIL' 카테고리의 다른 글

37일차  (0) 2021.10.19
36일차  (0) 2021.10.18
32일차(백틱(`) 사용법)  (0) 2021.10.14
31일차_기능 구현하기  (0) 2021.10.14
30일차_프로젝트 구현 시작  (0) 2021.10.13