본문 바로가기
반응형

공부378

[DBMS] 트랜잭션 격리수준 (isolation level) 트랜젝션 격리 수준이란? 특정 트랜잭션이 다른 트랜잭션에 의해 변경된 데이터를 볼 수 있도록 허용할지 여부를 결정하는 것이다. 격리수준은 4개로 나뉜다 - READ-UNCOMMITTED - READ-COMMITTED - REPEATABLE-READ - SERIALIZABLE 아래로 내려갈수록 고립 정도가 높아진다 고립정도가 높아진다는 의미는 단순하고 엄격해짐을 의미한다. SERIALIZABLE 수준잉 되면 SELECT를 하는것만으로도 잠금(LOCK)을 설정되어 다른 트랜잭션에서 이 레코드를 전혀 변경하지 못하게 된다. 데이터 정합성은 좋아지겠지만 문제는 성능저하가 높아진다는 것이다. 일반적인 온라인 서비스에서는 READ COMMITTED와 REPEATABLE READ를 사용한다. 오라클의 경우 기본값은 .. 2020. 4. 3.
[querydsl, mysql] DATE_FORMAT 등 이용해 groupby 사용하기 DB의 날짜형태가 datetime 으로 되어있는데, 종종 날짜별로 그룹해서 데이터를 뽑아야할 때가 있다. 예를들어 다음과 같은 형태다 (원본) 2020-04-01 11:25:00 => (원하는 포멧) 2020-04-01 이럴경우 mybatis에서는 dbms함수를 사용해서 호출하면 되는데 querydsl 을 사용한다면 dbms함수를 따로 호출해야 한다. 그리고 결과로 나온 값을 DTO로 담아야 하는것도 신경써야 한다. 그래서 여기서는 1. groupby 를 쓸때 date_format 함수(mysql, 날짜형 변형 함수)사용법 2. 결과값을 dto에 넣기 두가지를 알아볼 예정이다. 1. (groupby) datetime을 date 유형으로 묶기 테이블 엔티티를 선언할때 날짜유형을 LocalDateTime 으.. 2020. 4. 2.
[springboot, oauth] Resource Server(자원서버) 구축하기 이전 포스팅에 이어 자원서버 구축하는 과정이다. Authorization Server(인증서버) 구축하기 https://lemontia.tistory.com/927 [springboot, oauth] Authorization Server(인증서버) 구축하기 OAuth2 역할은 크게 4가지로 분류된다 - Resource Owner - Authorization Server - Resource Server - Client :: Resource Owner는 유저를 뜻한다. 내가 만든 서비스를 이용하고자 하는 고객을 의미한다 :: Author.. lemontia.tistory.com 지난번 포스팅에서는 access_token을 받을 수 있는 서버 구축의 글이었다면, 이번에는 서버 접근 제한 권한 및 토큰을 이용해.. 2020. 3. 29.
[springboot, oauth] Authorization Server(인증서버) 구축하기 OAuth2 역할은 크게 4가지로 분류된다 - Resource Owner - Authorization Server - Resource Server - Client :: Resource Owner는 유저를 뜻한다. 내가 만든 서비스를 이용하고자 하는 고객을 의미한다 :: Authorization Server는 인증서버를 말한다. 이 요청은 요청을 보낸 고객이 우리가 인증할 수 있는 고객인지(우리 고객이 맞는지)를 확인해주는 역할을 한다. 만약 데이터베이스로 유저를 관리하고 있다면 고객인지를 확인하고(ID와 패스워드 비교 등 파악) 유효시 access_token을 발급하여 리턴한다. :: Resource Server는 자원(API 등)이 있는 서버를 말한다. access_token을 통해 접근하여 자원을 활.. 2020. 3. 21.
[react + next.js] 페이지 이동(push, href 차이) 기본적으로 를 이용해서 페이지이동을 하겠지만 비니지스 로직이 완료된 후에 페이지로딩을 해야할 때가 있다. 그때 사용하는 방법이라 보면 되겠다. document.location.href 는 사용할 수 없다. 사용하게 되면 history가 모두 날라가고 새로고침을 하는 것과 같아진다. 공식 홈페이지에 보면 next/router 를 이용해 사용이 가능하다고 되어있다. 아래 두개를 각각 구현해 보았다 그리고 페이지가 새로고침 되는지 확인해보기 위해 console.log를 찍어보기로 했다. import {Button} from "react-bootstrap"; import Router from "next/router"; const Community = () => { console.log("=============.. 2020. 3. 19.
[spring] 테스트 중 Unable to initialize 'javax.el.ExpressionFactory' 해결하기 - validator 2.0.0(JSR-380) 적용 레거시 프로그램에 validator를 적용하기로 했다. validator는 총 3가지 버전이 있는데 다음과 같다 Bean Validation 1.0(JSR-303) Bean Validation 1.1(JSR-349) Bean Validation 2.0(JSR-380) 그래서 추가하기 위해서 다음의 패키지를 추가한다 javax.validation validation-api 2.0.1.Final org.hibernate hibernate-validator 6.0.17.Final 그리고 servlet.xml 에 bean을 등록했다 테스트를 위해 Controller에 Post API를 하나 생성한다. @RestController public class TestValidatorController { @PostMa.. 2020. 3. 17.
반응형