11/05 : interceptor와 filter를 알아보자
·
Project 여담/5주차
어제의 멘토링 이후 interceptor에 대한 의문점이 가득해서 interceptor와 filter에 대해 공부하기로 했다. 생각해보니 타당한 이유없이 그저 강사님께 배웠다고 아무런 생각없이 interceptor를 쓰고 있었구나 싶어 반성하는 계기가 됐다. 일단 개발을 하다 보면 공통적으로 처리해야될 부분들이 많고, Spring은 중복 코드를 최소화하고 공통적으로 여러 작업을 처리하기 위해 Filter(필터), Interceptor(인터셉터), 그리고 AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)와 같은 기능을 제공한다. 이러한 기능들은 주로 어떤 행동을 하기 전에 먼저 실행하거나, 실행한 후에 추가적인 행동을 할 때 사용된다. ✅ Filter 란? 서블릿 컨테이너에..
11/04 : 3번째 멘토링 / 중간점검
·
Project 여담/5주차
전체적인 멘토링 피드백 비밀번호 암호화 비밀번호 평문으로의 저장은 보안 위험을 초래한다. 사용자의 개인 정보를 안전하게 유지할 수 있도록 비밀번호 암호화가 필요하다. 생각은 하고 있었는데 우선순위를 뒤로 미뤄놓은 상태라...전반적으로 프로젝트가 완성이 되면 꼭 구현해야겠다. 회원가입에서 전화번호의 필요성 사실 큰 이유가 있다기보다는 기본적인 회원가입폼에 어떤 항목들이 있지..? 하고 넣은건데 딱 찝어주셨다. 핸드폰으로 회원가입 인증을 하는 것이 아닌 이상, 개인정보 보안상 굳이 필요하지 않다면 안넣는게 더 나을 수도 있다는 피드백을 받았다. 생각해보니 인증을 이메일로 구현했기 때문에 멘토님 말씀대로 핸드폰은 굳이 안넣어도 될 거 같다는 생각이 들었다. 회원가입 이메일 인증 시 유효기간 설정 ⇒ 유효기간은..
11/03 : 일정 삭제하기 DataIntegrityViolationException 오류 => ON CASCADE 추가
·
Project 여담/5주차
1️⃣ 일정 삭제하기 중 DataIntegrityViolationException 오류 PPT를 제작하기 위해 기능들에 대한 화면 캡쳐를 하는데 일정 삭제에서 오류가 났다. 뭐지?! 일정 삭제 기능을 구현 완료 했을 때에는 분명 잘 됐었는데... 오류 창을 읽어보니 회원 탈퇴에서의 오류에서 봤던 것 같았다. 이래서 오류가 뭔지 해석하고, 원인을 알아보고, 해결하고 또 기록하는 과정이 중요하구나..를 새삼 느꼈다. 원인) 어찌됐든 원인은 무결성 제약 조건 위반이었다. 일정 삭제 구현 완료 했을 때에는 상세 일정 보기를 구현하기 전이라 travel 테이블만 관련있었는데 지금은 상세 일정 보기 기능 구현을 위해 plan 테이블에서 자식 레코드가 발견되어 외래 키 제약 조건에 위반 되었다는 것이다! 해결 방법)..
11/02 : 일정 상세보기 지도에 인포윈도우 추가
·
Project 여담/5주차
1️⃣ 일정상세보기 지도에 인포윈도우 추가 처음에는 마커와 마커 사이에 경로(?)를 그리는 것을 기획했었는데... 능력 부족으로 그건 구현하지 못하고 고민하다가 인포윈도우로 대체하기로 했다. ✔ 참고 https://apis.map.kakao.com/web/sample/markerWithInfoWindow/ https://olrlobt.tistory.com/39 ✅ memberRetrieve.jsp 기존에 있던 코드 중 addMarkers함수에 인포윈도우 관련 코드를 추가함 결과) 이렇게 마커 위에 인포윈도우가 생기고 ‘길찾기’를 클릭하면 이렇게 카카오맵을 통해 길찾기, 대중교통 등을 볼 수 있음! 이것으로 대체…ㅎㅎ
11/01 : 일정 상세보기 kakao map api와 DB 연동해 마커 찍기
·
Project 여담/5주차
1️⃣ kakao map api와 DB 연동 travelRetrieve.jsp ✅ 지도만 나오는 버전 //서버에서 가져온 위치 정보를 JavaScript 변수에 할당 //var locations = ${locations}; // 서버에서 위도와 경도 정보를 비동기적으로 가져오는 함수 function getLocationsFromServer() { // AJAX 또는 Fetch를 사용하여 서버에서 위치 정보를 가져온다. // 서버에서 가져온 데이터는 JSON 형식. fetch('/app/loginCheck/travelDel?travelID='+travelID) // API 엔드포인트 .then(response => response.json()) .then(data => { console.log(data);..
10/31 : 일정 상세보기 로직 구현
·
Project 여담/5주차
1️⃣ 일정 상세보기 로직 구현과 대략적인 UI 구현 글번호와 비슷한 의미인 travelID을 고유값으로 하여 저장된 일정의 데이터들을 가져오는 방식으로 로직을 구현했고 jsp에서 받아와 출력할 수 있도록 했다. 일단 대략적인 폼만 완성... 오른쪽엔 카카오맵API를 통해 지도를 구현하고, PlanDTO를 사용해 세부 일정들을 출력해낼 예정이다. 👀 고민사항 저장한 일정들을 어떻게 보여줄까 고민중이다. 두가지 방안이 있는데 1. 카카오맵 API를 통해 저장한 장소들을 지도로 보여주기 2. 테이블 형태로 일정 내용을 보여주기 두가지 방안을 두고 사용자 입장에서 생각해봤을 때, 지도에 장소들이 나와야 동선이 더 한 눈에 들어올 것이라 생각됐다. 지도 구현을 위해 Plan 테이블에 위도와 경도 레코드를 추가했..
10/30 : 일정보관함 페이징 처리 / 여러가지 트러블슈팅
·
Project 여담/5주차
1️⃣ 일정보관함 페이징 처리 페이징 처리 위해 필요한 것들 정렬 page당 레코드 몇 개를 보여줄지 전체 레코드 갯수 현재 페이지 번호 정해진 레코드 갯수의 글만 보여지는 리스트 ⇒ 2~5번의 4개의 data를 뭉쳐서 관리해야한다 ⇒ PageDTO.java ✔ PageDTO2.java 4가지 정보를 작성하고, getter/setter를 생성한다. 목록 List list; 페이지 당 보여줄 행의 갯수 int perPage = 8; 전체 레코드 갯수 int totalCount; 현재 페이지 번호 int curPage; ✔ TravelMapper.xml 정렬 ⇒ order by contentNum DESC ✔ TravelListDAO.java List list = session.selectList("Trav..
xoo | 수진
'Project 여담/5주차' 카테고리의 글 목록