
이번엔 게시글 조회가 안되네,,? 그런데 이번엔 회원 탈퇴처리를 한 후에 게시글을 조회해봤더니 NullPointerException이 발생하였다..... 회원이 탈퇴함에 따라 게시글과 연결된 회원 정보가 'null'로 설정된 것 까지는 잘 했는데,,, 이 상황에서 발생한 NullPointerException 오류는 게시글을 조회하는 과정에서 해당 게시글을 작성한 회원의 정보를 참조하려고 했으나, 회원 정보가 이미 'null'로 설정되어 있기 때문에 발생한 것이다. 즉 회원 정보가 'null'이 될 수 있다는 점을 체크하지 않고 회원 정보가 있을 때만을 고려하여 (null이 아닐 때만을 고려하여) 코드 구현을 했기 때문이다..!! trace를 보니 DTO 변환 로직을 수정해야 함을 알 수 있었다. 즉 Ar..

회원로직, 게시글 crud, 댓글 crud까지 다 구현한 후에 포스트맨으로 전체적으로 한 번씩 확인을 해주었다. 회원탈퇴 오류 근데... 회원로직만 테스트했을 땐 잘 됐던 회원탈퇴가 갑자기 이런 오류가 뜨면서 안됐다..ㅜㅜ trace를 잘 읽어보니 외래키 제약조건과 관련된 문제였다. member 테이블에서 member_id를 기반으로 한 행을 삭제하려고 시도했으나, article 테이블에 member_id를 참조하는 외래 키(FK6l9vkfd5ixw8o8kph5rj1k7gu)가 있어서 해당 작업이 실패한 것이다. 즉 로그인한 회원이 게시글을 쓴 상태에서 탈퇴를 하려니, 게시글에서 회원의 정보를 외래키로 갖고 있기 때문에 게시글 - 회원 간 제약조건을 설정하지 않으면 회원의 정보를 지울 수 없다(회원 탈퇴..

게시글 북마크 기능은 다 만들었고, 이제 유저(멤버)의 북마크 페이지나 마이 페이지에서 북마크한 목록을 조회하는 기능을 구현할 것이다. Dto MyBookamrkDto package com.example.MyFreshmanCommunity.dto; import com.example.MyFreshmanCommunity.entity.Article; import com.example.MyFreshmanCommunity.entity.Major; import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter; import lombok.NoArgsConstructor; import java.time.LocalDateTime; @Getter @A..

게시글 CRUD까지 구현했으니, 이제 댓글 CRUD도 구현해보겠다. 사실 댓글 로직은 게시글 로직과 거의 똑같다. Entity 설계 댓글 Create(생성), Read(읽기), Update(업데이트), Delete(삭제)를 위해 필요한 엔티티 Comment를 만들어주었다. Comment entity package com.example.MyFreshmanCommunity.entity; import com.example.MyFreshmanCommunity.dto.ArticleDto; import com.example.MyFreshmanCommunity.dto.CommentDto; import jakarta.persistence.*; import lombok.AllArgsConstructor; import l..

멤버 로직을 만들었으니, 이젠 게시글 CRUD를 구현해보겠다. Entity 설계 게시글 Create(생성), Read(읽기), Update(업데이트), Delete(삭제)를 위해 필요한 엔티티는 Article이다. Article entity package com.example.MyFreshmanCommunity.entity; import com.example.MyFreshmanCommunity.dto.ArticleDto; import com.example.MyFreshmanCommunity.repository.MajorRepository; import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.OnDelete; imp..

저번에 만들었던 회원가입, 로그인 로직에 이어 이번에는 로그아웃, 회원탈퇴 기능을 구현해보았다. SecurityConfig import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.a..

//중복회원 확인 private void validateDuplicateMember(SignupDto signupDto) { Long count = memberRepository.countByEmail(signupDto.getEmail()); if (count > 0) { // 중복된 이메일이 존재하는 경우 예외 발생 throw new DuplicateMemberException("이미 존재하는 회원입니다."); } } //로그인 public Member login (LoginDto loginDto) { Member member = memberRepository.findByEmail(loginDto.getEmail()); if (member == null) throw new MemberNotFoundEx..

프로젝트 소개 이번에 새내기를 위한 커뮤니티를 만드는 프로젝트를 진행하게 됐다. 스프링을 배우고 난 후 처음으로 하는 프로젝트라 효율적인 DB 및 JPA 사용 등 성능에 초점을 맞추긴 어렵겠지만, 그래도 최대한 열심히 이것저것 사용하며 배워보려고 한다! DB 설계 일단 db를 설계해두면 나중에 구현하기 더 쉬울 것 같아서 ERDCloud를 사용하여 설계해주었다. Entity 설계 일단 회원가입, 로그인 등의 멤버 로직을 만들기 위해 필요한 엔티티는 Member와 Major이다. package teamFive.freshmanCommunity.entity; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Getter;..
- Total
- Today
- Yesterday
- 영속
- SQL 레벨업
- 인텔리제이
- 스프링 북마크
- 북마크
- 스프링부트
- 웹 MVC
- 로깅
- 프론트엔드
- 준영속
- 백준 파이썬
- JPA
- 지연로딩
- 자바
- 스프링 커뮤니티
- SQL
- elasticsearch
- 커뮤니티
- 백준
- DP
- 웹MVC
- 로그아웃
- 파이썬
- 스프링
- 회원탈퇴
- 비영속
- 자바 스프링
- 다이나믹 프로그래밍
- EnumType.ORDINAL
- SQLD
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |