멀티 스레딩에서 자원 공유하기
·
개발 메모
개요과거 진행한 프로젝트에서 최적화를 진행했는데,관련 내용을 기록해두지 않은게 생각났다. 프로젝트에서 스크린샷 수집을 위해 셀레니움을 활용했었다. 매 요청 당 최대 1000개씩 발생하기도 하는데,드라이버 하나로 스크린샷 1000개를 생성하다니 수집률이 너무 떨어졌었다. 이런 이유로 멀티 스레딩을 활용한 병렬 처리가 필수적이었는데,각 스레드에서 크롬 드라이버를 '열고 캡쳐하고 닫고'를 하자니 오버헤드가 너무 컸다. 이 문제를 전공 지식을 활용해 해결한 것에 대한 내용이다.  파이썬 멀티 스레딩을 사용해보자!파이썬 multiprocessing.pool 라이브러리의 ThreadPool 이용했다. 사용 이유:1) Multi Threading 지원2) Thread 개수 지정 가능 (Chrome Driver는 CP..
Github Submodule 연결하기
·
개발 메모
⭐️ 목적백엔드 프로젝트를 새로 시작하면서, 또 다시 AWS EC2를 생성하게 되었다. 실수로 노출되면 한 순간 엄청난 과금이 이루어지는 정보들을 또 다시 관리해야했다. 서비스 코드 레포는 추후 퍼블릭으로 변경하여 포트폴리오 용도로 사용할 예정이기 때문에 중요한 설정 정보들을 관리해야했다. .env에 환경변수로 관리하거나 .gitignore를 이용해서 yml 파일 자체를 안올리는 방법도 있지만,두 방법 모두 새로 배포를 할 때마다 수동으로 추가해야 된다는 점에서 굉장히 귀찮다고 생각했다. 이러한 이유로 민감한 정보가 포함된 yml 파일들을 저장하는 레포를 따로 만들어서 Submodule로 연결하게 되었다.  ✅ 서브모듈 연결먼저 서브모듈로 활용할 레포를 생성해준다. (평소 레포 생성하는 것과 똑같이하면 ..
ELK stack + Kafka 적용 일지
·
개발 메모
ELK Stack 이란?Elasticsearch, Kibana, Beats, Logstash으로 구성 된 오픈 소스 소프트웨어 스택어떠한 소스에서나 어떠한 형식의 데이터든 안정적이고 보안이 유지되는 방식으로 가져온 다음 검색, 분석, 시각화하는 데 사용ElsasticserachElasticsearch는 Apache Lucene에 구축되어 배포된 검색 및 분석 엔진다양한 언어를 지원하고 고성능에 스키마가 없는 JSON 문서로 다양한 로그 분석과 검색 사용 사례에 활용LogstashLogstash는 다양한 소스로부터 데이터를 수집하고 전환하여 원하는 대상에 전송하는 오픈 소스 데이터 수집 도구KibanaKibana는 확장형 사용자 인터페이스로서, 데이터를 구체적으로 시각화 도구 ELK Stack 구성💡 프..