Data와 정보에 관련한 대화에 있어 개발자 간에 대화에도 Database는 이제는 없어서는 안 될 것으로 자리 잡았다.
대학생 때 Database라는 개념을 처음으로 접했을 시에 Data를 보관하는 대용량 장소이며 스키마, 릴레이션, 관계... 등을 개념적인 측면에서 간단히 훑어보는 식으로 공부했던 기억이 난다.
Database는 도대체 왜 사용하는 것일까? 그 당시에는 결론을 단지 Data들을 효과적으로 효율적으로 정리할 수 있고 필요할 때 편리하게 사용할 수 있다(?)라는 수박 겉핥기식으로 생각했던 것 같다.
필자는 Database를 도대체 왜 사용해야 할 것인지에 대한 질문의 답을 기존에 알고 있던 것보다 세세히 정리하여 적어보고자 한다.
DB를 사용하기 이전에는 사용하는 data의 크기가 그렇게 크지 않아 파일로만 저장해 충분한 결과를 얻어낼 수 있었지만 기술이 계속해서 발달하게 됨으로써 data의 크기가 방대해짐에 따라 한계에 이르게 되었고 DB가 대안으로 떠올랐다고 한다.
물론 data의 크기가 방대해졌다는 이유 하나로는 DB를 사용하는 이유를 모두 대변할 수 없을 것이다.
이 것 말고도 DB의 여러 가지 강점이 존재한다.
첫째, 데이터의 독립성
DB의 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 응용 프로그램을 수정할 필요가 없다.
둘째, 데이터의 무결성
DB의 특징에 거의 최우선적으로 거론되는 특징이다. 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다.
셋째, 데이터의 보안성
인가, 검증된 사용자들만 DB나 DB 내 의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.
넷째, 데이터의 일관성
관련 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다. 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않은 경우의 수 또한 배제 가능하다.
다섯째, 데이터 중복 최소화
DB는 데이터를 통합해서 관리함으로써 파일 시스템의 단점 중 하나인 자료의 중복과 데이터 중복성 문제를 해결할 수 있다.
앞서 언급한 DB 특징을 보더라도 만약 DB를 사용하지 않는다면 대량의 데이터 중에서 필요한 것을 빨리 반환할 수 없을 것이며 대량의 데이터를 이전에 사용했었던 메모리 내에서만으로서는 취급할 수 없을 것이다. 그리고 장애가 발생했었을 시에 빠른 복구가 어려울 것이고 데이터 무결성 또한 보장하기 어려울 것이다. 여기서 데이터 무결성이란 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다.
그렇게 DB는 데이터의 공유가 가능하고, 접근 통제, 중복 데이터의 최소화, 효율적인 유지보수, 데이터의 일관성 유지, 생산성 향상 등 정말 많은 장점을 가지고 있다고 생각한다.
이처럼 방대한 데이터를 체계적으로 분류하여 보관/제어할 수 있는 것이 DB를 사용하여야 하는 이유라고 생각하기에 DB를 사용하여야 한다고 생각한다.
'TIL' 카테고리의 다른 글
6/23[TIL] Server의 역할은? (0) | 2021.06.23 |
---|---|
6/15[TIL] SQL 과 NoSQL 이란? (0) | 2021.06.15 |
6/9[TIL] ORM 사용의 장점과 단점은? (0) | 2021.06.09 |
6/7[TIL] SQL DB 설계에 있어 중요하게 생각하는 점은 무엇이 있을까? (0) | 2021.06.07 |
6/3[TIL] Database Indexing이란 무엇이며 왜 하는가요? (0) | 2021.06.03 |