🚗 Backend Toy Project/스프링 부트 게시판

    [스프링부트 게시판] 37. 비밀번호 찾기

    사용자가 비밀번호를 기억하지 못할 경우 이메일을 통해 임시 비밀번호를 보내주고 기존 비밀번호를 해당 임시 비밀번호로 변경하여 로그인 할 수 있도록 구현해보았습니다. 즉 임시 비밀번호가 발송되게 되면 기존 비밀번호로는 로그인 할 수 없습니다. 참고로 프로젝트에서 메일 발송을 하기 위해선 해당 포스팅에 작성된 내용 말고도 추가적으로 진행해야되는 과정이 있지만 핵심내용은 아니라고 생각하여 해당 부분은 생략하였습니다. 스프링부트 메일 전송에 대한 자세한 설명은 아래 링크에서 확인하실 수 있습니다. SpringBoot에서 SMTP를 활용한 메일 전송 구현하기 📝 SMTP란? 스프링에서는 SMTP Relay를 이용한 메일 전송 기능을 제공하고 있습니다. 여기서 SMTP는 Simple Mail Transfer Pro..

    [스프링부트 게시판] 36. 관리자 페이지 - 게시글 통계

    이번에는 그래프를 통해 게시글 통계를 출력하여 사용자들의 게시글 작성 현황을 한 눈에 확인할 수 있도록 구현해보았습니다. 우선 해당 페이지의 구현은 아래와 같습니다. 해당 통계 페이지의 디자인은 티스토리 블로그의 방문 통계 페이지를 참고하였습니다. 그래프 구현 말고는 어려운 부분이 없기 때문에 그래프 구현에 대한 부분만 설명하겠습니다. 📝 Google Chart 먼저 그래프는 최근 7일간의 카테고리별 게시글 작성 통계를 나타내도록 할 것입니다. 저의 경우 검색을 통해 맘에드는 그래프 템플릿을 찾을 수 있었으며 해당 템플릿의 큰 틀에서 저의 입맛대로 조정해보았습니다. 제가 사용한 구글 차트 그래프 템플릿은 아래 블로그에서 확인하실 수 있습니다. 구글차트(Google Chart) 사용해서 그래프 생성하기 -..

    [스프링부트 게시판] 35. 관리자 페이지 - 회원 관리

    관리자 페이지를 구현하여 회원 및 게시판을 관리할 수 있도록 구현해보려고 합니다. 오늘은 우선 회원 관리 페이지를 구현하여 해당 사이트에 회원가입한 사용자들을 확인하고 해당 사용자가 작성한 게시글과 댓글을 확인할 수 있도록 하였습니다. 추가로 관리자의 권한으로 특정 사용자를 탈퇴시킬 수 있도록 구현해보았습니다. 📝 회원 관리 페이지 우선 관리자 페이지 경로를 요청받는 새로운 컨트롤러를 작성해주었습니다. package com.cos.blog.controller; ... @RequiredArgsConstructor @Controller public class AdminController { private final UserRepository userRepository; @GetMapping("/admin")..

    [스프링부트 게시판] JPA Specification을 통해 쿼리 조건 다루기

    이번에 게시판 카테고리를 구현하면서 기존에 Repository에 쿼리를 직접 만들어 사용하던 방식 대신 좀 더 편하고 가독성도 좋은 방식을 알게되어 해당 방식으로 코드를 수정하게 되었습니다. 우선 기존에 사용하던 코드는 아래와 같습니다. if(category.equals("screenshot")) { model.addAttribute("boards", boardRepository.findAllByCategory(CategoryType.SCREENSHOT, pageable)); return"index"; } if(searchKeyword == null || searchKeyword.isBlank()) { model.addAttribute("boards", boardRepository.findAll(page..