개인 프로젝트 29

2025년 5월 7일 다시 코딩 공부를 시작하며

2023년 2024년 it 산업기능요원을 바랐으나 뜻대로 풀리지 않기도 하고 빠르게 병역의무를 다해야 한다는 생각에 본가 근처 공장에서 2년간 땜질과 컴퓨터 조립을 하며 지냈다...공장에서 일한다는 말은 막연하게 첫 직장생활을 하는 나에게 매우 고된 일과 공장 직원들의 텃세에 대한 생각으로 나를 둘러싸게 했지만 막상 공장에서 일해보니 다들 결국 직장인일 뿐이었다. 각자의 역할이 있었고 그 안에서의 인간관계에 나름 만족하며 생활했다. 덕분에 큰 사고 없이 2025년 2월 무사히 전역하였다. 또한 2년간 열심히 돈을 모아 등록금과 생활비를 저축하여 2025년 복학할 수 있게 되었다.충북대 소프트웨어학과를 1, 2학년을 마치고 군(?)에 다녀왔기 때문에 3학년으로 복학하게 되었는데,,, 2년간 컴퓨터는 그저 ..

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..