본문 바로가기

IT CHANNEL/Python11

데이터베이스 샤딩 : Django[DRF]로 Shard_DB에 create, read 구현하기 데이터 베이스 샤딩 혹은 샤드라고도 하며 데이터 베이스를 구축함에 있어서 사용되는 기법을 알게 되어 django 로 가볍게 구현해보며 이해를 하고자했다. 1. 샤딩에 대해서 쉽게말하면 수평적으로 데이터베이스 구조를 확장하는 것이다. 파티션과 동일한 개념이라고 생각된다. 데이터베이스 샤딩은 대규모 데이터베이스를 여러 대의 머신에 저장하는 프로세스 이다. 단일 머신 또는 데이터베이스 서버는 제한된 양의 데이터만 처리. 데이터베이스 샤딩은 데이터를 샤드라는 작은 청크로 분할하고 여러 데이터베이스 서버에 저장한다. (나누는 프로세스의 결과물) 애플리케이션이 커짐에 따라 데이터 양이 증가할 때 고민해 볼 수 있을 것 같다. 데이터 양이 많아지면 데이터베이스에서 병목 현상이 발생할 수 있고, 이는 애플리케이션 성능.. 2023. 5. 14.
[DRF 게시판만들기] #4 GenericAPIView & Urls 목차 1. View 역할 2. View 3. GenericAPIView 4. Url 5. 게시글 확인 View 역할 게시판을 만들기 위해서 지금까지 했던 것들을 간단하게 정리하겠습니다. 먼저 모델을 만들고 데이터와 속성을 어떻게 db에 적용할 것인지 정했습니다. 그리고 그 데이터들을 사용하기 위한 직렬화를 위해 serializer를 사용했습니다. 이제 데이터 활용에 대한 기능이 필요합니다. CRUD에 따라서 데이터를 생성하고, 읽고, 수정하고, 삭제하는 등의 기본액션부터 다양하고 심화된 개발을 도와주는 것이 View 입니다. 이런 View에는 html을 render하는 django 의 기본View부터 API생성을 위한 APIView 그리고 CRUD의 집합체인 ViewSet 등 다양하게 있습니다. 이번 포.. 2022. 3. 29.
[DRF 게시판만들기] #3 Serializer, ModelSerializer 개념 및 역할 목차 1. Serializer 2. ModelSerializer 3. Serializer 의 필요성과 역할 Serializer 먼저 게시판앱 "board" 에 "serializers.py"를 생성합니다. django와 프레임워크 설치시 자동으로 생성되지 않습니다. 다른 app도 마찬가지로 생성합니다. serializers에는 아래처럼 "직렬화"를 위한 코드들이 작성됩니다. 우선, 코드를 통해 어떻게 작성되는지 살펴보면 역할에 대해서 알게 될 것 입니다. Serializer는 BaseSerializer를 상속받아서 보편적으로 사용되는 Serializer입니다. 사용할 데이터에 따라서 필드값을 하나씩 지정해줍니다. Charfield가 대부분의 데이터를 받아줄 수 있지만, 가능하면 모델과 타입을 맞춰주는 것이.. 2022. 3. 20.
[DRF 게시판만들기] #2.1 ORM, Python Shell 로 Data생성하기 목차 1. ORM(Object_Relational_Mapping) 이란? 2. Python Shell 사용법 3. Model Data 다루기 4. ORM코드 및 정리 1. ORM(Object_Relational_Mapping) 이란? db와 소통하는 백엔드(django)는 바로 orm 을 사용해서 query를 요청하여 데이터를 생성하고, 읽고, 수정하고, 삭제할 수 있게 되는 것 입니다. (CRUD) (query는 데이터베이스에 코드로 요청을 보내는 것 입니다.) django에서 db는 기본적으로 sqlite3를 사용합니다. 실무와 어느정도 데이터를 다루는 일반적인 프로젝트에서는 postgreSQL, MySQL, MariaDB등의 SQL 을 사용하는 데이터베이스를 많이 활용합니다. 2. Python Sh.. 2022. 3. 12.