python22 Python 구글 뉴스 데이터 크롤링(beautifulsoup4, slack) - 1 안녕하세요. 요즘 할 일들이 많아서 일주일에 한번 글 쓰기가 소홀해졌네요. 오늘의 미션은 1. '한국타이어' 뉴스를 크롤링하라 2. 크롤링은 '매일' 오전 11시에 하고 싶다. 다음 게시글에서 작성하겠습니다! 한국타이어로 한 이유는 제가 주식을 사서... ㅎyㅎ 구글에서 진행 할 예정입니다. 그럼 시작해볼까요? Python 크롤링에 사용할 것들을 설치하겠습니다. pip install requests pip install beautifulsoup4 먼저 우리가 가져와야하는 데이터를 확인해봐야겠죠? 구글로 이동합니다. 다들 크롤링 할 때 google.com 으로 할 것 입니다. 하지만 우리는 뉴스에 대한 데이터만 가져올 것 이기 때문에 news.google.com 을 가져오겠습니다. 그럼 한번 검색을 해봐야.. Language/Python 2022. 11. 7. Save to AWS EFS(PVC) as AWS Lambda 안녕하세요. 저번 시간에는 'Python argparse, S3 folder upload' 까지 알아봤습니다. 오늘 해볼 것은 S3에 올라온 파일을 Lambda를 이용하여 AWS EFS(Elastic File System)에 저장하는 것 입니다. 그러면 왜 EFS에 저장을 해야 될까요? 바로 Kubernetes 에서 파일 시스템을 이용하여 폴더를 사용할 수 있기 때문입니다. 링크 여기에 EFS 관련 설명이 자세히 나와있습니다. 중요한 것들을 뽑아보자면 1. AWS EFS는 NFSv4 프로토콜을 준수하는 AWS 서버리스 파일 시스템 상품이다. 2. 영구적으로 파일을 저장할 수 있다는 공통점을 가진 AWS S3와 다른 점은 인스턴스에 네이티브한 하나의 파일 시스템으로 작동한다는 것이다. 3. 수천대 이상의 .. Language/Python 2022. 8. 22. Python JIRA 라이브러리로 JIRA 이슈 생성하기 글을 시작하기 전에 간단하게 JIRA가 무엇인지 왜 다른 모니터링 툴이 아닌 JIRA 라이브러리를 사용하였는지에 대해 알아보겠습니다. 먼저 JIRA란 무엇일까요? Atlassian 사에서 만든 이슈관리 및 프로젝트 관리 용도로 사용할 수 있는 툴 입니다. 왜 다른 Sentry 같은 에러 로깅 및 모니터링 툴을 사용하지 않고, JIRA 라이브러리를 사용한 이유는 비동기로 처리되는 로직에서 크리티컬한 에러를 JIRA 이슈로 관리할 수 있고, 해당 로직을 담당하고 있는 담당자를 멘션으로 호출하여 알림까지 제공이 되기 때문에 필요한 부분에 간단하게 사용할 수 있다 라고 판단되어 사용하게 되었습니다. JIRA Python Library Python(3.x)에서 JIRA REST API를 쉽게 사용할 수 있도록 만.. Language/Python 2021. 3. 20. 다형성(Polymorphism) 그리고 추상화(Abstract) 다형성(Polymorphism) 다형성이란 유사한 형태를 갖고 있지만 완전히 다른 행동을 할 때 다형성이 적용되었다고 합니다. 간단하게 말하면 같은 모양의 코드가 다른 동작을 하는 것을 의미합니다. 다형성은 코드의 양을 줄이고, 여러 객체 타입을 하나의 타입으로 관리가 가능하여 유지보수에 용이합니다. [뜬금] signature란 메소드가 어떤 것인지 알 수 있습니다. 서명같은 것! signature = Method name + Parameter list 다형성의 하위 개념인 Overriding 과 Overloading 에 대해 알아보겠습니다. Method Overriding - 부모 클래스 메소드와 자식 클래스의 메소드 signature 가 맞다면 자식은 부모의 메소드를 오버라이딩하여 사용하고 있는 것.. Language/Python 2020. 7. 3. 캡슐화 그리고 상속 캡슐화(Encapsulation) 클래스 내부에 모든 내용이 존재하고, 외부에서는 메소드를 이용하여 사용할 수 있습니다. 추가로 은닉화(Protect, Private) 하고 싶은 자료들은 파이썬에서는 규칙을 정해 다루고 있습니다. 아래 설명한 Behavior 를 이용해서만 접근이 가능합니다. Object(객체) = Data + Behavior Data: field, member variable, attribute Behavior: method, member function, operation 잠깐 정리해보겠습니다. 캡슐화란 외부와 통신할 수 있는 통로(함수, 메소드)를 열어주고, 내부적으로 은닉할 정보는 은닉합니다. 여기서 혼동할 수 있는 개념은 캡슐화(encapsulation)랑 은닉화(informat.. Language/Python 2020. 7. 2. DRF Swagger ImageField Request Samples 에 안보이는 문제 위 사진과 같은 문제가 발생하였습니다. 왼 쪽 아래를 보시면 REQUEST SAMPLES 에는 avatar 라는 필드가 추가가 안된 것을 확인할 수 있습니다. 데코레이터가 없다면 참조 - https://github.com/axnsan12/drf-yasg/issues/95 Web/Django 2020. 6. 23. Kubernetes Django Tutorial (GKE) - 2 안녕하세요. 어제에 이어 Kubernetes 실습환경을 위해 GKE를 생성해보겠습니다. GKE란 AWS의 EKS와 비슷한 서비스입니다. 정확히는 관리형 Kubernetes 서비스입니다. Kubernetes의 모든 부분이 관리형으로 제공되는 것은 아니고 마스터 노드만 관리형으로 제공됩니다. 그 외에 로깅, 빌드, 권한 관리를 지원하며, 클러스터 노드들은 GCE(Google Compute Engine, EC2) 를 사용합니다. 1. Set up GKE 1-1. Create a GKE cluster gcloud container clusters create polls \ --scopes "https://www.googleapis.com/auth/userinfo.email","cloud-platform" \ -.. Devops/Kubernetes 2020. 5. 12. Kubernetes Django Tutorial (Cloud SQL, Storage) - 1 안녕하세요. AWS 프리티어가 끝나면서 Kubernetes를 돌릴만한 곳이 필요했고, Local에서 Virtual Box나 minikube를 설치하여 실습을 해보려고 하였으나 메모리부족으로 설치하지못하고, GCP에 Kubernetes 튜토리얼을 발견하여 GCP를 이용하여 Kubernetes를 배포해보겠습니다. 오늘은 구글의 Running Django on Google Kubernetes Engine를 참고하면서 Cloud SQL(RDS)와 Storage(S3) 연동까지 해보겠습니다. 최종으로는 GCP를 통해서 Kubernetes 배포까지 진행해보겠습니다. 해당 튜토리얼은 Django의 기초지식이 있다는 가정하에 진행되고 있습니다. Docker가 설치되어있어야 되며, Python 3.4 이상의 버전을 사용.. Devops/Kubernetes 2020. 5. 11. Django - 기간 별 회원가입자 수 가져오기 안녕하세요. 오늘은 기간 별 회원가입자 수를 확인하는 미션을 해결해보겠습니다. Member 테이블 안에 date_joined 라는 필드가 있습니다. #1 filter range 기간 별 회원가입자 수를 가져오기 위해서 꼭 필요한 조건 입니다. import pandas from datetime import datetime start_date = request.query_params.get('from_date') # '2020-04-01' end_date = request.query_params.get('to_date') # '2020-04-15' dates = AppAccount.objects.using('account').filter( date_joined__range=[start_range, end_r.. Web/Django 2020. 4. 22. Django - 1월~12월까지의 데이터 가져오면서 변수명 만들기 안녕하세요. 1월~12월까지의 데이터 가져오면서 변수명 만들기 오늘은 Django ORM 을 사용하다가 1월~12월까지의 데이터를 한번에 가져오는 방법을 생각하다가 얻은 저만의 방법을 까먹지 않기 위해 포스팅해보려고 합니다. Work라는 테이블이 있고, workday 라는 Datetype의 필드가 있다고 가정하겠습니다. 제가 원하는 값은 달 마다 얼마나 많은 일을 했는지 값을 보고 싶은 상황입니다. 1 2 3 4 5 6 7 8 9 10 11 12 from datetime import datetime today = datetime.now() for i in range(1, 13): # 1~12월의 값을 생성해줍니다. globals()[f'month_{i}'] = Work.objects.filter( wor.. Web/Django 2020. 4. 20. 이전 1 2 다음 💲 추천 글