본문 바로가기

SpringBoot

SpringBoot 게시판 기능구현 4 Today's 게시판 댓글 삭제 기능 구현 let's get it! 1. 게시판 댓글 삭제 기능 구현 Delete관련 Controller @RequestMapping(value = "comment", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public String deleteComment(CommentEntity comment, @SessionAttribute(value = "user", required = false) UserEntity user) { Enum result = this.bbsService.removeComment(comment, user); JSONObject res.. 더보기
SpringBoot 게시판 기능구현 3 1. 게시글 읽기(Read) 및 댓글 기능 구현 게시글을 읽는데 가장 중요한 조건 몇가지가 있다. 로그인된 회원만 볼 수 있다. Board Table에 있는BoardId와 게시판 도메인이 일치하는경우에 의해서만 게시글이 존재한다. 게시판이 있을 경우 게시글을 띄울때 그 게시글의 인덱스 번호를 활용해 어디 게시판의 몇번째 게시글인지 알아야 한다. 이를 줄여서 aid(ArticleId)라고 하고 bbs/write?aid=index값으로 도메인에 표시하려고 한다. 다음은 aid값을 구하는 과정을 기능구현한 것이다. SELECT `index` AS `index`, `user_email` AS `userEmail`, `board_id` AS `boardId`, `title` AS `title`, `content`.. 더보기
SpringBoot 게시판 기능구현 2 1. 게시글 작성(write)에 관한 기능 구현 바로전 게시물에서는 게시판의 BoardId를 통해 공지사항, 자유게시판, QnA를 클릭시 그에 맞는 Board의 Text의 값을 가져 오는 것까지 구현하였다. 이번시간에는 게시판에 맞는 게시글 작성에 대한 기능구현을 해보자! @RequestMapping(value = "write", method = RequestMethod.GET, produces = MediaType.TEXT_HTML_VALUE) public ModelAndView getWrite(@SessionAttribute(value = "user", required = false) UserEntity user, @RequestParam(value = "bid", required = false) S.. 더보기
SpringBoot 게시판 기능구현 1 일반적으로 게시판은 Login이 된 User를 기준으로 기능이 구현된다. 즉 Session에 저장된(로그인이 완료가 된) User의 값을 토대로 게시판 기능구현이 수행되어야 한다. 1. 게시판 DB 구조 이번 프로젝트에서 사용할 게시판 기능은 총 3가지이다. 기본적 게시판 구조, 좋아요 기능 구현, 대댓글 등이 있다. Board Table CREATE TABLE `study_bbs`.`boards` ( `id` VARCHAR(10) NOT NULL, `text` VARCHAR(100) NOT NULL, CONSTRAINT PRIMARY KEY (`id`) ); id에는 free, notice, qna 3가지의 값이 들어가고(이때 id값들은 각각의 도메인 끝의 값의 역할을 한다.) text에는 각각의 id.. 더보기
SpringBoot 회원가입 기능구현 4 , 비밀번호 재설정 기능구현 1. 회원가입에 관한 기능 구현 이메일 인증이 완료가 되었을 경우에는 클라이언트의 모든 정보를 정상적으로 DB에 저장해야 한다. @Transactional public Enum result = this.memberService.recoverPasswordCheck(emailAuth); JSONObject responseObject = new JSONObject(); responseObject.put("result", result.name().toLowerCase()); if (result == CommonResult.SUCCESS) { responseObject.put("code", emailAuth.getCode()); responseObject.put("salt", emailAuth.getSalt().. 더보기
SpringBoot 로그인 기능 구현, session값을 통한 게시판 접근 1. 로그인 Controller 기능 구현 @RequestMapping(value = "login", method = RequestMethod.GET, produces = MediaType.TEXT_HTML_VALUE) public ModelAndView getLogin() { ModelAndView modelAndView = new ModelAndView("member/login"); return modelAndView; } @RequestMapping(value = "login", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public String postLogin(UserEntity u.. 더보기
SpringBoot 회원가입 기능구현 3 1. 회원가입 관련 enums Package, utils Package생성 및 기능 구현 Util 클래스를 사용하는 이유에 대해서 알아보자. 현재 이 프로젝트 안에서 사용되는 Hashing관련 코드는 중복되어 사용되기 때문에 클래스안에 묶어서 사용하는 것이 효율적이다. 1. CrytoUtils 클래스안 hashSha512메서드를 생성 및 로직 구현 public static String hashSha512(String input) { try { StringBuilder passwordSaltHashBuilder = new StringBuilder(); MessageDigest md = MessageDigest.getInstance("SHA-512"); md.update(input.getBytes(Stand.. 더보기
SpringBoot 회원가입 기능구현 2 1. 이메일 인증 번호를 보내는 JS 기능 아래 JS는 이메일인증번호 전송하기 버튼을 클릭했을때 발생하는 이벤트 로직을 구현한 것이다. email input칸의 value값이 비어있거나 정규식(이메일 기준 정규식이 있음)을 통과하지 못할경우에는 return을 하여 클라이언트에게 경고창을 띄워주는 역할을 한다. 2. 이메일 인증 번호를 보내는 JS 기능(XHR) Cover.show(text)를 통해 인증번호가 전송되고 있다는 정보를 클라이언트에게 전달. formData에 인증할 email값을 실어서 보낼준비를 한다. xhr.open('POST', './email')을 통해 Controller에 있는 POST요청방식의 email(value)와 연결을 시켜준다 open()이 정상적으로 실행이 되었다면 Cove.. 더보기