JPA 트랜잭션과 락

트랜잭션은 원자성, 일관성, 격리성, 지속성을 보장해야 한다. 원자성 : 트랜잭션내에서는 실행한 작업들은 마치 하나의 작업인 것 처럼 모두 성공하든가 모두 실패해야 한다. 일관성 : 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 한다. 격리성 : 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를들어 동시에 같은 데이터를 수정하지 못하도록해야 한다. 격리성과 관련된 성능 이슈로 인해 격리 수준을 선택할 수 있다. 지속성.. Read More

spring security oauth2 jwt

spring security oauth2 jwt 설정하는 법에 대해 알아보자. jwt란 JSON Web Token의 약자로 일반 oauth2 토큰을 기반으로 하는 것과 비슷하다. 인터넷에 잘 나와 있으니 참고하길 바란다. 일단 spring boot기반으로 작성할 예정이다. <dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-jwt</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> 아주 기본적인것만 추가 하였다. security jwt와 oauth2를 추가하면 된다. 간단한 샘플코드이므로 Resource 서버와 Authorization 서버는 한곳에 넣었다. 분리하고 싶다면.. Read More