본문 바로가기

TIL/Python | Django22

2021.12.3 TIL : [Django] nginx와 gunicorn Django로 제작한 웹 서버를 배포하게 되었는데, 전에 했던 야매.. 방식이 아니라 좀 더 공부할 기회가 생겼다. 컴퓨터 네트워크를 수강하면서 이론적으로 배웠던 개념들을 직접 해보게 되는 것 같아서 신기하기도 하고, 아직은 제대로 이해한 게 못 한 거 같아 앞으로 더 자세히 알아봐야 할 것 같다. 먼저 네트워크의 주체가 다음과 같이 있다. 클라이언트 웹 서버 웹 어플리케이션 서버 클라이언트는 흔히 알고 있듯이 서버에 요청을 보내고 응답을 받는 주체이다. 이 때 웹 브라우저 (IE, 크롬, 사파리 등)을 이용해서 좀 더 쉽게 요청을 보내고 응답을 우리가 흔히 아는 웹 페이지처럼 구성해서 볼 수 있다. 웹 서버(WS)는 클라이언트로부터 HTTP request를 받아들이고, HTML과 같은 웹 페이지를 정적.. 2021. 12. 4.
2021.11.26 TIL : [Django] ORM lazy loading DRF를 이용한 페이지네이션을 공부하면서 갑자기 혼자 고민하기 시작했다. 다음은 페이지네이션 블로그 코드 중 일부를 중략한 코드인데, objects.all()을 이용해서 전체 데이터를 쿼리셋으로 불러오고 그 쿼리셋을 page size에 맞게 자르는 듯한 느낌을 받았기 때문이다. def get(self, request): instance = Dataset.objects.all() page = self.paginate_queryset(instance) if page is not None: serializer = self.get_paginated_response(self.serializer_class(page, many=True).data) else: serializer = self.serializer_cla.. 2021. 11. 27.
2021.11.18 TIL : [Python] 비동기 프로그래밍 프로젝트를 하면서 비동기로 처리해야 할 일들이 생겼는데, 동기와 비동기에 대한 지식이 부족한 상태라 좀 알아봐야 할 것 같다. 먼저 사용되는 용어들 중에 정확하게 뜻을 모르는 단어들을 정리해봤다. 쓰레드(thread) : 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이런 실행 방식을 멀티스레드라고 한다. 동기와 비동기 동기 프로그래밍은 하나의 작업을 할 때는 그 작업에만 집중해서 해당 작업이 끝난 후에야 다음 작업을 실행할 수 있는 것을 말한다. 동기 프로그래밍 방식을 이용하면 어떠한 일을 처리할 동안 다른 프로그램은 정지한다. 반면, 비동기 프로그래밍은 요.. 2021. 11. 18.
2021.8.25 TIL : [Python] 웹 크롤러 - 2 이번에는 https://basicenglishspeaking.com/daily-english-conversation-topics/ 이 웹사이트에 있는 대화 주제 크롤링, 그리고 각각의 대화 주제에서 나누는 대화들을 크롤링해 볼 예정이다. 위의 사이트에 들어가보면 여러 대화 주제들이 있고, 원하는 주제를 선택하면 주제와 관련한 대화를 연습할 수 있는 사이트이다. import requests from bs4 import BeautifulSoup def get_subjects(): subjects = [] req = requests.get('https://basicenglishspeaking.com/daily-english-conversation-topics/') html = req.text #파싱해서 부분들.. 2021. 8. 24.
2021.8.24 TIL : [Python] 웹 크롤러 - 1 개인적으로 웹 크롤링은 가장 배우고 싶은 부분 중에 하나였다. 프로젝트 하는 중에 크롤링이 필요한 부분도 있고 해서 시간이 난 김에 배워보기로 했다. 먼저 python 과 pip, jupyter, beautifulsoap4 를 깔아줬다. (python과 pip는 이미 있어서 pip만 최신 버전으로 업데이트 해줬다.) jupyter은 IDE는 아니지만, python 코드를 한 줄 한 줄 실행해볼 수도 있고, 시각화도 가능한? 툴이라고 한다. jupyter을 다운로드 받은 후에 jupyter notebook 하면 브라우저에서 확인할 수 있다. $ pip install jupyter $ pip install beautifulsoap4 $ jupyter notebook 이제 jupyter에서 python 코드들.. 2021. 8. 24.
2021.8.23 TIL : [Python] 기초 문법9 - super() django를 활용해서 웹 개발을 하면서 빈번하게 클래스의 상속을 받아오게 되는데, super().메소드를 자주 마주하게 된다. 좀 더 명확하게 이해하기 위해서는 python 기초 문법들도 잘 알아야 할 것 같다. 클래스의 상속은 파이썬보다 자바를 공부하면서 좀 더 자세하게 알 수 있었다. super()은 자식 클래스에서 부모 클래스의 내용을 오버라이딩 하고 싶은 경우에 사용한다. class Person : def __init__(self): print('Person __init__') self.hello = '안녕하세요' class Student(Person): def __init__(self): print('Student __init__') self.school = '파이썬 고등학교' lee = St.. 2021. 8. 23.