실무 가이드
작업 유형 분류
기능을 만들 때 먼저 작업 유형을 분류합니다.
- 조회 중심: 빠른 응답과 캐시 고려
- 저장 중심: 트랜잭션과 중복 요청 방지 고려
- 파일 중심: 파일 크기, 저장소, 바이러스 검사, 권한 고려
- 외부 연동: 지연, 재시도, 실패 로그 고려
- 배치/관리: 사용자 요청과 분리 실행 고려
이 분류에 따라 동시 실행 허용 여부와 장애 처리 방식이 달라집니다.
중복 실행 방지
동시에 실행되면 안 되는 작업은 다음 기준을 둡니다.
- 요청 ID 또는 거래 ID로 중복 요청을 차단합니다.
- 파일 생성 작업은 임시 파일과 원자적 교체를 사용합니다.
- 관리작업은 작업 로그와 실행 잠금을 남깁니다.
- 스케줄 작업은 여러 인스턴스에서 동시에 실행되지 않도록 합니다.
성능 확인
동시성 문제는 보통 개발 PC에서 잘 드러나지 않습니다. 검증 환경에서 다음을 확인합니다.
- 동시에 같은 저장 기능을 호출했을 때 데이터가 깨지지 않는가?
- 장시간 작업 중 웹 요청 응답이 막히지 않는가?
- 외부 API가 느릴 때 전체 거래가 무한 대기하지 않는가?
- 파일 복사나 번들링 중 서비스 파일 잠김이 발생하지 않는가?
체크리스트
- 오래 걸리는 작업이 웹 요청을 불필요하게 붙잡고 있지 않은가?
- 중복 실행되면 안 되는 작업에 방지 장치가 있는가?
- 다중 인스턴스 운영 시 공유 저장소와 세션 기준이 있는가?
- 로그로 동시 실행 상황을 추적할 수 있는가?
- 배치와 사용자 요청의 장애 영향 범위가 분리되어 있는가?