728x90
반응형

Spring 29

스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 05)

https://rogi221.tistory.com/161 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 04) https://rogi221.tistory.com/160 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 03) https://rogi221.tistory.com/159 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처 rogi221.tistory.com Ajax 댓글 처리 - 05 댓글의 페이징 처리 현재까지 작성된 예제는 해당 게시물의 전체 댓글을 가져와서 화면에 출력한다. 문제는 댓글의 숫자가 엄청나게 많을 경우이다. 댓글의 숫자가..

Spring 2023.03.30

스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 04)

https://rogi221.tistory.com/160 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 03) https://rogi221.tistory.com/159 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 02) https://rogi221.tistory.com/157 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 01 (REST 방식으로 rogi221.tistory.com Ajax 댓글 처리 - 04 이벤트 처리와 HTML 처리 앞의 과정을 그대로 진행했다면 이미 Ajax의 처리까지는 완료되는 것을 확인했다는 의미가 된다. 남은 작업은 화면에서 버튼 등에..

Spring 2023.03.30

스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 03)

https://rogi221.tistory.com/159 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 02) https://rogi221.tistory.com/157 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 01 (REST 방식으로 전환) REST 방식으로 전환 @RestController REST 방식에서 가장 먼저 기억해야 하는 점은 서버에서 전송하 rogi221.tistory.com Ajax 댓글 처리 - 03 JavaScript 준비 JSP 내에서 댓글에 대한 처리는 하나의 페이지 내에서 모든 작업이 이루어지기 때문에 조금 복잡하게 느껴지는 것이 사실이다. 또한 기존과 달리 JavaScript와 동적으로 만..

Spring 2023.03.29

스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 02)

https://rogi221.tistory.com/157 스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 01 (REST 방식으로 전환) REST 방식으로 전환 @RestController REST 방식에서 가장 먼저 기억해야 하는 점은 서버에서 전송하는 것이 순수한 데이터라는 점이다. 기존 Controller에서 Model에 데이터를 담아서 JSP 등과 같은(View)로 전 rogi221.tistory.com Ajax 댓글 처리 - 02 서비스 영역과 Controller 처리 서비스 영역과 Controller의 처리는 기존의 BoardService와 동일하게 ReplyService 인터페이스와 ReplyServiceImpl 클래스로 작성한다. ReplyService 인터페이스 ..

Spring 2023.03.29

스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 02 (Ajax 댓글 처리 - 01)

Ajax 댓글 처리 REST 방식을 가장 많이 사용하는 형태는 역시 브라우저나 모바일 App 등에서 Ajax를 이용해서 호출하는 것이다, 예) Ajax의 호출을 가정하고 웹페이지에서 사용하는 댓글 기능을 작성해보도록 한다. 데이터베이스 상에서 댓글은 전형적인 1:N의 곤계로 구성한다. 하나의 게시물에 여러 개의 댓글을 추가하는 형태로 구성하고, 화면은 조회 화면상에서 별도의 화면 이동 없이 처리하기 떄문에 Ajax를 이용해서 호출한다, 프로젝트의 구성 REST 처리를 위해서는 pom.xml에서 수정된 내용이 대부분이므로 Part 3 에서 사용된 src/main/java 폴더 아래 모든 Java 코드를 그대로 복사해서 사용한다. src/main/resources에서는 log4jdbc-log4j2를 이용하기..

Spring 2023.03.29

스프링 - Part 4 - REST 방식과 Ajax를 이용하는 댓글 처리 01 (REST 방식으로 전환)

REST 방식으로 전환 @RestController REST 방식에서 가장 먼저 기억해야 하는 점은 서버에서 전송하는 것이 순수한 데이터라는 점이다. 기존 Controller에서 Model에 데이터를 담아서 JSP 등과 같은(View)로 전달하는 방식이 아니므로 기존의 Controller 와는 조금 다르게 동작한다. 예제프로젝트 준비 Spring Legacy Project를 이용해서 ex03 프로젝트를 생성한다. pom.xml // pom.xml 4.0.0 org.codehows controller ex03 war 1.0.0-BUILD-SNAPSHOT 11 5.0.7.RELEASE 1.6.10 1.6.6 org.springframework spring-context ${org.springframework..

