본문 바로가기

분류 전체보기108

71일차 - [Spring] JSON/Ajax/REST 동기 방식(Synchronous) 서버로부터 응답을 받기 전까지 다음 처리는 대기합니다. 일부분만 변경되는 요청이 발생해도 매번 요청에 대해 문서 전체의 html 응답을 생성합니다. → 불필요한 서버 처리와 통신이 발생합니다. 비동기 방식(Asynchronous) 브라우저는 멀티스레드 방식이므로 비동기 처리가 가능합니다. 이전의 요청 처리와 상관없이 새로운 요청을 처리합니다. 자바스크립트에서 비동기 처리를 수행하는 비동기 함수로 콜백 함수를 사용합니다. JSON(JavaScript Object Notation) 데이터 객체를 '{ }'로 묶고 key와 value로 구성하는 경량 데이터 포맷입니다. key에도 큰따옴표(") 기호를 사용해야 합니다. 객체 : const obj ={id: 1, name: 's.. 2022. 4. 19.
70일차 - [Spring] Interceptor/RedirectAttributes 인터셉터(Interceptor) 컨트롤러 동작 이전에 요청을 가로채거나 컨트롤러에서 응답을 보내가 이전에 가로챕니다. HandlerInterceptor 인터페이스를 구현하여 인터셉터 클래스를 생성합니다. 추상메소드로는 preHandle( ), postHandle( ), AfterCompletion( )이 있습니다. 필터와 인터셉터 Filter는 웹 컨테이너에서 관리되고 문자열 인코딩 등의 웹 애플리케이션에 사용되는 기능을 구현합니다. web.xml에 사용할 Filter를 등록합니다. Dispatcher Servlet은 스프링 컨테이너 앞 단의 프론트 컨트롤러로, 요청을 받아 적합한 컨트롤러로 전달합니다. Interceptor는 스프링 컨텍스트에서 동작을 하고 컨트롤러 실행 전에 인증이나 인가와 같은 작업.. 2022. 4. 18.
69일차 - [Spring] 게시판 기능 구현2 UPDATE freeboard SET content=#{content},subject=CONCAT('(수정)',subject ), wdate=sysdate WHERE idx=#{idx} 작성한 글 수정하기 글 상세 내용 페이지에서 수정 버튼을 누르면 1) 글을 입력할 수 있는 textarea를 출력합니다. 2) 버튼은 수정/삭제/목록 에서 저장/취소/목록 버튼으로 변경됩니다. 3) 수정된 글의 제목의 앞에는 '(수정)' 텍스트를 추가합니다. Mapper 인터페이스 void update(Freeboard dto); XML 매퍼 파일 UPDATE freeboard SET content=#{content},subject=CONCAT('(수정)',subject ), wdate=sysdate WHERE idx=#.. 2022. 4. 15.
68일차 - [Spring] 게시판 기능 구현 글 목록 화면 URL의 파라미터 없애기 get 방식 → post 방식으로 변경합니다. 태그에서 href 속성 대신에 onclick 속성에 자바스크립트 함수를 사용합니다. 태그에서는 onclick 속성에 함수 이름만 작성해도 되지만, 태그에서는 함수 이름 앞에 자바스크립트 함수라는 것을 명시합니다. () form을 post 방식으로 작성하고 input요소의 name을 "pageNo", type을 "hidden"으로 합니다. goPage 함수로 /list 페이지에 폼 데이터를 전송합니다. 기존 URL 변경 URL 개발자도구(F12)에서 [Network] - [Payload] 에서 폼 데이터 pageNo를 확인할 수 있습니다. 글쓰기, 글 상세 보기, 조회수 증가 기능 구현 글쓰기 버튼을 눌러 글을 작성하고 .. 2022. 4. 14.
67일차 - [Spring] 게시판 페이징 처리 게시판 페이징 처리 게시물의 목록을 최신글부터 출력합니다. 페이지 숫자를 클릭하면 해당 페이지로 이동합니다. [] 버튼을 누르면 맨 앞/ 맨 뒤 페이지로 이동합니다. [>] 버튼을 누르면 다음 페이지 목록(11~20)의 시작 페이지(11)로 이동합니다. [totalCount? totalCount:this.endNo; startPage = (this.pageNo - 1)/10*10 + 1;//pageNo가 11~20 일 때 startPage는 모두 11 endPage = startPage + 9;//*totalPage 이하의 값이어야 합니다. this.endPage = this.endPage>totalPage? totalPage:this.endPage; } } 커스텀 생성자에 프로퍼티 계산을 추가합니다. .. 2022. 4. 13.