최근에 프로젝트를 하면서 기존 방식이 흔한 db에 프로시져 만들고 business 로직
거의 프로시져에 두는 방식이 싫어서
ef,.Net 8.0 , 병렬처리 ,윈도우 서비스 배포 등등 최신 기술 쓰다가
실패까지는 아닌데 참 여러모로 개발 속도나 퍼포먼스나 고객 만족(?)
여러모로 쓰디쓴 실패를 맛봤네요
아 제가 부족한것도 있지만 최신기술이 개발속도와 퍼포먼스를 보장하는것 아니다라는
진리 를 알고 덤벼도 결과가 안좋아서 속상하네요
SP 에 로직을 둘때 일단 Unmanage 성 리소스로 분류 될수 있죠?
그 프로시져를 만든 사람에 종속되는 코드 같습니다.
프로시져가 몇개 안될때는 구분이 잘가죠 근데 어느순가
수백 수천개 될때 관리가 안되고
만들었어도 이런 프로시가 있어나 하면서 중복하면서 만들게
되고요 그리고 프로시져 무서워서 스키마 변경이나 확장에 걸리는 경우가 많죠
아마도 java mybatis , JPA 를 쓰는 이유도 이렇게 PROC 관리가 안되서
쓸것라고 생각합니다.
EF 는 DB First로 개발할때는 좀 문제가 많지만 Code First 일때는
장점이 있다고 봅니다.
SP 랑 EF 는 상황에 따라 적절히 배분되는것이 좋다고 생각합니다. 저같은 경우는 EF로 대부분을 작성하긴 합니다. transaction을 이용하면 왠만해선 SP 가 필요없다고 느낄정도에요. 하지만 댓글에 있는 내용처럼 SP 변경만으로 해결할수 있는 부분도 있는 것이고 상황의 변수는 너무나 많아서 병행하고 있습니다. .net 프로젝트들은 대부분 일반적으로 코딩지식만 있다고 해서 잘할 수 있는 것 같진 않습니다. 단순히 코드를 잘 짜는 것 이상의 역할을 해야 해요. 서버와 네트워크 인프라, 그리고 사용자 제공 서비스의 속성과 사용 패턴, 관리자 운영 방식 등 전체 시스템의 모든 요소를 깊이 이해하고 이를 바탕으로 최적의 아키텍처를 구성할 수 있어야 합니다. 이런 포괄적인 분석력과 문제 해결 능력이 프로젝트의 전반적인 성공과 안정성에 결정적인 역할을 한다고 생각해요. 결국 .net 개발자들은 전체적인 설계자로서의 소양을 키워가는게 좋다고 생각합니다. 그리고 .net 개발을 계속 하다보면 그쪽으로 점점 진화하게 되는 것 같아요.