MySQL : Stored Procedure (저장 프로시저)

손유라·2023년 9월 14일

회사에 처음 입사하여 ERP 프로그램을 개발하게 되었다. ERP 프로그램이라 그런지 복잡하고 긴 쿼리문을 작성할 때가 많았는데 회의 시간에 'SP를 사용해 봐.', 'SP가 편해!' 이런 말을 듣고, (사실 이 때 SP가 뭔지 못 알아 듣고 적어놨다가 나중에 검색해 봤다...) 최근 쿼리문을 짤 때 사용해 보았다. 간단하게 Stored Procedure와 장점에 대해 알아보자!

Stored Procedure (저장 프로시저) 란?

DB에서 실행되는 미리 정의된 SQL 코드와, 프로그래밍 로직으로 작성된 코드 블록이다. 자주 사용하는 로직을 저장해 놓고, 필요할 때 호출해서 쓰는 일종의 메서드와 같다. 데이터베이스 내에 저장해 놓고 사용하게 된다.

Stored Procedure 의 장점!

사실 처음 Stored Procedure 을 검색만 해 봤을 때에는 뭐가 장점이야? 어차피 SQL 문 작성해야 하는 건 똑같은데... 라고 생각했었는데, 막상 사용해 보니 장점이 많이 있었다.

  1. 유지보수와 재사용성
    : 필요한 로직을 한 번 작성해 저장해 놓고 호출해 사용하다 보니, 동일한 로직을 여러번 SQL을 여러번 작성할 필요가 없다. 또한, 수정사항이 발생해도 SP 하나만 수정하면 되기 때문에 유지보수 측면에서도 편리하다.

  2. 성능 최적화
    : SP는 데이터베이스에서 미리 컴파일되어 저장되므로 실행의 속도가 빠르다.

  3. 트랜잭션 관리
    : 여러 SQL문을 하나의 트랜잭션으로 묶어 데이터의 일관성을 유지할 수 있다.

  4. 보안 및 접근 제어
    : SP 단위로 접근 권한을 부여할 수 있기 때문에, 데이터베이스에 대한 접근을 제어할 수 있다. 또한, 직접적으로 코드에 SQL문이 포함되지 않기 때문에 노출될 위험이 적다.

이번에는 거의 프로젝트 끝물에 사용하게 되어서 하나의 로직에만 적용해 봤지만, 다음에는 여러 로직에 적용해서 사용해 보고 싶다!

profile
유라라랜드에 오신 것을 환영합니다!

0개의 댓글