전체 글

이번에는 GPU서버에 올릴 Flask 를 작성한다.Flask에서는 모델을 로드하고, 백엔드 API에 필요한 AI작업을 수행한다.GPU비용 문제로, GPU가 꼭 필요한 경우만 이 서버에서 동작한다.소개Flask에서는 다음을 수행한다.1. generate comment : 일기 작성 내용을 바탕으로 응원 문구를 생성한다.2. generate image : 백엔드로부터 이미지 생성 프롬프트를 받고, 튜닝된 디퓨전 모델을 로드하여 이미지를 생성한다.3. emotion classification : 일기 작성 내용을 바탕으로 감정 분석한다.4. recommend music : 감정 분석 결과와 크롤링을 통해 수집한 음악 데이터의 감정분석 결과를 사용해 유사도를 통한 음악 추천, 결과 총 5가지 반환  Image이..
API 구현이 끝났다면 프론트로 각 API에 대한 정보를 넘겨줘야 작업이 가능하다.이것을 우리는 Swagger를 사용하여 구현한다. 장고 REST Framework에서 swagger를 통해 API를 문서화 해보자.먼저 drf-ysag에 대한 문서는 아래의 링크를 통해 이동할 수 있다. 상세한 정보를 원한다면 공식 문서를 활용하자.https://drf-yasg.readthedocs.io/en/stable/install가상환경을 활성화 하고 install 하자.pip install -U drf-yasgsettings.pysettings.py에 다음이 추가되어야 한다.INSTALLED_APPS = [ ... 'django.contrib.staticfiles', # required for serving..
이번 포스팅은 백엔드 서버 구축과정과 핵심 기능 구현에 대해 알아본다.개발 환경과 서버 구성하기백엔드 개발을 시작하기 위해 필요한 데베 서버를 먼저 생성하도록 한다.RDS를 이용해 데이터베이스를 관리하기로 하였고, MySQL을 사용한다.데이터베이스RDS생성AWS에 회원가입을 완료한 상태로 시작한다.AWS 콘솔의 서비스에서 RDS로 들어간다. 이때 상단의 region을 서울로 바꿔야 한다.이제 데이터베이스 생성을 눌러 RDS인스턴스 생성을 시작한다.데이터베이스 생성 과정표준 생성을 선택한다.우리는 MySQL을 사용할 예정이므로 MySQL선택.바로 아래 엔진 버전을 확인하자우리는 프리티어를 사용할 것이므로 프리티어 선택.사용할 RDS 인스턴스의 이름을 입력하고, 마스터 사용자를 설정한다. 마스터 사용자 이름..
편리한 API의 구성을 위해서 Mixins와 GenericViewSet을 사용한다.기본적으로 아래와 같이 사용하게 된다. class DiaryViewSet(GenericViewSet, # 믹스인 사용을 위해 꼭 추가 mixins.ListModelMixin,#리스트 API mixins.CreateModelMixin,#생성 API mixins.RetrieveModelMixin,#조회 API mixins.UpdateModelMixin,#수정 API. 부분 수정과 전체 수정 있음 mixins.DestroyModelMixin):#삭제 API # 아래 퍼미션~쿼리셋..
뷰를 작성하기에 앞서서 접근의 제어를 위한 커스텀 permissions를 작성하자. permissions.py먼저 permissions.py를 settings.py가 있는 폴더에 생성한다.이 폴더에 커스텀 permissions를 작성할 것이다. import permissions.py의 상단에 다음을 import 해야 한다.from rest_framework import permissions Permission 작성총 세가지의 permission을 작성할것이다.1. 본인의 데이터만 접근가능하게 하는 IsOwner2. 본인만 수정,삭제할 수 있게 하되 허용된 팔로워에게는 조회할 수 있게 하는 IsOwnerOrReadOnly3. 팔로잉 신청 시 본인과 팔로잉 신청에 관련된 사람만 조회,편집할 수 있게 하는 I..
모델 작성을 완료 후 시리얼라이저를 작성하도록 한다. 시리얼라이저의 경우 민감한 데이터가 없는경우 대체로 all로 작성하였으며, 특수한 경우인 community와 diary만 살펴본다. Diary일기의 경우 크게 일기 내용과, 일기내용을 바탕으로 생성된 음악, 이미지, 감정 데이터로 크게 나눠볼 수 있다. 이중 음악의 경우는 diary모델에서 fk로 참조하기 때문에, 음악 데이터를 생성하고, 일기와 연결하는 부분은 따로 구성했다.따라서 시리얼라이저는 다음과 같다.1. 순수하게 일기를 작성할 수 있게 하고, 다른 연관 데이터는 only read로 읽을수만 있도록 하는 DiarySerializer2. 일기 내용을 토대로 음악을 추천하고, 음악-일기를 연결할 수 있도록 하는 DiaryMusicSerialize..
이제 DB Schema를 구성하고, django의 Model을 작성하자 DB Schema 구성DB 스키마를 다음과 같이 구성한다.계획의 과정에서 다음과 같은 형태로 구상했다. (이미지 자체는 결과 이미지다) - 유저 정보의 경우 django에서 제공하는 모델을 사용하기로 함 모델이 많은 편이므로 user, follow, diary, music, image, emotion의 경우만 이야기 해 본다. User 유저모델은 django의 auth모델을 사용할 것이다. 따라서 코드는 다음과 같이 작성한다.from django.db import modelsfrom django.contrib.auth.models import AbstractUser, BaseUserManagerclass UserManager(Base..
이번에는 django 와 AWS RDS를 연결하는 방법에 대해서 알아본다. 설치pip install boto3pip install mysqlclient Settings.py프로젝트의 settings.py에 다음과 같이 작성한다.  개별 환경변수들은 이전 포스팅을 통해서 생성한 .env파일에 정의한다.모두 저장하기를 한번 누르고,migration을 진행한다.python manage.py migrate
mingyung
KATE.log