🌿SPRING/🌱연습[SPRING] 16

[SPRING][AWS] 게시글 이미지 업로드하기 (4) - 썸네일 이미지 같이 업로드 하기 (Thumbnailator, Gradle)

더보기 https://doing7.tistory.com/45 [AWS] S3를 Spring에서 사용하기 - 이미지 업로드 [ 버킷 정책 설정 ] 버킷 정책 수정한다. 퍼블릭 엑세스 차단 해제를 하고, 버킷 정책을 설정하는 방법을 사용할 것이다. { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect":.. doing7.tistory.com https://lifere.tistory.com/entry/Spring-%EC%8D%B8%EB%84%A4%EC%9D%BC-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%83%9D%EC%84%B1?category=479185 [Spring] 썸네일 이미지 생성 [Spri..

[SPRING][JPA] Paging/Pagination - Pageable 객체 받아 사용하기

더보기 https://tecoble.techcourse.co.kr/post/2021-08-15-pageable/ Pageable을 이용한 Pagination을 처리하는 다양한 방법 Spring Data JPA에서 Pageable 를 활용한 Pagination 의 개념과 방법을 알아본다. tecoble.techcourse.co.kr https://tmdrl5779.tistory.com/61 [JPA] Paging JAP Paging DB에 저장된 데이터들을 페이지에 맞춰서 몇개씩 뿌릴건지 알려주는것. DB에 저장된 데이터가 30개라고 한다면 프론트에서 1페이지, 5개 라고 요청을 한다. 그러면 백엔드에서 전체 DB에서 tmdrl5779.tistory.com http://devstory.ibksplatfor..

[SPRING] JWT Exception

더보기 https://beemiel.tistory.com/11 Spring Security JWT 토큰 검증 시 Exception 예외 처리 Spring Security 예외 Spring Security에서 토큰을 검증할 경우, 예외가 발생한다면 기존에 사용 중이던 Custom Exception으로 처리가 될까? 그러면 편하긴 하겠지만 그건 안될 말이지^^ 🙃아니🙃 왜 안되는 beemiel.tistory.com https://velog.io/@hellonayeon/spring-boot-jwt-expire-exception [Spring Boot] JWT 토큰 만료에 대한 예외처리 velog.io 왜 따로 처리해주어야 할까? JWT 토큰의 예외처리는 이전에 만들어 둔 전역 예외처리에 걸리지 않는다. 전역 ..

[SPRING] AOP 예외 처리 / Global Exception Handler 전역 예외 처리

2022.09.01 - [SPRING] - [SPRING] AOP 개념 [SPRING] AOP 개념 참고블로그 우아한테크 유튜브 Aspect Oriented Programming 관점지향프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점에서 나누어서 보고 그 관점을 기준으로 각각 모듈화 하겠다는 것 wearegolden.tistory.com 더보기 https://mangkyu.tistory.com/204 [Spring] 스프링의 다양한 예외 처리 방법(ExceptionHandler, ControllerAdvice 등) 완벽하게 이해하기 - (1/2) 예외 처리는 애플리케이션을 만드는데 매우 중요한 부분을 차지한다. Spring 프레임워크는 매우 다양한 에러 처리 방법을 제공하는데, 어떠한 방법..

[SPRING] 모임 태그 - 태그 수정하기 (2) + bug fix

2022.09.28 - [SPRING/🌱연습[SPRING]] - [SPRING] 모임 생성 시 태그 같이 넣기 [SPRING] 모임 생성 시 태그 같이 넣기 기본 CRUD를 다 만들고나서 태그기능도 있으면 좋을 것 같아서 추가하려다가 삽질을 엄청했다. 쉽게 생각했지만 역시 세상은 녹록치 않았다... 모임 (게시글) 생성 시에 이미 DB에 있는 태그들을 wearegolden.tistory.com 이어서 생성시에 넣었으니 수정 시에 같이 수정도 되어야 한다고 생각했다 일단 생각했던 로직은 1) 기존에 저장된 Tag를 모두 DB에서 지워주고 수정된 태그들만 다시 저장을 해주자! => 로직이 간단해지지만 불필요한 성능낭비 2) 기존에 저장된 Tag와 수정된 Tag를 비교해서 동일한 Tag는 그대로, 기존에는 있..

