주의사항
여러 사람들의 주관적 의견을 정리한 글로 객관적인 지표를 근거로 작성한 글이 아닙니다.
프로시저를 사용하는 이유
- 대량의 데이터 처리가 WAS보다 빠르다.
- DB 서버에서 처리한 이후 WAS에는 결과만 보여주면 되기에 네트워크 처리 비용이 절감된다.
- 일반적으로 DB 사양이 WAS 보다 좋아서 대량의 데이터를 WAS에 올리고 처리하는 것보다 DB에서 분산처리를 하는 편이 성능이 좋다.
개발 유지보수에 유리하다.
프로시저를 사용하지 않는 이유
- 시대의 흐름 변화
- 객체지향적 방법론이 대세가 되었다. ex) Spring의 JPA
- 프로시저의 제한된 문법으론 추상화와 같은 객체지향적인 개념을 사용하기 어렵다.
- 클라우드 시스템의 대중화
- 요즘에는 DB부터 WAS까지 직접 서버를 운용하지 않고 클라우드를 사용한다.
- 클라우드 특성상 플랫폼 변환을 쉽게 할 수 있는 장점이 있다.
- 그렇기 때문에 프로시저와 같이 특정 기술의 의존적인 부분을 기피하는 추세이다.
- 형상관리나 유지보수가 가능은 하지만 실무에서 잘 이루어지지 않는다.
- 스케일 아웃이 쉬운 편인 WAS와 달리 DB는 스케일 아웃이 어렵고, 프로시저를 사용하면 DB의 부하가 커지기 때문에 WAS에서 처리하는 것이 맞다.
개발 유지보수가 어렵다.
결론
프로시저를 사용하는 비율이 줄어드는 추세처럼 보인다. 하지만 Batch 같은 트래픽 증가 문제가 없는 로직에 대해서는 여전히 프로시져 형태를 사용하는게 효율적으로 보인다.