3-tier architecture에서 stpred procedure의 의미
오늘날의 IT 회사들은 일반적으로 client-server architecture의 한 종류인 three-tier architecture 모델로 서비스를 개발 한다.
비즈니스 로직이란?
- 회원 가입/탈퇴
- 상품 리스트업 알고리즘
- 상품 정보 업로드 기능
- 상품 검색 기능
- 메시지 기능
데이터
- 회원 정보
- 상품 정보
- 판매/구매 내역
- 지역 정보
stored procedure
- RDBMS에 저장되고 사용되는 프로시저
- 주된 사용 목적은 비즈니스 로직 구현
stored procedure 장점
- application에 transparent 하다. (DB에서 stored procedure의 body부분만 변경하면 각각의 비즈니스 로직을 수정하지 않아도 된다.)
- network traffic을 줄여서 응답 속도를 향상 시킬 수 있다.
- 여러 서비스에서 재사용 가능하다.(서로 다른 서버를 사용하더라도 stored procedure를 호출하여 사용하면 동일한 기능을 사용할 수 있다.. )
- 민감한 정보에 대한 접근을 제한할 수 있다.
stored procedure 단점
- 유지 관리 보수 비용이 커진다.(비즈니스 로직이 RDBMS에도 분산되어 수정 및 버전 관리가 어렵다. )
- 데이터를 가지고 있기 때문에 DB서버를 추가하는 것은 간단한 작업이 아니다. (반대로 logic tier에 애플리케이션 서버 투입은 간단하다.)
- 항상 transparent 한 것은 아니다. (DB에서 stored procedure의 body부분만 변경하더라도 각각의 비즈니스 로직을 수정하는 경우도 있다.)
- transparent 한 것이 항상 좋은 것은 아니다.(버그 발생 시 치명적)
- 재사용 가능한 점이 단점이 될 수 있다.
- 비즈니스 로직을 소스 코드에 두고도 응답 속도를 향상 시킬 수 있는 방법은 있다.(캐시 사용)
- 민감한 정보에 대한 접근을 완벽히 제한할 수 없다.
- 복잡하고 유연한 코드 작성이 어렵다.
- 현재의 프로그램 언어는 더 다양하고 강력한 기능들을 제공한다.
- 가독성이 떨어진다.
- 디버깅이 어렵다.