Language/Java 9

[Spring] 트랜잭션 정리

👀 서비스 로직을 개발할 때 여러 작업을 하나로 묶어서 모두 성공하거나 모두 실패하게 처리해야 할 때가 있다.ex) 회원가입과 동시에 포인트를 적립하는 상황에서 회원만 등록되고 포인트 적립이 실패하면 안됨 👉 이러한 문제를 해결하기 위해 트랜잭션을 사용한다.1️⃣ 스프링 트랜잭션의 핵심: AOP 프록시 + @Transactional 스프링에서 @Transactional 을 메소드에 붙이면, 해당 메소드는 프록시(proxy) 객체를 통해 호출된다. 이 프록시는 메소드 실행 전후에 트랜잭션의 시작, 커밋, 롤백을 자동으로 처리해준다. 🤷‍♀️ 프록시란?진짜 객체 대신 앞에서 대리로 행동하는 가짜 객체ex) 직접 은행에 가서 돈을 인출하는 대신 나 대신 일을 처리해주는 직원(프록시)에게 부탁할 수 있음 ..

Language/Java 2025.10.16

[JAVA] 퀵 정렬 (Quick Sort)

퀵 정렬은 피벗을 기준으로 두개의 부분리스트로 나누어 하나는 피벗보다 작은 값들의 부분리스트, 다른 하나는 피벗보다 큰 값들의 부분리스트로 정렬한 다음, 각 부분리스트에 대해 다시 재귀적으로 수행하여 정렬하는 방법이다. 1. 피벗을 하나 선택한다. 2. 피벗을 기준으로 양쪽에서 피벗보다 큰 값, 혹은 작은 값을 찾는다. 왼쪽에서부터는 피벗보다 큰 값을 찾고, 오른쪽에서 부터는 피벗보다 작은 값을 찾는다. 3. 양 방향에서 찾은 두 원소를 교환한다. 4. 왼쪽에서 탐색하는 위치와 오른쪽에서 탐색하는 위치가 엇갈리지 않을 대 까지 2번으로 돌아가 위 과정을 반복한다. 5. 엇갈린 기점을 기준으로 두 개의 부분리스트로 나누어 1번으로 돌아가 해당 부분리스트의 길이가 1이 아닐 때 까지 1번 과정을 반복한다. ..

Language/Java 2022.12.14

[JAVA] 삽입 정렬 (Insertion Sort)

삽입정렬은 2번째 원소부터 n번째 원소까지 차례로 해당 원소가 위치할 인덱스에 원소를 삽입하는 방식이다. 오름차순으로 정렬할 때, 삽입정렬은 2번째 원소부터 앞의 원소와 비교하는 과정을 통해 적절한 위치에 삽입하고 n번째 원소까지 이 방식을 반복하며 정렬을 진행한다. import java.util.Arrays; class InsertionSort { public static void main(String[] args) { int []arr = {3,7,6,8,4,5,0,2}; int temp; int prev; for (int i = 1; i < arr.length; i++) { //현재 선택된 원소의 값을 임시 변수에 저장 temp = arr[i]; //현재 원소를 기준으로 이전 원소를 탐색하기 위한 ..

Language/Java 2022.12.14

[JAVA] 선택정렬 (Selection Sort)

선택정렬은 한 번의 배열 탐색에서 가장 작은 원소의 위치를 찾고, 그 위치와 배열의 가장 첫 번째 원소부터 차례로 바꿔주는 방식을 사용하는 정렬 방식이다. (오름 차순) 오름차순으로 정렬할 때, 원소를 처음부터 탐색하면서 작은 수를 찾고 그 수를 배열의 첫 번째 원소와 자리를 변경한다. import java.util.Arrays; class SelectionSort { public static void main(String[] args) { int []arr = {3,4,6,8,7,5,0,2}; for(int i = 0; i < arr.length - 1; i++) { //arr.length -1: 마지막 요소는 자연스럽게 정렬됨 //현재 탐색에서 가장 앞의 원소를 초기 값으로 설정 int minInde..

Language/Java 2022.12.14

[JAVA] 거품 정렬 (Bubble Sort)

거품정렬은 두 개의 인접한 원소를 비교하여 정렬하는 방식이다. 정렬 방법 1. 앞에서부터 현재 원소와 바로 다음의 원소를 비교한다. 2. 현재 원소가 다음 원소보다 크면 원소를 교환한다. 3. 다음 원소로 이동하여 해당 원소와 그 다음원소를 비교한다. public class BubbleSort { public static void bubbleSort(int[] arr) { for (int i = 0; i arr[j+1]) { swap(arr, j, j+1); } } } } public static void swap(int[] arr, int src, int ta..

Language/Java 2022.12.09