개인 프로젝트 28

react+springboot로 만든 나만의 블로그 배포 완료

[간략 배포 과정] aws에서 ec2생성 후 내 컴퓨터와 ec2에 도커 설치하기 내 컴퓨터에서 프론트, 백엔드 빌드 후 이미지 만들어서 도커 허브에 push ec2에서 이미지(mariadb, 프론트, 백) pull해서 container실행하기 도메인 네임 서비스로 tastynut.blog로 등록하기 접속: www.tastynut.blog Tnut's blog www.tastynut.blog [참고한 사이트들] ec2 xshell로 접속하기: https://itmoon.tistory.com/58 spring boot 이미지 만들기: https://ksr930.tistory.com/139 dockerhub 업로드 하기: https://onu0624.tistory.com/55 ubuntu에 docker 설치하..

개인 프로젝트 1차 완성(React, spring boot)

https://github.com/lhj0954/Tastynutblog.git GitHub - lhj0954/Tastynutblog: 혼자서 만들고 운영해보는 개인 블로그입니다. 혼자서 만들고 운영해보는 개인 블로그입니다. Contribute to lhj0954/Tastynutblog development by creating an account on GitHub. github.com 1차 완성입니다. react + spring boot로 만든 개인 블로그입니다. 개발일지: (작성 중) ----------------------------------------------------------------------- [도움이 됐던 사이트] https://ykh6242.tistory.com/entry/JPA-..

댓글에 유저 정보를 담아보자 2

여기는 react 구현 : 로그인 성공시 accessToken, refreshToken, authority를 담아오는 페이지, authority를 localStorage에 객체로 담을 수 없기 때문에 JSON.stringfy()를 통해 스트링으로 저장해주고 나중에 JSON.parse()를 통해 객체로 받아주기 위한 수정 fetch("http://localhost:8080/authority", { headers: { AccessToken: localStorage.getItem("Tnut's accessToken"), }, }) .then((res) => res.json()) .then((res) => { localStorage.setItem("authority", JSON.stringify(res.data..

댓글에 유저 정보를 담아보자 feat.@AuthenticationPrincipal

새로 알게된 @AuthenticationPrincipal 덕분에 앞서 이전 코드들이 넓게 넓게 변화한부분들이 있다. @AuthenticationPrincipal 어노테이션은 간단히 말해서 authentication객체에 접근할 수 있는 어노테이션이다. 즉, 필터에서 인증을 통해 authentication객체를 담았다면(나는 jwt인증을 통해서 담아주었다. 밑 코드 참고) 해당 어노테이션을 통해 객체에 접근하여 원하는 데이터를 사용할 수 있다. -생략- if (username != null) { //유효한 jwt토큰이 들어왔다면 System.out.println("jwt토큰이 유효함"); User userEntity = userRepository.findByUsername(username); Princip..

네이버 카카오 Oauth2.0 로그인 구현

구글에 이어 추가적으로 네이버, 카카오 oauth2.0 을 구현하였습니다. naver: client-id: [RestApi 키] client-secret: [Secret] scope: - email - name client-name: Naver authorization-grant-type: authorization_code redirect-uri: http://localhost:8080/login/oauth2/code/naver kakao: client-id: [RestApi 키] client-secret: [Secret : 카카오 로그인-보안 에서 활성화하고 받기] scope: - account_email client-name: Kakao authorization-grant-type: authoriza..

댓글 수정 구현 + react에서 수정,삭제하기

@Transactional public Reply replyUpdate(ReplyUpdateDto replyUpdateDto) { Reply replyEntity = replyRepository.findById(replyUpdateDto.getId()) .orElseThrow(()->new IllegalArgumentException("이미 삭제된 댓글입니다.")); replyEntity.setContent(replyUpdateDto.getContent()); return replyEntity; } @Data @NoArgsConstructor @AllArgsConstructor public class ReplyUpdateDto { private Long id; private String content; ..

댓글 삭제 구현 로직 생각 및 구현

순서도 그리는 법을 까먹어서 알아볼수있을 정도만...다시 공부해야겠다.. package tnut.blogback.model; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.annotations.CreationTimestamp; import javax.persistence.*; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import j..

jpa 대댓글 삭제에 대한 고민

게시물의 댓글작성은 참조할 부모 id가 null로 작성되고, 게시글을 불러오면 부모가 null인 댓글이 불려 오고, 자기 참조에 의해서 대댓글들도 같이 불려 온다. 삭제시 1-1 : 자식이 있다. -> 허울뿐이더라도 살자...! 1-2 : 자식이 없다. -> 깔끔하게 삭제 2-1 : 부모댓글이 있다. 2-1-1 : 부모가 허울뿐이다. -> 부모까지 시원하게 삭제 2-1-2 : 부모가 짱짱하다. -> 자기자신만 깔끔하게 삭제 2-2 : 부모가 없다. -> 깔끔하게 삭제