Django-Wanted-Internship-3-Team / repo1_feed-service

소셜 미디어 통합 Feed 서비스 (원티드 팀 과제 1)
https://bow-hair-db3.notion.site/Feed-938175f1165b470e90462d1f1d52fd78
MIT License
2 stars 0 forks source link

통계 조회 API 작성 #18

Closed saJaeHyukc closed 11 months ago

saJaeHyukc commented 11 months ago

PR 체크리스트

아래 항목을 확인해 주세요:

PR 유형

이 PR은 어떤 종류의 변경을 가져오나요?

현재 동작은 무엇인가요?

이슈 번호: N/A

13

새로운 동작은 무엇인가요?

이 PR은 호환성 변경을 도입하나요?

기타 정보

image
saJaeHyukc commented 11 months ago

Error

문제점: 통계 API 작성 중에서 날짜 집계 함수를 사용하려고 했습니다. TruncDay라는 함수가 있는데 django.db.utils.OperationalError: user- defined function raised exception가 발생합니다.

원인: SQLite에서 datetime을 지원하지 않아 함수 사용이 불가했습니다.

해결: 회의로 초기 단계에 데이터베이스 변경하는 것으로는 큰 의견이 없을 것 같아 Django에서 추천해주는 RDS 중 하나인 Postgresql을 사용하고 해당 함수를 사용함으로써 해결했습니다.

lfoyh6591 commented 11 months ago

고생하셨습니다!

saJaeHyukc commented 11 months ago

고생하셨습니다!

감사합니다 :)

saJaeHyukc commented 11 months ago

수고하셨습니다! :) 다양한 방법, 접근을 배운것 같습니다. 질문이 있어요.

  1. 커밋 순서대로 읽었을 때 누락된 내용들이 있는데 문제가 없을까요? (예. 테스트 커밋에서 api를 사용하지만 추후 커밋에 api가 정의되어 있어요.)
  2. poetry를 통해 패키지 관리를 하는데 docker를 사용하면서 requirements.txt가 추가된것 같아요. 이원화 된 경우가 아닌가요?
  3. apiview에서 query에 대해서 설명 부탁드려요!

1

TDD 방법을 사용했습니다. 제가 알고있는 방법으로

  1. 테스트 설계를 한다. (API를 구현하지 않았기에 실패합니다)
  2. API 작성한다.
  3. 설계한 테스트 대로 API 테스트를 한다. 이렇게 참고하시면 될 것 같습니다

2

Dockerfile을 작성할 때 curl을 이용한 poetry가 시도를 해봤지만 에러가 많아 requirements.txt로 받아 설치하기 위해 작성했습니다. 또한 시간이 많이 없는 관계로 효율적인 자원 배분을 위해 작성했습니다

3

아래 설명을 참고하시면됩니다.!

simseulnyang commented 11 months ago

수고하셨습니다! 정말 많이 배우고 있습니다😊

saJaeHyukc commented 11 months ago

수고하셨습니다! 정말 많이 배우고 있습니다😊

감사합니다 :)

saJaeHyukc commented 11 months ago

수고하셨습니다! :) 다양한 방법, 접근을 배운것 같습니다. 질문이 있어요.

  1. 커밋 순서대로 읽었을 때 누락된 내용들이 있는데 문제가 없을까요? (예. 테스트 커밋에서 api를 사용하지만 추후 커밋에 api가 정의되어 있어요.)
  2. poetry를 통해 패키지 관리를 하는데 docker를 사용하면서 requirements.txt가 추가된것 같아요. 이원화 된 경우가 아닌가요?
  3. apiview에서 query에 대해서 설명 부탁드려요!

이전에 requirements.txt를 없앤 Dockerfile에 poetry를 설치하여 적용해봤습니다! 아래는 참고했던 링크입니다! https://gist.github.com/soof-golan/6ebb97a792ccd87816c0bda1e6e8b8c2

FROM python:3.11-slim

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV POETRY_VERSION=1.6.1
ENV POETRY_HOME=/opt/poetry
ENV POETRY_VENV=/opt/poetry-venv

RUN python3 -m venv $POETRY_VENV \
    && $POETRY_VENV/bin/pip install -U pip setuptools \
    && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION}

ENV PATH="${PATH}:${POETRY_VENV}/bin"

RUN mkdir /app/
WORKDIR /app/

COPY pyproject.toml ./

RUN poetry install

COPY . /app