AI 부트캠프/챕터5(12.30~01.31)

TIL 71

musukie 2025. 1. 2. 14:55

최종 프로젝트 시작

팀 회의

  • 팀 회의 시간 정하기
    매일 오전, 오후 2번 씩 회의를 진행하기로 했다.
  • 역할 분담
    내 역할은 DB와 AWS 관련 작업이다. 우선 DB를 postgreSql과 Maria DB 중 어떤 것을 사용할 지 정하기 위해 각각의 장단점을 조사했다. 장단점에 대해 조사한 내용은 아래 'DB 구축' 부분에 있다.
  • 아이디어 구상

DB 구축

MySQL, PostgreSQL, MariaDB 를 비교해보자.
MySQL

  • 장점
    빠른 읽기 속도: 강의 자료를 자주 조회할 때 유리.
    많은 문서와 커뮤니티 지원: 설정과 유지보수가 용이.
    웹 기반 애플리케이션에 최적화.
    오픈 소스(무료).
  • 단점
    데이터 구조 변경 시 유연성이 PostgreSQL보다 떨어짐.
    JSON과 같은 비정형 데이터 처리에서 기능이 부족.
    적합성:
    적합: 데이터 구조가 간단하고, 주로 조회 작업(강의 자료 검색)이 많은 경우.
    부적합: 복잡한 데이터 타입 처리나 고급 분석이 필요한 경우.
  • PostgreSQL*
  • 장점
    고급 데이터 타입 지원(JSON, 배열 등): 퀴즈 데이터를 유연하게 저장 가능.
    데이터 무결성과 복잡한 쿼리 지원: 정교한 데이터 분석 가능.
    확장성 및 안정성: 데이터 증가에도 성능 유지.
    오픈 소스(무료).
  • 단점
    설정 및 초기 학습 곡선이 MySQL보다 높음.
    작은 규모의 프로젝트에서는 과도한 기능일 수 있음.
    적합성:
    적합: 강의 자료의 복잡성이 높거나, 사용자 답변 분석 및 피드백을 위한 추가 로직(예: JSON 데이터 분석)이 필요한 경우.
    부적합: 간단한 데이터 조회 중심 애플리케이션.
  • MariaDB*
  • 장점
    MySQL과 유사한 구조 및 호환성.
    오픈 소스 개발 커뮤니티가 적극적.
    높은 성능과 안정성: MySQL의 대안으로 사용 가능.
    오픈 소스(무료).
  • 단점
    MySQL 대비 커뮤니티 규모가 작아 학습 자료가 부족할 수 있음.
    PostgreSQL만큼의 고급 기능은 부족.
    적합성:
    적합: MySQL과 유사한 단순 조회 애플리케이션에서 대체제로 적합.
    부적합: 고급 기능(PostgreSQL) 또는 간단한 초기 설정(MySQL)이 필요한 경우.

우리 조는 확장성을 고려하여 PostgreSQL을 선택했다.

DB 구축을 위해 quizzes 앱을 생성해 models.py를 설계했다. 각각의 테이블에 어떤 항목을 넣을 지 고민했다. 예를 들면, Category 테이블에는 id(카테고리 고유 ID (Primary Key)), name(카테고리 이름), material(각 카테고리별 교재 이름)으로 구성했다. 테이블 관계도 설정했다. 예를 들어, Category 테이블과 Quiz 테이블은 1:N 관계다. 즉, 하나의 카테고리에는 여러 개의 퀴즈가 존재할 수 있다. 따라서 Quiz 모델은 category_id 필드를 통해 Category와 연결되게 Foreign Key를 설정했다.

urls.py, serializers.py, views.py

models.py를 작성한 후, urls.py, serializers.py, views.py도 작성해주었다. 퀴즈를 내고 피드백을 하는 챗봇이므로 필요한 기능들을 고민했다. 예를 들어 피드백에 대해 post, get 요청에 따라 로직을 작성해주었다.

'AI 부트캠프 > 챕터5(12.30~01.31)' 카테고리의 다른 글

TIL 77  (0) 2025.01.07
TIL 76  (0) 2025.01.06
TIL 75  (0) 2025.01.06
TIL 74  (0) 2025.01.06
TIL 73  (0) 2025.01.06