DBMS에서 트리거, 프로시져 내 비지니스 로직 필요성(질문? 토론 유도글) 0 3 1,232

by 훌밍 [DB 기타] [2017.11.19 21:59:49]


현재 운영을 맡고 있는 구 레거시 시스템 구조가

JSP - JAVA - XML(query) - Oracle DB

인데, 비지니스 로직이 JAVA와 Oracle DB내(Trigger, Procedure)에 산재되어있어

업무 흐름따라가기도 복잡하고, 영향도 분석하기도 쉽지않네요

조금씩 비지니스 로직을 최대한 JAVA 내에서 처리하려고 리팩토링을 하고있기는 한데

회사 윗분들은 잘 돌아가고있는 시스템을 건드는걸 별로 달가워하지 않네요.

윗분들도 설득하 가며 개선을 해나갔으면 좋겠는데

리팩토링을 하던 향후 차세대 리뉴얼을 하던 윗분들의 마인드가 바뀌지 않는 이상

Trigger, Procedure가 없어지지는 않을듯한데 어떻게들 생각하십니까?

개인적인 생각으로는

DB 내에서 배치 작업이 필요한 내용(Procedure)이나 별도 데이터 변경 이력 관리용(Trigger)

말고는 비지니스 로직은 JAVA 내에서 처리하는게 맞다고 생각합니다.

다른 현업에서도 현재 이렇게 사용하는 있는 곳들이 있나요?

by jkson [2017.11.20 08:03:41]

관리적 측면에서 분명 procedure나 trigger가 불리한 점이 있지만..

JAVA내에서 처리하게 되면 DB Call이 그만큼 많이 늘어나게 되어는 측면이 있죠.

반대로 자바단에서 처리하면 DB쪽 CPU 사용율이라든지 메모리 사용률은 좀

떨어지지 않을까 하는 추측도 되구요.

JAVA에서 처리할 때 얻는 이점이 DB Call에 소모되는 실보다 크다면 JAVA단에서

처리해주면 좋을 것이고 그게 아니라면 procedure로 처리하는 방법도 저는

나쁘지 않다고 생각합니다.

예를들어 병원 수납 로직의 경우에 수납을 위한 procedure 라인 수만 해도 엄청나요.

측정해보지 않았지만 몇 만라인 될 거라 예상합니다.

해서 db call도 무수히 많이 일어납니다. 이런 로직은 제 생각에는

procedure로 만들어 주는 게 좋을 거예요. db call도 줄어들 뿐만 아니라

수납자가 많아봤자 3~40명 정도라면 cpu 사용율도 크게 올라가지 않을 것 같구요.

JAVA단으로 만든다면 성능적으로 조금 떨어지지 않을까 생각합니다.

반대로 로직단에서 파일을 사용자에게 리턴한다든지.. procedure로 하기 어려운

부분이 있다면 JAVA단이 유리하겠죠.

트리거의 경우에도 데이터 정합성을 지켜주는 측면에서 분명한 장점이 있습니다.

JAVA단에서 아무리 꼼꼼하게 로직을 만들어놓아도 언젠가 구멍이 날 수 있죠.

그런데 DBA분들은 procedure, trigger 싫어하시죠ㅎㅎ

procedure, trigger을 원칙적으로 쓰지 못하게 하는 곳도 있고요.

결론은 진리의 케바케..;


by 훌밍 [2017.11.20 12:44:14]

저도 관리 측면이 제일 문제라고 생각합니다.

Trigger, Procedure 소스 형상관리를 새벽에 일배치로 소스로 내린다음

subversion에 커밋하는 방법을 쓰고 있는데, 하루 내에서의 변경 사항은 관리할수도 없을뿐더러

누가 변경했는지도 알기 어렵고, DB 접근 권한만 있으면 누구나 변경 가능하다는것도 문제입니다.

무엇보다 테스팅 자동화가 쉽지 않네요


by jkson [2017.11.20 16:46:06]

저도 버전관리라든지 이런 점 때문에 프로시저가 좀 골치 아프더라구요.

daily backup을 만들어 놓았지만 누가 변경했는지는 로그가 안 남기도 하구요.

요즘은 보안 정책 때문에 개발자별로 계정이 주어지고 주어진 권한만 실행할 수

있도록 많이들 하더라구요. 권한 관리 측면에서 많이 번거롭죠.ㅎㅎ

개발자별로 무슨 작업했는지 로그도 남기고 프로시저 빌드의 경우 자동으로

이전 버전 백업되게 해주는 서드파티툴 같은 거 있으면 괜찮을 거 같긴한데..

이미 있을지도 모르겠네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입