Spring boot
-
Spring 핵심 메커니즘 중 하나인 트랜잭션 관리는 Spring Boot 를 사용하고 있으면 대부분내부적으로 선언적 트랜잭션 관리를 사용하고 있다. 💡 트랜잭션(Transaction) 이란? 트랜잭션은 데이터베이스의 상태를 변경하는 하나의 논리적 작업 단위를 말한다.즉, 여러 SQL 작업이 있을 때 모두 성공하거나(all or nothing) 모두 실패해야 하는 원자적 단위이다. ✅ 예시 1. 계좌 A → 계좌 B 로 10만원 송금 - A 계좌 잔액 10만원 감소 - B 계좌 잔액 10만원 증가 이 두 SQL 중 하나라도 실패하면, 전체 작업이 취소되어야 함 → 이것이 트랜잭션의 역할입니다.쉽게 말해, 한 메서드 내 2가지 이상의 SQL 작업이 있다고 하면 모두 성공하거나 실패해야 한다...
트랜잭션(Transaction) 관리Spring 핵심 메커니즘 중 하나인 트랜잭션 관리는 Spring Boot 를 사용하고 있으면 대부분내부적으로 선언적 트랜잭션 관리를 사용하고 있다. 💡 트랜잭션(Transaction) 이란? 트랜잭션은 데이터베이스의 상태를 변경하는 하나의 논리적 작업 단위를 말한다.즉, 여러 SQL 작업이 있을 때 모두 성공하거나(all or nothing) 모두 실패해야 하는 원자적 단위이다. ✅ 예시 1. 계좌 A → 계좌 B 로 10만원 송금 - A 계좌 잔액 10만원 감소 - B 계좌 잔액 10만원 증가 이 두 SQL 중 하나라도 실패하면, 전체 작업이 취소되어야 함 → 이것이 트랜잭션의 역할입니다.쉽게 말해, 한 메서드 내 2가지 이상의 SQL 작업이 있다고 하면 모두 성공하거나 실패해야 한다...
2025.11.06 -
@RequestMapping, @GetMapping, @PostMapping 등에 있는 consumes 나 produces 속성은Spring MVC 에서 컨트롤러 메서드가 어떤 타입의 요청 본문을 받아들 일 수 있는지와 응답을 할 수 있는지명시하는 역할을 한다. 1️⃣ 한 문장으로 요약consumes = 요청(Request) 의 Content-Type 을 제한하는 속성produces = 응답(Response) 를 어떤 형식으로 보낼지 제한하는 속성즉, 클라이언트가 HTTP 요청을 보낼 때 Content-Type 헤더가 consumes 에서 지정한 값과 일치해야요청한 컨트롤러 메서드가 호출된다. 2️⃣ 기본 문법@PostMapping(value = "/save", consumes = "application..
@RequestMapping 의 consumes 속성, produces 속성@RequestMapping, @GetMapping, @PostMapping 등에 있는 consumes 나 produces 속성은Spring MVC 에서 컨트롤러 메서드가 어떤 타입의 요청 본문을 받아들 일 수 있는지와 응답을 할 수 있는지명시하는 역할을 한다. 1️⃣ 한 문장으로 요약consumes = 요청(Request) 의 Content-Type 을 제한하는 속성produces = 응답(Response) 를 어떤 형식으로 보낼지 제한하는 속성즉, 클라이언트가 HTTP 요청을 보낼 때 Content-Type 헤더가 consumes 에서 지정한 값과 일치해야요청한 컨트롤러 메서드가 호출된다. 2️⃣ 기본 문법@PostMapping(value = "/save", consumes = "application..
2025.10.13 -
1️⃣ 직렬화(Serialization) 정의Java 객체 → 특정 포맷의 데이터로 변환하는 과정Spring 에서는 주로 HTTP 응답(Response) 으로 전송할 때 사용 예시Java 객체public class User { private String name = "홍길동"; private int age = 30; // getter/setter} 1. JSON 직렬화{"name":"홍길동","age":30} 2. XML 직렬화 홍길동 30 Spring 에서@RestController 에서 객체를 반환할 때 Spring 이 자동으로 직렬화를 수행Converter 역할 : Java 객체 → JSON/XML 등JSON : MappingJackson2HttpMessageConver..
직렬화, 역직렬화 (HttpMessageConverter)1️⃣ 직렬화(Serialization) 정의Java 객체 → 특정 포맷의 데이터로 변환하는 과정Spring 에서는 주로 HTTP 응답(Response) 으로 전송할 때 사용 예시Java 객체public class User { private String name = "홍길동"; private int age = 30; // getter/setter} 1. JSON 직렬화{"name":"홍길동","age":30} 2. XML 직렬화 홍길동 30 Spring 에서@RestController 에서 객체를 반환할 때 Spring 이 자동으로 직렬화를 수행Converter 역할 : Java 객체 → JSON/XML 등JSON : MappingJackson2HttpMessageConver..
2025.10.02 -
1. 컴파일러 수준(Java 컴파일 타임)@Servicepublic class UserService { private final UserRepository userRepository; // 생성자 파라미터 주입 public UserService(UserRepository userRepository) { this.userRepository = userRepository; }} 컴파일러는 단순히 생성자에 UserRepository 타입 파라미터가 필요하다는 사실만 기록한다.즉, 바이트코드 수준에서는UserService 를 만들려면 UserRepository 타입 인자가 필수라는게 명시된다.userRepository 는 final 이라서 생성자 호출 시 반드시 초기화되어 있어..
Spring Bean 생성 동작 과정1. 컴파일러 수준(Java 컴파일 타임)@Servicepublic class UserService { private final UserRepository userRepository; // 생성자 파라미터 주입 public UserService(UserRepository userRepository) { this.userRepository = userRepository; }} 컴파일러는 단순히 생성자에 UserRepository 타입 파라미터가 필요하다는 사실만 기록한다.즉, 바이트코드 수준에서는UserService 를 만들려면 UserRepository 타입 인자가 필수라는게 명시된다.userRepository 는 final 이라서 생성자 호출 시 반드시 초기화되어 있어..
2025.09.11 -
@ConditionalOnBean, @ConditionalOnExpression두개의 어노테이션들은 조건부 Bean 등록을 하는 어노테이션들이다.보통 @Configuration 클래스나 @Bean 메서드에 붙여서 특정 조건이 만족될 때만 Bean 등록할 수 있도록 한다. 1. @ConditionalOnBean정의: 어플리케이션 컨텍스트에 특정 Bean 이 존재할 경우 현재 Bean 을 등록하도록 조건을 거는 어노테이션용도: 어떤 기능이 다른 Bean 이 존재해야만 동작 가능한 경우 사용예시@Configurationpublic class MyConfig { @Bean public ServiceA serviceA() { System.out.println("================..
@ConditionalOnBean, @ConditionalOnExpression@ConditionalOnBean, @ConditionalOnExpression두개의 어노테이션들은 조건부 Bean 등록을 하는 어노테이션들이다.보통 @Configuration 클래스나 @Bean 메서드에 붙여서 특정 조건이 만족될 때만 Bean 등록할 수 있도록 한다. 1. @ConditionalOnBean정의: 어플리케이션 컨텍스트에 특정 Bean 이 존재할 경우 현재 Bean 을 등록하도록 조건을 거는 어노테이션용도: 어떤 기능이 다른 Bean 이 존재해야만 동작 가능한 경우 사용예시@Configurationpublic class MyConfig { @Bean public ServiceA serviceA() { System.out.println("================..
2025.09.09 -
🔑 STS(Git) 주요 용어 정리 1. CommitGit 개념 : 현재 변경된 파일(Working Tree → Staging Area)을 하나의 버전으로 저장하는 행위Git Staging 뷰에서 Staged Changes 에 있는 파일을 선택 → Commit 버튼메세지를 입력해야함🚩 결과 : 로컬 저장소(Local Repository)에만 기록된다. 아직 원격저장소에는 저장하지 않은 상태 2. PushGit 개념 : 로컬 저장소(Local Repository)에 Commit 한 데이터를 원격 저장소(Remote Repository) 에 업로드Team → Push Branch ... 또는 Git Staging 뷰에서 Commit and Push 가능🚩 결과 : 다른 팀원들이 원격 저장소에 있는 내..
STS git 사용용어 정리🔑 STS(Git) 주요 용어 정리 1. CommitGit 개념 : 현재 변경된 파일(Working Tree → Staging Area)을 하나의 버전으로 저장하는 행위Git Staging 뷰에서 Staged Changes 에 있는 파일을 선택 → Commit 버튼메세지를 입력해야함🚩 결과 : 로컬 저장소(Local Repository)에만 기록된다. 아직 원격저장소에는 저장하지 않은 상태 2. PushGit 개념 : 로컬 저장소(Local Repository)에 Commit 한 데이터를 원격 저장소(Remote Repository) 에 업로드Team → Push Branch ... 또는 Git Staging 뷰에서 Commit and Push 가능🚩 결과 : 다른 팀원들이 원격 저장소에 있는 내..
2025.09.02