전체 글 793

paging 기법.

사실...봐도 모르겠어서 정리한 것을 적는다. 1. 한 화면에 몇 개의 글을 보여줄 것인가. w_size 2.총 몇개의 페이지를 보여줄 것인가. 이 두가지가 핵심이다...! w_size = 5로 하고 있고. 즉 화면에 보여줄 글은 5개. 페이지수를 구하는 방법,, 글이 42개 있다는 가정 하, (42 - 1 / w_size) + 1 = 9 페이지..? 40개라면 (40-1 / w_size) +1 ...? 8페이지. 즉 페이지 카운트 식은 ( 총 글 개수 -1 / 한 화면에 보여주고 싶은 글의 수) +1 이다. 페이지의 번호 구하기 페이징의 시작과 끝을 구해야 한다. 시작페이지 구하는 식 ( (페이지번호 - 1) / 총 페이지 사이즈) * 총 페이지 사이즈 +1 값 페이지 번호가 1이라면 ( (1-1) /..

springframework 2020.07.29

Paging 처리에 쓰이는 limit

limit 는 전 글에서 기고했듯이 레코드중 Location 부터 size 만큼 가져온다. 해당 레코드를 전부 조회하고 사용하는 것이 아니기 때문에 Paging 처리에 적합하다. SELECT * FROM 테이블명 LIMIT 시작로우 , 갯수 MyBatis에서 사용할때는 이렇게 하면 되지 않을까 싶다. SELECT * FROM 테이블명 ORDER BY 컬럼명 DESC LIMIT #{arg0} , #{arg1} subQuery를 이용하여 Key값으로 join 시키면 더 빠른 속도를 가질 듯 싶다.

MySQL 2020.07.29

Ajax의 핵심객체 XMLHttpRequestObject

Ajax의 핵심객체는 'XMLHttpRequestObject' 이다. 현대의 브라우저들은 전부 다 XMLHttpRequest 객체를 지원하고 있으며, XMLHttpRequest객체는 Client가 보는 화면 뒤에서 WebServer와 데이터를 주고 받기 위해 사용된다. 이 뜻은 서론에 기술 했듯, WebPage 전체를 reload할 필요없이 부분 만을 update 하는게 가능하다는 것을 뜻한다. 현대의 모든 브라우저들(사파리,크롬,인터넷익스플로러,엣지, 사파리 오페라) XMLHttpRequest객체로 구성되었다. XMLHttpRequest 객체를 생성하는 문법. variable = new XMLHttpRequest(); 즉, 자바스크립트로 생성하게 되는 XMLHttpRequest 객체 생성은 이러하다. ..

Ajax 2020.07.29

Ajax 서론.

Ajax란 Asynchronous JavaScript And Xml 의 약자로 프로그래밍 언어가 아니다. 브라우저가 요청을 웹서버에 보낼 때 XMLHttpRequest 객체를 사용하고, JavaScript 나 HTML DOM 을 가지고 데이터를 사용하거나, 보여준다. Ajax 어플리케이션은 보통 XML 을 이용하여 데이터를 전송하겠으나. 기본 text나 JSON text를 가지고도 데이터를 전송하기도 한다. Ajax는 비동기적으로 데이터를 교환하고 업데이트하며 이는 웹 페이지 전체를 다시 로딩할 필요없이 부분만을 로딩할 수 있게끔 만든다는 것을 뜻한다. -- 실행흐름. 이벤트가 발생하여 XMLHttpRequest 객체 생성 후 HttpRequest를 보냄. Server에서 HttPRequest를 처리하고..

Ajax 2020.07.29

Java를 시작한지 128일차, 블로그를 만든 건 124일차.

REST 의 의미를 알아보려 애를 썼다. 애를 썼다기보단 이런 저런 글들을 찾아보았다는게 맞겠구나. 책으로 배우고있는 Json 형식의 응답과 요청에 대해서 보면서, 이를 구현하고 싶은 마음이 점점 커다랗게 변해간다. 그러다보면 다시 재미있다는 마음이 들기 시작한다. Ajax는 필수사항인듯하다. 하나라도 구현해보고 하나라도 더 만들어보며 고군분투하다보면 나에게 분명 남는 것이 있을것이다. Ajax는 처음이기에, 기초부터 다져나가야한다. JQuery가 도움이 되주기를 바란다. 할수있다, 할수있다 :) 하며 보내는 나날들이라서, 잘 해내기를 조그맣게 바라보는 시간이다. 그 것만으로도 커다랗다고 느끼기 때문에,,..부단히 해나가고 싶다.

