Back-End
-
[Spring REST] @RequestBody와 @RequestParam 차이Back-End/Spring Legacy 2022. 9. 1. 16:42
컨트롤러에서 데이터를 인자에 할당하는 방법은 대표으로 2가지가 있다. 예를들어 태그로 값을 전달할 때 @RequestBody 데이터를 전송하고 컨트롤러에서 @RequestBody를 통해 데이터를 받아보면 입력한 'jun' 이름과 '13'이라는 나이가 잘 전달되었지만 name=jun&age=13이라는 String으로 전달되어 데이터를 사용하기에 불편함이 있다. @RequestParam 이번엔 @RequestParam으로 받았을 때는 데이터를 저장하는 이름으로 메서드의 변수명을 설정해주어야 한다. 결과적으로 jun이라는 이름이 잘 전달 되었고, 이번엔 name이라는 변수가 할당되어 사용하기에도 용이하다. JSON으로 데이터 전달하기 ajax를 이용해 데이터를 전달하기로 해보자. ajax는 비동기적으로 서버와..
-
[4-ch17 댓글 처리 ① ] sql 댓글 테이블 생성과 영속 영역 설계 (MyBatis)Back-End/Spring Legacy 2022. 9. 1. 12:59
댓글 처리를 위한 영속 영역 댓글 추가하기 위해서 댓글 구조에 맞는 테이블 설계한다. --댓글 테이블 설계 create table tbl_reply ( rno number(10,0), -- 댓글 번호 bno number(10,0) not null, -- 어떤 게시글인지 게시글 번호 reply varchar2(1000) not null, --댓글 내용 replyer varchar2(50) not null, --댓글 작성자 replyDate date default sysdate, --댓글 작성일 updateDate date default sysdate --댓글 수정일 ); select * from tbl_reply; create sequence seq_reply; --식별키(PK) 지정 alter table..
-
[4-ch16 REST 방식] @RestController, ResponseEntity, @RequestParam , 어노테이션과 JSON 알아보기Back-End/Spring Legacy 2022. 8. 31. 15:07
모바일 시대가 되면서 WEB 분야의 가장 큰 변화는 서버 역할의 변화라고 할 수 있다. 과거에는 서버의 데이터를 소비하는 주체가 '브라우저'라는 특정한 애플리케이션으로 제한적이었다면, 모바일의 시대가 되면서 앱이나 웹은 서버에서 제공하는 데이터를 소비하게 된다. 과거의 서버는 브라우저라는 하나의 대상만으로 데이터를 제공했기 때문에 아예 브라우저가 소화 가능한 모든 데이터를 HTML이라는 형태로 전달하고, 브라우저는 이를 화면에 보여주는 역할을 해 왔다. 스마트폰에는 앱(app)이라 불리는 고유한 애플리케이션을 이용해 데이터를 소비하게 되고, 보이는 화면 역시 자신만의 방식으로 서비스하게 된다. 앱에서 서버에 기대하는 것은 완성된 HTML이 아니라 그저 자신에게 필요한 순수한 데이터만을 요구하게 되었다. ..
-
[3-ch15 Spring 게시판] 검색 조건 처리Back-End/Spring Legacy 2022. 8. 29. 20:57
part3 마무리하며 소스 코드는 github에서 참고바랍니다. https://github.com/ssowoni/Spring-Web-Board-Book GitHub - ssowoni/Spring-Web-Board-Book Contribute to ssowoni/Spring-Web-Board-Book development by creating an account on GitHub. github.com ch14의 페이징 처리에 사용했던 Criteria의 의도는 단순히 'pageNum'과 'amount'라는 파라미터를 수집하기 위해서이다. 페이징 처리에 검색 조건 처리가 들어가면 Criteria 역시 변화가 필요하다. ( Criteria는 '검색의 기준'을 의미한다. ) 검색 조건을 처리하기 위해서는 검색 조..
-
[3-ch15 Spring ] MyBatis의 동적 태그 ( if, choose, trim)와 LIKE 사용 방법Back-End/Spring Legacy 2022. 8. 29. 14:30
검색 기능과 SQL 게시물의 검색 기능은 아래와 같이 분류가 가능하다. - 제목/내용/작성자와 같이 단일 항목 검색 - 제목 or 내용 , 제목 or 작성자 ,,,, 같은 다중 항목 검색 단일 항목 검색과, 복합적인 항목으로 검색하는 방식이 존재한다. 게시물 검색에 있어 가장 중요한 부분은 SQL인데, 오라클은 페이징 처리에 인라인뷰를 이용하기 때문에 실제로 검색 조건에 대한 처리는 인라인뷰 내부에서 이루어져야 한다. 단일 항목에 경우 검색 조건에 따라서 칼럼이 달라지고 , LIKE 처리를 통해 키워드를 사용하게 된다. 만약 데이터를 '제목' 으로 하고 키워드를 '수정'으로 한다면 쿼리문은 다음과 같다. select bno, title, content from ( select /*+ INDEX_DESC(..
-
[3-ch14 Spring 게시판] view, 페이징의 화면 처리Back-End/Spring Legacy 2022. 8. 29. 12:35
URL 파라미터를 이용해 정상적으로 원하는 페이로 이동하는 것을 확인했다면, 화면 밑에 페이지 번호를 표시하고 사용자가 페이지 번호를 클릭하면 이동하도록 처리한다. 이번 포스팅은 아래와 같은 과정을 따른다. 1. 브라우저 주소창에 페이지 번호를 전달해서 결과를 확인하는 단계 2. JSP에서 페이지 번호를 출력하는 단계 3. 각 페이지 번호에 클릭 이벤트 처리 4. 전체 데이터 개수를 반영해서 페이지 번호 조절 페이징 처리를 하기 위해선 현재 페이지 번호 (page), 이전 과 다음으로 이동 가능한 링크의 표시 여부(prev, next), 화면에서 보여지는 페이지의 시작 번호와 끝 번호(startPage, endPage) 와 같은 정보들이 필요하다. 끝 페이지 번호와 시작 페이지 번호 페이징 처리를 하기 ..
-
[Spring] RedirectAttributes 과 Model 알아보기Back-End/Spring Legacy 2022. 8. 29. 12:23
서론 form 형식의 문서를 작성한 후, 서버로 보내면 (POST 방식) 곧 이어 다른 페이지로 리다이렉트한다. redirect 방식은 Get 방식이라 데이터 전송에는 적절하지 않다, 리다이렉트가 발생하면 원래 요청은 끊어지고, 새로은 HTTP GET요청이 시작된다. 때문에 리타이렉트 실행 이전 수행된 모델 데이터는 소멸한다. 따라서 리다이렉트로 모델을 전달하는 것은 의미가 없다. RedirectAttributes 그러나, redirect로 데이터를 전달하는 방법이 있는데, GET의 특징을 사용하는 것이다. GET 방식은 header에 ? 뒤에 파라미터를 붙여서 전달한다. 때문에 url 노출되는 단점이 있다. 그래서 스프링은 RedirectAttributes 클래스를 제공한다. RedirectAttrib..
-
[3-ch13 게시판] MyBatis와 스프링에서 페이징 처리하기Back-End/Spring Legacy 2022. 8. 28. 11:36
이전 포스팅에서 힌트(hint)와 ROWNUM, 인라인뷰를 사용해서 원하는 값을 추출하는 방법을 알아봤다. 그렇다면 직접 웹 페이지에 적용하기 위해 MyBatis에 적용하는 법을 알아보려 한다. 페이징 처리 관련 내용은 아래 링크 클릭! https://wonisdaily.tistory.com/62 [3-ch12 Spring web 게시판] 페이징 처리, 힌트(hint), ROWNUM & 인라인뷰 적용 order by의 문제 데이터의 양이 많을수록 정렬이라는 작업은 많은 리소스를 소모한다. 데이터베이스를 이용할 때 웹이나 애플리케이션에서 가장 신경쓰는 부분은 1) 빠르게 처리되는 것, 2) 필요한 wonisdaily.tistory.com MyBatis는 SQL을 그대로 사용할 수 있기 때문에 인라인 뷰를 ..