정리노트/팀프로젝트

[팀 프로젝트] 24.02.22. 노트

망고고래 2024. 2. 22. 17:59

오늘 할일

1. API에서 정보 추출해서 데이터베이스에 저장, CRUD 및 뷰 연결하기

- 체험 끝내기

2. 체험/식음료 수동 작성 폼 만들기

3. API 출력 페이지 뷰 수정하기

 

 

1. API 연결 중 에러 코드 발생

 

상세정보가 담긴 JSONObject 배열을 모두 담고 마지막에 확인차 배열의 0번을 출력하는데, 거기서 다음과 같은 오류가 발생했다.

java.lang.NullPointerException: Cannot invoke "org.json.JSONObject.toString()" because "expDetailArray[0]" is null

 

어디서 오류가 발생해서 배열의 값이 null이 되었는지 확인하기 위해 응답코드와 JSON에서 배열과 객체를 꺼내는 과정을 모두 출력했다.

확인 결과 응답코드는 200인데 JSON의 출력값이 모두 ERR_03이었다. 강원 반려동물 동반관광 API 시스템 활용 가이드에 따르면 ERR_03은 '자료를 찾을 수 없음'이다. 접속 url을 확인해보자 partCode가 잘못 입력되어있었다.

String detailReqUrl =
"https://www.pettravel.kr/api/detailSeqPart.do?partCode=PC01&contentNum="
+ ExpContentSeqArray[i];

 

현재 사용하고 있는 코드는 분야 코드가 PC04인데, 다른 곳에서 코드를 가져오면서 수정을 덜 했었다.

 

 

 

팀 프로젝트를 시작한 뒤로 프로젝트가 댕댕여지도의 하위호환이라는 생각을 지울 수가 없다...펫호텔/반려동물 동반 가능 숙소/반려동물 동반 가능 여행지를 찾고 싶었고, 강원도에서 API를 제공해줘서 강원도로 했더니 이미 댕댕여지도라는 더할나위없이 훌륭한 사이트가 있었다.

생활 전체를 케어해보자고 접종 관리나 사료 판매도 넣으려고 했는데 사이트의 방향성이 갈피를 잡지 못하는 느낌만 든다. 어떻게 해야 할까...댕댕여지도에 없는 기능을 생각해볼까...

  • 여행 계획을 세울 때 고속도로 휴게소나 이동시간을 표시해주면 좋겠다.
  • 어질리티 대회같은 행사 정보도 알 수 있으면 좋겠다.
  • ↑업체별 이벤트를 모아볼 수 있는 곳 → 게시판?

*네이버 길찾기 API에서 소요시간, 거리, 유류비, 통행요금 정보 제공

https://api.ncloud-docs.com/docs/ai-naver-mapsdirections-driving

 

driving

 

api.ncloud-docs.com

 

 

2. 숙소 API 저장 코드 수정

팀원이 API에서 정보를 가져오는 방법을 모르겠다고 해서 숙소 API를 하나하나 데이터베이스에 직접 입력했었다. 그러면서 기존의 contentSeq가 아니라 임의의 번호를 순서대로 부여했다.

엄청나게 수고로운 작업이라 날리기가 아까워서 숙소는 API로 추가할 때도 부여되어있는 임의의 contentSeq를 피해서 for문을 돌려 입력했었다. 그런데 리뷰를 추가하려고 보니 contentSeq를 FK로 연결해야 하는데, 그러면 임의로 부여한 contentSeq와 다른 카테고리의 contentSeq가 중복돼서 리뷰 테이블과 Repository 를 작성하기가 상당히 까다로워질 것 같았다.(API에는 카테고리 구별 없이 contentSeq가 매겨져있다.) 결국 눈물을 머금고 숙소 데이터베이스를 모두 지우고 API를 통해 다 새로 저장했다.

만드는 건 오래 걸리지만 없애는 건 delete from hotel; 한 문장이다...