[스프링 부트 어드민 페이지] 4. QueryMethod

2021. 5. 17. 22:31개발공부/[패스트캠퍼스] 스프링 부트 어드민 페이지 만들기


Github 코드

 

QueryMethod

QueryMethod란 JPARepository 메서드가 findAll(), findById(), save() 등 정형화 되어있는데 커스터마이징 하여 원하는 WHERE절 조건 데이터를 입력해 데이터를 조회할 수 있는 메서드입니다.

1
2
3
4
5
6
7
8
9
10
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
 
    Optional<User> findByAccount(String account);
 
    Optional<User> findByEmail(String email);
 
    Optional<User> findByAccountAndEmail(String account, String email);
 
}
cs

JPA는 메서드명에서 findBy 뒤에 Camel case로 입력된 문자명이 컬럼명과 일치하면 자동으로 WHERE절 조건으로 인식해 데이터를 조회해줍니다. 


기획자와 서비스 ERD(Entity Relationship Diagram)

DB생성 전 서비스 기획자(PM)과 충분한 기획논의을 거쳐야 합니다. 서비스 기획자가 하는 일에는 서비스 기획, 사용자의 Flow 및 전체적인 서비스 안내, DB ERD 기초 설계, 서비스의 방향, 내부 Flow 및 서비스 필수 기능정의, (서비스 개발완료 후) 어드민 설계가 있습니다.

기획자와 소통하기 위해선 UML(Unified Modeling Language; 통합된 다이어그램으로 프로젝트 설계를 시각화, 구체화, 문서화 하고 비즈니스 모델링에도 필요한 구현)과 서비스 흐름을 위한 플로우 차트, 시퀀스 다이어그램(Object들 간의 상호작용을 기능적인 측면에서 나타낸 다이어그램)에 대해 알고 있어야 합니다. 기획자가 이런 것들을 준비해주면 백엔드 개발자는 이를 DB로 만들 ERD 모델링 설계를 해줘야 합니다.

시퀀스 다이어그램(출처 : wikipedia)

따라서 기획자는 어떠한 데이터를 넣고 어떤 데이터를 통해 검색이 가능한지 요구하게 됩니다. 개발자는 ERD 모델링을 통해 어떻게 데이터 베이스를 조회를 어떻게 하고 인덱스를 어떻게 걸고 어떤 데이터를 어떻게 가져올지 완전한 이해를 하고 있어야 합니다.

그리고 기획에서 요구하는 화면에 어떻게 데이터를 뿌리는 내용과 관련해서도 테이블 연관관계를 통해서 어떤 조건을 걸어서 어떻게 검색해야할 지 기획단에서 고민을 가져야 합니다.

정리하자면 기획에선 어떤 값을 검색하거나 클릭했을때 어떤 결과 데이터가 출력될 지 기획을 해줍니다. 그러면 백엔드 개발자는 DB 연관관계나 조건을 통해 어떻게 처리해줄 것인지를 고민합니다. 프론트 개발자와의 논의는 주로 처리한 데이터를 화면에 어떻게 출력해줄 것인지에 관한 것이며, 예를 들면 백엔드에서 직접 화면에 출력해줄 날짜 포맷으로 만들어 프론트에 내려줄 것인지, 기본 타임 포맷으로 주면 프론트에서 변환해줄 것인지 논의하게 되는 과정이 있습니다.


개발의 시작

새로운 DB 설계 순서입니다. 

  • ERD 설계
  • Table 생성
  • Entity 생성
  • Repository 생성
  • Repository 테스트
  • 연관관계 설정
  • 필요한 Query Method 생성

 

DB ERD

어드민 프로젝트 ERD 설계


출처 : 패스트캠퍼스 Java 웹 개발 마스터 올인원 패키지