Web/Spring

    [Spring] 스프링 MVC 흐름

    스프링 MVC의 웹 요청을 처리하는 과정은 다음과 같다. ① 웹 브라우저(클라이언트)에서 URL을 요청하면 가장 먼저 디스패처 서블릿에 전달된다. ② URL 요청을 받은 디스패처 서블릿은 어느 컨트롤러에서 요청을 처리할지 결정하려고 핸들러 매핑으로 적합한 컨트롤러를 검색한다. ③ 핸들러 매핑은 클라이언트 요청을 처리할 컨트롤러를 결정하여 디스패처 서블릿에 반환한다. ④ 컨트롤러는 해당 클라이언트 요청을 전달받는다. GET 또는 POST 방식을 기반으로 적합한 메서드를 호출한다. ⑤ 호출된 메서드는 정의된 비즈니스 로직으로 모델 데이터를 설정하고 뷰 이름을 디스패처 서블릿에 반환한다. ⑥ 디스패처 서블릿은 웹 브라우저에서 들어온 요청을 처리한 결과를 보여 주려고 뷰 리졸버에 도움을 요청하여 응답 결과를 생..

    [스프링 입문] Section 3. 회원 관리 예제 - 백엔드 개발

    1. 비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 개발을 해야 하는데, 성능이 좋은 DB를 사용할지? NoSQL을 사용할지? 아직 정해지지 않은 상황에서 개발을 해야 하는 상황 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 (ex. 이벤트 처리 등) 서비스 : 핵심 비즈니스 로직 구현 (ex. 회원 중복 확인 등) 도메인 : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등), 주로 데이터베이스에 저장하고 관리됨 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 클래스 의존관계 MemberService 회원 비즈니스 로직이 있는 회원 서비스 (서비스 클래스에 핵심 비..

    [스프링 입문] Section 2. 스프링 웹 개발 기초

    1. 정적 컨텐츠 정적 컨텐츠는 만들어진 파일 그대로 사용자에게 전달된다. 기본적으로 스프링 부트는 정적 컨텐츠를 /static (/public, /resources, /META-INF/resources)에서 제공한다. 스프링 부트 매뉴얼 : https://docs.spring.io/spring-boot/docs/2.7.8/reference/htmlsingle/#web.reactive.webflux.static-content resources/static/hello-static.html 정적 컨텐츠 입니다. 실행 : http://localhost:8081/hello-static.html 정적 컨텐츠 이미지 /hello-static.html 요청을 받고, 내장 톰캣 서버는 컨트롤러에서 hello-stati..

    [스프링 입문] Section 1. 프로젝트 환경설정

    1. 프로젝트 생성 📝 사전 준비물 Java 11 설치 IntelliJ 설치 1. 스프링 부트 스타터 사이트 이동해서 스프링 프로젝트 생성 https://start.spring.io/ 2. 프로젝트 선택 1) Project (빌드 도구 - Maven, Gradle) 빌드는 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정으로 컴파일, 패키징, 테스트, 배포 등의 작업들을 말한다. 빌드 도구는 이러한 빌드 과정을 자동으로 수행해 주는 도구이다. 과거에는 Maven을 주로 사용했고, 요즘에는 Gradle을 사용한다. (Maven으로 프로젝트를 생성하게 되면 pom.xml이 생성되고, Gradle로 프로젝트를 생성하게 되면 build.gradle, settings.gradle이 생..