Backend
Frontend
Database & Infra
Project
codesche’s blog
/
Education
/
PT 이용권 관리 서비스
/
PT 이용권 관리 서비스
Backend
Frontend
Database & Infra
Project
codesche’s blog
/
Education
/
PT 이용권 관리 서비스
/
PT 이용권 관리 서비스
Share
Backend
Frontend
Database & Infra
Project
PT 이용권 관리 서비스
PT 이용권 관리 서비스
Search
Batch 어떤 작업인가?
•
실시간이 아닌 일괄적으로 데이터를 처리하는 작업
◦
예약 시간에 광고성 메시지 발송
◦
결제 정산 작업
◦
운영을 위해 필요한 통계 데이터 구축
◦
대량 데이터를 필요로 하는 모델 학습 작업
•
스프링 배치는 스케쥴러가 아니다!
◦
스프링 배치는 잡을 관리하지만 실행시키는 주체는 아니다!
이용권 시스템 이해하기
•
요구사항 유형
◦
2개월 10회 PT 이용권
◦
3개월 헬스 이용권
◦
1회 이용권 일괄 지급
•
요구사항 통계
•
이용권 서비스 요구사항 Features
이용권 서비스 요구사항 이해하기
•
N개의 체육관을 기준으로 구성
•
개발 시 1개의 체육관을 기준으로 단순화
•
데이터 설계 테이블
데이터 설계
•
배치 구조 설계 (Step)
◦
알람 job
◦
순차적으로 정의된 작업을 캡슐화
•
chunk 기반의 step
•
Job
◦
JobRepository는 기본적으로 RDB를 활용
Batch 구조 설계 (1)
•
이용권 만료 - chunk 방식 활용 (Reader / Writer)
•
이용권 일괄 지급
•
예약 수업 전 알람 - 다중 스레드 chunk를 사용하는 방식
Batch 구조 설계 (2)
Batch 프로젝트 구성
build.gradle (springboot 3.x.x 버전 기준)
Git Flow
Batch 프로젝트 생성 및 git 설정
Dockerfile 생성
•
script
•
결과
테이블 구조
Docker MySQL 설치 및 테이블 생성
spring-meta-database 생성
•
schema-mysql.sql (인텔리제이에서 검색하면 나옴)
TEST 진행
•
@Param 관련 에러 발생
◦
https://velog.io/@heewonim/JPQL-Error-For-queries-with-named-parameters-you-need-to-use-provide-names-for-method-parameters
◦
각각의 변수에 @Param(”id”) Long id 양식으로 명시를 해줘야 함
•
JpaConfig
•
PackageRepository
•
BaseEntity
상세 기능 구현 (JPA를 사용한 MySQL 연동)