안녕하세요 강의 수강 후 팀원들과 웹 서비스 개발에서 백엔드를 맡고 있는 수강생입니다.
저희 서비스에서 db에 생성된 데이터가 생성될 때 지정한 날짜와 시간을 기준으로 24시간 후에 해당 데이터의 특정 컬럼 값의 상태가 변하는 제공되는 기능을 구현 중에 질문이 생겼습니다.
해당 기능에서 cron 스케쥴러를 이용하는 것과 db단에서 trigger를 사용하여 처리하는 것 중 trigger를 사용할까 싶은데 trigger 사용시 db 복잡도가 너무 증가하지 않을까 싶어서 질문 드립니다.
참고로 db는 postgresql을 사용하고 typeorm 사용 중 입니다!
네 안녕하세요 :)
아키텍처, DB 설계를 파악해야지 보다 더 정확한 진단을 내릴 수 있을 것 같습니다.
우선 제가 드릴 수 있는 답은
복잡한 처리가 필요하지 않고 동기화(Sync)가 중요하다면 trigger를 사용하시고, 무난하거나 서비스단의 아키텍처가 변경될 확률이 높다면 cron 스케쥴러를 고려하시는게 좋을 것 같습니다.
즉, 개발하고자 하시는 서비스가 DB에 집중되어 있고 동기화가 매우 중요한 작업이면 트리거 쓰시고 그게 아니라면 초반에는 일단 cron으로 해결하시는걸 추천드립니다 보통 초반 서비스는 로직이나 구조가 변경될 확률이 높고 트리거 잘못 설계하면 DB 성능에도 영향을 줄 수 있습니다.
답글