사실 게시판 만들기를 하다가 대략 2~3주 정도를 쉰 것 같다.
이유인 즉슨,
- 리포지토리를 테스트하는 방법을 찾다가 여러 강의들을 찾게되었다.
- 공부하다가 로드맵? 이라는 게 있었다.
- 로드맵을 보니까 또 이게 다 뭔지 알고싶었다
(또 호기심이 미쳐 날뛰어 버렸다)
그래서 이제 할 수 있겠냐고?
ㅆㄱㄴ
가능하니까 이제 다음 과정들을 써보려고 한다.
일단 리포지토리의 기본적인 기능들을 만들어볼 생각이다.
우리가 백엔드 프로그래밍을 배우면 기본적으로 CRUD라는 것을 듣게 된다.
- Create
- Read
- Update
- Delete
이렇게 4가지가 존재한다.
이에 대한 기능들을 Spring Data JPA에서 지원하는 리포지토리를 이용해 만들어보려고 한다.
package com.board.Board_Upgraded.repository;
import com.board.Board_Upgraded.entity.member.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface MemberRepository extends JpaRepository<Member, Long> {
Optional<Member> findByUsername(String username);
Optional<Member> findByNickname(String nickname);
Optional<Member> findByEmail(String email);
}
리포지토리가 뭔지 간단하게 짚어보자면,
소프트웨어 저장소 또는 소프트웨어 리포지터리(software repository)는 소프트웨어 패키지가 컴퓨터에서 조회되고 설치될 수 있는 저장 위치이다.
(링크를 보고 실망한다면, 여러분!!! 모두가 수정하는 사전인 만큼, 집단지성을 믿어봅시다!)
이렇게 인터페이스를 만들었다면, Override를 해서 다른 클래스에서 이를 구현해주어야 한다. 하지만 하지 않는다.
왜? 이런식으로 JpaRepository<Class, Id>는 모든 것을 만들어둔 상태이고, 이걸 가져다 쓴 것이다. (물론 이게 완전한 지식은 아니다. 이런 지식이 궁금하다면 따로 공부해보는 것이 좋을 것 같다. 나도 공부해보았는데, 진짜 빠져들어서 배우기에 미쳤었다. )
이보다 더 자세한, 예를 들면 조건들을 여러개 가져와 검색하는 방식, 검색 시 결과의 양을 조절해 티스토리 메인 페이지처림 여러 페이지로 게시물을 나누는 방식들을 차후 수정할 계획이다.
이름을 짓는 방식은 find~~~By[인스턴스명]으로 진행된다. 이 때, 인스턴스명은 @Column(name~~)에 있는 이름이 아닌, 클래스에 자바로 구현한 인스턴스 명이다.
이제 이걸 테스트해볼 차례이다. 이건 다음 게시물로 오시면 됩니다~~
'스프링 공부 > 게시판 프로젝트 만들기' 카테고리의 다른 글
[스프링] 18. MemberRepository커스텀해서 검색기능 만들기 (0) | 2023.02.04 |
---|---|
[스프링] 17. MemberRepository 테스트해보기 (0) | 2023.02.02 |
[스프링] 15. Member 테스트대로 코드 짜보기 (0) | 2023.01.17 |
[스프링] 14. Member에 대한 테스트 만들기 (0) | 2023.01.11 |
[스프링] 13. Member 엔티티 만들기 (0) | 2023.01.11 |