ajax
웹페이지가 새로고침되지 않고도 서버와 데이터를 주고받을 수 있게한다.
- 검색 자동완성 기능, 좋아요 기능...
- 새로고침 없이 화면에 반영하는 기능들은 ajax를 사용한다.
CORS
- 강사님 IP로 접근하면 CORS로 막힘

- 출처가 동일해야 한다 = 자바스크립트가 다른 출처에 요청하는 게 막힘
- 내가 응답한 콘텐츠를 포함하지 않는 요청은 거부
- 나의 서버에서 응답하는 콘텐츠를 포함한 웹브라우저의 요청만을 수행한다.
"이 웹사이트는 내 데이터를 가져갈 수 있어!"이라는 서버의 마음...
CORS의 서버의 설정을 풀어서 가능하게


- 아무 곳에서나 요청이 가능해진다.
- vs code에서 작성한 코드를 톰캣 서버에서 실행 가능함.
새로 생긴 web.xml 에서 CORS 규칙을 깨서 아무곳에서 요청을 할 수 있게한다.
Thread 지연
-
vs code 에서 요청

응답을 받아오는 시간동안 console.log("fetch~") 코드 먼저 실행 후 응답을 받아옴.
-
톰캣 서버에서 응답

- CORS의 규칙을 풀어서 vscode에서도 tomcat 서버의 데이터를 요청해서 가져올 수 있음
글 post
LAG, LEAD (oracle)


- 이전, 다음 링크를 구현하기위해서는 해당 글의 이전글, 다음글의 정보를 가져와야 한다.
post 기능 구현시 이전글, 다음글 이동하는 기능에서 데이터를 가져와야 할 때 사용한다.
동적 쿼리문(검색)
글 검색 시 조건과 키워드에 따라서 보여주는 데이터가 달라지기에 동적쿼리문이 필요함.

- StringBuilder()를 만들어서 조건에 따라서 문자열을 하나씩 하나씩 추가하기 위해서 만듬
- if 조건을 만족하면 where 조건에 맞는 글만 검색이 되고 만족하지 못하면 모든 글이 검색이 된다.
글 검색 조건에 맞는 로직 구성하기
1. dto , dao 구성

✔️ DTO → 데이터를 담는 객체 (그릇).
✔️ DAO → DB에서 데이터를 가져오거나 저장하는 역할.
1-1. 검색 조건에 따라 글의 갯수 가져오기 = getCount(PostDto)
1-2. 검색 조건에 따라 글을 가져오기 = getData(PostDto)
- StringBuilder로 명령문을 쌓는다.

- 검색 조건에 따라서 로직을 짠다(제목+내용, 제목 , 작성자)

- toString 은 위에서 쌓은 sql문을 한번에 전체로 String type으로 변경후 실행한다.
- 검색 키워드가 있는 경우에 따라서 바인딩 && 페이징 처리에 관련된 값도 바인딩한다.

1-3. 검색 조건에 따라 글 리스트 가져오기 = getList(PostDto)
2. list, view jsp 구성하기
2-1. list.jsp의 findquery
2-2. view.jsp
EL은 null 이면 null이 아닌 빈 값을 출력한다.
= "&condition=writer&keyword=stone"이 파라미터에 붙을 수도 안 붙을 수도 있다.

Dbeaver에서 DB 열기


자유자재로 데이터를 추가하기
보완
- 강사님 서버에 들어갈 수 있었던 이유가 server의 context.xml에 서버를 추가해서 그런가? 응 그래...
- findquery 를 분석할 필요성
피곤하당.....