Spring 2023.03.28

스프링 - Part 3 - 기본적인 웹 게시물 관리 09 (검색처리)

검색 처리 검색 기능과 SQL 게시물의 검색 기능 제목/내용/작성자와 같이 단일 항목 검색 제목 or 내용, 제목 or 작성자, 내용 or 작성자, 제목 or 내용 or 작성자와 같은 다중 항목 검색 검색항목은 제목/내용/작성자와 같은 단일 항목 검색과 제목 or 내용과 같이 복합적인 항목으로 검색하는 방식이 존재한다. 단일 학목은 인라인뷰 안쪽에서 필요한 데이터를 가져올 때 검색 조건이 적용되어야 하기 때문에 WHERE문 뒤에 검색 조건이 추가되고, ROWNUM 조건이 뒤따르게 하면 문제가 없다. 다중 항목 검색 2개 이상의 조건이 붙는 다중 항목의 검색이다. 예 ) 제목이나 내용중에 TEST라는 문자열이 있는 게시물들을 검색하고 싶다면 다음과 같이 작성될 것. select * from ( select..

Spring 2023.03.28

스프링 - Part 3 - 기본적인 웹 게시물 관리 08 (페이징 화면 처리)

페이징 화면 처리 URL의 파라미터를 이용해서 정상적으로 원하는 페이지로 이동하는 것을 확인했다면, 화면 밑에 페이지 번호를 표시하고 사용자가 페이지 번호를 클릭할 수 있게 처리한다. 페이지를 보여주는 작업 브라우저 주소창에서 페이지 번호를 전달해서 결과를 확인하는단계 JSP에서 페이지 번호를 출력하는 단계 각 페이지 번호에 클릭 이벤트 처리 전체 데이터 개수를 반영해서 페이지 번호 조절 페이지 처리는 단순히 링크의 연결이기 때문에 어렵지는 않지만, 목록페이지에서 조회 페이지, 수정 삭제 페이지까지 페이지 번호가 계속해서 유지되어야만 하기때문에 끝까지 신경 써야 하는 부분들이 많은 편이다. 페이징 처리할 때 필요한 정보들 화면에 페이징 처리를 하기 위해서는 우선적으로 여러 가지 필요한 정보들이 존재한다...

Spring 2023.03.27

스프링 - Part 3 - 기본적인 웹 게시물 관리 07 (MyBatis와 스프링에서 페이징 처리)

MyBatis와 스프링에서 페이징 처리 MyBatis는 SQL을 그대로 사용할 수 있기 떄문에 인라인뷰를 이용하는 SQL을 작성하고, 필요한 파라미터를 지정하는 방식으로 페이징 처리를 하게 된다. org.codehows.domain 패키지에 Criteria 이름의 클래스를 작성한다. Criteria는 검색의 기준을 의미한다. Criteria 클래스 // Ctriteria.java package org.codehows.domain; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class Criteria { private int pageNum; private int amou..

Spring 2023.03.27

스프링 - Part 3 - 기본적인 웹 게시물 관리 06 (오라클 데이터베이스 페이징 처리)

오라클 데이터베이스 페이징 처리 구현된 기능들 중 가장 미숙한 부분은 목록 페이지이다. 목록 페이지는 기본적으로 페이징 처리가 필요한데 상식적으로 생각해 봐도 수 많은 데이터를 한페이지에서 보여주면, 처리성능에 영향을 미친다. 또한 브라우저에서도 역시 데이터의 양이나 처리속도에 문제를 일으키게 된다. order by의 문제 데이터베이스를 이용할 때 웹이나 애플리케이션에 가장 신경 쓰는부분 빠르게 처리되는 것 필요한 양만큼만 데이터를 가져오는 것 빠르게 동작하는 SQL을 위해서는 먼저 order by를 이용하는 작업을 가능하면 하지말아야한다. order by는 데이터가 많은 경우에 엄청난 성능의 저하를 가져오기 때문에 데이터가 적은 경우 정렬을 빠르게 할 수 있는 방법이 있는 경우가 아니라면 order b..

Spring 2023.03.27

스프링 - Part 3 - 기본적인 웹 게시물 관리 05 (화면처리-02)

https://rogi221.tistory.com/151 스프링 - Part 3 - 기본적인 웹 게시물 관리 05 (화면처리-01) 화면처리 목록 페이지 작업과 includes 스프링 MVC의 JSP를 처리하는 설정은 servlet-context.xml에 아래와 같이 작성되어 있다. servlet-context.xml 의 일부 스프링 MVC의 설정에서 화면 설정은 ViewResolver라는 rogi221.tistory.com 화면처리 모달(Modal)창 보여주기 최근에는 브라우저에서 경고창(alert)을 띄우는 방식보다 모달창(Modal)을 보여주는 방식을 많이 사용한다. BootStrap은 모달창을 간단하게 사용할 수 있으므로 목록 화면에서 필요한 메세지를 보여주는 방법을 사용해본다. list.jsp ..

Spring 2023.03.27

스프링 - Part 3 - 기본적인 웹 게시물 관리 05 (화면처리-01)

화면처리 목록 페이지 작업과 includes 스프링 MVC의 JSP를 처리하는 설정은 servlet-context.xml에 아래와 같이 작성되어 있다. servlet-context.xml 의 일부 스프링 MVC의 설정에서 화면 설정은 ViewResolver라는 객체를 통해서 이루어지는데 위의 설정을 보면 /WEB-INF/views 폴더를 이용하는 것을 볼 수 있다. WEB-INF 경로는 브라우저에서 직접 접근할 수 없는 경로이므로 반드시 Controller를 이용하는 모델 2방식에서는 기본적으로 사용하는 방식이다. 게시물 리스트의 URL은 /board/list이므로 최종적인 /WEB-INF/views/board/list.jsp가 된다 // list.jsp List Page 설정 SB Admin2 페이지 ..

Spring 2023.03.23

스프링 - Part 3 - 기본적인 웹 게시물 관리 04 (프레젠테이션(웹) 계층의 CRUD 구현)

프레젠테이션(웹) 계층의 CRUD 구현 Controller의 작성 스프링 MVC의 Controller는 하나의 클래스 내에서 여러 메서드를 작성하고 @RequestMapping 등을 이용해서 URL을 분기하는 구조로 작성할 수 있기 때문에 하나의 클래스에서 필요한 만큼 메서드의 분기를 이용하는 구조로 작성한다. BoardController의 분석 작성하기 전에 반드시 현재 원하는 기능을 호출하는 방식에 대해 테이블로 정리한 후 코드를 작성하는 것이 좋다. 테이블에서 From 항목은 해당 URL을 호출하기 위해서 별도의 입력화면이 필요하다는 것을 의미한다. BoardController의 작성 BoardController는 org.codehows.controller 패키지에 선언하고 URL 분석된 내용들을 ..

Spring 2023.03.22

스프링 - Part 3 - 기본적인 웹 게시물 관리 03 (비즈니스 계층)

비즈니스 계층 고객의 요구사항을 반영하는 계층 업무의 단위로 설계 트랜잭션의 단위 여러 개의 Mapper나 DAO를 사용하는 경우가 존재함 xxxService의 형태로 작성 비지니스 계층의 설정 비즈니스 계층을 위해서 프로젝트 내 org.codehows.service라는 패키지를 작성한다. 설계를 할 때 각 계층 간의 연결은 인터페이스를 이용해서 느슨한 연결을 한다. 게시물은 BoardService 인터페이스와 인터페이스를 구현한 BoardServiceImpl클래스를 선언한다. BoardService 인터페이스 // BoardService.java package org.codehows.service; import java.util.List; import org.codehows.domain.BoardVO;..

Spring 2023.03.22
728x90
반응형