본문 바로가기

전체 글

(83)
git actions로 testcode 돌려서 에러 확인하기 git actions로 github repository에 push를 할때 자동으로 testcode를 실행을 하게해서 바뀐 코드에 에러가 있는지 아닌지 확인을 하기 위해서 짯습니다. 먼저 python manage.py test 를 터미널에 치면 test.py에 작성된 내용을 돌리게 되는데 이걸 github에서 돌리기 위해서는 먼저 파이썬부터 세팅을 해줘야합니다. steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v3 with: python-version: 3.11 저희는 파이썬 3.11 버전으로 했기때문에 3.11을 했지만 만약 다른 버전을 이용하셨다면 다른 버전을 입력해주시면되고 그다음에는 패키지 파일 설..
Git Actions 을 이용한 프론트엔드 배포 자동화 프론트엔드를 배포할때 s3를 통해 프론트 엔드 파일을 넣고 cloud front 로 s3에 있는 데이터를 가져와서 보여주는 방식으로 프론트엔드를 배포를 구현했는데 이것을 자동화시키기 위해서 먼저 vue js를 통해 프론트엔드를 만들었기때문에 먼저 배포를 위한 형태로 만들어줘야하기떄문에 npm run build를 해야합니다 name: depoly vue to s3 on: push: branches: [ main ] jobs: build: runs-on: ubuntu-latest env: AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY }} AWS_SECRET_ACCESS_KEY: ${{ secrets.SECRET_ACCESS_KEY }} steps: - name: checkout..
Git Actions 을 이용한 백엔드 배포 자동화 GitHub Actions는 빌드, 테스트 및 구현 파이프라인을 자동화할 수 있는 CI/CD(Continuous Integration and Continuous Delivery) 플랫폼입니다. 저장소에 대한 모든 꺼내기 요청을 빌드하고 테스트하는 워크플로우를 만들거나 병합된 꺼내기 요청을 프로덕션에 배포할 수 있습니다. 이 방식을 통해 Github repository를 통해 푸시한 Django project를 자동으로 ec2 instance안에 있는 docker compose container를 build를해서 자동업데이트를 진행을 하였는데 이거를 하기위해서 먼저 git hub secrets안에 배포하는데 필요한 환경변수라던지 ssh키같은거를 넣어줍니다 그 후 배포환경에 맞게 - name: Update ..
다양한 UI 요소 600여종을 심플한 HTML과 CSS로 구현한 사이트 UIverse 웹사이트나 스마트폰 앱에서 자주 사용되는 버튼, 카드, 검색상자, 체크박스, 로더 등 HTML과 CSS에서 구현된 UI 요소를 오픈소스로 이용할 수 있는 UIverse를 소개합니다. 2023년 현재 UI 요소는 654종류! 모두 단독 HTML과 CSS로 구현되어 있어 복붙해서 그대로 이용하면됩니다. 모든 코드는 MIT 라이선스로 상용 프로젝트에서도 무료로 이용할 수 있습니다. https://uiverse.io/
Django, Celery, rabbitmq를 docker compose로 deploy하기 Docker compose는 docker-compose.yml 파일을 통해서 컨테이너 여러개를 한번에 구축하게되는데 Celery를 Django에서 실행하기 위해서는 message broker인 rabbitmq도 같이 실행해서 연결을 해줘야한다. version: '3.8' volumes: postgres: {} django_media: {} django_static: {} services: backend: container_name: backend build: ./backend/ entrypoint: sh -c "python manage.py collectstatic --no-input && python manage.py makemigrations && python manage.py migrate && g..
django-channels middleware custom Django Channels는 Django 웹 프레임워크를 확장하여 WebSocket 및 비동기 작업을 지원하는 패키지입니다. Middleware는 Django Channels에서 HTTP 요청 및 WebSocket 연결과 같은 모든 요청에 대한 중간 처리를 담당하는 기능입니다. Django Channels의 Middleware는 다음과 같은 역할을 수행합니다: 프로토콜 업그레이드(Protocol Upgrade) 지원 인증 및 사용자 추적 권한 부여 데이터 변환 및 중개 에러 처리 성능 및 보안 이를 위해서 channels에서 user를 찾기위해 middleware를 사용했는데 기본 channels에서는 jwt token으로 유저를 찾을수있는 middleware가 없어서 custom을 통해서 jwt to..
django channels를 이용한 실시간 알림 Django에서 실시간 알람을 구현하기위해서는 웹소켓을 통해서 사용자와 서버와의 실시간 연결을 통해 메세지를 보내야합니다. 이거를 하기위해서 asgi서버인 daphne 서버 세팅을 하고 알림의 조건에 맞추어서 ws로 메세지를 보내면됩니다 이거를 하기위해서 메세지 브로커인 redis를 settings에 설정을 해주고 INSTALLED_APPS에 daphne를 추가시켜줍니다 INSTALLED_APPS = [ "daphne", ... ] CHANNEL_LAYERS = { "default": { "BACKEND": "channels_redis.core.RedisChannelLayer", "CONFIG": { "hosts": [("redis", 6379)], }, }, } ASGI_APPLICATION = "프로..
django-channels Channels는 장고를 사용하여 HTTP를 넘어 웹소켓, 채팅 프로토콜, IoT 프로토콜 등을 처리할 수 있는 기능을 확장하는 프로젝트입니다. ASGI라는 파이썬 사양을 기반으로 합니다. 채널은 장고의 네이티브 ASGI 지원을 기반으로 구축됩니다. Django는 여전히 기존의 HTTP를 처리하지만 Channels는 동기식 또는 비동기식으로 다른 연결을 처리할 수 있는 선택권을 제공합니다. channels은 여러 패키지로 구성됩니다 Channels, 장고 통합 계층 HTTP 및 웹 소켓 종료 서버인 Daphne 기본 ASGI 라이브러리인 asgiref channels_redis, Redis 채널 계층 백엔드(옵션) Django Channels의 주요 특징과 개념은 다음과 같습니다: 웹 소켓 지원: 웹 소..