프로젝트가 4개월 기간을 잡고 하는 것이라, 웹소켓을 활용해야 하는 실시간 채팅은 시간이 남으면 하기로 했다.
웹 어플리케이션으로 사용자들 그룹화 시켜서 채팅방도 만들고 코드도 올리는 것을 구현할 때 어떤 게 더 적합할까
웹 어플리케이션으로 사용자들을 그룹화 시켜, 각 그룹별 멘토링을 진행할 수 있고, 학습 파일을 공유할 수 있으며, 코드리뷰 공간을 만들었을 때, 무엇이 더 적합한지 고민해보았고 다음은 PostgreSQL을 선택한 이유이다.
MySQL은 InnoDB 및 NDB 클러스터 스토리지 엔진 또는 소프트웨어 모듈과 함께 사용하는 경우에만 ACID 규정 준수를 제공
PostgreSQL은 모든 구성에서 ACID와 완벽하게 호환
MySQL 데이터베이스는 MVCC를 제공 X
PostgreSQL은 이 기능을 지원 O
MySQL은 계층적으로 인덱싱된 데이터를 저장하는 B-트리 및 R-트리 인덱싱을 지원
PostgreSQL 인덱스 유형에는 트리, 표현식 인덱스, 부분 인덱스 및 해시 인덱스가 포함됨. 크기를 확장할 때 데이터베이스 성능 요구 사항을 세밀하게 조정할 수 있는 더 많은 옵션이 있음.
MySQL은 순수 관계형 데이터베이스
반면 PostgreSQL은 객체 관계형 데이터베이. 즉, PostgreSQL에서는 데이터를 속성을 가진 객체로 저장할 수 있음. 객체는 Java 및 .NET과 같은 여러 프로그래밍 언어의 일반적인 데이터 유형임. 객체는 상위-하위 관계 및 상속과 같은 패러다임을 지원함. PostgreSQL을 사용하는 것은 데이터베이스 개발자에게 더 직관적임. PostgreSQL은 배열 및 XML과 같은 다른 추가 데이터 유형도 지원함.
PostgreSQL은 객체-관계형 데이터베이스이며, MySQL은 순수 관계형 데이터베이스이다. 사용자 그룹화 및 채팅방과 같은 복잡한 관계를 다룰 때 객체-관계형 데이터베이스의 더 다양한 기능과 유연성이 유용할 수 있다.
MySQL과 PostgreSQL 모두 저장 프로시저를 지원하지만
PostgreSQL을 사용하면 SQL 이외의 언어로 작성된 저장 프로시저를 호출할 수 있음.
MySQL 데이터베이스에서는 SQL INSERT, UPDATE 및 DELETE 문에 AFTER 및 BEFORE 트리거만 사용할 수 있음. 즉, 사용자가 데이터를 수정하기 전이나 후에 프로시저가 자동으로 실행됨.
반대로 PostgreSQL은 INSTEAD OF 트리거를 지원하므로 함수를 사용하여 복잡한 SQL 문을 실행할 수 있음.
진행상황 - 웹소켓 구현 완료 (0) | 2024.05.21 |
---|---|
진행상황 - 웹소켓 (0) | 2024.05.17 |
그룹 조회 및 그룹 탈퇴 및 그룹 삭제 - 코드병합 문제 (0) | 2024.04.13 |
파일 업로드 및 그룹 생성 및 그룹 참가 (1) | 2024.03.29 |
팀 프로젝트 시작 (0) | 2024.03.20 |