Skip to main content

Tag: DB

[DB] SQL Injection 알아보기 (w. PreparedStatement, Stored Procedures)

서론 CS 스터디에서 9월 4일에 발표한 SQL Injection에 대해 정리한 문서를 블로그에 공유하고자 한다. SQL Injection에 대해 설명해 주세요. SQL Injection이란, 데이터베이스를 사용하는 웹 애플리케이션을 공격하는데 사용되는 코드 인젝션 공격 기법을 말합니다. 주로 공격자가 입력 필드에 악성 SQL 문을 삽입해 실행시키는 방식으로 공격하며, 데이터베이스의 정보를 불법적으로 열람 또는 조작할 수 있는 취약점입니다. Injection 공격은 오픈소스 웹 애플리케이션 보안 프로젝트인 OWASP에서 매년 상위 10대 취약점에서 근 20년간 상위권을 차지하고 있으며, 단순히 신원 위조, 기존 데이터 변조와 같은 공격 뿐만 아니라 관리자 탈취, 데이터 삭제, 시스템 데이터 공개와 같이 시스템에 치명적인 공격을 불러올 수 있습니다.

[DB] DB Locking 알아보기

서론 CS 스터디에서 2월 20일에 발표한 DB Locking에 대해 정리한 문서를 블로그에 공유하고자 한다. DB Locking이란? 병행 트랜잭션이 가능한 환경에서, 변경중인 record를 다른 transaction들이 접근하지 못하도록 막음으로써, 병행 수행 문제를 해결하려는 접근 방법입니다. 이러한 Locking을 위한 규약(Protocol)으로는 Shared Locking Protocol, 2PLP(2-Phase Locking Protocol), Multiple Granularity Locking Protocol 이 있습니다. 병행 트랜잭션(Concurrent Transaction) 이란? 동시에 실행되고 있는 둘 이상의 트랜잭션을 의미합니다. 병행 트랜잭션의 장점 DB의 공용도(Sharability) 제고 응답시간(Response Time) 단축 시스템 활용도(System Utilization) 증대 병행 트랜잭션의 동시성 문제 병행 트랜잭션의 병행 수행률이 상승할수록, 아래와 같은 병행 문제들의 발생률도 상승합니다.

[자료구조] B Tree와 B+tree 알아보기

서론 CS 스터디에서 2월 13일에 발표한(정확히는 나는 2일 뒤인 15일에 발표했다.) B 트리와 B+ 트리에 대해 정리한 문서를 블로그에 공유하고자 한다. B-Tree와 B+Tree는 무엇일까 B 트리 (B-Tree) 이진 트리를 확장해 한 노드가 가질 수 있는 자식 노드의 갯수가 2개 이상인 자가 균형 이진 검색 트리(Self Balancing Binary Search Tree)의 일종이며, 각 노드가 갖고있는 키 들은 정렬되어 있습니다. 다른 자체 균형 이진 검색 트리와 달리, B 트리는 DB, File System과 같이 큰 데이터 블록을 읽고 써야하는 스토리지 시스템에 적합합니다.