일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 배열
- Board
- JDBC
- Uipath
- Array
- 상속
- 이클립스
- MVC
- Thymeleaf
- Eclipse
- jsp
- html
- 문자열
- Database
- mysql
- rpa
- 조건문
- Oracle
- API
- Java
- string
- Controller
- View
- SpringBoot
- git
- React
- db
- spring
- jquery
- Scanner
- Today
- Total
목록개발자 공부/♡ Spring XML (12)
유정잉
📌 PostgreSQL에서 ALIAS (알리아스 절) & #{} vs ${} 차이점 ✅ ALIAS(별칭)는 SQL 쿼리에서 컬럼명이나 테이블명을 임시로 다른 이름으로 지정하는 기능!✅ MyBatis에서는 #{}를 사용해야 SQL 인젝션(SQL Injection) 공격을 방지할 수 있음! 🔥 1️⃣ ALIAS (별칭)란?📌 SQL에서 AS 키워드를 사용하여 테이블명, 컬럼명을 임시로 변경하는 기능📌 쿼리를 더 읽기 쉽게 만들고, JOIN 시 같은 컬럼명이 있을 경우 충돌 방지 가능✅ PostgreSQL에서 ALIAS 기본 문법SELECT column_name AS alias_nameFROM table_name;✅ 예제 1: 컬럼명을 간단한 별칭으로 변경SELECT username AS name, e..
📌 Entity, Controller, Service, Mapper, JSP를 사용하여 데이터를 화면에 보여주는 과정 🎯✅ 백엔드에서 데이터를 가져오고, JSP에서 데이터를 출력하는 전체 과정!🔥 1️⃣ 전체 흐름 (Spring MVC + MyBatis 구조)[1] 사용자가 브라우저에서 웹사이트를 방문함 (JSP) ↓[2] 사용자가 특정 데이터를 요청함 (Controller) ↓[3] Controller가 Service에 데이터 요청 ↓[4] Service가 Mapper(DAO)에게 데이터 요청 ↓[5] Mapper(DAO)가 데이터베이스(MySQL)에서 데이터 조회 ↓[6] 조회된 데이터를 Service → Controller → JSP로 전달 ↓[7] JSP에서 데이터를 화..
✅ Spring MVC에서 클라이언트가 보낸 데이터를 Controller에서 받는 방법은 3가지!✅ 각각 어떤 방식으로 데이터를 주고받는지 JSP 연동까지 자세히 설명할게!🔥 1️⃣ @RequestParam, @PathVariable, @RequestBody 차이점어노테이션데이터 전달 방식사용 예제요청 방식@RequestParam쿼리 스트링 값 받기 (?key=value)/user?name=Tom&age=25GET, POST@PathVariableURL 경로 값을 받기 (/{value})/user/Tom/25GET@RequestBodyJSON 데이터를 객체로 변환하여 받기{ "name": "Tom", "age": 25 }POST, PUT✅ 즉, @RequestParam은 ?key=value로 전달, @..
✅ Spring MVC는 클라이언트 요청을 처리하고, JSP(View)로 데이터를 넘겨주는 구조!✅ @RequestMapping을 사용해서 URL과 컨트롤러(Controller) 메서드를 연결!✅ JSP 파일과 연결하는 과정을 직접 코드로 확인해보자!🔥 1️⃣ Spring MVC 기본 구조 (Model-View-Controller)✅ Spring MVC 흐름[1] 클라이언트 요청 → [2] DispatcherServlet(Spring) → [3] Controller(@RequestMapping) → [4] Service(비즈니스 로직) → [5] Model(데이터 저장) → [6] View(JSP)로 데이터 전달 → [7] 클라이언트에게 응답✅ Controller가 요청을 받아서 ..
📌 Spring에서 "타입(Type) 기준으로 Bean을 찾는다"는 말의 의미✅ Spring에서 @Autowired를 사용하면 "이름"이 아니라 "타입"을 기준으로 Bean을 찾아서 주입함!✅ 즉, 변수의 자료형(클래스 타입)을 기준으로, 그에 맞는 객체(Bean)를 자동으로 넣어줌1️⃣ 타입(Type) 기준으로 찾는다는 게 무슨 의미일까?우선 "타입 기준" vs "이름 기준"을 비교해서 이해해보자!🔹 ① 타입(Type) 기준 (@Autowired)@Component // Spring이 자동으로 Bean으로 등록class Engine { public String getType() { return "V8 Engine"; }}@Componentclass Car { priva..
📌 @ComponentScan을 사용하면 @Bean을 따로 지정해줄 필요가 있을까?✅ 결론: @ComponentScan을 사용하면 @Bean을 따로 지정하지 않아도 됨!✅ 단, @Component를 붙여야 Spring이 자동으로 Bean으로 등록해줌!1️⃣ @Component만 사용한 경우 (@Bean 필요 없음!)✅ Test1 클래스 (자동 등록 방식)package beans;import org.springframework.stereotype.Component;@Component // "Test1" 클래스를 자동으로 Bean으로 등록!public class Test1 { public void sayHello() { System.out.println("Hello from Test1!..
DI(Dependency Injection, 의존성 주입)란?👉 객체를 직접 생성하는 대신, 외부에서 주입해주는 방식👉 코드의 유지보수성 증가, 객체 간 결합도 감소🔥 1️⃣ 자동(Annotation 기반) DI (@Autowired)💡 Spring이 자동으로 객체를 주입해주는 방식✅ @Autowired 어노테이션을 사용하면, Spring이 해당 타입의 Bean을 자동으로 찾아서 주입해줌✅ XML 설정 없이 간단하게 사용할 수 있음📌 코드 예제import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Component // Engine 클래스를 Bean으로..
Constructor DI(생성자 주입)란 객체를 생성할 때, 생성자의 매개변수로 필요한 의존성을 전달하는 방식XML에서는 태그를 사용해서 주입할 수 있음!1️⃣ 기본 개념: Car와 Engine의 관계예제를 쉽게 이해하기 위해, Car 클래스가 Engine 객체를 필요로 한다고 가정즉, Car 객체가 생성될 때 Engine 객체가 필요함 → 생성자로 Engine을 주입해야 함! 2️⃣ Java 클래스 정의✅ Engine 클래스 (주입될 객체)package com.example;public class Engine { private String type; // 생성자 (Engine 타입을 설정하는 역할) public Engine(String type) { this.type =..
📌 init-method & destroy-method 차이점과 사용법스프링에서는 Bean의 라이프사이클(생성 → 사용 → 소멸)을 관리init-method → Bean이 생성될 때 실행할 메서드 지정destroy-method → Bean이 소멸될 때 실행할 메서드 지정이 속성을 사용하면, 특정 작업(초기화/정리)이 필요할 때 자동으로 실행할 수 있음1️⃣ init-method="Test3_init"✅ Bean이 생성된 후 자동으로 실행할 메서드 지정✅ DB 연결, 리소스 로드, 초기 설정 등을 할 때 사용📌 예제 (beans.xml) 📌 Java 코드 (Test3.java)package com.example; public class Test3 { public void Test3_init() { ..
📌 scope="prototype" vs scope="singleton" 차이점스프링에서 scope 속성은 Bean의 생성 방식(범위, 라이프사이클)을 결정기본값: singleton (단 하나의 객체만 생성)prototype: 필요한 만큼 객체를 새로 생성1️⃣ scope="singleton" (기본값)✅ 스프링 컨테이너가 실행될 때, 해당 Bean을 단 하나만 생성✅ 모든 요청에서 같은 객체를 공유✅ 기본값이므로 설정하지 않아도 자동으로 singleton 적용됨📌 예제 (beans.xml) 📌 동작 방식ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");Test t1 = context.getBean("testBe..