회사에 처음 입사하여 ERP 프로그램을 개발하게 되었다. ERP 프로그램이라 그런지 복잡하고 긴 쿼리문을 작성할 때가 많았는데 회의 시간에 'SP를 사용해 봐.', 'SP가 편해!' 이런 말을 듣고, (사실 이 때 SP가 뭔지 못 알아 듣고 적어놨다가 나중에 검색해 봤다...) 최근 쿼리문을 짤 때 사용해 보았다. 간단하게 Stored Procedure와 장점에 대해 알아보자!
Stored Procedure (저장 프로시저) 란?
DB에서 실행되는 미리 정의된 SQL 코드와, 프로그래밍 로직으로 작성된 코드 블록이다. 자주 사용하는 로직을 저장해 놓고, 필요할 때 호출해서 쓰는 일종의 메서드와 같다. 데이터베이스 내에 저장해 놓고 사용하게 된다.
Stored Procedure 의 장점!
사실 처음 Stored Procedure 을 검색만 해 봤을 때에는 뭐가 장점이야? 어차피 SQL 문 작성해야 하는 건 똑같은데... 라고 생각했었는데, 막상 사용해 보니 장점이 많이 있었다.
유지보수와 재사용성
: 필요한 로직을 한 번 작성해 저장해 놓고 호출해 사용하다 보니, 동일한 로직을 여러번 SQL을 여러번 작성할 필요가 없다. 또한, 수정사항이 발생해도 SP 하나만 수정하면 되기 때문에 유지보수 측면에서도 편리하다.
성능 최적화
: SP는 데이터베이스에서 미리 컴파일되어 저장되므로 실행의 속도가 빠르다.
트랜잭션 관리
: 여러 SQL문을 하나의 트랜잭션으로 묶어 데이터의 일관성을 유지할 수 있다.
보안 및 접근 제어
: SP 단위로 접근 권한을 부여할 수 있기 때문에, 데이터베이스에 대한 접근을 제어할 수 있다. 또한, 직접적으로 코드에 SQL문이 포함되지 않기 때문에 노출될 위험이 적다.
이번에는 거의 프로젝트 끝물에 사용하게 되어서 하나의 로직에만 적용해 봤지만, 다음에는 여러 로직에 적용해서 사용해 보고 싶다!