Business Logic(비즈니스 로직) - DB or App ..
제목 : procedure 사용과 자바 business 로직 처리의 장단점? 글쓴이: 태영(thorn) 2011/06/21 23:37:25 조회수:4640 줄수:6 |
프로젝트를 하다보면 업무로직 처리를 프로시저로 처리하는곳이 있습니다. 업무로직이 데이타베이스에 종속적이기때문에 다양한 서비스(재활용)를 제공하기에 운영측면에서 유연하지 못해보입니다. 선배님들의 조언 부탁드립니다. |
제목 : Re: 사용을 자제하는것이... 글쓴이: alkimia(cnovice) 2011/06/22 08:12:15 조회수:4063 줄수:15 |
프로시져, 트리거, 함수 같은 오브젝트는 가급적 사용을 자제하는 것이 좋다고 봅니다. 특히 비지니스 로직을 프로시져에 넣는 것은 안좋다고 생각합니다. 제가 일하고 있는 사이트(금융)도 내부적으로 프로시져, 함수에 비지니스 로직이 상당부분 들어가 있습니다. 모하나 고칠려면 짜증납니다 ^^. 모든 마찬가지지만 프로시져도 소스 관리를 상당히 잘해야합니다. 나중에 서로 종속적이 되서 수정할 때 문제가 생길 수도 있습니다. 자바로 설계를 잘하면 굳이 재활용때문에 프로시져를 사용할 필요는 없다고 봅니다. 비지니스 로직이 변경되도 굳이 소스를 고치고 싶지 않으시면 drool 같은 룰엔진을 사용하시는 것도 괜찮을듯 싶습니다. |
제목 : Re: 윗분 말씀대로.... 글쓴이: 손님(guest) 2011/07/07 07:33:05 조회수:3915 줄수:43 |
어차피 DB IO 부분은 프로시저가 아니더라도 DB에 종속적이게 됩니다. 만약 DB 간에 마이그레이션 프로젝트에 들어간다고 하면 어차피 DAO 부분은 고치지 않을까요? ( SQL 문법 및 기본 제공 함수 상이 등의 이유) 완전히 독립은 불가능해 보입니다. 제가 생각하는 자바 비지니스 로직의 장점은 1. 일단 디버깅이 쉽습니다. 2. 소스관리가 용이합니다. 3. DB 프로시저보다 쉽습니다(DB마다 프로시저 문법 상이). 4. WAS의 리소스를 사용합니다. (DB의 리소스 사용을 줄여주는 것이 좋습니다.) 4-1. 헌데 제가 큰 규모의 시스템을 못봐서 그런지 리소스 문제는 거의 발생하는걸 보지 못했군요. 요즘 시스템을 병렬로 빵빵하게 구축하다보니.. 단점 1. 소스반영이 어렵다 혹은 귀찮다. ( 주로 WAS 재기동이 필요하죠 ㅋ ) 프로시저의 장점 1. 유연하다. ( 즉시적인 반영 가능함. ) 2. 프로그램 개발쪽이 쉬워짐. ( 인풋만 넣어서 호출하여 리턴만받아서 사용하면됨.) 3. DB 리소스가 여유가 많을 경우 프로시저 사용이 더 빠름. - WAS <-> DB간 NET IO가 시간을 많이 잡아먹죵... 4. 보안적으로도 좋음. 단점 1. DB에 엄청나게 종속적이게 됨. ( 마이그하기라도 하면 힘듬. ) 2. 형상관리가 어려움. 3. 디버깅 어려움. 저는 두가지 방법으로 다 개발해봤는데 프로시저 쪽이 편하더군요. 프로시저로 개발되있으면 소스반영땜에 야간에 야근 안해도 됩니다. ㅋㅋ 즉시 반영 가능, 즉시 수정 가능입니다. 해당 업무 로직이 담겨있는 프로시저만 변경해주면 되니까요. 로그성 테이블에 기록하기도 편하고... DAO 개발하는쪽도 DB 호출여러번 안하게 해도 되고... 헌데... DB 변경될 상황에 처하면 짜증난다는거... ㅋㅋㅋ 허접한 개발자의 경험담입니다... |
제목 : Re: 프로시져 비추합니다. 글쓴이: 손님(guest) 2011/07/20 13:56:07 조회수:3762 줄수:3 |
procedure의 가장 큰 문제는 소스 관리 및 동시 수정에 대한 이슈죠. 생각보다 큰 문제입니다. |
제목 : Re: 프로시져 편하더군요 글쓴이: 이영래(passwd) 2013/03/12 14:04:51 조회수:4510 줄수:19 |
거진 10년 정도 자바로 개발로 개발하면서 자바가 제일 쉬운 언어인줄 알았습니다. 필요한것은 거진 만들어 져 있으니까요 그런데 프로시져로 처음 개발하는데 따로 공부 많이 안해도 개발이 가능하고 개발하자마자 반영되는 그 간편함이란... 그런데 왜 프로시져가 많은 개발자들의 반감을 가지고 있을까? 1. 개발 즉시 반영 -> 실수 또는 문제 발생 가능성 높음 . 2. 소스 이력 관리 어려움 -> 누가 언제 무엇을 고쳤는지 관리의 어려움. 3. 디버깅 어려움. 4. 모든 프로그램 영역을 커버 하기가 어려움. 5. 모듈화가 어려워 재사용(package로 하면 되지만...) 그리고 구조화 패턴화가 어렵고 이렇게 모듈화 한 경우 디버깅은 더 어려워 짐. 그래도 그 간편함과 속도는 이 모든것을 무시하게 되더군요 ^^ |
제목 : Re: 간편함과 속도가 형상관리의 어려움을 무시할정도는 아니던데요. 글쓴이: 손님(guest) 2013/05/09 23:27:12 조회수:3178 줄수:3 |
위에분.. 뭐가 얼마나 편하다고 형상관리의 어려움을 무시하고도 좋다고 하는지.. 당황스런 상황을 경험해봐야 알겠지요. |
'정보과학 IT' 카테고리의 다른 글
Oracle Pro*C, MSVC++ 환경설정 (◀pcscfg.cfg 설정 포함) (0) | 2013.11.22 |
---|---|
MSVC++ 를 사용하여 PRO*C PROJECT 를 만드는 방법 (0) | 2013.11.22 |
(PROC) DATABASE CONNECTION (0) | 2013.11.21 |
(MSVC++) mspdb100.dll 오류와 vcvars32.bat (0) | 2013.11.20 |
Visual C++ installed, but cannot find cl.exe? (0) | 2013.11.19 |