사용자 도구

사이트 도구


web:신규서비스

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
web:신규서비스 [2020/05/20 11:18]
kwon37xi
web:신규서비스 [2020/05/26 13:19]
kwon37xi [Batch Job]
줄 314: 줄 314:
   * API나 Web 애플리케이션의 경우 예외 발생을 적절한 JSON + HTTP Code 로 변환해주는 예외 핸들러를 두는 것이 좋다. 자동으로 예외가 JSON 으로 변환되 나가도록 하며 그 때, UI 노출용 예외 메시지도 함께 준다. ([[springframework:mvc|Spring MVC]] 에서 ''@ControllerAdvice'', ''@ExceptionHandler'' 등을 사용.)   * API나 Web 애플리케이션의 경우 예외 발생을 적절한 JSON + HTTP Code 로 변환해주는 예외 핸들러를 두는 것이 좋다. 자동으로 예외가 JSON 으로 변환되 나가도록 하며 그 때, UI 노출용 예외 메시지도 함께 준다. ([[springframework:mvc|Spring MVC]] 에서 ''@ControllerAdvice'', ''@ExceptionHandler'' 등을 사용.)
  
-===== Batch 처리 =====+===== Batch Job =====
   * 배치 애플리케이션은 DB 커넥션을 최소로 맺으며 시작하고 필요에 따라 늘려가게 한다. API와는 달리 DB 커넥션 맺는 속도가 문제가 되지 않는다. 오히려 DB 커넥션을 과점유하면 여러 배치 애플리케이션이 동시에 돌 때 문제가 된다.   * 배치 애플리케이션은 DB 커넥션을 최소로 맺으며 시작하고 필요에 따라 늘려가게 한다. API와는 달리 DB 커넥션 맺는 속도가 문제가 되지 않는다. 오히려 DB 커넥션을 과점유하면 여러 배치 애플리케이션이 동시에 돌 때 문제가 된다.
   * DB를 읽을 때 reader/writer 를 올바로 읽는지 테스트를 잘 해야한다. batch 때문에 write node가 불필요한 부담을 동시에 받는일이 생기지 않게 한다.   * DB를 읽을 때 reader/writer 를 올바로 읽는지 테스트를 잘 해야한다. batch 때문에 write node가 불필요한 부담을 동시에 받는일이 생기지 않게 한다.
- +  * Batch 가 올바로 시작됐는지, 혹은 올바로 종료됐는지를 모니터링 한다. **시작** 모니터링도 매우 중요할 수 있다. 시작조차 안되면 실패 알람조차도 안오기 때문에 아예 배치가 시작 안됐음을 모르고 며칠이 지나는 경우도 생길 수 있다. [[monitoring:grafana|Grafana]] 혹은 [[logging:kibana|Kibana]] 로 관련 모니터링이 가능하다. 
 +  * 배치 실행 실간을 가정으로 만들지 말 것. 예를들어 앞선 배치가 1시간 걸릴테니 그에 관한 후속 배치는 2시간 이후 실행되게 했는데, 앞선 배치가 2시간이 넘게 걸리는 등의 현상 발생. Job 들간 의존 관계가 있을 경우 명확하게 의존 관계를 코드나 스케줄로 표현할 것.
 ===== 기타 ===== ===== 기타 =====
   * 날짜 <-> 문자열간 변환이 많이 필요한데, 처음부터 포맷을 결정하고 간다.    * 날짜 <-> 문자열간 변환이 많이 필요한데, 처음부터 포맷을 결정하고 간다. 
web/신규서비스.txt · 마지막으로 수정됨: 2024/03/08 11:26 저자 kwon37xi