생각모음 2020.07.28

Servlet에서의 Session

JSP 는 기본영역에 Session이 존재하기 때문에 session영역을 포함하나 Servlet은 Session을 따로 생성해야 세션을 사용할 수 있고, 이는 springframework 의 @HttpSession을 붙인 HttpSession 파라미터나 HttpServletRequest 파라미터를 이용한 Controller의 세션 생성과도 연관이 있다. 기본적으로 세션 정보를 사용하기 위해서는 Session은 생성해야하는데 @Controller의 요청매핑 메서드에서 세션 생성 방법들은 생성이 조금다르다. @PostMapping 등 요청매핑 메서드에 @HttpSession 을 붙인 HttpSession 파라미터는 넘어오는 요청에 세션영역이 존재하지 않는다면 스프링MVC가 세션을 자동생성한다, 존재한다면 그..

JSP & Servlet 2020.07.28

Interface 에 정의된 메소드에서 던질 수 있는 Exception간 관계

java.sqlSQLException을 인터페이스의 추상메서드는 던지고 있다. 그 구현객체는 반드시 추상메서드를 재정의 해야하는데, 이때 구현객체에서 메서드 재정의시 던질 수 있는 익셉션은 Interface에 정의된 메서드가 던지는 Exception의 하위 타입이어야한다. package test; import java.sql.SQLException; import java.sql.SQLTransientException; public class ExceptionEx1 { public void main() { A a = new B(); try { a.method(); } catch (SQLException e) { e.printStackTrace(); } } } class B implements A{ @Ove..

JAVA-Basic 2020.07.28

@ComponentScan 의 사용. 필터링 추가, 및 제외.

@ComponentScan 에노테이션은 정말 단비같은 에노테이션이라는 것을 사용할 때마다 느끼고 또 느낀다. 일단, 이번기회에 Controller 공통 Advice 를 가능하게 해주는 @ControllerAdvice 에노테이션을 배우는 와중, ComponentScan의 대상으로 등록되지 않는 듯해서, 어떻게하면 ComponentScan으로 등록할수 있을까..하고 기억을 되살리는 겸 서칭과 책 정독을 시작한 것을 기억을 되살려보자. @ControllerAdvice 에노테이션은 컨트롤러의 공통기능을 정의하는 에노테이션이며 클래스에 붙인다. , @ExceptionHandler 에노테이션을 가져 익셉션을 공통처리할 수 있게끔한다. @ExceptionHandler 에노테이션의 값은 처리할 Exception의 클래..

springframework 2020.07.27

Java를 시작한지 126일차, 블로그를 만든 건 122일차.

어제보다 에너지가 많이 돌아왔고, 기운이 차려졌다. 진짜진짜로...다행이다 싶다. 개인적으로 위기감을 느끼고 있었어서 알게모르게 지쳐감에 많은 걱정을 해왔는데, 정말정말 다행이다.. 그렇게 지금까지 공부를 쭉 해왔는데, REST 방식에 사용되는 JSON 데이터 사용을 위한 @PathVariable , @RestController, @Controller + @RequestMapping+ @ResponseBody 그 결과로 띄워지는 브라우저에서 날라오는 데이터... JSON 데이터 관련 어노테이션인 @JsonFormat , @JsonIgnore , 공통 format을 위한 MappingJackson2HttpMessageConverter 등록까지 갔던 것같다. 읽던 것보다, 정독하려니 새로운 객체들에 눈이 핑..

생각모음 2020.07.27