🎈 비즈니스 요구사항 정리
단순한 비즈니스 로직에 대해서 진행해보기 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 → 아직 데이터 저장소가 선정되지 않음 (가상의 시나리오) :아직 db가 선정되지 않은 상황에서 개발을 진행해야 하는 상황입니다.
- 일반적인 웹 애플리케이션의 계층구조
- 컨트롤러 : Web MVC의 컨트롤러 역할
- 서비스 : 핵심 비즈니스 로직 구현
- 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
- 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등 주로 데이터 베이스에 저장하고 관리됨
💡 웹 개발에 필요한 기본방법
✅ 1. 정적 컨텐츠 (static content)
스프링(Spring) 프레임워크에서 자동으로 제공되는 정적 컨텐츠(static content)는 웹 애플리케이션에서 동적으로 생성되지 않고 고정된 형태로 제공되는 리소스를 말합니다.
이는 주로 HTML, CSS, JavaScript, 이미지 파일 등과 같은 클라이언트 측에서 사용되는 파일들을 의미합니다.
정적 컨텐츠는 웹 애플리케이션의 리소스로 사용되며, 웹 브라우저에 직접 제공됩니다. 일반적으로 정적 컨텐츠는 웹 애플리케이션의 클래스패스 내에 위치하며,
클라이언트 요청에 따라 해당 리소스가 서버로부터 전달되어 브라우저에 표시됩니다.
스프링에서 정적 컨텐츠를 제공하기 위해 ResourceHttpRequestHandler와 같은 핸들러를 사용합니다.
이 핸들러는 요청된 URI와 일치하는 정적 리소스를 찾아서 응답으로 전송합니다.
스프링은 클래스패스, 파일 시스템, 웹 JAR 파일 등 다양한 위치에서 정적 리소스를 찾을 수 있도록 지원합니다.
정적 컨텐츠는 스프링 MVC에서 웹 애플리케이션의 리소스를 제공하는 중요한 요소 중 하나이며, 클라이언트에게 웹 페이지의 디자인, 스타일, 스크립트 등을 제공하는 데 사용됩니다.
🎈 2. MVC(Model-View-Controller) 소프트웨어 디자인 패턴 & 템플릿 엔진
MVC(Model-View-Controller)는 소프트웨어 디자인 패턴으로, 애플리케이션의 구성 요소를 3가지 모델(Model), 뷰(View), 컨트롤러(Controller)로 분리하여 개발하는 방법론입니다.
각 구성 요소는 특정한 역할과 책임을 가지며, 애플리케이션의 유지 보수성, 재사용성, 확장성을 높이는 데 도움이 됩니다.
- 모델(Model): 데이터와 비즈니스 로직을 담당합니다. 데이터베이스에서 데이터를 가져오거나 수정하고, 데이터의 유효성을 검증하며, 비즈니스 로직을 수행합니다.
모델은 도메인 객체, 데이터 액세스 객체, 서비스 객체 등으로 구성될 수 있습니다. - 뷰(View): 사용자 인터페이스를 담당합니다. 모델의 데이터를 사용자에게 보여주고, 사용자 입력을 받아 컨트롤러에 전달합니다.
뷰는 주로 HTML, CSS, JavaScript 등을 사용하여 웹 애플리케이션의 UI를 구성합니다. 사용자가 보는 화면을 담당하는 역할을 수행합니다. - 컨트롤러(Controller): 모델과 뷰를 연결하고, 사용자의 요청을 처리하는 역할을 합니다. 사용자의 요청을 받아 해당 요청에 대한 작업을 수행하고,
그 결과를 모델에 전달하여 업데이트하거나, 뷰에 전달하여 사용자에게 응답합니다. 컨트롤러는 사용자의 입력을 처리하고, 모델과 뷰 간의 상호작용을 조정하는 중개자 역할을 합니다.
템플릿 엔진을 MVC 방식으로 쪼개서 뷰를 템플릿 엔진으로 html을 더 프로그래밍 후 렌더링이 된 html을 클라이언트에게 전달해주는 것이 템플릿 엔진 방식이라고 합니다.
- 템플릿 엔진(Template Engine)은 동적인 컨텐츠를 생성하는 데 사용되는 도구입니다. 템플릿 엔진은 템플릿 문서와 데이터를 결합하여 최종 결과물을 생성합니다. 주로 웹 애플리케이션에서 사용되며, HTML, XML, JSON 등 다양한 형식의 템플릿을 처리할 수 있습니다.
- 템플릿 엔진은 템플릿 문서에 동적인 데이터를 삽입하고, 조건문, 반복문 등을 사용하여 동적인 로직을 처리할 수 있습니다. 예를 들어, 사용자가 요청한 데이터를 템플릿 엔진에 전달하면 엔진은 템플릿 문서 내에서 해당 데이터를 사용하여 최종 결과물을 생성하고 클라이언트에 전송합니다.
- 스프링 프레임워크에서는 여러 가지 템플릿 엔진을 지원합니다. 대표적으로 Thymeleaf, Freemarker, Velocity, JSP 등이 있습니다. 이러한 템플릿 엔진을 사용하여 MVC 패턴에서 뷰를 생성하고 데이터를 바인딩하여 동적인 웹 페이지를 구성할 수 있습니다.
'[ BACKEND] > Spring' 카테고리의 다른 글
[SPRING] HTTP 요청과 응답 (1) | 2023.07.10 |
---|---|
[SPRING] 스프링 DB 접근 기술 (0) | 2023.07.08 |
[SPRING] Spring Bean과 의존 관계 (0) | 2023.07.02 |
[Spring] view 환경설정 & 빌드와 실행해보기 (0) | 2023.06.23 |
[Spring] spring 개발환경 세팅과 실행 (0) | 2023.06.22 |