[SPRING] 모임 태그 - 생성 시 태그 같이 넣기 (1)

기본 CRUD를 다 만들고나서 태그기능도 있으면 좋을 것 같아서 추가하려다가 삽질을 엄청했다. 전에 했던 프로젝트에선 인스타그램에서 처럼 #를 추가해서 그걸로 검색하는 걸 했었는데 그때는 따로 DB에 저장하지 않기 때문에 로직때문에 고생하지않았었다.. 이번에도 괜찮을 줄 알았지만.. 역시 세상은 녹록치 않았다... 모임 (게시글) 생성 시에 이미 DB에 있는 태그들을 선택해서 같이 생성하고 수정 시에 태그도 같이 수정 가능하고 태그에 따라서 검색이 가능한 기능을 만들고 싶었다. 일단은 기본 생성을 만들어 두고, DB Table에 태그 Value 들을 넣어두었다. 그리고 매핑 관계를 보려고 하니.. 모임과 태그는 다대다 관계였다. (erd를 만들때 까지만해도 다대일 이라고 생각했지만 만들다 보니 여러개의 ..

[SPRING] [AWS] 게시글 이미지 업로드 하기 (3) - 이미지 수정,삭제하기 + bug fix

사실 어려운건 업로드가 아니었다... S3 설정만 잘해주면 잘 된다.. S3에 올라간 것도 확인이 되고 url도 잘 뱉어내고.. 문제는 수정! PUT 으로 게시글 전체 수정 메소드를 만든다 게시글 내용 수정 + 이미지 변경 잘됨 게시글 내용 수정 + 이미지 변경 안함 예상 : 게시글 내용만 수정 + 기존 이미지 그대로 결과 : 게시글 내용 수정 + 기존이미지가 아닌 null 값이 들어감. 🧨PUT 이기때문에 그런가? PATCH를 써야하나? 하다가 차라리 메소드를 나누기로 했다! PUT 게시글 내용 수정 메소드 // PUT 게시글 이미지 수정 메소드 어차피 메소드는 세세하게 주면 좋지 않을까..? 이왕 이렇게 된 거 게시글에서 이미지만 삭제하고 싶을 수 있지 않을까? DELETE 게시글 이미지 삭제 메소드..

[SPRING] [AWS] 게시글 이미지 업로드 하기 (2) - 이미지 업로드하기

게시글을 작성 시 이미지를 삽입이 되도록 로직을 짜보자 👀 1.Entity Posting 부분에 이미지를 넣는 게 추가되었으므로 필드도 추가해준다 @Column private String postImg; //게시글 작성시 public Posting(PostingRequestDto postingRequestDto, Member member, String postImg) { this.title = postingRequestDto.getTitle(); this.content = postingRequestDto.getContent(); this.member = member; this.postImg = postImg; this.likes = 0L; } 2.Service 기존에 있던 Create 부분에 사진을 삽입..

[SPRING] [AWS] 게시글 이미지 업로드 하기 (1) - S3 설정하기

이미지 업로드 부분을 계속 미뤄두다가 이젠 정말로 해야할 때가 왔다...... 일단은 개인프로젝트에 먼저 해보고나서 팀과제에 차차 구현해보려고 하는데 정말 어려웠다..........ㅠ aws S3 설정하기 다른 블로그 글을 보면서 설정을 했는데 (나중에 대참사가 일어남) 대충 설정을 하면 안되었다... aws...권한 설정 .. https://artiiicy.tistory.com/16 [AWS] S3 생성하기 + IAM 설정하기 AWS에서 제공하는 인터넷용 스토리지(strage) 서비스인 S3를 생성하고 IAM을 이용하여 리소스들을 안전하게 제어할 수 있도록 설정해보겠습니다. S3란? IAM이란? - S3 : (Simple Storage Service) 아마존에서 artiiicy.tistory.com 👉..

[SPRING] 토글 만들기 (Boolean)

