[CS/데이터베이스] - Stored Procedure (저장 프로시저) - 4부

황제연·2025년 4월 17일
0

CS학습

목록 보기
47/193
post-thumbnail

📌 Stored Procedure의 단점

유지보수 어려움

Stored Procedure를 사용하면서 비즈니스 로직이 소스코드와 DB 프로시저 양쪽에 분산되어 관리되기 때문에, 전체 로직을 파악하기 어렵습니다

또한 코드 변경 시 소스코드뿐 아니라 프로시저도 함께 관리해야 하므로 유지보수 비용이 높습니다

DB 서버에 부하 집중

DB 서버에 부하가 집중되는 문제가 발생할 수 있다는 단점이 존재합니다
특히, 트래픽이 몰릴 경우, Application 서버는 Auto Scaling으로 쉽게 대응 가능하지만, DB 서버 증설은 복잡하고 어렵습니다

프로시저의 오류 범위

프로시저만 수정하는 경우, 변경이 즉시 반영되어 예상치 못한 버그가 서비스 전체에 영향을 줄 수 있습니다
만약 소스코드에 로직이 있었다면, 일부 인스턴스만 롤백하여 피해를 최소화할텐데, 프로시저는 그렇지 못합니다

재사용성의 함정

프로시저는 여러 서비스에서 호출 가능해 재사용성이 높은 장점이 있으나,
특정 서비스가 과도하게 호출할 경우, 모든 서비스를 위협하는 병목지점이 될 수 있습니다

이를 방지하려면, 프로시저 호출을 중개하는 별도 Data Service 레이어를 만들고,
API 단에서 트래픽을 제어하는 구조가 필요합니다

7. 기타 단점

  • 복잡한 로직을 표현하기 어렵고, 조건 분기나 유연한 데이터 구조 처리가 제한됩니다
  • 가독성이 떨어지고, 디버깅이나 테스트도 불편합니다
  • 프로시저가 많아질 수록 유지보수하기 어려워지고, 특정 프로시저가 여러 기능과 연결되어있을 때 수정하거나 삭제할 경우 전체 서비스에 영향을 줄 수 있습니다

🔎 결론

Stored Procedure는 데이터 접근속도를 향상시킬 수 있고,
서비스 재배포을 최소화해서 비즈니스 로직을 수정할 수 있다는 장점이 있지만
유지보수가 어렵다는 등의 단점도 존재합니다

참고

profile
Software Developer

0개의 댓글