Isolation level 소프트웨어를 개발하는 경우 데이터베이스 트랜잭션 내에서 복잡한 방식으로 데이터를 운영하는 코드에서 비즈니스 논리 오류가 발생하지 않도록 트랜잭션이 서로 어떻게 영향을 미치는지 알아야 합니다. PostgreSQL에서 트랜잭션을 설정하는 방법은 총 4가지 1. READ UNCOMMITTED (낮은 격리수준) 설정에는 정의되어 있지만, 지원하지 않습니다. (READ COMMITTED와 동일) 2. READ COMMITTED (기본값) 커밋된 데이터만 READ 할 수 있으며, DIRTY READ가 불가능. (DIRTY READ : 다른 트랜잭션에서 커밋하지 않는 데이터를 읽을 수 있는 것) 3. REPEATABLE READ 조회 시 항상 동일한 데이터 응답을 보장. 4. SERIAL..
상황 select(*) 로 코드를 작성하는 의미없이 생각없이 코드를 작성했다. 같이 개발하는 동아리 선생님께서 정말로 감사하게도 코드리뷰를 남겨주었다! 당시, explain = 설명해달라는 것이라고 생각해서 이런 황당한 답변을 내놓았다. 정말 앞으로의 실행계획을 써버린것이다. 상대는 정말 황당 했을 것이다. 정우님을 황당하게 하지말자! 다시 알아보자 Explain! Explain 이란? Postgres에서 제공하는 명령이다. EXPLAIN 을 사용하여 내가 테스트 할 sql을 작성해서 실행시키면 PostgreSQL 실행계획기가 만든 실행계획을 보여준다. - 실행 계획은 원하는 자료를 출력하기 위해서, 어떤 테이블이 테이블 전체 순차 검색을 하는지, 인덱스 검색을 하는지를 보여준다. - 여러 테이블이 조인..
Apple Silicon이 적용된 M1 맥북의 경우 oracle database 설치가 불가능하다. M1 맥북 사용자라면, 외부에 Oracle 데이터베이스를 구성하여 사용해야한다. mac os에서는 OracleDB를 바로 사용할 수 없어서 Docker를 통해 이용해야한다. Colima 설치 brew install colima Docker 설치 brew install --cask docker Colima 실행 Colima를 x86_64 환경으로 창을 띄어준다. colima start --memory 4 --arch x86_64 Oracle Database 11gR2 XE (11.2.0.2) 설치 docker search oracle-xe-11g docker pull jaspeen/oracle-xe-11g ..
Docker로 mysql을 생성하여서 인텔리제이에 연결하려하였다! docker pull mysql/mysql-server:8.0 docker run --name study-mysql -e MYSQL_PORT_HOST=% -e MYSQL_ROOT_PASSWORD=root1234! -p3306:3306 -d mysql:8 근데 계속해서 아래의 오류가 나왔다. 인텔리제이에서 연결하는데 계속해서 이런 오류가 났다 [28000][1045] Access denied for user 'root'@'localhost' (using password: YES) mysql이 이미 brew로 켜져있는 경우에, 다른 mysql 서버와 비번이 맞지 않는다고 나오는 오류 같았다. 그래서 아래의 명령어로 다른 mysql 서버를 모두..