본문 바로가기

전체 글460

[Spring] 트랜잭션(Transaction)이란? 트랜잭션이란 데이터베이스의 상태를 변화시키기 위해 수행하는 작업단위 원자성,일관성,독립성,지속성 => 원자성을 만족시키기위해 전체를 커밋(commit)시키거나 롤백(rollback)시킨다. 여러 트랜잭션이 경쟁하면 (서로다른 사용자가 같은 내용을 수정중일때 조회하려함) => dirty read 여러 트랜잭션이 경쟁하면 (특정값을 a가 쿼리 2번날릴때 중간에 b가 커밋) => non-repeatable read 일관성 해침 여러 트랜잭션이 경쟁하면 (특정 범위 내 a가 쿼리2번날릴때 중간에 b가 커밋) => phantom read 일관성 해침 spring에서는 @Transactional으로 클래스,메서드 위에 추가 => 트랜잭션 기능이 적용된 프록시 객체 생성 Isolation (격리수준) : 트랜잭션에서.. 2023. 4. 4.
[Spring] JPA란? 오늘은 https://start.spring.io/를 통해 스프링을 시작하고, test code 를 통한 TDD를 경험해보았다. JDBC: SQL Mapper중 하나 => 직접 SQL 쿼리를 작성 -> 단점: 매번 db마다 쓰기 힘듬 JPA: ORM(Object Relation Mapping)중 하나 => java의 객체와 db의 테이블을 연결시켜주면 SQL 쿼리 자동완성 mysql mac에 설치 윈도우와는 다르게 mac에서는 brew install mysql과 https://dev.mysql.com/downloads/workbench/ workbench도 설치해줘야한다. 일반적으로 mysql port number = 3306이다. 인텔리제이와 연결해주기위해 https://dev.mysql.com/dow.. 2023. 4. 4.
[Algorithm] 퀵(Quick)/계수(Count)정렬 퀵 정렬(Quick Sort) 리스트에서 첫 번째 데이터를 피벗으로 설정 후 피벗값을 기준으로 왼쪽과 오른쪽부분으로 정렬한다. 시간복잡도 O(NlogN) array = [7,5,9,0,3,1,6,2,4,8] def quick_sort(array): # 리스트가 하나 이하의 원소만을 담고 있다면 종료 if len(array) 2023. 3. 16.
[Algorithm] 선택(Selection)/삽입(Insertion)정렬 선택 정렬(Selection Sort) 매번 가장 작은 것을 선택한다. 정렬된 데이터를 제외하고 정렬되지 않은 데이터 중에서 가장 작은 데이터를 정렬되지 않은 데이터 중 가장 앞에 있는 데이터와 바꾼다. array = [7,5,9,0,3,1,6,2,4,8] for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i+1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] # swap print(array) 삽입 정렬(Insertion Sort) 특정한 데이터를 적절한 위치에 삽입.. 2023. 3. 16.
728x90