본문 바로가기
728x90

Database4

[MySQL] 트랜잭션 격리 수준 트랜잭션에 관해서는 아래 포스트에서 정리했다. 더 나아가서 트랜잭션의 격리 수준에 대해서 정리해보자.- https://yonikim.tistory.com/154   트랜잭션의 격리 수준이란 여러 트랜잭션이 동시에 실행될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 여부를 결정하는 것이다. 낮은 격리 수준은 동시 처리 능력을 높이지만, 데이터의 일관성 문제를 발생시킬 수 있다. 반대로 높은 격리 수준은 데이터의 일관성을 보장하지만, 동시 처리 능력이 떨어질 수 있다.즉, 데이터 정합성과 성능은 반비례한다.   트랜잭션 격리 수준의 종류와 특징 1. READ UNCOMMITTED 커밋이 되지 않은 트랜잭션의 데이터 변경 내용을 다른 트랜잭션이 조회하는 것을 허용한.. 2025. 1. 19.
[Database] SQL Injection SQL Injection이란?데이터베이스와 연동된 웹 애플리케이션에서 공격자가 입력 폼 또는 URL 입력란에 SQL 구문을 삽입하여 DB 를 조작할 수 있는 취약점을 의미한다. 주로 사용자가 입력한 데이터를 제대로 filtering, escaping하지 못했을 경우에 발생한다. 공격 종류 및 방법1. Classic SQL Injection 사용자 입력값을 그대로 SQL 쿼리에 삽입하여 악의적인 SQL 쿼리를 실행하는 기본적인 공격 방법이다.  로그인 공격 예시로그인 페이지가 있고, 로그인을 할 때 USER_ID 와 USER_PASSWORD 를 입력받아 로그인이 진행된다고 했을 때,  기본 쿼리문 SELECT user FROM Users WHERE user_id = 'USER_ID' AND user_pa.. 2025. 1. 9.
[MySQL] 트랜잭션 (Transaction) 트랜잭션(Transaction) 이란? 트랜잭션(Transaction) 의 사전적 의미는 거래이고, 컴퓨터 과학 분야에서 트랜잭션(Transaction) 은 더 이상 분할이 불가능한 업무처리의 단위 를 의미한다. 이것은 하나의 작업을 위해 더이상 분할될 수 없는 명령어들의 모음. 즉, 한꺼번에 수행되어야 할 일련의 연산모음을 의미한다. 데이터베이스와 어플리케이션의 데이터 거래에 있어서 안전성을 확보하기 위한 방법이 트랜잭션인 것이다. 따라서 데이터베이스에서 테이블의 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나 갱신, 삭제하는 도중에 오류가 발생하면 결과를 재반영 하는 것이 아니라 모든 작업을 원상태로 복구하고, 처리 과정이 모두 성공하였을 때만 그 결과를 반영한다. MySQL 트랜잭션 MySQ.. 2024. 1. 5.
[Mongo] 백업 및 복원하기 프로덕션은 Atlas MongoDB 를 이용하고 스테이징은 AWS DocumentDB 를 사용하고 있었는데, 플랫폼을 통일하자고 하여 스테이징도 Atlas 를 이용하기로 했다. MongoDB 는 백업하는 명령어와 복원하는 명령어가 2가지씩 있다. mongodump + mongorestore / mongoexport + mongoimport mongoexport 와 mongoimport 는 collection 단위로 백업 및 복원 하는거고, mongodump 와 mongorestore 는 database 단위로 백업 및 복원 하는 것이다. mongoexport 는 데이터만 백업하는 것이다 보니 인덱스 정보는 저장되지 않지만, mongodump 는 인덱스까지 저장된다. 우리의 경우 AWS DocumentDB.. 2021. 8. 27.
728x90
반응형