Stay Hungry Stay Foolish
728x90

☕ Backend/Spring, Spring Boot 8

[Spring] @Transactional

🌱 Spring @Transactional 동작 원리 및 핵심 컴포넌트목차1. 트랜잭션 기초 및 수동 제어의 한계2. @Transactional의 동작 원리 (AOP & Proxy)3. 핵심 컴포넌트: Manager & Synchronization4. 전체 실행 흐름도1. 트랜잭션 기초 및 수동 제어트랜잭션은 DB 상태를 변환시키는 하나의 논리적 작업 단위로, 원자성(All or Nothing)을 보장해야 합니다.⚠️ 수동 제어의 문제점connection.setAutoCommit(false); try { // 비즈니스 로직 connection.commit(); } catch (Exception e) { connection.rollback(); }핵심 로직에 트랜잭션 코드가 섞여 가독..

[Spring] Spring AOP

🌱 Spring AOP (관점 지향 프로그래밍) 개념목차1. AOP란? (횡단 관심사의 분리)2. AOP 주요 용어 및 Advice 종류3. 코드 예시 (@Aspect)4. Spring AOP의 원리 (Proxy & Weaving)1. AOP란? (Aspect-Oriented Programming)AOP는 관점 지향 프로그래밍으로, 핵심 비즈니스 로직과 공통적으로 사용되는 횡단 관심사(Cross-Cutting Concerns)를 분리하여 모듈성을 높이는 패러다임입니다.횡단 관심사 예시로깅(Logging), 트랜잭션 관리, 보안, 성능 측정, 예외 처리 등AOP가 필요한 이유중복 제거: 여러 메서드에 흩어진 공통 로직을 한 곳에서 관리합니다.변경 지점 단일화: 공통 로직 수정 시 Advice 하나만 변경..

[스프링] 프로필(Profile)이란?

ProfileSpring Boot에서 프로필은 실행 환경을 구분하기 위한 태그 같은 개념이다. 대표적으로 개발(dev)/테스트(test)/운영(prod) 환경마다 DB 접속 정보, 로깅 레벨, 외부 API 키, 캐시 및 보안 설정 등이 달라지는데, 코드를 건드리지 않고 설정 파일만 바꿔 끼울 수 있게 해 주는 기능이다. 프로필용 설정 파일("프로필 파일") 구조파일 이름when load역할application.properties 또는 .yml항상 로드되는 공통 설정JPA, Flyway 같은 공통 옵션application-dev.propertiesdev 프로필이 활성화됐을 때만H2 메모리 DB, 디버그 로그application-prod.ymlprod 프로필이 활성화됐을 때만MySQL 접속 정보, 로깅 최소..

[스프링] @RequestParam 어노테이션

@RequestParamHTTP 요청에서 전달된 "파라미터 값"을 컨트롤러 메서드의 매개변수로 바인딩해주는 어노테이션이다.쉽게 말하면, 클라이언트가 요청할 때 URL이나 폼에 같이 보낸 값을 변수로 받아주는 역할이다. 🔍 예제 1: GET 요청에서 사용📌 요청 URLGET /greet?name=홍길동 📌 컨트롤러@GetMapping("/greet")public String greet(@RequestParam String name) { return "안녕하세요, " + name + "님!";}?name=홍길동 → @RequestParam String name으로 전달결과 : "안녕하세요, 홍길동님!" 🔍 예제 2: POST 폼 데이터에서 사용📌 HTML 폼 로그인 📌 컨트롤러..

[스프링] 요청 매핑 어노테이션

요청 매핑이란?요청(request)은 클라이언트(브라우저, 앱 등)가 서버로 보내는 메시지다. 예를 들어,GET /helloPOST /login이런 요청을 어떤 메서드가 처리할지 연결(매핑) 해주는 것이 바로 요청 매핑(Request Mapping)이다. 동작 방식@GetMapping("/hello")public String sayHello() { return "Hello!";}클라이언트가 GET /hello 요청을 보낸다.스프링은 "/hello"를 처리할 수 있는 메서드를 찾는다.sayHello() 메서드가 매핑되어 있으니까, 이 메서드가 실행된다.반환값으로 "Hello!"가 응답으로 돌아간다. 📌 주요 요청 매핑 어노테이션들어노테이션의미@RequestMapping범용 요청 매핑(GET, PO..

[스프링] @ResponseBody, ResponseEntity

@ResponseBody이 어노테이션은 리턴값을 HTTP 응답 바디에 직접 넣겠다는 의미이다. 사용 예시@Controller@ResponseBodypublic class MyController { @GetMapping("/hello") public String hello() { return "Hello, world!"; }} @Controller만 사용한 경우@Controllerpublic class MyController { @GetMapping("/hello") public String hello() { return "hello"; // → templates/hello.html 같은 뷰를 찾음 }}스프링은 리턴값을 뷰(View)의 이름으로 처..

[스프링] application.properties 파일

application.propertiesSpring Boot에서 설정 정보를 저장하는 파일이다. 주로 다음과 같은 설정들을 포함한다. ✅ 기본 구조키=값모든 설정은 키=값 형식으로 작성되며, Spring Boot가 이 키를 기준으로 자동 설정한다. 📌 자주 사용하는 설정 예시1. 서버 설정server.port=8083 # 서버 포트 번호 설정 (기본값은 8080)server.servlet.context-path=/api # API의 기본 경로 설정 2. 데이터베이스 설정spring.datasource.url=jdbc:mysql://localhost:3306/mydbspring.datasource.username=rootspring.datasource.password=1234spring.data..

[스프링 프레임워크] 기본 개념 정리 1

스프링 프레임워크 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 프레임워크 기반 기술로서 쓰이고 있다. 인터페이스(Interface) 추상 메소드만을 가질 수 있고, 구현 메서드는 가질 수 없는 일종의 추상클래스이다. ※ 추상 메소드란 선언은 되어 있으나 코드가 구현되어 있지 않은 메소드이다. abstract 키워드를 선언하는 선언부만 존재하고, 구현부는 작성하지 않고 사용한다. 작성되어 있지 않은 구현부는 자식클래스에서 오버라이딩(Overriding)하여 사용한다. 인터페이스의 역할 - 객체를 어떻게 구성해야 하는지 정리한 설..

728x90