728x90

JAVA/SpringBoot 25

게시판 프로젝트 - 첨부파일 추가, 수정, 삭제 및 기존 파일 유지

게시글에 등록된 첨부파일을 상세 페이지에 출력해주는 기능을 구현. 기존에 첨부파일이 업로드된 게시글을 수정할 때 첨부파일을 추가, 변경, 삭제하는 방법과 파일에 변화가 없을 때 기존 첨부파일을 유지하는 방법을 알아볼 것 - 파일 응답 Response 클래스 생성 DB에 저장된 파일 정보를 조회하는 용도의 응답 클래스이다. 여기서 파일이란 실제로 디스크에 업로드된 후 파일 테이블(tb_file) 에 저장되는 정보를 의미한다. package com.study.domain.file; import lombok.Getter; import java.time.LocalDateTime; @Getter public class FileResponse { private Long id; // 파일 번호 (PK) private..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 다중 첨부 파일 업로드, 다운로드 구현

- 파일 테이블 생성 CREATE TABLE `tb_file` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '파일 번호 (PK)', `post_id` bigint(20) NOT NULL COMMENT '게시글 번호 (FK)', `original_name` varchar(255) NOT NULL COMMENT '원본 파일명', `save_name` varchar(40) NOT NULL COMMENT '저장 파일명', `size` int(11) NOT NULL COMMENT '파일 크기', `delete_yn` tinyint(1) NOT NULL COMMENT '삭제 여부', `created_date` datetime NOT NULL DEFAULT current_..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 로그인/ 로그아웃/ 로그인 세션 체크 기능

로그인, 로그아웃 기능을 구현하고, 인터셉터를 이용해 로그인이 되어있지 않은 경우, 게시판에 접근 할 수 없게 구현할 것 - MemberService 로그인 메서드 추가 public MemberResponse findMemberByLoginId(final String loginId) { return memberMapper.findByLoginId(loginId); } /** * 회원 정보 수정 * @param params - 회원 정보 * @return PK */ @Transactional public Long updateMember(final MemberRequest params) { params.encodingPassword(passwordEncoder); memberMapper.update(para..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 회원가입 기능

DB에 회원 데이터를 관리할 테이블을 생성한 후 회원가입 기능을 구현해보자 - 회원 테이블 CREATE TABLE `tb_member` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '회원 번호 (PK)', `login_id` varchar(20) NOT NULL COMMENT '로그인 ID', `password` varchar(60) NOT NULL COMMENT '비밀번호', `name` varchar(20) NOT NULL COMMENT '이름', `gender` enum('M','F') NOT NULL COMMENT '성별', `birthday` date NOT NULL comment '생년월일', `delete_yn` tinyint(1) NOT NULL..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - Ajax(비동기) 페이징 새로고침시 페이지 번호 유지하기

게시글과 같은 동기 처리는 페이지를 이동하는 시점에 주소URL가 변경되기 때문에 브라우저를 새로고침해도 페이지 번호화 검색 조건이 유지되지만 , Ajax는 페이지 번호에 해당되는 데이터를 조회하되 주소는 변경하지 않기 때문에 브러우저를 새로고침해도 페이지 번호가 유지되지 않는다는 문제가 있다. Histroy ApI 를 이용해 uri를 강제로 변경, 비동기 페이징 처리의 새로고침 문제를 해결한다. Histroy API? 사용자가 페이지에 접근을 하면 브라우저에 세션 기록이 쌓이게 된다. 이 세션 기록에 접근 할 수 있게 해주는 것이 브라우저의 history객체이다. - drawPage() view.html의 drawPage() 를 다음과 같이 변경해준다. // 페이지네이션 HTML draw function..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 댓글 페이징 처리

페이징과 검색처리에서 구현한 클래스들을 이용해 댓글에 페이징을 적용할 것이다. JQuery와 Ajax를 이용해 화면의 움직임 없이 페이지를 이동하도록 처리 할 것 Ajax? Asynchronous JavaScript and XML 비동기식 자바스크립트와 XMl 의 약자 빠르게 동작하는 동적인 웹페이지를 만들기 위한 개발 기법 중 하나. 웹페이지 전체를 다시 로딩하지 않고 웹페이지의 일부분만 갱신할 수 있다. 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능 자바 스크립트를 통해 서버에 데이터를 비동기 방식으로 요청하는 것이다. 클라이언트와 서버간 XML 데이터를 주고 받는 기술이다. 비동식? 웹페이지를 리로드 하지 않고 데이터를 불러오는 방식. 리소스 낭비를 막을..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 댓글 삭제 기능 구

- 댓글 API controller, 메서드 추가 CommentApiController // 댓글 삭제 @DeleteMapping("/posts/{postId}/comments/{id}") public Long deleteComment(@PathVariable final Long postId, @PathVariable final Long id) { return commentService.deleteComment(id); } REST API설계 규칙에서 다큐먼트에 해당되는 기능, 특정 게시글 (postid) 에 등록된 모든 댓글 중 PK(id)에 해당되는 댓글을 삭제한다. 삭제 프로세스가 완료되면 삭제된 댓글의 PK (id)를 리턴한다. -findAllComment() 함수 수정 삭제 상세페이지의 댓글은 ..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 댓글 수정 기능 구현

REST API, JSON 설명) REST API : Representational StateTransfer Application Program interface 자원을 이름으로 구분해서 표현해놓고, 그 자원들을 주고 받도록 만들어 놓은 시스템의 창구 응용 프로그램이 시스템에 있는 자원 (데이터 ) 을 쉽게 사용하기 위해 시스템이 각 자원에 이름을 붙여서 정리해 놓은 것 REST API 를 어디에 쓰나? 프론트엔드와 백엔드가 데이터를 주고받을 때. 프론트엔트가 응용 프로그램에 매칭되고 백엔드가 시스템에 매칭된다 백엔드는 데이터를 저장, 보관 처리하고, 프론트엔드는 백엔드의 데이터를 필요로 한다. 프론트엔드에서 만들어질 응용 프로그램이 백엔드 시스템의 데이터에 접근을 원할 때, 그러한 요청에 대해 쉽게 데..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 댓글 리스트 기능 구현

특정 게시글에 등록된 댓글을 출력하는 기능을 구현할 것. 게시길의 경우 게시글이 생성, 수정, 삭제 되는 시점에 리스트 페이지로 리다이렉트 되도록 처리 댓글은 등록,수정,삭제된 시점에 페이지를 이동하거나 새로고침하지 않고 테이블에소 select 한 결과 데이터를 댓글 영억에 다시 렌더링 한다. 댓글 API 컨트롤러에 메서드 추가 // 댓글 리스트 조회 @GetMapping("/posts/{postId}/comments") public PagingResponse findAllComment(@PathVariable final Long postId, final CommentSearchDto params) { return commentService.findAllComment(params); } @GetMappi..

JAVA/SpringBoot 2023.11.07

게시판 프로젝트 - REST API 방식으로 댓글 등록 기능 구현

댓글 컨트롤러 클래스 생성 rest controller는 화면이 아닌 데이터 자체를 리턴한다. 댓글 데이터의 CRUD는 전부 게시글 상세 페이지에서 이루어지기 때문에 화면을 따로 구성할 필요 없이 데이터만 주고 받으면 된다. package com.study.domain.comment; import com.study.common.paging.PagingResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @RestController @RequiredArgsConstructor public class CommentApiController { private final CommentServ..

JAVA/SpringBoot 2023.11.06
728x90
반응형