매
매드업
December 29, 20221회
Python asyncio를 활용한 효율적인 광고 데이터 수집

간단 소개
Python asyncio를 활용하여 I/O 바운드 작업의 효율성을 높이고, 멀티스레딩 대비 장점 및 실제 광고 데이터 수집 시스템 적용 사례를 소개합니다.
AI Summary
- asyncio 소개 및 장점
- asyncio는 파이썬의 비동기 I/O 프로그래밍 라이브러리로, I/O 바운드 프로세스에서 효율성을 높임.
- 동기 I/O는 작업 완료까지 대기하는 반면, 비동기 I/O는 대기 중 다른 작업을 수행하여 실행 시간을 단축.
- 이벤트 루프, 비동기 함수, 코루틴, await 키워드 등의 기본 구성 요소를 활용.
- asyncio vs 멀티스레딩
- asyncio는 단일 스레드에서 논리적 동시성을 제공, 경합 조건을 피하고 자원 사용량을 줄임.
- 멀티스레딩은 물리적 병렬성을 제공하지만, GIL로 인해 제한적이며 경합 조건 발생 가능성이 있음.
- I/O가 많은 작업에서 asyncio는 스레딩보다 효율적이며, CPU 및 메모리 사용량도 적음.
- 매드업의 광고 데이터 수집 시스템 적용 사례
- 컬렉터 서비스는 aiohttp, aiofiles, aiobotocore를 사용하여 비동기적으로 HTTP API 호출, 파일 처리, S3 업로드 수행.
- 스로틀러 서비스는 asyncio를 사용하여 API 호출 제한을 효율적으로 관리, 스레딩 대비 자원 효율성을 높임.
Next Feeds
안드로이드 Hilt 딥 다이브 - DI와 Dagger 그리고 Hilt 에 대해서
안드로이드 Hilt는 Dagger 기반 DI 라이브러리로, 의존성 주입 자동화 및 코드 간결성을 제공하여 효율적인 개발을 지원한다.
HiltDagger의존성 주입Android어노테이션
2022. 12. 28.
카카오헤어샵

컬리, IEEM 2022에서 물류센터 생산 계획 최적화 논문을 발표하다
컬리는 IEEM 2022에서 유전 알고리즘을 이용한 물류센터 생산 계획 최적화 논문을 발표, 생산성 증대를 목표로 함.
컬리IEEM 2022물류센터생산 계획 최적화유전 알고리즘
2022. 12. 28.
컬리

비브로스 웹 프론트엔드 팀이 성능을 관리하기 시작했어요.
비브로스 웹 프론트엔드 팀의 성능 관리 도입 배경, Lighthouse 활용 경험, 그리고 성능 모니터링 시스템 구축 과정을 소개합니다.
Lighthouse성능 측정웹 성능코드 최적화모니터링 시스템
2022. 12. 28.
비브로스
테스트 코드 자동으로 만들기 feat. Cypress Studio
Cypress Studio를 활용하여 테스트 코드 자동 생성 및 관리하는 방법을 소개하고, 개발자와 비개발자 모두에게 효율적인 테스트 자동화 구축 방안을 제시합니다.
Cypress StudioE2E 테스트자동화 테스트로우코드테스트 자동 생성
2022. 12. 27.
카카오엔터테인먼트FE
테스트 코드 자동으로 만들기 feat. Cypress Studio
Cypress Studio를 활용하여 E2E 테스트 자동화 구축 방법을 소개하고, 개발자와 비 개발자 모두에게 테스트 자동화의 장벽을 낮추는 방법을 제시합니다.
Cypress StudioE2E 테스트자동화로우코드테스트 코드
2022. 12. 27.
카카오엔터테인먼트FE

데일리 스크럼 : '데일리 스크럼'을 더 잘하기 위한 생각
데일리 스크럼의 효과적인 운영 방법과 지속적인 개선을 위한 팁을 제공하여 팀 생산성 향상에 기여합니다.
데일리 스크럼스크럼애자일팀 협업업무 효율
2022. 12. 26.
컬리