본문 바로가기
프로그램 개발(분석, 설계, 코딩, 배포)/2. 개발

데이터베이스_프로시저 사용에 관한 글

by 3604 2022. 10. 31.
728x90

출처: https://velog.io/@yangsijun528/%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80-%EC%95%8A%EB%8A%94-%EC%9D%B4%EC%9C%A0

주의사항

여러 사람들의 주관적 의견을 정리한 글로 객관적인 지표를 근거로 작성한 글이 아닙니다.

프로시저를 사용하는 이유

  • 대량의 데이터 처리가 WAS보다 빠르다.
  • DB 서버에서 처리한 이후 WAS에는 결과만 보여주면 되기에 네트워크 처리 비용이 절감된다.
  • 일반적으로 DB 사양이 WAS 보다 좋아서 대량의 데이터를 WAS에 올리고 처리하는 것보다 DB에서 분산처리를 하는 편이 성능이 좋다.
  • 개발 유지보수에 유리하다.

프로시저를 사용하지 않는 이유

  • 시대의 흐름 변화
    • 객체지향적 방법론이 대세가 되었다. ex) Spring의 JPA
      • 프로시저의 제한된 문법으론 추상화와 같은 객체지향적인 개념을 사용하기 어렵다.
    • 클라우드 시스템의 대중화
      • 요즘에는 DB부터 WAS까지 직접 서버를 운용하지 않고 클라우드를 사용한다.
      • 클라우드 특성상 플랫폼 변환을 쉽게 할 수 있는 장점이 있다.
      • 그렇기 때문에 프로시저와 같이 특정 기술의 의존적인 부분을 기피하는 추세이다.
  • 형상관리나 유지보수가 가능은 하지만 실무에서 잘 이루어지지 않는다.
  • 스케일 아웃이 쉬운 편인 WAS와 달리 DB는 스케일 아웃이 어렵고, 프로시저를 사용하면 DB의 부하가 커지기 때문에 WAS에서 처리하는 것이 맞다.
  • 개발 유지보수가 어렵다.

결론

프로시저를 사용하는 비율이 줄어드는 추세처럼 보인다. 하지만 Batch 같은 트래픽 증가 문제가 없는 로직에 대해서는 여전히 프로시져 형태를 사용하는게 효율적으로 보인다.

728x90