Dev 16

REST API 설계 및 사용 시 참고 사항

🍎 글의 시작점- 서버 애플리케이션을 개발하며 클라이언트와의 통신을 위해 REST API 스펙을 설계할 때, 도움이 될 만한 팁과 방법을 정리한 글입니다.🍏 참고 사항- API는 기본적으로 Client 곳곳에서 사용할 걸 가정하고 만들어야 하므로, 가급적 범용적으로 만들고 갖다 쓰는 쪽에서 응용해서 사용해야 합니다.- 매우 제한적인 이유로 (퍼포먼스라든지) 전용 API를 만들어서 해결해야 하는 경우도 있지만 그건 원칙을 어긋나는 경우라고 생각합니다.제한적인 상황의 전용 API의 예시임시로 백 투 백으로 서버 데이터를 동기화하는 API의 경우 제한적으로 만들어 사용합니다. 이러한 API는 특정 상황이나 기간에만 필요하고, 시스템이 안정화되거나 이전이 완료되면 사용이 중단되는 경우가 많습니다.- AP..

Dev 2024.09.01

Crawling 성능 40배 올리기, 160분에서 4분대로 -병렬 처리-

👕 크롤링 애플리케이션은 JBLY 프로젝트 요구 사항인 "파이썬 환경에서 최소 세 개 이상의 쇼핑몰을 모아볼 수 있다."를 수행하는 애플리케이션입니다. 시리즈 포스팅은 성능 개선 과정에서 겪은 문제점과 해결하는 과정을 담고 있습니다.✒️ 첫 번째 요구사항 충족 글은 성능이 개선되기 전 요구 사항 달성 과정을 포스팅합니다. (160분 소요)✒️ 두 번째 도구 선택의 중요성 글은 Selenium Tool 걷어내는 과정에서 성능 개선 방법에 대해 포스팅합니다. (30분대로 성능 개선)✒️ 세 번째 병렬 처리 글은 병렬 처리를 통해 성능을 높일 수 있는 방법에 대해 포스팅합니다.(4분대로 성능 개선) 🍏 지금까지 Selenium을 사용해 Crawling을 진행하고 Selenium 도구의 단점을 알게 되어 걷..

Dev 2023.04.06

Crawling 성능 40배 올리기, 160분에서 4분대로 -도구 선택의 중요성-

👕 크롤링 애플리케이션은 JBLY 프로젝트 요구 사항인 "파이썬 환경에서 최소 세 개 이상의 쇼핑몰을 모아볼 수 있다."를 수행하는 애플리케이션입니다. 시리즈 포스팅은 성능 개선 과정에서 겪은 문제점과 해결하는 과정을 담고 있습니다.✒️ 첫 번째 요구사항 충족 글은 성능이 개선되기 전 요구 사항 달성 과정을 포스팅합니다. (160분 소요)✒️ 두 번째 도구 선택의 중요성 글은 Selenium Tool 걷어내는 과정에서 성능 개선 방법에 대해 포스팅합니다. (30분대로 성능 개선)✒️ 세 번째 병렬 처리 글은 병렬 처리를 통해 성능을 높일 수 있는 방법에 대해 포스팅합니다.(4분대로 성능 개선) 🍎 우선, Selenium에서 성능을 향상할 수 있는 방법을 찾아봤습니다.🍏 Selenium을 사용해 요구..

Dev 2023.04.05

Crawling 성능 40배 올리기, 160분에서 4분대로 -요구사항 충족-

👕 크롤링 애플리케이션은 JBLY 프로젝트 요구 사항인 "파이썬 환경에서 최소 세 개 이상의 쇼핑몰을 모아볼 수 있다."를 수행하는 애플리케이션입니다. 시리즈 포스팅은 성능 개선 과정에서 겪은 문제점과 해결하는 과정을 담고 있습니다.✒️ 첫 번째 요구사항 충족 글은 성능이 개선되기 전 요구 사항 달성 과정을 포스팅합니다. (160분 소요)✒️ 두 번째 도구 선택의 중요성 글은 Selenium Tool 걷어내는 과정에서 성능 개선 방법에 대해 포스팅합니다. (30분대로 성능 개선)✒️ 세 번째 병렬 처리 글은 병렬 처리를 통해 성능을 높일 수 있는 방법에 대해 포스팅합니다.(4분대로 성능 개선) 🍎 Crawling지정한 임의의 세 개의 쇼핑몰을 모아볼 수 있는 기능을 구현하기 위해선 어떤 방법으로 해결..

Dev 2023.04.04

동기화와 병렬 처리 둘의 상관 관계 그리고 Java

🍎 많은 곳에서 등장하는 Keyword인 동기화와 병렬 처리를 이번 기회에 확실하게 하고자 정리합니다. 나아가 사용하고 있는 Java 라는 언어, 특히 JVM 위에서 어떤 방식으로 동기화와 병렬 처리를 수행하는지 알아보고자 해당 글을 작성합니다. ❓동기화란?동시다발적으로 실행되는 프로세스들은 공동의 목적을 올바르게 수행하기 위해 서로 협력하며 영향을 주고 받기도 합니다. 협력하여 실행되는 프로세스들은 실행 순서와 자원의 일관성을 보장해야 하기 때문에 반드시 “동기화” 되어야 합니다.프로세스 동기화란 프로세스들 사이의 수행 시기를 맞추는 것을 의미합니다. 또한 실행의 흐름을 갖는 모든 것은 동기화의 대상입니다.동기화에는 실행 순서 제어를 위한 동기화가 있고, 상호 배제를 위한 동기화가 존재합니다. ❓병렬..

Dev 2023.04.03

Process와 Thread. 다다익프? 다다익쓰?

🍎 크롤링 애플리케이션을 개발하던 중 병렬 처리를 위해 Multi Process와 Multi Thread를 사용했습니다. 몇 개의 Process와 Thread를 사용해야 효율이 좋을지 고민이 생겼습니다. 고민을 해결하기 위해 Process와 Thread를 알아보고 사용 시 주의사항을 알아보는 블로그 글입니다.🍏 본격적으로 들어가기 전 Processd와 Thread에 관련해 가볍게 정리합니다.Process : Process는 실행 중인 프로그램의 인스턴스이며, 자신만의 독립적인 메모리 공간과 실행 컨텍스트를 갖습니다. 각각의 프로세스는 OS에 의해 별도의 프로세스 ID(PID)가 할당되며, 각각의 프로세스는 자신만의 실행 스레드를 가질 수 있습니다. 여러 프로세스는 서로 독립적이기 때문에 서로의 메모리..

Dev 2023.04.03