Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleORM사용의논쟁 : 개인적인 주관이 반영되었습니다.

JPA가 직접 SQL문을 수행합니다. 여기서 수많은 논쟁이 발생할수 있습니다.

  • A : SQL문을 어플리케이션에서 Type세이프(QueryDSL)하고 효율적인 방법으로 사용할수 있는 방법을 도입하였으며 DB호출을 방지하기위해 분산처리시켰습니다. 그런데 작동을 안합니다.
  • B: 쿼리튜닝에 관여할수 없으며 DBMS에서 관리할수 없으니, SELECT 권한이 없습니다.어플리케이션은 SP로만 사용해주세요 SP방식이 무조건 성능이좋습니다.
  • A : 운영 데이터가 꼬인것같습니다. A,B테이블에서 X조건이되는 게 문제인듯보입니다. 다른사람이 만든 SP에서 뭔가 잘못된거같습니다. 데이터 검증부탁드립니다.
  • B: 제가 왜 여러분이 만든문제를 일일이신경쓰야합니까? 알아서 찾으십시오
  • A : 형상관리가되는 어플리케이션을 통해 문제를 자동으로 찾고싶습니다. 어플리케이션에 Select권한을 주십시오
  • B: 정책상 어플리케이션이 쿼리를 하면 안됩니다. 운영처리해야하니... 개인계정을 추가하고 임시 Select권한을 드릴테니 직접 문제를 찾으십시오
  • A: 이문제를 찾는 SP를 작성하였습니다. 직접 호출하여 문제를 분석할테니 개인에게 SP실행권한을 주십시오
  • B: 정책상 개발자에게 SP 실행권한을 줄수 없습니다. 정상 디플로이된 어플리케이션을 통해 실행하십시오


개발자가 직접 운영DB에 접근을 해야하는 문제와 ,어플리케이션은 SP로만 작성되어야한다란 문제에서 충돌 과정입니다.

다소 극단적으로 상황을 만들어 냈지만.....이것은 DBMS의 차이로 정채이 그렇게되어야 한다고 결론내리는 DBA분도 계십니다.

MSSQL은 SP방식이 올바른거임, 오라클은 SP안쓰는게 올바른거임

본질적인 차이는

  • MSDBMS에서는 SP를 관리하는툴이 시각적으로나 튜닝적요소로 발전을 해왔고
  • 오라클에서는 성능개선점을 쿼리튜닝에 포인트를 두면서 발전을 해왔습니다.

그래서 어플리케이션에서 MSDB를 사용하면 SP를 사용해야하고 오라클을 사용하면 쿼리방식을 사용해야했습니다.

이것은 데이터 중심적 개발도 아니고... DBA중심적 개발방식입니다. 결코 오라클이나 MS가 결정한 사항이 아니란것입니다.


사실 JAVA진영은 오픈진영이기때문에 표준으로 자리잡는데 까지 시간이 오래걸립니다.

JAVA ORM 스펙정의는 10년이상 진행해왔고..,이제는 안정적으로 자리를 잡았으며

JPA로 완성단계이 이르렀습니다.


MS도 살펴보면 LINQ와 함께 ORM(Entity라이브러리) 의 스펙정의및 라이브러리화는

이미 오래전에 진행되었고 Asp.net에 EnterPrise Entity 를 자연스럽게 통합하고

Asp.net 개발자는 SP개발을 EnterPrise 라이브러리를 통해 SP맵핑을 사용해왔습니다. ( JAVA의 마이바티스 SP/SQL Mapper라고 해두겠습니다.)

그렇기때문에 MSSQL은 SP로만 사용해야해 라고 오판하고 있습니다. 사실 MS진영에

ORM을 LINQ와 함께 사용하는것은 JAVA에 JPA를 추가하는것보다 훨씬 쉽습니다.

이미 내장화가 되어있으니까요... EnterPrice EnterPrise Entity 는 말그대로 ORM을 구현하겠다란 네이밍입니다.

https://msdn.microsoft.com/en-us/library/aa937723(v=vs.113).aspx

...