본문 바로가기
관리자

Programming-[Backend]/Database

(19)
트랜잭션이란 2. 트랜잭션의 성질 1. 트랜잭션의 범위는 커넥션을 기준으로 한다. 트랜잭션은 클라이언트(app)과 DB간의 연결을 의미하는 커넥션을 기준으로 정의된다. 만약 아래의 그림과 같이 각 커넥션 1, 2를 따라 트랜잭션이 발생하는 과정을 생각해보자. 트랜잭션1 내부의 method에 의해서 커넥션2, 트랜잭션2가 실행되고 commit된 상황이라면 마지막에 트랜잭션1을 롤백하더라도 트랜잭션2의 commit 사항은 롤백되지 않는다. 이것은 트랜잭션의 범위가 커넥션을 기준으로 하기 때문이다. 트랜잭션 전파 : 스프링 자바에서의 Transactional 스프링 자바 코드에서 하나의 메서드 내부에서 다른 메서드를 호출하여 사용한다면, 프레임워크에서 지원하는 @Transactional 어노테이션을 이용하여 트랜잭션을 전파할 수 있다. 즉, ..
트랜잭션이란 1. 기본 개념 1. 개념 트랜잭션은 데이터베이스(Database, DB)에서 일어나는 작업의 최소 단위를 말한다. 만약 A가 B에게 10,000원을 이체한다면 DB에 있는 A의 계좌정보에서 10,000원을 빼줘야 하고, B의 계좌정보에는 10,000원을 더해주어야 한다. 이 과정을 차례대로 나누어 생각해보자. 1. A의 계좌 잔액을 확인한다. 2. A의 계좌에서 10,000원을 제한다. 3. B의 계좌 잔액을 확인한다. 4. B의 계좌에 10,000원을 더한다. 위 과정 중에 네트워크 또는 프로그램상의 문제가 발생하면, 예를 들어 2까지만 진행되고 3에서 에러가 나버린채로 DB에 정보가 반영된다면 문제가될 것이다. 따라서 4가지 과정을 한 가지의 최소 단위의 작업으로 묶어서 처리할 필요가 있는데, 이것이 트랜잭션의 개..
MySQL / 비밀번호 변경 / Access denied for 'root' ...문제 해결 MySQL 설치 후 로그인 시에 Access Denied for 'root'@'localhost' 문제 해결 방법. 아래와 같은 과정으로 터미널에서 진행한다. 철자 틀리지 말고, 각 과정에서 에러가 안뜨는지 확인하면서 차분하게 입력하자! 0) 에러 없이 가능하다면, 다음 명령어를 통해 mysql에 접속한다. mysql -u root -p >>password 입력 후 엔터 1) 에러 발생 시, MySQL을 관리자 권한으로 실행 sudo mysql 2) 사용자 정보가 포함된 mysql 데이터베이스 사용 use mysql; 3) 현재 암호 확인 : mysql 버전별로 방법이 상이하다! SELECT host, user, password FROM user; 또는 SELECT host, user, authentic..