본문 바로가기

반응형

Server Programming/Spring Boot Backend Programming

(46)
[Spring 부트 - 영화 리뷰 프로젝트] 3. 영화 등록 처리 영화 등록, 사용자들이 영화 리뷰를 기록하기 위한 기능 영화 등록과 수정에는 영화 포스터를 등록할 수 있도록 구성 회원은 기존 회원들이 존재한다고 가정 후, 데이터베이스에 존재하는 회원을 이용 회원은 특정한 영화 조회 페이지에서 평점과 느낌을 리뷰로 기록가능 조회 화면에서 회원이 자신이 기록한 리뷰의 내용르 수정/삭제 가능 진행 순서 영화 등록 처리 영화 이미지 삭제 처리 1. 영화 등록 처리 (1) MovieController 작성 package com.movie.boot4.controller; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Controller; import org.springframework.web.b..
[Spring 부트 - 영화 리뷰 프로젝트] 2. 파일 업로드 처리 (2) 섬네일 이미지를 통한 화면 처리와 파일 삭제 원본 이미지를 보여주는 것보다 섬네일 이미지로 변환해 보여주는 것이 성능에 도움이 된다. 특히 목록 페이지의 경우, 보여주는 이미지가 많기 때문에 주의해야 한다. 섬네일 이미지의 처리 업로드된 파일 저장하고 섬네일 라이브러리 활용해 섬네일 파일 생성 섬네일 파일을 구분하기 위해 앞에 's_'를 붙여 구분한다. UploadResultDTO에 getThumbnailURL()을 추가해 섬네일 경로를 태그로 처리 섬네일 이미지 처리 라이브러리 : Thumbnailator 이용 -> 적은 양의 코드로 제작 가능하고, 가로 세로 사이즈 결정하면 비율에 맞게 조정해준다. https://github.com/coobird/thumbnailator GitHub - coobird/thumbnailator: Thumbnail..
[Spring 부트 - 영화 리뷰 프로젝트] 2. 파일 업로드 처리 (1) Ajax를 통한 JSON으로 이미지 업로드 return URLEncoder.encode(folderPath+"/"+uuid+"_"+fileName, "UTF-8"); 파일 업로드 처리 방법 파일 업로드 라이브러리 (commos-fileupload) 자체 파일 업로드 라이브러리 서블릿 기반 자체 파일 업로드 라이브러리 사용해 파일 업로드 처리 1. 섬네일을 만들어 이미지 파일 업로드 처리 2. 목록, 조회 화면에 섬네일 사용, 조회 화면에서 섬네일 클릭시 원본 파일 보이도록 작성 진행 순서 1. 파일 업로드를 위한, 애플리케이션 설정과 UploadController 작성 2. 업로드된 파일 저장할 때의 고려사항 적용과 Ajax를 통한 실제 업로드 이벤트 작성 3. 업로드 결과 반환과 화면 처리 https://gaea.tistory.com/m/ent..
[Spring 부트 - 영화 리뷰 프로젝트] 1. M:N (다대다) 관계 설계와 구현 [+ N+1 문제와 엔티티의 특정 속성 로딩 방법] 목차 데이터베이스의 관계 엔티티 관계 M:N 관계의 특징 매핑 테이블의 특징 JPA의 연관관계 설정과 처리 JPA에서 M:N 다대다 처리 방식 @ManyToMany를 이용한 처리의 문제 연관관계가 있는 엔티티의 DTO 처리 엔티티 클래스 설계 REST방식의 데이터 처리 엔티티 관계 영화와 회원 엔티티 회원이 영화에 대한 평점과 감상을 기록 한 편의 영화에 여러 회원의 평가 한 명의 회원은 여러 영화에 평점 게시물과 댓글의 경우엔, 하나의 댓글은 하나의 게시물에만 속하지만 영화와 회원은 각각 독립적인 존재 M:N 관계의 특징 논리적 설계와 실제 테이블 설계가 다르다. 개념적으로 다대다를 사용하지만, 실제 테이블 설계에서는 불가능하다. 테이블 구조의 RDBMS에서는, 칼럼을 지정할 때 크기를 지정 따라서, ..
[Spring 부트 - 댓글 프로젝트] 3-4. 댓글 비동기처리를 위한 @RestController와 JSON 처리 사용 기술 •데이터베이스의 관계 설정 •JPA의 연관관계 설정과 처리 •연관관계가 있는 엔티티의 DTO처리 •REST방식의 데이터 처리 요구사항 •화면에서 댓글 숫자를 클릭하면 댓글을 가져와서 출력 •새로운 댓글을 모달 창을 통해서 등록 •댓글 수정과 삭제 역시 특정 댓글 선택시 모달 창을 이용해서 처리 방식 호출 대상 파라미터 작업 반환되는 데이터 GET /replies/board/{bno} (게시물 번호) 게시물 번호 해당 게시물의 댓글들 조회 JSON 배열 POST /replies/ JSON으로 구성된 댓글 데이터 댓글 추가 추가된 댓글의 번호 DELETE /replies/{rno} 댓글의 번호 댓글 삭제 삭제 결과 문자열 PUT /replies/{rno} 댓글의 번호 + 수정할 내용 댓글 수정 수..
[Spring 부트 - 댓글 프로젝트] 3-2. 게시물과 댓글, 컨트롤러와 화면 처리 [자바스크립트] 요구사항 1. N:1 연관관계를 이용해, 게시글, 댓글, 회원 엔티티 작성 2. CRUD를 이용해 게시글, 댓글, 회원의 추가, 수정, 삭제 메서드 생성 3. RESTful을 이용해, JSON으로, 댓글은 Ajax를 이용해 비동기 처리 필수 과제 1. @ManyToOne 다대일 연관관계를 설정 2. 연관관계가 없는 상황에서 left (outer) join 처리 방법 3. 즉시 로딩과 지연 로딩 차이와 효율적인 처리 방법 1. 컨트롤러 만들기 ->게시물 등록의 경우, 작성자를 현재 존재하는 사용자의 이메일 주소로 지정 목록 : GET 등록 : GET/POST 조회 : GET 수정/삭제 : GET (read멤서드 이용) /POST (modify() / remove()) package com.board.boo..
[Spring 부트 - 댓글 프로젝트] 3-1. N:1 연관관계의 게시물과 댓글 CRUD 요구사항 1. N:1 연관관계를 이용해, 게시글, 댓글, 회원 엔티티 작성 2. CRUD를 이용해 게시글, 댓글, 회원의 추가, 수정, 삭제 메서드 생성 3. RESTful을 이용해, JSON으로, 댓글은 Ajax를 이용해 비동기 처리 필수 과제 1. @ManyToOne 다대일 연관관계를 설정 2. 연관관계가 없는 상황에서 left (outer) join 처리 방법 3. 즉시 로딩과 지연 로딩 차이와 효율적인 처리 방법 연관관계와 관계형 데이터베이스 설계 :PK와 FK의 설정 고유한 키값을 가지는 PK를 여러개 FK에서 참조하는 관계 : @ManyToOne -> 특정한 PK가 다른 곳에서 몇번 FK로 사용되는지 파악 한 명의 회원은 여러 개의 게시글 작성 가능 하나의 게시글은 한 명의 작성자만 표시 즉,..
[Spring 부트 - 방명록 미니 프로젝트] 2-3. 서비스, DTO, 컨트롤러 작성 (2) 요구사항 목록 전체 목록 페이징 처리해 조회 제목/내용/작성자 항목으로 검색과 페이징 처리 등록 새로운 글 등록 후 다시 목록 화면으로 이동 조회 목록 화면에서 특정 글 선택시 자동으로 조회 화면으로 이동 수정/삭제가 가능한 화면으로 이동가능 수정/삭제 수정 화면에서는 삭제가 가능하고, 삭제 후에는 목록 페이지로 이동 글 수정 후에는 다시 조회 화면으로 이동해 수정 내용 확인 가능 #조회 1. 서비스 구현 : 인터페이스에 추상메서드 추가하고 ,구현 클래스에서 구현 public interface GuestbookService { GuestbookDTO read(Long gno); } @Service @Log4j2 //이 어노테이션은 초기화 되지않은 final 필드나, @NonNull 이 붙은 필드에 대해..

반응형