Spring
[19] 기본적인 웹 게시물 관리 - MyBatis와 스프링에서 페이징 처리
MyBatis는 SQL을 그대로 사용할 수 있기 때문에 인라인뷰를 이용하는 SQL을 작성하고, 필요한 파라미터를 지정하는 방식으로 페이징 처리를 하게 된다. 여기서 신경 써야 하는 점은 페이징 처리를 위해서는 SQL을 실행할 때 몇 가지 파라미터가 필요하다는 점이다. 페이징 처리를 위해서 필요한 파라미터는 1) 페이지 번호, 2) 한 페이지당 몇 개의 데이터를 보여줄 것인지가 결정되어야만 한다. 페이지 번호와 몇 개의 데이터가 필요한지를 별도의 파라미터로 전달하는 방식도 나쁘지는 않지만, 아예 이 데이터들을 하나의 객체로 묶어서 전달하는 방식이 나중을 생각하면 좀 더 확장성이 좋다. 1) org.zerock.domain 패키지에 Criteria 이름의 클래스를 작성한다. (이는 검색의 기준을 의미한다.)..
[18] 기본적인 웹 게시물 관리 - 오라클 데이터베이스 페이징 처리 2
3-2. 힌트 사용 문법 select 문을 작성할 때 힌트는 잘못 작성되어도 실행할 때는 무시되기만 하고 별도의 에러는 발생하지 않는다. 우선 힌트를 사용할 때에는 다음과 같은 문법을 사용한다. select /*+ Hint name (param) */ colum name, ....... from table_name 힌트 구문은 /*+ 로 시작하고 */ 로 마무리된다. 힌트 자체는 SQL로 처리되지 않기 때문에 위의 그림처럼 뒤에 칼럼명이 나오더라도 별도의 ',' 로 처리되지 않는다. 3-3. FULL 힌트 힌트 중에는 해당 select 문을 실행할 때 테이블 전체를 스캔할 것으로 명시는 FULL 힌트가 있다. FULL 힌트는 테이블의 모든 데이터를 스캔하기 때문에 데이터가 많을 때는 상당히 느리게 실행된..
[17] 기본적인 웹 게시물 관리 - 오라클 데이터베이스 페이징 처리
구현된 기능들 중 가장 미숙한 부분은 목록 페이지이다! 목록 페이지는 기본적으로 페이징 처리가 필요한데 수많은 데이터를 한 페이지에서 보여주면, 처리 성능에 영향을 미친다. 또한, 브라우저에서도 역시 데이터의 양이나 처리 속도에 문제를 일으키게 된다. 일반적으로 페이징 처리는 크게 번호를 이용하거나 '계속 보기'의 형태로 구현된다. 번호를 이용한 페이징 처리는 과거 웹 초기부터 이어오던 방식이고, '계속 보기'는 Ajax와 앱이 등장한 이후에 '무한 스크롤'이나 '더 보기'와 같은 형태로 구현된다. 예제에서 목록 페이지는 전통적인 번호를 이용하는 방식으로 처리하게 된다. 오라클에서 페이징 처리하는 것은 MySQL에 비해서 추가적인 지식이 필요하므로 이에 대한 학습을 선행해야한다. 1. order by의 ..
[16] 기본적인 웹 게시물 관리 - 화면 처리 3
4-2. 목록 페이지와 뒤로 가기 문제 목록 페이지에서 각 게시물 제목에 태그를 적용해서 조회 페이지로 이동하게 처리한다. 최근에 웹페이지들은 사용자들의 트래픽을 고려해 목록 페이지에서 새창을 띄워서 조회 페이지로 이동하는 방식을 선호하지만 전통적인 방식에서는 현재창 내에서 이동하는 방식을 사용한다. 조금 관심을 가지고 웹페이지들을 이용하다 보면 의외로 이러한 처리가 제대로 되지 않는 경우를 많이 보게 된다. 예를 들어, '뒤로 가기'를 하면 다시 다운로드를 시도하거나 경고창이 뜨는 경험들을 할 수 있다. '뒤로 가기'의 해결은 조금 어려운 내용들이 나올 수 있으므로 학습에 어려움이 있다면 건너뛰는 선택도 나쁘지 않다. (난 못먹어도 고다) - 목록에서 조회 페이지로의 이동 list.jsp 페이지는 아래..
jquery.min.js:2 Uncaught TypeError: $(...).DataTable is not a function
- 스프링 웹 프로젝트를 하다가 모달창을 띄우는 과정에서 다음과 같은 에러가 났다. 구글링을 해보니 jQuery가 두번 선언 되어서 라는데 내 코드의 어디를 찾아봐도 한번만 선언 되어있다.....ㅠㅠ 또한, 부트스트랩 스크립트보다 제이쿼리 스트립트를 먼저 불러와야한다고 한다.... 나 그렇게 했는데...?????? 어디가 잘못된 걸까??? 따라하는 책이랑 부트스트랩 버전이랑 폴더 구성이 달라서 그런지 알 수가 없다.. 해결 방법 https://okky.kr/article/433466 여기 참고후에 OKKY | jsp 회원가입 모달창 띄우기 질문입니다 생초보 자바 9버전 사용하고 있습니다 동영상보고 공부중입니다 회원가입시에 id 중복확인 버튼을 누르면 모달창이 띄워져서 중복인지 아닌지 알 수 있는 것과 입..
[15] 기본적인 웹 게시물 관리 - 화면 처리 2
3. 등록 입력 페이지와 등록 처리 게시물의 등록 작업은 POST 방식으로 처리하지만, 화면에서 입력을 받아야 하므로 GET 방식으로 입력 페이지를 볼 수 있도록 BoardController에 메서드를 추가한다. @GetMapping("/register") public void register() { } register()는 입력 페이지를 보여주는 역할만을 하기 때문에 별도의 처리가 필요하지 않다. views 폴더에는 includes를 적용한 입력 페이지를 작성한다. Board Register Board Register Title Text area Writer Submit Button Reset Button register 페이지에서는 태그를 이용해서 필요한 데이터를 전송한다. 이나 태그의 name 속성..