[Daily Poll] 작업일지(2) - 서버 인프라 설계 : 데이터베이스
Daily Poll 의 요구사항을 세세하게 다 적지 않아도, 이 프로젝트의 시작이 명확한 Pain Point를 해결하고자 하는 것이기 때문에, Overall Server Infra 정도는 생각해 볼 수 있을 것 같다. - 유저와 투표를 관리하고 투표를 처리할 수 있는 API Endpoint 제공 및 데이터 저장을 위한 데이터 베이스 구축. 오라클 클라우드에서의 전형적인 기본 구성은 다음 글에서 잘 보여준다. https://k21academy.com/oracle/networks-in-oracle-cloud-oci-vcn-subnet-gateways-peering-transit-routing/ 너무나 당연하게도 데이터베이스 서버는 외부에서 직접 접근할 수 없어야 하고, Bastion과 보안 규칙들로 서버를 보호해야 한다. 제대로 된 프로젝트를 진행하려고 했다면 API 서버와 데이터베이스 서버의 인스턴스를 별도로 분리하고 4개의 무료 코어를 반반씩 나눠서 별도로 구성했어야 하지만... 취미에 가까운 프로젝트이니 저 내용은 머리로 이해만 하고, 실제는 한 서버에 모두 때려 넣었다. 그래도 구성 자체는 Docker 를 통해 분리를 하려고 한다. 먼저 데이터베이스는 PostgreSQL 을 사용하려고 한다. 왜 PostgreSQL 이냐고 묻는다면, 개인 프로젝트라면 뭘 선택해도 상관 없다고 본다. 이미 상용 서비스에서 검증이 끝난 많은 데이터베이스들이 있기에, 그 중에서 익숙한 것을 고르면 된다. 하지만 난 익숙한 데이터베이스가 없으므로, 그냥 마음이 끌리는 데로 선택하였다. 그 옛날 웹 서비스라고 하면 APM(Apache-PHP-MySQL)이 떠오르던 시절부터 MySQL과 함께 데이터베이스 영역을 지켜왔기도 하고, 오라클이 MySQL을 가져간 이후부터 MySQL은 탈락. (근데 난 OCI 쓰는데...) 데이터베이스를 다룰 때 마다 학교 다닐 때 좀 더 열심히 공부할 껄 생각을 하게 된다. 데이터베이스 수업을 정말 대충 들었는데, 중간고사를 완전히 망치고 다음 수업에 들어...