[Spring Boot] AWS S3를 이용한 파일 업로드
2023. 4. 18. 17:59
Spring Boot/문법 정리
AWS S3 란? AWS Simple Storage Service의 줄임말로 파일 서버의 역할을 하는 서비스 프로젝트 개발 중 파일을 저장하고 불러오는 작업이 필요한 경우에 프로젝트 내부 폴더에 저장할 수 있지만, AWS S3를 사용하여 파일을 관리할 수도 있음 AWS S3의 장점 무제한 용량 (하나의 파일에 대한 용량 제한은 있지만, 전체 용량은 무제한) 파일 저장에 최적화 (개발자가 따로 용량을 추가하거나 성능을 높이는 작업을 하지 않아도 됨) 99.999%라는 높은 내구도 (파일이 유실될 가능성이 낮음) 이 외에도 저렴한 비용, 높은 객체 가용성, 뛰어난 보안성 등의 장점이 있음 AWS S3 생성 객체(Object) : 파일과 파일정보로 구성된 저장단위로 파일이라 생각하면 됨 버킷(Bucket) :..
[Spring Boot] 게시판 만들기 6 - 화면 제작
2023. 4. 17. 16:20
Spring Boot/프로젝트
HTML, Thymeleaf, BootStrap, JavaScript, JQuery를 사용하여 화면 제작 디자인이나 화면에 대해 자세히는 정리하지는 않고 핵심적인 부분만 설명 화면 관련 코드에 전체 코드가 있으니 참고 Thyemleaf와 관련된 것은 [Spring Boot] Thymeleaf 기능 정리, [Spring Boot] Thymeleaf - form 관련 기능 정리 참고 printMessage.html 이 페이지는 내용을 출력하기 위한 페이지가 아닌 javascript를 통해 메세지를 출력해주고, 바로 다음 페이지로 이동시켜주는 페이지 header.html 화면 상단의 nav-bar와 Bootstrap, css 등을 import 해주는 페이지 모든 페이지에 같은 nav-bar가 들어가기 때문에 ..
[Spring Boot] 게시판 만들기 5 - 댓글, 좋아요, 파일 업로드 관련 기능
2023. 4. 17. 16:10
Spring Boot/프로젝트
댓글 관련 코드 CommentRepository @Repository public interface CommentRepository extends JpaRepository { List findAllByBoardId(Long boardId); List findAllByUserLoginId(String loginId); } CommentService 댓글에 관련된 CRUD @Service @RequiredArgsConstructor public class CommentService { private final CommentRepository commentRepository; private final BoardRepository boardRepository; private final UserRepository..
[Spring Boot] 게시판 만들기 4 - 게시판 기능
2023. 4. 17. 16:06
Spring Boot/프로젝트
게시판 기능 글 작성, 조회, 수정, 삭제, 리스트 조회, 댓글, 좋아요 기능 자세한 기능 설계는 [Spring Boot] 게시판 만들기 1 - 설계 & 결과 참고 BoardRepository findAllByCategoryAndUserUserRoleNot() : 해당 카테고리에 있는 게시글을 페이지에 맞게 조회, 이 때 ADMIN이 작성한 글(공지)는 포함 X findAllByCategoryAndUserUserRole() : 해당 카테고리에 있는 공지 글 조회 findAllByCategoryAndTitleContainsAndUserUserRoleNot(), findAllByCategoryAndUserNicknameContainsAndUserUserRoleNot() : 검색 기능에 사용 findAllBy..
[Spring Boot] 게시판 만들기 3 - 유저 기능
2023. 4. 17. 16:01
Spring Boot/프로젝트
유저 기능 회원가입, 로그인, 정보 수정, 회원 탈퇴, 마이 페이지 자세한 기능 설계는 [Spring Boot] 게시판 만들기 1 - 설계 & 결과 참고 UserRepository findAllByNicknameContains() : 닉네임에 String이 포함되어 있는지 => ADMIN이 User 검색 시 사용 existsByLoginId(), existsByNickname() : 로그인 아이디, 닉네임을 가진 유저가 존재하는지 => 회원 가입 시 중복 체크용으로 사용 countAllByUserRole() : 해당 등급을 가진 유저가 몇명 있는지 => 홈 화면에서 출력하기 위해 사용 @Repository public interface UserRepository extends JpaRepository {..
[Spring Boot] 게시판 만들기 2 - 라이브러리 설치, ERD, Entity 생성
2023. 4. 17. 05:43
Spring Boot/프로젝트
프로젝트에 사용한 라이브러리 설치 (build.gradle) implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' testImplementation 'org.springframework.boot:spring-boot-starter-test' // DB runtimeOnly 'com.mysql:mysql-connector-j' implementation 'org.springfra..
[Spring Boot] 게시판 만들기 1 - 설계 & 결과
2023. 4. 16. 15:06
Spring Boot/프로젝트
설명 SpringBoot, Thyemleaf, MySQL을 활용한 게시판 만들기 화면에서는 BootStrap, JavaScript, JQuery를 사용 최대한 간단하게 만드려 했지만 이것저것 추가하다 보니 조금 복잡해진 것 같음.. Front-End가 따로 없고, Ajax 통신을 사용하지 않아서 REST API를 지키지 못했음 (GET, POST만 사용) 기능 설계 유저 기능 회원가입 아이디, 닉네임 중복 불가 로그인 아이디, 비밀번호로 로그인 정보 수정 비밀번호, 닉네임 수정 가능 회원 탈퇴 회원 탈퇴 시, 탈퇴한 유저가 작성한 글, 댓글, 좋아요 모두 삭제 마이 페이지 본인 정보 확인, 수정 및 본인이 작성한 글, 댓글을 추가한 글, 좋아요 누른 글 리스트를 확인할 수 있음 게시판 기능 게시판은 가입..