좋아요는 아니고 TodoList에서 완료 체크를 하는 부분을 구현했었다. 이거는 내가 직접 구현했던 터라... 예전에 했던 걸 보면서 확인했는데 훨씬 간결하다 ㅎㅎㅎ.. 1.Entity 설정 To do 항목에 대한 완료 설정으로 딱히 Table로 저장될 필요가 없었다. @Getter @NoArgsConstructor @Entity public class ToDo extends Timestamped { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String content; private String tag; // boolean 으로 지정 private boolean ..

[SPRING] 좋아요 토글 만들기 (0,1)

계속 미뤄두던 좋아요 토글 ㅎㅎㅎ 사실은 다른 프로젝트하면서 구현은 했으나(boolean) 버튼이름이 좋아요가 아닐 뿐이었다... 어째든 좋아요 토글을 예전에 프로젝트 할 때는 (0,1) 방식으로 구현했던 게 있어서 그걸 한번 해보았다. 많이 어렵지는 않으나 역시 또 까먹을까봐 정리해두기....^^ 1. Entity 설정 @Builder @Getter @AllArgsConstructor @NoArgsConstructor @Entity public class LikePost { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @JoinColumn(name = "member_id", nullable = false) @ManyT..

[SPRING] 클론코딩 장바구니 로직 만들기

이번 프로젝트는 IKEA 클론 코딩이었다. 일주일이라는 시간동안 해내는거라 스코프는 최대한 작게 했다. 그 중에 나는 장바구니 .. 뭔가 특별하게 어려운가? 싶어서 인터넷에서 레퍼코드를 찾아보겠다고 하루를 할애했다.. 실제로 찾기는 했으나 원래 하던 방식이 아니라서 또 멘붕....... 결국에는 그냥 알던대로 하기로 했다 ..^^ㅋㅋㅎ 1. Entity 설정 기획 시 ERD를 설계했던대로 엔티티를 설정해준다. @Getter @NoArgsConstructor @AllArgsConstructor @Entity public class Cart extends Timestamped{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; ..

[SPRING] 회원정보 조회 로직 만들기

팀과제를 하는데 회원정보를 수정하고 회원 정보만 조회하는 로직을 만들기로 했다. 그동안에 해오던 CRUD여서 자만했는데 혼자서 하다가 혼란에 빠졌었다.. 회원정보이기 때문에 로그인한 사용자의 userDetails를 사용하면 되는데 그걸 생각을 못하고 2022.08.23 - [SPRING] - [SPRING] Spring Security framework [SPRING] Spring Security framework : Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크. 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어줌! wearegolden.tistory.com 평소 CRUD 처럼 repository에서 id 값에..

[SPRING] 입문주차 과제 - 출력 값 + 에러코드 만들어주기

=> "success" : true "data":[{ 조회 값 }] "error" : null =>"success" : true "data":[{ 작성한 것들 }] "error" : null 에러메세지 ^^,,,,, 여기까지 해놓고 다한 줄 알았음^^!!! 생각지도 못함 ㄴㅇㄱ 그러면 뭐다? 수정해줘야지 ^^ 야호!! - 출력 값을 모두 data로 감싸서 그안에 입력되어있음 + success :boolean + error : code/msg 가 따로 뜸! - success가 true일때 : 정상 출력, error : null false 일때 : 에러메세지만 출력 data : null 1차로 든 생각은 [Controller]에서 리턴 값들을 모두 바꿔주면 되겠다! 뭘로? =>Response Dto 를 따로..

[SPRING] 입문주차 과제 - 전체 게시글 목록 조회 / 게시글 조회

03 주차 과제를 잘해낸 줄 알았더니 아니었다 ... 전체 게시글 조회 시 : 제목/ 작성자명/ 작성 날짜 가 떠야하고 게시글 조회 시 : 제목/ 작성자명/ 작성날짜 / 작성내용 이 떠야했다.. 어제까지 만든건 모두 다 떴다 ...^^ 작성날짜/수정날짜/id/제목/내용/작성자/내용/비밀번호 모두 .. 배포까지 다하고나서야 알게되어서 ... ㅎㅎ 그치만 제출 전까지 시간이 남은 상태에서라도 알게되었으니까 수정해야지..ㅎ [Controller] @GetMapping("/api/post") public List getPosting() { return postingRepository.findAllByOrderByModifiedAtDesc(); } Entity가 리스트 형태로 나온다 그렇다면 일단 Entity로 ..