개발자 박가나
내일배움캠프 46일차 ('마운틴듀' 트러블슈팅) 본문
'마운틴듀' 프로젝트에서 겪은 트러블슈팅을 기록하고자 한다.
메인 페이지의 지도에서 특정 장소 클릭 시 상세 페이지로 이동
다음과 같은 로직으로 구현하고자 하였다.
- 메인 페이지에서 id 값을 상세 페이지로 넘겨주기
- id 값을 이용해서 클라이밍장의 상세 정보를 받아와서 보여주기
하지만 카카오 지도 API에서 id 값을 이용해서 장소의 상세 정보를 받아오는 API를 지원해주지 않았기 때문에 다음과 같은 로직으로 변경하였다.
- 메인 페이지에서 id와 place_name 값을 상세 페이지로 넘겨주기
- place_name 값으로 장소 검색하기
- 검색 결과 중에서 넘겨받은 id 값과 동일한 id 값을 가지는 장소의 상세 정보를 보여주기
상세 페이지로 이동
상세 페이지에 접속하면 다음과 같은 로직이 수행되도록 구현하였다.
- places 테이블에 해당 데이터가 있는지 확인
- 데이터가 없을 경우 데이터 추가
기능은 정상적으로 동작하는데 console 창을 확인해보니 409 Conflict 오류가 발생했다. 구글링을 통해서 개발 모드에서는 useEffect가 두 번 실행된다는 것을 알 수 있었고, places 테이블에 이미 데이터를 추가했는데 한 번 더 추가하려고 해서 409 Conflict 오류가 발생한 것이었다. 이것이 원인이 맞다면 배포 시 자연스럽게 해결될 문제였기 때문에, 배포 후에도 동일한 오류가 발생하면 다시 원인 파악을 진행하기로 하였다.
409 Conflict 오류
places 테이블의 id 값은 PRIMARY KEY이기 때문에 unique한 값이어야 하는데, 이미 존재하는 id 값을 추가하려고 해서 발생하는 오류이다.
'트러블슈팅' 카테고리의 다른 글
내일배움캠프 60일차 ('냠냠로그' 트러블슈팅) (0) | 2024.12.24 |
---|---|
내일배움캠프 55일차 ('League of Legends' 트러블슈팅) (1) | 2024.12.17 |
내일배움캠프 54일차 ('League of Legends' 트러블슈팅) (0) | 2024.12.16 |
내일배움캠프 52일차 ('League of Legends' 트러블슈팅) (1) | 2024.12.12 |
내일배움캠프 45일차 ('야구 캘린더' 트러블슈팅) (1) | 2024.12.03 |