[팀 프로젝트] 24.03.11. 노트
오늘 할일
1. DB 테이블 다시 만들기
지금은 숙소/관광지/식음료/체험 카테고리별로 테이블이 따로따로 만들어져있다. 그런데 여행코스를 관리하려면 다 합쳐져있는 테이블이 있는 게 나을 것 같다.
①테이블이 나눠져있을 경우
코스 스케줄에서 contetSeq 취득→카테고리별 contentSeq를 모아놓은 배열에 해당 값이 있는지 확인→해당하는 값이 있는 테이블에서 정보 얻어옴
②테이블이 합쳐져있을 경우
코스 스케줄에서 contentSeq 취득→테이블에서 정보 얻어옴
API가 카테고리별 또는 지역별로 나눠서 조회하게 되어있어서 나도 카테고리별로 했는데 꼭 제공하는 방식 그대로 만들어야 하는 건 아니었다.
1) 새 테이블 작성 ✔
2) API DB에 재연결 ✔
3) 각 Repository의 SQL문 수정 ✔
4) 정상 작동 확인 ✔
삼척해양레일바이크 주소가 두 개다... 왜...... 뷰&지도 수정 필요
2. 코스 정보 출력
이걸 어떤 식으로 출력하지...?
코스 도메인에는 contentSeq 배열이 있다.
①페이지 이동할 때 컨트롤러에 1일차/2일차/3일차 contentSeq 배열 전달(페이지에서 1일차/2일차/3일차 선택할 때마다 ajax 실행, body onload시 1일차 실행)
- ajax로 컨트롤러 요청하면 그 페이지에 있는 model 사용할 수 있나? ← x
- 일차별로 배열 전달하지 말고 전부 전달하고 다 가져와서 탭 방식으로 보여주는 것만 제한하자
- 여기서 막힘.....배열 값이 전달이 안 된다
- 배열 값을 전달하지 말고 DB에서 새로 가져올까
②Repository에서 contentSeq별 정보 가져옴
③JSON 객체에 저장, JSON 객체 배열 만들기
④JSON 객체 배열 페이지에 전달
⑤배열에서 정보 꺼내서 출력
※RowMapper 사용시 주의사항
도메인의 변수 개수와 테이블의 열 개수가 다르면 'select * from table'은 사용할 수 없다.
도메인에 테이블에서 가져온 값을 가공해서 저장하는 변수를 만들었더니 사용할 수 없었다.
String 값이 담긴 배열을 여기저기 전달하는데 확인해보니 JSP로 전해졌을 때부터 값이 제대로 출력되지 않았다. 그래서 배열을 전달하지 않고 PK인 contentNum을 전달해서 새로 값을 얻어오기로 했다.
//course 정보 저장...어떻게 하지...
//코스 사이 정보→코스 스케줄보다 개수가 하나 적음
//0-1 1-2 2-3 식으로 객체배열로 저장해놓고 출력할 때 사이사이에 넣음
//contentSeq 배열 상태→각 contentSeq별 LatLng 취득
//List<LatLng> latLngList→for문으로 네이버 API
//for(int i = 1; i<latLngList.length; i++)
//{latLngList[i - 1] latLnglist[i] 두 개로 API 돌리기