분류 전체보기

    [Spring] Day12 (Code1): 게시물 검색

    1. 검색 기능을 추가했으므로 이제 Criteria에 검색 조건 키워드 담을 변수와 검색어를 담을 키워드가 필요함. getTypeArr은 중복 조건으로 검색했을 때 키워드를 하나하나 떼어주는 역할. Null 체크도 동시에 됨. null일 경우에 에러가 안 생기게끔 기본 배열로 처리 package com.board.domain; import org.springframework.web.util.UriComponentsBuilder; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class Criteria { //페이징 처리시 부수적으로 필요한 정보들 담아줄 객체 private..

    [Spring] Day12 (Note): 게시판 검색, REST

    2022/3/31 게시판 검색 1. 검색 조건 *단일 조건 : type이라는 파라미터로 밑에 키워드가 넘어옴 제목 title: T 검색 키워드 내용 content: C 작성자 writer: W select bno, title, content, writer, regdate, updatedate from (select row r, bno, title, content, writer, regdate, updatedate from (select/*+ INDEX_DESC(board pk_board)*/ bno, title, content, writer, regdate, updatedate from board where ${column} like ‘%||#{keyword}%’ //변경되는 부분) where rownu..

    [Spring] Day11 (Code): 페이징 처리

    1. Criteria.java package com.board.domain; import org.springframework.web.util.UriComponentsBuilder; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class Criteria { //페이징 처리시 부수적으로 필요한 정보들 담아줄 객체 private int pageNum; //페이지 번호 private int listQty; //한 페이지에 보여줄 개시물 개수 public Criteria() { this(1,10); //1 페이지 보여주게끔 } public Criteria (int pageNum,..

    [Spring] Day11 (Note): 페이징 처리

    2022/3/30 페이징 처리 웹 페이지 개발할 때 중요한 것: 최소한의 필요한 데이터만 빨리 찾아서 빠르게 가져오는 것. 동시에 여러 명의 사용자가 많은 데이터를 요청하면 속도가 느려질 수밖에 없다. 데이터가 적은 경우가 아니면 오더 바이는 속도 때문에 사용을 자제. 인덱스를 사용하는 게 좋다. *order by의 문제점: 성능 저하. -> 해결법: 인덱스를 사용. 인덱스를 이용해서 정렬을 생략하는 방법. 인덱스는 이미 정렬된 구조를 가지고 있다. 1. Oracle에서의 인덱스 *OLTL: On-Line Trasaction Processing = insert, update, delete가 실시간으로 자주 발생하는 것. *OLAP: insert, update, delete가 별로 사용될 일이 없는 것. ..

    [Spring] Day10 (Code)

    1. controller package com.board.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframe..

    [Spring] Day10 (Note): Ajax, CRUD 게시판

    2022/3/29 Ajax Asynchronous JavaScript and XML : 비동기 방식의 JS와 XML을 가리킴 동기방식 : 서버에 신호를 보냈을 때 응답이 돌아와야 다음 동작 수행가능 비동기 방식 : 신호를 보냈을 때 응답 상태와 상관없이 다음 동작 수행가능 사용 이유 : 화면 전환 없이 클라이언트와 서버 간의 XML, JSON, 텍스트, HTML 등 정보 교환하기 위해 *jQuery 라이브러리 배치하여 사용 (제이쿼리 가지고 에이젝스 통신) Ajax 관련 메서드 1. load() 사용자가 지정한 URL 주소에 데이터를 전송하고 외부 콘텐츠를 요청하여 가져올 때 사용. 요청한 컨텐츠를 이용하여 선택한 요소의 내용 변경 가능 $(“요소 선택”).load(url, data, 콜백 함수) url..

    [Spring] Day09 (Code): 자동 로그인, 아이디 중복 체크, 제이쿼리

    자동 로그인 쿠키 추가 /*//메인페이지 쿠키 1번 @GetMapping("main") public String main(HttpServletRequest request, HttpServletResponse response) { System.out.println("main 요청"); //쿠키 꺼내기 Cookie[] coos = request.getCookies(); if(coos != null ) { for(Cookie c : coos) { //쿠키 있다 if(c.getName().equals("cookieAuto")) { int result = memberService.login(null,c.getValue(),response); if(result == -1) break; } } } //쿠키없다: 메인..

    [Spring] Day09 (Note): jQuery

    2022/3/28 jQuery 존 레식이 자바 스크립트를 이용해 만든 라이브러리 언어. 함수들의 집합. 1) 호환성 문제 해결 -> jQuery에서 이를 해결하게 됨 2) 쉬운 애니메이션 효과 구현 라이브러리 연동 offline: 다운 받아서 resource 폴더에 넣기 online: CDN 헤드 부분에 추가. 선택자 Selector HTML 요소 선택해서 가져옴. 모든 태그들은 제이쿼리에선 객체라고 함. #선택자 사용: $(“ ”) 안에 문자형 데이터로 CSS 선택자 입력. $(“ 선택자 “).css(“스타일 속서명”, “값”); -> 스타일 적용 $(“ 선택자”).attr(“속성명”, “값”); -> 속성 적용 jQuery 기본 구조 1) ready() 함수: 문서 객체가 준비되면 2) 즉시 함수로:..

    [Spring] Day08 (Code): 마이페이지, 회원정보 수정 및 삭제

    마이페이지 1. controller //마이페이지 @GetMapping("mypage") public void mypage() { System.out.println("mypage 요청!"); } 2. mypage.jsp 마이 페이지 회원 정보 수정 회원 탈퇴 메인 회원 정보 수정 (modify): 회원 정보를 가져옴 1. 컨트롤러 #1.컨트롤러에서 ID 뽑아 서비스에 전달하는 방식 @GetMapping("modify") public void modify(HttpSession session, Model model) { System.out.println("modify 요청!"); //로그인한 회원 정보를 전체 뽑아서 뷰에 전달하는 비즈니스 로직이 필요. //서비스야 회원 정보 DB에서 가져와서 나한테 전달해..

    [Spring] Day08 (Note): 쿠키

    2022/3/25 쿠키 Cookie 예전에 뭘 했고 지금은 뭘 하는지 hppt프로토콜은 저장하지 않음. 연결이 끝나면 해당 클라이언트와 연결을 계속하지도 않음. 이를 지속하기 위해 쿠키를 사용. 쿠키는 상태가 없는 프로토콜의 상태를 지속시키기 위해 사용하는 기능. 쿠키는 웹브라우저의 정보를 웹브라우저에 저장한다. 이후로 서버로 전송되는 정보에는 쿠키가 포함한 정보까지 포함돼서 넘어감. 새로운 브라우저냐 이전에 요청을 한 브라우저냐… 판단을 할 수 있음. 쿠키: 웹 브라우저가 보관하는 데이터. 웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일. 일반적으로 4KB 이하 크기로 생성. 1byte 문자로 현재 모든 상태를 전산에 기록. 쿠키는 비연결 지향인 HTTP의 특징이자 약점을 보완하기 위해 사용된다..