초보 썸네일형 리스트형 [코드로 배우는 스프링 웹 프로젝트] ch16 REST 방식으로 전환 1(@RestController) ◎ REST(Representational State Transfer) ▷ URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념에 전송방식을 결합해 원하는 작업 지정 ▶ '/boards/123'은 게시물 중 123번이라는 고유한 의미를 가지도록 설계 ▶ GET, POST 방식과 같이 추가적인 정보를 통해 결정 ▷ 스프링의 REST 방식의 데이터 처리를 위한 여러 종류의 어노테이션과기능이 있음 NO 어노테이션 기능 1 @RestController Controller가 REST 방식을 처리하기 위한 것임을 명시합니다. 2 @ResponseBody 일반적인 JSP와 같은 뷰로 전달되는 게 아니라 데이터 자체를 전달하기 위한 용도 3 @PathVariable URL 경로에 있는 값을 파라.. 더보기 [코드로 배우는 스프링 웹 프로젝트] ch15 검색 처리 1(sql, MyBatis 동적 태그) ◎ 검색 조건 ▷ 태그를 이용하거나 이용하는 경우가 많음 ▷ 최근 일반 웹사이트 사용자들의 경우 를 사용, 관리자용이나 검색 기능이 강한 경우 이용 1. 검색 기능과 SQL ▷ 게시물 검색 기능은 다음과 같이 분류 가능 ▶ 제목/내용/작성자와 같이 단일 항목 검색 ▶ 제목 or 내용, 제목 or 작성자, 내용 or 작성자, 제목 or 내용 or 작성자와 같은 다중 항목 검색 where문 뒤에 검색 조건이 추가되고, rownum 조건이 뒤따르게 하면 문제가 없음 (1) 다중 항목 검색 ▷ 2개 이상의 조건이 붙는 다중 항목의 검색이 문제 ◎ 제목이나 내용 중에 'TEST'라는 문자열이 있는 게시물들을 검색하는 SQL select * from ( select /*+ INDEX_DESC(tbl_board pk.. 더보기 [코드로 배우는 스프링 웹 프로젝트] ch14 페이징 화면 처리 2(script, get, modify) https://bobo12.tistory.com/309 4. 조회 페이지로 이동 ▷ 원하는 페이지로 이동하지만 3페이지에 있는 게시글을 클릭한 후 다시 목록(List 클릭)으로 이동하면 무조건 1페이지 목록 페이지로 이동함 ▷ 태그에 추가로 게시물의 번호를 같이 전송하고, action 값을 조정해서 처리 가능 ◎ list.jsp 일부 수정(move 클래스 추가) --%> ◎ Script부 게시물 조회를 위한 이벤트 처리 추가 $(".move").on("click",function(e) { e.preventDefault(); actionForm.append(""); actionForm.attr("action","/board/get"); actionForm.submit(); }); 해당 게시물 제목에 마우스.. 더보기 [코드로 배우는 스프링 웹 프로젝트] ch14 페이징 화면 처리 1(startPage, endPage) ◎ 페이징 화면 처리 ▷ 화면 밑에 페이지 번호를 표시하고 사용자가 페이지 번호를 클릭할 수 있게 처리 ▶ 브라우저 주소창에서 페이지 번호를 전달해서 결과를 확인하는 단계 ▶ JSP에서 페이지 번호를 출력하는 단계 ▶ 각 페이지 번호에 클릭 이벤트 처리 ▶ 전체 데이터 개수를 반영해서 페이지 번호 조절 1. 페이징 처리시 필요한 정보들 ▷ 현재 페이지 번호(page) ▷ 이전과 다음으로 이동 가능한 링크의 표시 여부(prev, next) ▷ 화면에서 보여지는 페이지의 시작 번호와 끝 번호(startpage, endPage) (1) 끝 페이지 번호, 시작 페이지 번호 ▷ 페이징 처리를 위해 현재 사용자가 보고 있는 페이지의 정보가 중요 ▷ 끝 번호를 먼저 계산해 두는 것이 수월함 ◎ 페이지 끝 번호(end.. 더보기 [코드로 배우는 스프링 웹 프로젝트] ch13 MyBatis와 스프링에서 페이징 처리(Criteria) ◎ MyBatis 스프링 페이징 처리 ▷ MyBatis는 SQL을 그대로 사용할 수 있기 때문에 인라인뷰를 이용하는 SQL을 작성하고 필요한 파리미터 지정하는 방식으로 페이징 처리 ▷ 필요한 파라미터 ▶ 페이지 번호 ▶ 한 페이지당 보여줄 데이터 수 ▷ 페이지 번호와 몇 개의 데이터가 필요한지 별도의 파라미터로 전달하는 방식도 좋지만 이 데이터들을 하나의 객체로 묶어 전달하는 방식이 확장성이 좋음 ◎ src/main/java → org.codehows.domain → Criteria 클래스 작성 ▷ Criteria : 검색의 기준을 의미 package org.codehows.domain; import lombok.Getter; import lombok.Setter; import lombok.ToStrin.. 더보기 [코드로 배우는 스프링 웹 프로젝트] ch12 오라클 데이터베이스 페이징 처리 2(hint, rownum) https://bobo12.tistory.com/304 3. 인덱스를 이용하는 정렬 ▷ 정렬이 되어 있다는 것이 가장 중요한 개념 ▷ 정렬이 이미 되어 있는 상태이므로 데이터를 찾아내서 이들을 SORT하는 과정을 생략할 수 있음 ▷ SORT가 없으면 0초에 가까운 성능을 보여줌 ▶ 데이터 양이 많고 정렬이 필요한 상황이라면 우선적으로 생각하는 것이 '인덱스' 작성하는 것 (1) 인덱스와 오라클 힌트(hint) ▷ 웹페이지 목록은 주로 시간의 역순으로 정렬된 결과를 보여줌(최신 데이터가 가장 중요하기 때문) ▷ 오라클의 select문 전달시 'hint' 사용 가능 : 내가 전달한 select 문을 이렇게 실행해 주면 좋겠다 라는 힌트 ▶ select문을 어떻게 처리할지에 대한 얘기일 뿐이므로 힌트 구문에서.. 더보기 [코드로 배우는 스프링 웹 프로젝트] ch12 오라클 데이터베이스 페이징 처리 1 ◎ 오라클 데이터베이스 페이징 처리 ▷ 구현된 기능들 중 가장 미숙한 부분은 목록 페이지 ▷ 목록 페이지는 기본적으로 페이징(pagination) 처리가 필요함 ▷ 수 많은 데이터를 한 페이지에서 보여주면 처리 성능에 영향을 미치며, 브라우저에서도 역시 데이터의 양이나 처리 속도에 문제를 일으킴 ▷ 일반적인 페이징 처리는 크게 번호를 이용하거나 '계속 보기'(무한 스크롤, 더 보기) 형태로 구현 1. order by의 문제 ▷ 프로그램을 이용해서 정렬할 때 데이터 양이 많을수록 많은 시간과 리소스를 소모함 ▶ 빠르게 처리 되는 것 ▶ 필요한 양만큼 가져오는 것이 중요 ▷ 페이징을 하는 이유 : 최소한의 필요한 데이터만 가져와서 빠르게 화면에 보여주기 위함 ▷ 빠르게 동작하는 SQL을 위해서는 먼저 ord.. 더보기 [코드로 배우는 스프링 웹 프로젝트] ch11 화면 처리 4 5. 게시물의 수정/삭제 처리 ▷ 조회 페이지에서 직접 처리하는 방식 ▷ 별도의 수정/삭제 페이지를 만들어 해당 페이지를 만들어 해당 페이지에서 수정과 삭제를 처리하는 방식 사용 ▷ 최근 게시물 조회 페이지에서 댓글 처리가 많아지면서 수정과 삭제는 별개의 페이지에서 하는 것이 일반적 (1) 수정/삭제 페이지로 이동 ▷ BoardController 에서 수정/삭제가 가능한 화면으로 이동하는 것은 조회 페이지와 같음 ◎ src/main/java → org.codehows.controller → BoardController 메소드 추가 @GetMapping({"/get","/modify"}) public void get(@RequestParam("bno") Long bno, Model model) { log... 더보기 이전 1 2 3 4 ··· 23 다음