반응형 Back-end/Spring7 [Spring] Vue와 연동되는 스프링 게시판 백엔드 구조 정리 1. Vue 연동 백엔드 vs 일반 백엔드 구조 비교Vue와 연동되는 백엔드는 일반적인 Spring MVC와 다음과 같은 차이점이 있다.구분 일반 백엔드 Vue 연동 백엔드 뷰 처리 방식JSP로 서버가 HTML을 렌더링Vue가 화면 렌더링, 백엔드는 JSON만 응답컨트롤러 어노테이션@Controller + View 반환@RestController + JSON 반환요청 방식HTML Form 방식Vue의 Axios + JSON 또는 FormData응답 형식HTML 페이지JSON 데이터 (ResponseEntity)인증 처리 방식세션 기반 인증토큰 기반 인증파일 업로드 방식HTML Multipart/form-data로 전송 -> JSP에서 처리Vue에서 FormData로 전송, 백엔드는 DTO + 파일 처.. 2025. 7. 6. [Spring] 스프링 백엔드 구조 정리: DTO, VO, Mapper, Service 차이와 흐름 📁 구성 요소와 역할구성 요소역할설명Controller웹 요청 처리클라이언트의 요청을 받고 DTO로 전달, 응답도 DTO로 반환DTO (Data Transfer Object)데이터 전달 객체클라이언트 ↔ 서버 간 데이터 전송용VO (Value Object)값 객체DB와 연동되는 진짜 데이터MapperDB 접근 인터페이스SQL 실행을 위한 인터페이스로 Service에서 호출, Mapper.xml과 연결Mapper.xmlSQL 정의 파일Mapper 인터페이스의 메서드에 연결되어, 직접 SQL을 명시하는 XML 파일Service (interface)서비스 정의어떤 기능이 있는지 정의ServiceImpl서비스 구현체DTO ↔ VO 변환, 로직 처리, Mapper 호출 등 작업 수행 ☑️ 전체 구조[클라이언트].. 2025. 7. 6. [Spring] Model 객체와 @ModelAttribute 1. Model이란?Controller → View로 데이터를 전달할 때 사용하는 객체HTML에서 ${변수이름}으로 출력하고 싶을 때, Model에 값을 담아 전달 예제Controller@Controller@Slf4jpublic class HomeController { @GetMapping("/") public String home(Model model) { model.addAttribute("name", "홍길동"); return "index"; // views/index.jsp로 포워딩됨 }}JSP에서 ${name}으로 사용할 수 있도록 데이터를 전달하는 코드 View (index.jsp) ${name} 환영합니다. 최종 출력 결과홍길동 환영합니다. 2... 2025. 6. 29. [Spring] DTO와 VO의 차이 1. DTO란? (Data Transfer Object)계층 간 데이터 전달에 사용되는 객체목적: 데이터 전달가변성 - 값을 자유롭게 바꿀 수 있음getter, setter 있음 2. VO란? (Value Object)VO는 '값' 자체를 의미하는 객체 주소(Address), 이메일(Email), 금액(Money)처럼 하나의 의미 있는 값 단위를 묶어서 나타낸다.목적: 의미 있는 값 표현불변성 - 값이 바뀌지 않음 (setter 없음)equals(), hashCode() 재정의 → 값 자체를 비교 3. 예시로 이해하기: 회원가입 기능1) 사용자가 입력한 정보를 서버로 전달할 때{ "name": "홍길동", "email": "hello@example.com", "password": "1234"} 회.. 2025. 6. 27. [Spring] 스프링 MVC의 Controller와 파라미터 수집 1. Controller란?웹 브라우저가 보낸 요청을 받아서 처리하고,그 결과를 다시 웹 브라우저에게 돌려주는 역할을 하는 클래스 어노테이션어노테이션역할@Controller이 클래스가 컨트롤러임을 Spring에게 알려줌@RequestMapping요청 URL 및 HTTP 메서드(GET, POST 등)와 자바 메서드를 연결 예제@Controllerpublic class HelloController { @RequestMapping("/hello") public String hello() { return "hello"; // view 이름 }}/hello 주소로 접속하면 hello() 메서드가 실행됨문자열 "hello"는 뷰 이름 → ViewResolver가 hello.html 파일.. 2025. 6. 27. [Spring] 스프링 MVC 프로젝트의 기본 구조와 흐름 🔧 Spring MVC 프로젝트의 내부 구조1) 일반 설정 (Root Context)root-context.xml 사용하는 일반 JAVA 영역 2) MVC 설정 (Servlet Context)servlet-context.xml 사용하는 Web 관련 영역 3) WebApplicationContext일반 설정(Root)과 MVC 설정(Servlet)을 계층적으로 분리하여 로드함 🔄 Spring MVC 라이프사이클 (요청 흐름)요청이 들어와서 응답이 반환되기까지 스프링 MVC의 내부 동작 순서Filter → DispatcherServlet → HandlerMapping → HandlerInterceptor → Controller → Service → Repository → ViewResolver → Vi.. 2025. 6. 18. 이전 1 2 다음 반응형