일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- python
- 유튜브
- docker-compose
- Django
- venv
- 구글 드라이브
- 아이폰
- 파이썬
- 그리디 알고리즘
- pymongo
- G-Suite
- selenium
- List
- 바로학교
- gpu 병렬처리
- 알고리즘
- 리스트
- nocookie
- 깃허브
- 코딩
- 장고
- 링크
- 충북
- 탐욕 알고리즘
- DB
- flask
- 추천 영상
- 단축어
- MongoDB
- Google Drive
- Today
- Total
목록전체 글 (71)
SSAMKO의 개발 이야기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rvI1H/btqTqJdP6HI/kSZvcYaZgaCQq1eBVW9yS1/img.png)
Django를 API서버로만 이용할 때, 외부 사용자들에게 header를 통해 인증정보를 받아야 할 경우가 있다. 이때, Test코드에서도 이를 처리해야 하는데, TestCase의 client에서 요청을 보낼때, from django.urls import reverse from django.test import TestCase class AircodeAPITests(TestCase): def test_schedule(self): url = reverse("send_schedule") header = {'HTTP_TOKEN':'afaew$@m#iow23!3@29fafewm@*'} response = self.client.post(url, **header) 위와 같이 client.post() 혹은 clien..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/A7wKG/btqTp3JZFgM/PVqu7TiEuhq3jZSTmRhEf0/img.png)
Django를 이용해 백엔드 서버를 구성할 때, 큰 장점 중 하나인 테스트 코드 작성에 대해 알아보겠습니다. 테스트 코드를 작성하면, 사람이 손으로 직접 테스트를 하는 것보다 훨씬 빠르고, 정확하게 테스트를 진행할 수 있습니다. django에서는 이 작업을 편리하게 도와주는 Test도구들이 있습니다. 이 중에서 TestCase를 사용해 간단히 API Test를 위한 코드를 작성해보겠습니다. 먼저, django app을 만들면 자동 생성되는 tests.py를 삭제하거나 이름을 변경해줍니다. model, form, views 등을 각각 테스트할 수 있도록, test_model, test_form, test_views 처럼 각각의 파일을 만들어줍니다. 이는 각각의 테스트 코드를 별도로 작성하고, 진행할 수 있..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LM6mZ/btqS3JF4t2K/ZBkMXZicaaKiygDxed33i1/img.png)
1. settings > Allowed Host settings.py 에서 ALLOWED_HOSTS = ['*'] ALLOWED_HOSTS = ['*'] pip freeze > requirements.txt 2. 파일 배포 git clone scp ftp 3. venv python3 -m venv source venv/bin/activate 4. pip install -r requirement 5. GCP 방화벽 2021/01/11 - [GCP, AWS] - [GCP] 방화벽 규칙 만들기 6. ubuntu firewall - ufw 아래 커맨드를 이용해 8000포트를 개방한다. sudo ufw allow 8000/tcp 개방되었는지 확인하기 위해 아래 커맨드를 사용한다. sudo ufw status ve..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vloOC/btqS6XqpHVq/YacVbLNoElwxSuJl9h0Gz1/img.jpg)
1. 가상환경 실행 2. pip install gunicorn 3. manage.py가 있는 폴더로 이동 4. gunicorn 설정 gunicorn --bind 0.0.0.0:8000 myProject.wsgi:application myProject에는 본인의 project이름을 넣는다. 스크립트 생성 /etc/systemd/system/gunicorn.service [Unit] Description=gunicorn After=network.target [Service] User= Group=www-data WorkingDirectory=/path/to/yourProject ExecStart=/path/to/yourProject/venv/bin/gunicorn \ --workers 3 \ --bind u..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bYe1QG/btqTkghL1Yo/hC10uMdtIwaLXHienFcl6K/img.gif)
아이패드 LTE요금제로 LG U+를 사용하다가 아이패드를 잘 들고다니지 않아 해지를 하려고 했더니 몹시 불편하여 그 과정을 포스팅하기로 했다. 일단 총평을 먼저 말하자면, 다들 예상하시겠지만 최악의 서비스 '해지 방법'을 안내받으려면 일단, 모바일에서는 안된다. 데스크톱 웹으로 접속해야하는데, 뭐 하나 제대로 되는게 없다. 비밀번호를 변경하라그래서 변경하려고 했더니 몇 번의 연결 끝에 겨우 비밀번호 변경을 끝내고, 메뉴에서 찾아내 들어갔더니, 세상에... 다른건 다 웹에서 할 수 있게 해놓고, 해지는 1. 신청서를 다운받아서, 2. 출력을 하고, 3. 수기로 작성해서, 4. 팩스로 보내야 한다. 심지어 팩스가 잘 안 오는 경우도 있으니 1~2일이 지나도 연락이 없으면 확인 전화를 하란다. 이 글을 쓰는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TZk2B/btqS6WZdOwl/sWEIC44q6uB1msb5Eax7Jk/img.png)
이름은 django, flask 등 편한대로 넣고, 아래 세 항목에 주의하여 넣어주시면 됩니다. 이 글을 보고 계신 초보/개인 사용자라면 나머지는 건드리지 않으셔도 됩니다. 주의하셔야 할 부분은 IP범위에서 /0 까지 붙여주셔야 한다는 것입니다. 방화벽 규칙 추가가 완료되었으면, 해당 방화벽 규칙을 적용할 vm에 해당 규칙의 태그를 넣어줍니다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TvvwN/btqSxB20MXD/GKArmKv2NwaMYq0KKOgMEK/img.jpg)
Google에서는 인공지능을 활용한 다양한 API를 제공하고 있는데, 매력적인 점은 개인적으로 사용할때는 대부분의 AI를 무료로 사용할 수 있다는 것이다. (개인사용자에게 무료로 제공하는 것은 아니고, 무료로 사용할 수 있는 일 할당량 혹은 월 할당량이 존재함) 그중에서 이미지에서 텍스트를 추출할 수 있는 API의 사용법을 알아보자. 필자는 쇼핑몰 상세이미지에서 텍스트를 추출하기 위해 사용했었는데, 퀄리티가 정말 매우매우 높다. 한글의 정확도도 99%정도로 매우 정확하고, 언어를 알아서 감지해주므로 다양한 언어가 있더라도 문제가 없다. 사용 예시 위 이미지에서 텍스트를 추출하면 고급스러운 합성가죽 고급스러움이 느껴지는 가죽으로 이물질이 묻어도 쉽게 제거가 가능하며, 정교한 박음질로 마감처리 되었습니다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/PpHLx/btqSxBPsWsF/CKUVtKFnkjIkaUFn4X7KN1/img.png)
python에서 다른 폴더, 특히 상위폴더에 작성한 module 혹은 pacakge를 import할 때, 경로 문제가 자주 발생한다. 해당 스크립트를 직접 실행시킬때, package를 아래처럼 import해줄 수 있다. if __name__ == '__main__': if __package__ is None: import sys from os import path sys.path.append(path.dirname(path.dirname(path.abspath(__file__)))) from airtrack_banner import Banner else: from ..airtrack_banner import Banner