분류 전체보기
Mysql Transaction 격리 수준
Mysql Transaction 격리 수준
2022.06.101. Transaction 격리 수준 Transaction(이하 tx) 격리 수준이란 쉽게 말해서 동시에 여러 tx가 처리될 때 특정 tx가 다른 tx가 변경하거나 조회할 때 데이터를 허락할지 말지 정하는 것입니다. tx는 기본적으로 고유한 tx번호를 가지며, 순차적으로 증가합니다. 격리 수준은 4가지로 나뉘며 하나씩 살펴보겠습니다. 2. 데이터 부정합 데이터 부정합에는 Dirt Read, Non Repeatable Read, Phantom Read 가 있습니다. 하나씩 알아보겠습니다. 2-1. Dirty Read 다른 트랜잭션에 의해 수정됐지만 아직 커밋되지 않은 데이터를 읽는 것을 말합니다. 문제점으로는 tx1이 데이터를 변경하고 tx2가 변경된 데이터를 읽었을 때 tx1이 rollback을 진행한다..
Spring-Data-JPA [8] Querydsl 사용
Spring-Data-JPA [8] Querydsl 사용
2022.06.09저번 포스팅에선 Querydsl 설정을 했습니다. 이제는 직접 사용해보겠습니다. 1. JPAQueryFactory 등록 JpaRepository를 custom 했다는 컨벤션으로 ~~ RepositoryCustom을 만들어 해당 Repository를 상속하고, ~~ Impl로 구현체로 만드는 방식을 선택할 수도 있습니다. 하지만 Querydsl을 사용하기 위한 JPAQueryFactory를 Bean으로 만들고 @Repository 어노테이션을 사용하시는 게 더 좋습니다. ex) MemberRepository extends JpaRepository MemberRepositoryCustom extends MemberRepository MemberRepositoryImpl implmentation MemberR..
Springboot restdocs 적용기[2] 실전 사용
Springboot restdocs 적용기[2] 실전 사용
2022.06.07이전엔 기본적인 사용법에 대해서 알아봤습니다. 이번엔 custom 하고, 리펙토링을 진행해보겠습니다. 1. build.gradle 수정 이전과 달라진 부분만 주석으로 설명을 적겠습니다. plugins { id 'org.springframework.boot' version '2.6.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'org.asciidoctor.jvm.convert' version '3.3.2' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { // config 추가 asciidoct..
백준 3020[자바] jav 개똥벌레
백준 3020[자바] jav 개똥벌레
2022.06.07문제 링크: https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net ▶문제 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득 찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그다음에는 종유석과 석순이 번갈아가면서 등장한다. 아래 그림은 길이가 14미터이고 높이가 5미터인 동굴이다. (예제 그림) 이 개똥벌레는 장애물을 피하지 않는다. 자신이 지나갈 구간을 정한 다음 일직선으로 지나가면서 ..
백준 11687[자바] java 팩토리얼 0의 개수
백준 11687[자바] java 팩토리얼 0의 개수
2022.06.06문제 링크:https://www.acmicpc.net/problem/11687 11687번: 팩토리얼 0의 개수 첫째 줄에 M (1 ≤ M ≤ 100,000,000)이 주어진다. www.acmicpc.net ▶문제 가장 끝의 0의 개수가 M개인 N! 중에서 가장 작은 N을 찾는 프로그램을 작성하시오. ▶입력 첫째 줄에 M (1 ≤ M ≤ 100,000,000)이 주어진다. ▶출력 가장 끝의 0의 개수가 M개인 N! 중에서 가장 작은 N을 출력한다. 그러한 N이 없는 경우에는 -1을 출력한다. ▶해설 M의 크기가 1억이므로 이분 탐색을 활용해서 탐색해야 합니다. 이때 0이 만들어지는 조건을 생각하면 됩니다. 0이 만들어지는 조건은 2*5가 존재할 때입니다. 이때 2는 2의 배수마다 생성되므로 5의 개수보다..
백준 1300[자바] java K번째 수
백준 1300[자바] java K번째 수
2022.06.05문제 링크: https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net ▶문제 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B의 인덱스는 1부터 시작한다. ▶입력 첫째 줄에 배열의 크기 N이 주어진다. N은 105보다 작거나 같은 자연수이다. 둘째 줄..