문제

웹 사이트 성능 관점에서 DTO의 장점과 단점은 무엇입니까?(웹 서버가 아닌 다른 앱 서버에서 데이터베이스에 액세스하고 웹 서버가 데이터베이스에 직접 액세스할 수 있는 경우에 대해 이야기하고 있습니다.)

도움이 되었습니까?

해결책

DTO는 성능 문제가 아닙니다.귀하가 요구하는 것은 계층화가 성능에 미치는 영향이라고 생각합니다.특히 웹 계층(웹 서버)과 데이터 계층(데이터베이스 서버) 사이에 애플리케이션 계층을 사용합니다.

일반적으로 지연 시간이 늘어나지만(추가 네트워크 왕복이 발생함) 시스템 간에 로드를 분할하면 추가 용량을 얻을 수 있습니다.

사람들이 그렇게 하는 또 다른 일반적인 이유(역시 성능이 아닌)는 애플리케이션과 데이터베이스 서버를 방화벽 내부에 유지하면서 웹 서버를 DMZ에 배치할 수 있도록 허용하는 것입니다.

또 다른 잠재적인 이유(비성능)는 단일 애플리케이션 위에 여러 UI를 연결하는 기능입니다.나는 과거 프로젝트에서 이 작업을 수행하여 훌륭한 결과를 얻었습니다(비즈니스에서 요구하는 경우).

또한 그러한 성격의 아키텍처를 유지하는 데 필요한 작업을 과소평가하지 마십시오.계층화되지 않은 솔루션보다 작업량이 더 많기 때문에 필요할 것으로 예상되는 경우에만 사용하세요.

즉, DTO를 사용한다고 해서 반드시 계층화를 사용해야 하는 것은 아닙니다.

내가 찾은 계층화에 대한 가장 좋은 설명은 Martin Fowler의 저서 Analysis Patterns에서 나왔습니다.뒷면에는 애플리케이션 외관과 계층화에 대한 작은 섹션이 있습니다.

이전 답변을 반복하자면 DTO는 성능 문제가 아닙니다.이는 애플리케이션의 다양한 부분 간에 격리를 제공하는 데 사용되는 메서드가 없는 클래스일 뿐입니다.

또한 Martin의 다른 책인 Patterns of Enterprise Application Architecture를 선택하는 것이 좋습니다.DTO "패턴"이 거기에 문서화되어 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top