
멤버 로직을 만들었으니, 이젠 게시글 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;..

1️⃣ 💦문제💦 스프링부트3 자바 백엔드 개발 입문 댓글 조회하기에서 기사 조회할 때랑은 다르게 왜 엔티티에서 DTO로 변환하는지 잘 모르겠다.. 기사 조회할 때랑 똑같이 그냥 commentRepository.findByArticleId(articleId);만 해주면 되는 것 아닌가? 🌟해결🌟 엔티티를 반환하지 않고 DTO를 반환하는 이유는 엔티티와 응답을 따로 운용하는 것에서부터 출발한다. 엔티티에는 A라는 필드가 있지만, 응답에서 A라는 필드를 보여주고 싶지 않다면 어떨까? 엔티티에는 B라는 값이 없는데, 응답에서는 B라는 값을 보여주고 싶으면 어떻게 해야할까? 이 두 가지를 동시에 충족시켜 줄 수 있는것이 DTO이다. DTO는 외부로 나가는 데이터를 보안적인 측면에서 관리할 수 있으며, 엔티티에 값..

재밌어서 일주일만에 진도를 정말 많이 나간 것 같다. package com.example.firstproject.api; import com.example.firstproject.dto.ArticleForm; import com.example.firstproject.entity.Article; import com.example.firstproject.repository.ArticleRepository; import com.example.firstproject.service.ArticleService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springf..

💡AOP 💻AOP가 필요한 상황 public Long join(Member member) { //같은 이름이 있는 중복 회원X // Optional result = memberRepository.findByName(member.getName()); // result.ifPresent(m -> { // throw new IllegalStateException("이미 존재하는 회원입니다."); // }); long start = System.currentTimeMillis(); try{ validateDuplicateMember(member); //중복 회원 검증 memberRepository.save(member); return member.getId(); } finally { long finish = S..

💡H2 데이터베이스 설치> https://www.h2database.com/html/download-archive.htmlArchive Downloadswww.h2database.com여기에 가서 1.4.200버전을 설치해준다. create a new database를 해준 다음, database를 생성해준다. 아이콘을 더블클릭하여, 맞게 적어준 후 연결을 누르면 데이터베이스가 연결된다.💻 H2 테이블 생성 및 실행member 테이블을 생성한다.drop table if exists member CASCADE; create table member ( id bigint generated by default as identity, name varchar(255), primary key (id) ); SELEC..
- Total
- Today
- Yesterday
- 스프링부트
- 자바 스프링
- 자바
- 백준
- 웹MVC
- 스프링
- 지연로딩
- 웹 MVC
- 비영속
- 인텔리제이
- 스프링 북마크
- 준영속
- 북마크
- SQL
- 파이썬
- 커뮤니티
- EnumType.ORDINAL
- 로깅
- DP
- 프론트엔드
- elasticsearch
- 백준 파이썬
- 다이나믹 프로그래밍
- 회원탈퇴
- 영속
- 스프링 커뮤니티
- SQL 레벨업
- 로그아웃
- SQLD
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |