| Dango | Spring |
|---|---|
| MTV 패턴 (Model-View-Template) | MVC 패턴 (Model-View-Controller) |
| Model 데이터베이스와 상호 작용하기 위한 파이썬 클래스로, 데이터베이스의 테이블을 나타냄 | Domain 애플리케이션에서 다루는 개념이나 엔티티를 나타냅니다. 비즈니스 로직이 포함될 수 있으며, 데이터베이스와의 상호 작용을 담당할 수 있다. |
| View 클라이언트의 HTTP 요청을 받아 해당 요청에 대한 응답을 생성하는 역할을 합니다. | Controller 클라이언트의 HTTP 요청을 받아 해당 요청에 대한 처리를 수행하고 적절한 응답을 생성 |
| From / Serializer 폼(Form): 웹 폼과 관련된 로직을 캡슐화하고, 사용자로부터 데이터를 입력받아 처리하는 역할을 합니다. 시리얼라이저(Serializer): 모델 인스턴스를 JSON 또는 XML과 같은 직렬화된 형식으로 변환하거나, 반대로 직렬화된 데이터를 모델 인스턴스로 역직렬화하는 데 사용됩니다. | DTO 데이터 전송 객체로, 서비스 계층과 컨트롤러 간의 데이터 전달을 위해 사용됩니다. |
| ORM 데이터베이스와 상호 작용하기 위한 인터페이스로, 모델 클래스와 데이터베이스 테이블을 매핑하고, 데이터베이스 쿼리를 쉽게 생성하고 실행할 수 있습니다. | Repository 데이터베이스나 다른 영구 저장소와의 상호 작용을 추상화하는 인터페이스입니다. |
| Model / View 모델이나 뷰에서 비즈니스 로직을 구현하며, 모델 메서드나 뷰 함수 내에서 해당 로직을 처리합니다 | Service 비즈니스 로직을 구현하고, 여러 개의 리포지토리를 조합하여 트랜잭션을 관리하고, 도메인 객체 간의 복잡한 연산이나 로직을 처리합니다. |
| Middleware 요청 및 응답 처리에 대한 미들웨어를 사용하여 애플리케이션의 동작을 제어하거나 수정할 수 있습니다. | Aspect 플리케이션에서 공통 관심 사항(Cross-Cutting Concerns)을 모듈화하고, 중복 코드를 제거하며, 코드를 재사용할 수 있습니다. 예를 들어 로깅, 트랜잭션 관리 등의 부가적인 기능을 제공합니다. |
| 템플릿 엔진 HTML과 같은 마크업 언어와 파이썬 코드를 조합하여 동적인 웹 페이지를 생성합니다. | 뷰 템플릿 동적인 HTML 컨텐츠를 생성합니다. Thymeleaf, JSP(JavaServer Pages) 등의 템플릿 엔진을 사용할 수 있습니다. |
| URL 패턴 urls.py 파일을 사용하여 URL 패턴을 정의하고, 각 URL 패턴에 대응하는 뷰 함수를 연결합니다. | URL 매핑 @RequestMapping 어노테이션 또는 XML 설정을 통해 URL 매핑을 정의합니다. 클라이언트의 요청을 특정한 컨트롤러 메서드에 매핑합니다. |