본문 바로가기

dev-log147

Day 31. 연관관계야 나랑 그만 연관관계를 맺어보자~ plz🙏🏻 지난 주 시험부터 나의 발목을 잡고 놔주질 않네 연관관계 ^^ 미챠버리겠다. 오늘의 연관관계는! 게시물 - 댓글 - 좋아요 문제였다. 그냥 게시물 삭제? OK / 댓글이 달린 게시물 삭제? OK !! but, 그러나 좋아요 달린 게시글, 좋아요 달린 댓글 삭졔? NO!!! 좋아요 엔티티의 리스트를 게시글과 댓글이 가지도록 연관관게를 추가해주니 잘 작동하였으나 왜인지 코드가 많이 지저분해진 느낌적인 느낌이랄까? Post @JsonBackReference @OneToMany(mappedBy = "post", cascade = CascadeType.REMOVE) private List postLikeList; Comment @JsonBackReference @OneToMany(mappedBy = "commen.. 2023. 5. 3.
Day 30. Column user_user_name cannot be null 회원탈퇴 기능을 구현하는 중에, 계속해서 만난 오류 Column user_user_name cannot be null 도대체,, 어디서 user_user_name 이라는 컬럼이 만들어졌을까? 나는 user_name 만 설정해주었는데 왜 JPA 마음대로 user_user_name 이라는 컬럼으로 바꿔버린걸까? 삽으로 계속 파고 파고 또 파서 얻은 결과, users 엔티티와 refresh Token 엔티티 간의 연관관계 문제라는 것을 알게 되었다. 실제로 회원 탈퇴를 진행하면 db에서 다 지워버리는 경우가 거의 없고 남겨놓는다고 하는데 지금은 배우는 과정이기 때문에 회원이 탈퇴를 하면 다 지워지도록 설정해줬다. 그렇게 하기 위해 user - refresh token @OneToOne 으로 설정해줌 Users.. 2023. 5. 2.
Day 29. 오류가 너무 웃겨서 배꼽 빠지게 웃으면서 개발함ㅋㅋㅋㅋ 아 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 오늘은 정말 너무 웃겨서 배꼽 잡으면서 개발을 했다. 이런게 진짜 개발의 묘미인걸까? 😀 게시물을 페이징 처리해서 조회를 하려는데 이런식으로 참조가 끝나지 않고 계속해서 데이터를 받아왔고 일단 8000줄이 넘도록 돌아갔다 ㅋㅋㅋㅋㅋㅋ 그냥 순환참조 오류가 나서 아예 500 서버 에러를 만난 적은 있어도 이렇게 직접 본 것은 처음이라 같이 코드를 고민하고 있던 동료들과 한참을 웃으면서 봤다. 이런 오류가 생긴 것은, 회원 탈퇴 기능을 구현하기 위함에서 시작되었다. @OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE) private List postList; @OneToMany(mappedBy = "user", cascade =.. 2023. 5. 1.
Day 28. 계속해서 익숙해지는 수 밖에 없지 이번 주는 스프링 부트로 CRUD 기능을 가진 나만의 블로그를 만드는 과제를 하기 위해 계속해서 스프링부트로 직접 코드를 구현해보고, 또 JPA를 공부하는 주였다. 스프링 부트를 배우다보면 JPA를 빼놓을 수 없고 또 이것이 중요하다고 듣게된다. 그래서 새롭게 JPA 스터디를 시작하게 되었다. 그리고 과제를 위해 시작한 프로젝트를 과제 주제만 구현하는것에서 멈추는 것이 아니라 조금 더 많은 기능을 붙여보기 위해 한 주를 보냈다. 기능을 더 붙여나가려면 기존에 내가 만들어낸 코드를 제대로 이해하고 있어야 했고 이 과정을 위해 다른 동료들과 코드 리뷰를 하는 시간을 가졌다. 코드 리뷰를 하면서 느낀 것은 내가 만들어냈어도 또 다시 보면 이해가 안된 부분이 많다는 것이었다. 그리고 훨씬 깔끔한 코드를 만들어낸.. 2023. 4. 30.
Day 27. 열심히 하고 있습니다. Aㅏ... 리프레시 토큰 & 액세스 토큰 적용 2일차 ... 삽질 진짜 엄청나게 했다. 리프레시 토큰을 틀리게 입력하면 그래도 글 작성이 되길래 구현이 잘못된 줄 알았다.... 그런데 이게 결국은 리프레시 토큰은 기능 구현에서는 큰 의미가 없었고 오로지 액세스 토큰이 만료되었을 때 사용하기 위한 녀석이었다... 그러니까 리프레시 토큰이 틀리더라도 액세스 토큰만 잘 살아있으면 글 작성이 제대로 되는 것이었다.ㅠㅠㅠㅠ 애초에 설계했던게 맞았는데 그게 틀린 줄 알았으니 이게 해결될 일이 있나 ^^ 오늘은 터무니 없게 삽질한 날이라 끝나고 머리가 텅텅 비어버렸다. ㅠㅠ 그래도 조금 더 해보려고 회원 탈퇴 기능 추가했는데 아직 완벽히 구성은 안됐다. 리프레시 토큰까지 적용하고 나니까 연관관계를 설정해서 회원 탈퇴.. 2023. 4. 29.
Persistence Context ! reference https://perfectacle.github.io/2018/01/14/jpa-entity-manager-factory/ (JPA) Entity와 EntityManager와 EntityManagerFactory 이미지 출처: 평양 육아원의 모습 EntityDB의 테이블과 매칭이 되는 개념이라고 보면 된다.그렇다면 왜 이름이 Table이 아니라 Entity일까…? 만약 DB에 member라는 테이블이 있고, perfectacle.github.io https://interconnection.tistory.com/121 JPA 더티 체킹(Dirty Checking)이란? JPA(Java Persistence API)를 사용하면서 더티 체킹과 트랜잭션의 관계에 대해서 알고 있지 않으면, 비즈.. 2023. 4. 29.
320x100