찾다

 >  Q&A  >  본문

Spring Boot + React + MySQL 애플리케이션의 아키텍처 계층은 무엇입니까?

애플리케이션에 대한 문서를 작성하려고 하는데 아키텍처를 설명하는 방법이 혼란스럽습니다.

제가 조사한 바에 따르면 프리젠테이션 레이어는 React 애플리케이션, 비즈니스/애플리케이션 레이어는 Spring Boot 애플리케이션, 데이터 레이어는 MySQL이라고 생각했습니다.

이것은 나에게 논리적인 것처럼 보였지만 우연히 이 튜토리얼을 발견했습니다

https://www.youtube.com/watch?v=xJC7ItRoEbw&ab_channel=Amigoscode

그는 10시 38분쯤에 컨트롤러가 프레젠테이션 레이어의 일부라고 말하는데, 이는 내가 이미 알고 있는 것과 연결되지 않는 것 같습니다.

내 초기 생각을 표현하는 또 다른 튜토리얼 https://www.youtube.com/watch?v=udzBtJv2uls&ab_channel=Izenda가 있습니다.

또한 Spring Boot 애플리케이션에는 여러 계층의 컨트롤, 서비스 및 저장소(또는 dao's)가 있다는 것을 알고 있으므로 이 모든 정보를 결합하고 싶지만 이것이 큰 내용을 작성하게 될지는 잘 모르겠습니다. 버그

내 프로젝트를 바탕으로 이러한 내용을 설명해 주실 수 있나요? 프런트 엔드에는 데이터베이스와 통신하고 쿼리를 수행하는 저장소 메서드를 호출하는 서비스 메서드를 호출하는 일반적인 컨트롤러에 get 요청을 보내는 React 앱이 있습니다.

P粉346326040P粉346326040233일 전517

모든 응답(1)나는 대답할 것이다

  • P粉288069045

    P粉2880690452024-04-04 09:29:27

    영상에서 발표자는 매우 격식을 차리지 않고 레이어와 레이어를 번갈아 사용합니다. 많은 사람들이 이렇게 하기 때문에 문맥의 의도를 파악해야 합니다.

    저에게 있어 계층은 일반적으로 여러 시스템에 걸친 배포를 의미합니다. MySQL, springboot 애플리케이션의 React 코드 및 클라이언트 브라우저는 모두 일반적으로 서로 다른 시스템에서 실행되므로 서로 다른 계층입니다.

    그러나 "계층"이라는 용어는 이러한 배포를 의미하지 않습니다. SpringBoot 애플리케이션은 모두 동일한 애플리케이션 아티팩트의 일부인 웹 컨트롤러 계층, 서비스 계층 및 데이터 액세스 계층을 가질 수 있습니다. 이 용어는 애플리케이션 내의 논리가 어떻게 구성되어 있는지 논의하는 데 사용됩니다.

    Spring은 별도의 클러스터에서 호스팅되고 네트워크를 통해 통신되는 ejb 서버라고 불리는 웹 애플리케이션을 통해 애플리케이션이 계층으로 구축되어야 한다는 대중적인 가정에 대한 응답으로 시작되었습니다. Spring 창립자들은 접근 방식을 더 쉽게 설명하기 위해 레이어를 구분했습니다. Spring의 주요 아이디어를 소개하는 Rod Johnson의 저서 One on One에서는 이 표현을 사용합니다.

    컨트롤러가 프레젠테이션 레이어의 일부인지 여부는 논쟁의 여지가 있습니다. 나에게 프레젠테이션이란 컨트롤러가 엔드포인트 노출, 매개변수 유효성 검사 등과 같은 웹 관련 작업을 수행하는 모양과 느낌을 의미합니다. 그러나 특히 SPA에서는 프레젠테이션이 프런트 엔드 코드에 있고 서버 측에서는 데이터만 제공합니다. . SPA 컨트롤러 이전에는 컨트롤러가 서버에서 HTML을 렌더링하는 뷰로 전달되었으므로 컨트롤러와 프레젠테이션이 더 밀접하게 관련되었습니다.

    회신하다
    0
  • 취소회신하다