본문 바로가기

분류 전체보기461

[Spring] 캐싱이란? 캐싱 => 변하지 않는 값(과거의 서울 날씨 등)을 캐싱을 통해 api 사용료, 서버부하 절감 @Scheduled(cron="001***") => 매일 새벽 1시마다 실행 / 각각은 초분시날달주 0/5 ***** 은 5초마다 실행 2023. 4. 5.
[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.
728x90