INSERT, DELETE 가 발생할 때 처리할게 프로그램을 수정하자니 워낙 귀찮은 작업이 될 것 같아서 그동안 사용해보고 싶었던 트리거(Trigger)를 사용해봤다.


결론은 만족스럽다.


간단한 걸 만드는건데도 제대로 공부한 적이 없어서 문법에서 헤맸지만, 트리거 코드 몇 줄만으로 프로그램에서는 수십줄 이상으로 작업해야 할 번거로운 작업을 금방 완료할 수 있었다.


간단한 트리거였지만 사용하고 느낀 점이라면 DB 설계가 잘 되어있는 구조라면 트리거만으로도 프로그램을 짜는데 문제가 없을것같았다.


기본적인 CRUD 는 iBatis나 Hibernate 으로 해서 쿼리를 직접 작성하는 일은 피하고, 보다 완벽한 DB 설계를 한다면 트리거와 프로시져만으로도 모두 해결이 될듯.


물론, 트리거나 프로시저를 사용했을 때 또 발생하는 문제점은 LOG 를 기록하기가 껄끄러워지는 점이 있을 것 같긴하다.


프로그램에서는 변수를 뭘 받았고, 그에 따라 어떤 쿼리가 실행되었는지는 간단한 설정(configure)에 따라서 별도의 파일이나 커맨드창에 보이도록 하는 것이 가능하지만 트리거나 프로시저를 사용할 때는 별도의 TABLE 을 두고 거기에 INSERT 를 해주는 방향으로 해야하지 않을까?


뭐...내가 오라클의 기능에 대해서 잘 모르고, 트리거나 프로시저만 전문적으로 다루는 프로젝트는 경험해보지 못해서 하는 무식한 소리일수도...

트리거나 프로시저도 실행된 시간이나 오류사항, 이런걸 간단한 설정만으로 기록하는 뭔가가 있긴하겠지ㅋㅋㅋ


여튼, 트리거나 프로시저를 잘 다뤄서 손해볼 것은 없을 것 같다는 생각이 든다.

트리거나 프로시저로는 좀 힘들것같으면 그때는 프로그램을 손보면 되는거지ㅎㅎㅎ


그동안 고민을 좀 했던것이 주로 WEB 위주로 개발을 하다보니, 개발 범주를 넓히려면 안드로이드 개발이라도 공부를 해야하나 고민을 했는데 이쪽으로 관심이 더 생겼다.

당장에 써먹을 수 있는 것이기도 하니 말이다.


마침 집에 오래전 구매했던 오라클 책이 있으니 그걸로 공부를 해야겠다.

먼지만 쌓인 오라클 책을 드디어 써먹을 수 있겠네 ㅎㅎ


오라클 트리거에 대한 기본적인 내용을 참고했던 블로그이다.

또 볼 수도 있을 것 같고, 정리가 잘된 글인 것 같아서 링크를 걸어본다.


http://seeit.kr/206




+ Recent posts