Code 4

Spring - PersistRepository

안녕하세요. 오늘은 리포지토리(Repository)를 하나로 통합해서 사용하지 않고, PersistRepository를 따로 생성해서 사용하는 이유에 대해 알아볼까 해요. 리포지토리를 따로 만드는 이유? 우리가 흔히 보는 방식은 보통 이렇게 설정할 거예요.public interface BoardRepository extends JpaRepository {} 이건 CRUD를 전부 한 곳에 몰아넣는 방식이에요. PersistRepository는 역할을 분리하는 구조예요.BoardPersistRepository // 저장 전용BoardQueryRepository // 조회 전용 (보통 따로 만듦) 분리하는 이유? 분리하는 이유는 "저장하는 코드"와 "조회하는 코드"의 성격이 다르기 때문이에요.그..

Backend/Java 2026.01.06

이메일 중복방지

안녕하세요. 오늘은 이메밀 중복방지를 어떻게 하는지 간단하게 알아볼게요. 이메일 중복방지는 보통 회원가입시 동일한 이메일 주소를 사용하지 않게 방지하는 방법이에요. 1. User 엔티티 유니크 설정 @Column(unique = true) private String email; 2. UserRepository 내 쿼리 메서드 생성 // 이메일 존재 여부 확인 쿼리 네임드 메서드 설계 Optional findByEmail(String email); 3. UserService 회원가입 로직 내 조건문 추가 // 1-1 이메일 중복 체크 if (userRepository.findByEmail(joinDTO.getEmail()).isPresent()) { throw ..

Backend/Java 2025.12.31

vite.config 경로 관련 문제 해결

사진과 같이 프런트엔드 코드 생성 후 오류가 났다. 간단히 말한다면 경로값을 찾을 수 없다고 하는데 import 한 파일 상태를 확인해 봤다.경로값도 이상이 없고, 해당 파일명도 동일했다. 그러면 @설정한 파일 내에 문제가 있지 않을까?라고 동료가 물어봐서 설마 하고 찾아가 봤는데....원인을 찾게 되었는데.....경로값 앞에. 이 빠져있었다.수정하고 재확인해보니정상적으로 화면이 전환한 것을 볼 수 있었다.