일 년 전 · 이진영 님의 질문
안녕하세요 HardDelete를 하는 과정속에서 궁금한 점이 생겨 이렇게 질문을 남깁니다.
현재 저는 프로젝트를 진행하고 있습니다. hard delete 특정 연관관계 칼럼까지 삭제를 해야 하는데 이에 있어 보통 어떻게 삭제하는지 궁금합니다. 저희는 프로젝트 용이기 때문에 매 년마다 HardDelete를 구현을 담당하고 있습니다.(내부적인 회의를 통해서 hard delete를 구현하기로 함) 근데 구현에 있어서는 스케줄러를 통해서 삭제를 할 예정이고(코드 참고) @Scheduled(cron = "0 */2 * * * ?") // test cron public void teamDisbandCheckAndDelete() { List<Long> teamIds = teamRepository.findIdsByIsDeleteIsTrue(); teamRepository.deleteAll(teamIds); // cascade remove } 할 생각이었지만 이는 성능상 이슈가 있을 것이라고 생각합니다. 그러한 이유는 팀을 하나만 삭제하는데 다른 연관 관계 테이블은 최소 10배가 최대 100배 넘는 데이터를 가지고 있을 것이라고 예상합니다. 이러한 관점에서 봤을 때 성능상 이슈가 있을 것이라고 예상하고 배치 delete를 구현하려고 했습니다. 근데 만약 이렇게 배치 delete를 아래와 같이 진행을 하려고 합니다.(예시 코드) // 연관된 데이터 삭제 // (예: TeamParticipants, SimpleSchedule, RepeatSchedule 등) teamParticipantsRepository.deleteByTeamIdIn(ids); simpleScheduleRepository.deleteByTeamIdIn(ids); repeatScheduleRepository.deleteByTeamIdIn(ids); // Team 엔터티 삭제 teamRepository.deleteAllByIdIn(ids); 근데 이렇게 삭제하는 게 최선인지도 궁금합니다. 여기서 문제점은 만약 다른 엔티티(TeamParticipants 등등) 삭제 시 제약조건 오류가 났을 때 그렇다면 그 해당 칼럼도 삭제를 해줘야 하는데 이렇게 구현하는 게 맞나?? 싶어서 이렇게 글을 남깁니다.
개발자
#java
#spring
#batch
#delete
#jpa
답변 0
댓글 0
추천해요 1
보충이 필요해요 1
조회 63
일 년 전 · 박범수 님의 답변 업데이트
패킷 손실에 어떻게 대비하시나요?
결제 기능을 개발 중인 주니어 개발자입니다! 현재 포트원(아임포트)의 API를 이용해 구독,단건 결제 기능을 개발 중에 있습니다. 결제 기능 특성상 민감한 패킷 손실 이슈에 대응하기 위해서 노력 중인데, 일반적으로 어떤 식으로 대응하는지 궁금해서 문의 드립니다. (현재로서는 cronjob 등을 통해 결제 로그 DB와 실 결제 금액 대조 등 밖에 생각이 안나네요..)
개발자
#react
#portone
#node.js
답변 1
댓글 0
조회 181
2년 전 · 익명 님의 새로운 댓글
AWS 인스턴스 관련 질문 있습니다.
안녕하세요. 현재 토이 프로젝트로 아마존에서 서버를 하나 운영하고 있습니다. 일단 프로그램이 작동이 필요한 시간은 그냥 5분마다 한번씩만 작동되게 해주면 됩니다. 리눅스 서버에서 작동하기 때문에 crontab을 이용해서 5분마다 실행하게 할 수 있습니다. 하지만 이렇게 되면 서버를 사용하지 않는 시간 동안에도 과금되게 됩니다. 저는 그저 5분마다 한번만 실행하면 되거든요.. 조금 찾아보니 aws lambda 와 cloudwatch를 이용하면 특정 시간에 서버를 자동으로 껐다 켰다 할 수 있더군요. 이런 식으로 서버 자체를 껐다 켰다 하는 것이 나을까요? 아니면 그냥 서버는 계속 켜놓고 5분마다 프로그램만 실행되게 하는게 나을까요?? 서버를 5분마다 껐다 켰다하면 하루에만 288번, 한달에 8640번 입니다. 뭔가 불이익 같은 게 있을까요 조언 부탁 드립니다. 읽어주셔서 감사합니다 !
개발자
#aws-ec2
답변 1
댓글 1
조회 58
2년 전 · 커리어리 AI 봇 님의 새로운 답변
리눅스 계열 서버 특정시간마다 돌릴 수 있는 서비스?
리눅스 서버에서 매일 특정 시간마다 실행할 수 있는 서비스가 cron과 crontab 말고도 있나요? vultr과 linode를 사용해봤는데, 이상하게 아마존 서버에서는 몇 일 동안 삽질해도 실행되지 않네요. ㅠㅠ
개발자
#linux
#cron
#crontab
#aws
답변 2
댓글 0
조회 216