본문 바로가기

Spring Boot36

스프링 부트(Spring Boot) JPA 게시판 - 비동기(Ajax) 페이징(Paging) 및 검색(Search) - 페이지 번호 & 검색 조건 (이전 페이지 정보) 유지하기(With. MySQL) 본 JPA 게시판 프로젝트는 단계별(step by step)로 진행됩니다. 이전 글에서는 비동기 방식으로 페이징과 검색 처리를 하는 방법에 대해 알아보았습니다. 이번 글에서는 페이지를 이동했을 때 또는 검색 조건이 포함되어 있는 상황에서 이전 페이지 정보를 유지하는 방법을 알아볼 건데요, 페이지 정보 유지가 필요한 케이스는 다음과 같습니다. 1. 게시글 상세 페이지에서 뒤로가기 버튼을 클릭했을 때 2. 게시글 수정 페이지에서 뒤로가기 버튼을 클릭했을 때 3. 기존에 등록된 게시글을 수정했을 때 4. 기존에 등록된 게시글을 삭제했을 때 5. 페이지 새로고침(Refresh)이 실행됐을 때 만약, 150페이지에 있는 게시글을 수정 또는 삭제했는데 1페이지로 리다이렉트 된다면...? 네, 사용자 입장에서는 환장.. 2022. 1. 24.
스프링 부트(Spring Boot) JPA 게시판 - 비동기(Ajax) 페이징(Paging) 및 검색(Search) 처리하기 (With. MySQL) 본 JPA 게시판 프로젝트는 단계별(step by step)로 진행됩니다. 페이징에 대한 기본적인 지식을 가지고 있지 않으시다면, 페이징 알아보기를 읽어보시기를 권장드립니다 :) 이전 글에서는 게시글 상세 페이지(수정/삭제)를 구현해 보았습니다. 이번 글에서는 게시글 리스트 페이지에 페이지네이션 기능을 적용해볼 건데요. JPA의 Pageble이라는 녀석을 이용해도 되지만, 검색 조건 등을 쉽게 처리하기 위해서는 개인적으로 MyBatis를 이용하는 것이 효율적이라고 생각합니다. JPA에서 검색 조건이나 JOIN 등을 처리하기 위해서는 Repository에 직접 SQL을 작성하는 네이티브(Natvie) 쿼리를 이용하거나, Query DSL이라는 프레임워크를 이용해야 하는데요. 사실, 저는 Query DSL을.. 2022. 1. 24.
스프링 부트(Spring Boot) JPA 게시판 - 게시글 상세 페이지 구현하기 (With. MySQL, Thymeleaf) 본 JPA 게시판 프로젝트는 단계별(step by step)로 진행됩니다. 이전 글에서는 게시글 등록을 위한 write 페이지를 구현해 보았습니다. 이번 글에서는 게시글 상세 페이지인 view 페이지를 구현하게 되는데요. 게시글 상세 페이지에 필요한 대표적인 기능들은 다음과 같습니다. 1. 게시글 수정 페이지로 이동할 수 있는 기능 2. 게시글을 삭제하는 기능 3. 게시글의 조회 수를 증가시키는 기능 네, "백문이 불여일견이요, 백견이 불여일각이며, 백각이 불여일행"이지요. (어디서 주워들은 건 있어가지고...) 그럼, 바로 시작해 보도록 할게요 :) 1. Entity 클래스에 조회 수 증가, 게시글 삭제 기능 추가하기 package com.study.board.entity; import java.tim.. 2021. 11. 20.
스프링 부트(Spring Boot) JPA 게시판 - 게시글 등록 페이지 구현하기 (With. MySQL, Thymeleaf) 본 JPA 게시판 프로젝트는 단계별(step by step)로 진행됩니다. 이전 글에서는 타임리프(Thymeleaf) 템플릿 엔진과 부트스트랩(Bootstrap) 프레임워크를 이용해서, 모든 페이지에 사용될 레이아웃(layout.html)과 게시글 리스트 페이지(list.html)를 구현해 보았습니다. 이번 글에서는 게시글 등록 페이지를 구현하게 되는데요. 이전 글에서 레이아웃 작업을 미리 해두었기에 지금까지 보다 훨씬 수월하게 진행하실 수 있을 거예요 :) 그럼, 시작합니다! 1. 게시글 등록 HTML 생성하기 templates/board 폴더에 write.html을 생성해 주세요. 다음으로 write.html을 다음과 같이 변경해 주세요. 설명이 필요하지 않을 만큼 심플한 코드네요 :) 제목 이름 내.. 2021. 10. 2.
스프링 부트(Spring Boot) JPA 게시판 - 게시글 등록/수정 구현하기 (With. MySQL) 본 JPA 게시판 프로젝트는 단계별(step by step)로 진행됩니다. 이전 글에서는 애플리케이션 전역에서 예외를 핸들링하는 방법을 알아보았습니다. 이제부터 각 기능별로 서비스, 컨트롤러, 화면까지 전체적으로 구현해보는 시간을 가져볼 건데요. 이번 글에서는 비즈니스 로직을 담당하는 Service Layer와 API 호출을 담당하는 Rest Controller를 처리해 보도록 할게요. 그럼, 바로 시작해보죠 :) 1. 서비스 레이어(Service Layer)에서 사용할 클래스(Classes) 생성하기 Service Layer에서 API를 처리하기 위해 필요한 클래스는 다음과 같습니다. 자세한 내용은 각 클래스를 생성하는 과정에서 설명해 드리도록 할게요. 1. 게시글의 생성과 수정을 처리할 요청(Requ.. 2021. 9. 15.
스프링 부트(Spring Boot) JPA 게시판 - 전역 예외 처리(Global Exception Handling) 알아보기 본 JPA 게시판 프로젝트는 단계별(step by step)로 진행됩니다. 이전 글에서는 JPA의 개념과 사용 방법에 대해 간단하게 알아보았고, 게시글 생성(Create), 조회(Read), 삭제(Delete) 기능을 테스팅해 보았습니다. 이번 글에서는 스프링에서의 예외 처리 방법에 대해 말씀드리려 합니다. 기존에 알던 예외 처리와는 차원이 다른, 애플리케이션 전역에서 예외를 핸들링할 수 있는... (두근두근) 그럼, 바로 시작해 볼게요 :) 1. 로그백(Logback) 적용하기 이전 글에서 테스팅을 진행했을 때 SELECT 쿼리의 결과는 다음과 같았습니다. 개발 과정에서 로깅(Logging)은 너무나도 필수적인 요소인데요. 작업에 들어가기 전, 몇 가지 부가적인 설정들을 적용하고 시작하는 게 좋을 듯합.. 2021. 9. 14.