목록Programming (115)
Patrick's 데이터 세상
마리아노 아나야의 파이썬 클린코드를 읽으며 정리해 두는 포스팅이다. 이미 알고 있는 내용이 많지만 유지보수, 애자일 개발을 좀 더 official 하게 skillup 하기 위해 정리해두려고 한다. 👉🏻 코드 포매팅 클린 코드라 함은 PEP-8 가이드라인을 지킨 띄어쓰기, 네이밍 컨벤션, 줄 길이 제한 등의 코딩 표준, 포매팅, 린팅 도구 등 레이아웃 설정과 같은 것 이상의 의미함. 클린 코드는 품질 좋은 소프트웨어를 개발하고, 견고하고 유지보수가 쉬운 시스템, 기술 부채를 피하는 것을 말한다. 프로젝트 코딩 스타일 가이드 준수 PEP-8 style ∙ 검색 효율성 : 코드에서 원하는 부분을 빠르게 검색. ex) keyword argument에 값을 할당할 때는 띄어쓰기 x, 변수에 값을 할당할 때는 띄어..
https://2022.pycon.kr/ 파이콘 한국 2022 PYCON KOREA 2022: 10.01 - 10.02 2022.pycon.kr:443 Pycon Korea 2022가 22.10.01~02 2일 간 성황리에 개최되었습니다. 그중에서도 '파이썬 코드 리뷰 꿀팁'이라는 제목으로 위대한 상상 R&D 에서 파이썬 백엔드 개발을 하고 있는 김동현 님의 발표에서 배운 내용을 정리해보려고 합니다. 발표 제목 그대로 보통 현재 회사에서는 프로젝트 단위로 혼자 코드를 짜고 정리할 일이 많은 필자에게는 '꿀팁' 발표였습니다. 협업에 대한 대비책이기도 하고 혼자 코드를 관리할 때도 좀 더 효율적으로 관리하기 위한 목적입니다. 3가지 라이브러리를 토대로 리뷰어, 리뷰이가 효율적으로 여러 근거를 제시할 수 있도..
crawling 크롤링이란 웹 페이지를 의 텍스트를 그대로 가져와 그 안에서 데이터를 추출하는 행위입니다. 웹 스크래핑 또한 같은 의미입니다. 인터넷 페이지에서 'HTML'은 페이지의 뼈대 구조는 잡는 역할을 하고, 'css'는 그 뼈대 위에 꾸미는 역할, 'JavaScript'는 동적으로 움직이게 하는 역할을 합니다. 'HTML'에서 'Xpath'는 element의 경로를 의미합니다. 👉🏻 크롤링 프레임워크 종류 종류 Requests Selenium 특징 웹 페이지(html) 읽어오기 웹 페이지 자동화 속도 빠르다 느리다 동적 여부 동적 웹 페이지 X 동적 웹 페이지 O 목적 주어진 url을 통해 받아온 html에 원하는 정보가 있을 때 로그인, 어떤 결과에 대한 필터링 등 어떤 동작이 필요한 경우 (..
회사에서 진행한 업무로 뉴스 기사 카테고리 분류 모델 및 뉴스 크롤링을 진행했으며, Selenium 기반에 BeatifulSoup을 일부 활용한 크롤링을 작성하였습니다. 저작권을 침범하지 않는 내에서 작업했음을 밝힙니다. 해당하는 .py file 들을 docker에 supervisor로 띄워 Infinite loof 프로세스 내에서 반복적으로 크롤링하도록 구현하였습니다. https://github.com/hipster4020/selenium_crawling GitHub - hipster4020/selenium_crawling Contribute to hipster4020/selenium_crawling development by creating an account on GitHub. github.com ..
뉴스 기사 수집기 개발 단계에서 Scrapy를 통하여 수집한 기사를 MySQL 테이블에 적재하는 구조의 뉴스 기사 수집기이고 해당 단계에서 MySQL Connection Pool에 불필요한 커넥션이 쌓여 리소스를 낭비하는 문제가 발생하였습니다. 이에 Open source Message Queue 중 RabbitMQ를 통하여 MQ Broker를 구현하였습니다. RabbitMQ는 docker를 이용하여 실행하였습니다. https://www.rabbitmq.com/ Messaging that just works — RabbitMQ Developer Experience Deploy with BOSH, Chef, Docker and Puppet. Develop cross-language messaging with..
MQ(Message Queue)란? Message Queue는 프로세스 또는 프로그램 인스턴스가 데이터를 교환할 때 사용하는 통신 방법입니다. Producer, Consumer가 존재하는데 , Producer는 메시지를 큐에 전송하고 Consumer가 큐의 메시지를 처리하는 방식입니다. MQ를 사용하면 비동기로 요청을 처리하고 queue에 저장하여 consumer에게 병목을 줄여줄 수 있고 중간 미들웨어에게 메시지를 위임하여 순차적으로 처리하게끔 한다. 장점 비동기식, 비동조, 탄력, 과잉, 보증, 확장성 사용처 대용량 데이터를 처리하기 위한 배치 작업이나, 채팅 서비스, 비동기 데이터를 처리할 때 사용됩니다. 분산되어 있는 데이터를 집중시키고 메시지 브로커로 필요한 프로그램에 작업을 분산시킬 때 사용합..