본문 바로가기

전체 글21

Kafka 1 - 개념편 회사에서 Unity와 백엔드가 데이터를 주고 받는 채널들 중에 하나인 Kafka를 처음 접하게 되었고, 이에 대해 한 번 공부한 글을 정리하여 올려본다.우선, Kafka에 대해 알아보기 이전에 Message Queue에 대해 먼저 알아보자.1. Message Queue간단하게 Queue(First In First Out)라는 자료구조를 통해 Message를 전달한다라고 생각하면 된다.메시지 큐를 사용하면 발신자와 수신자가 서로를 직접 알 필요 없어지므로 발신자/수신자 서로가 서로에게 의존하지 않게 되어 ‘느슨한 결합’을 만들어 낼 수 있다.또, 메시지 큐를 사용하면 비동기 통신을 구현할 수 있다. Producer가 메시지를 메시지 큐에 발행하고, Consumer가 그 메시지를 가져가는 방식으로 통신한다면.. 2024. 10. 28.
selenium을 이용한 웹 스크래핑 앞서 JSOUP 라이브러리를 이용한 스크래핑은 정적 페이지에서만 데이터를 가져올 수 있었다.하지만, 데이터를 조회해와야 하는 페이지들이 대부분 동적 페이지라 JSOUP 라이브러리 말고 다른 방법을 찾아봐야 했다.동적 페이지에서는 'selenium' 라이브러리를 이용하여 데이터를 가져온다고 한다.그래서 'selenium' 라이브러리를 이용한 데이터 스크래핑을 해보도록 하겠다. 1. JSOUP과 selenium 비교비교 항목JSOUP Selenium 주요 용도HTML 문서 파싱 및 데이터 추출에 사용.웹 애플리케이션 자동화 및 브라우저 상호작용 테스트.작동 방식서버 측에서 HTML 소스만을 파싱. 자바스크립트 실행은 불가능.실제 브라우저를 띄워서 웹 페이지를 탐색하고 상호작용. 자바스크립트도 실행 가능.자바.. 2024. 10. 7.
JSOUP을 이용한 웹 스크래핑 개인 프로젝트에서 스크래핑을 이용하여 데이터를 가져오는 기능이 필요했다.그래서 처음으로 JSOUP 라이브러리를 이용하여 스크래핑을 해오기로 하였다. 1. 스크래핑 VS 크롤링처음에는 2가지가 비슷한 줄 알았다.하지만 목적과 방식에 차이가 있다고 한다. 크롤링은 웹사이트 간의 관계 및 링크를 탐색하며, 여러 페이지를 자동으로 탐색하고 저장하는 반면, 스크래핑은 특정한 웹페이지에서 데이터를 추출한다.크롤링은 주로 웹을 탐색하고 인덱싱하는 데 사용되며, 스크래핑은 특정 정보를 수집하는 데 적합하다.그래서 특정 텍스트, 이미지, 정보만을 필요로 할 때는 스크래핑, 그 외의 좀 더 광범위한 범위에서의 데이터가 필요하다면 크롤링으로 생각하면 쉬울 듯 하다.  2. JSOUP 사용하기2.1 JSOUP 이란?JSOUP.. 2024. 10. 6.
MQTT 1. MQTT란?M2M(Machine-to-Machine)를 기반으로 하는 IoT(사물 인터넷) 개방형 프로토콜이다.경량의 메시징 프로토콜 또는 규칙 세트이다.최소한의 전력과 리소스로 마이크로컨트롤러와 같은 iot와 모바일 어플리케이션 등 통신에 적합하다.Publisher(게시자), Subscriber(구독자)를 분리한 대신 Broker 라는 매개자를 도입해 메세지를 대신 전달해주는 역할을 한다. Broker는 게시자로부터 수신되는 모든 메세지를 필터링하고 구독자에게 직접 배포하는 중재 역할을 한다. 2. TOPIC메시지를 발행-구독하는 행위는 채널 단위로 일어난다. 이를 MQTT에서는 토픽이라고 부르고, 토픽은 슬래시(/)로 구분되는 계층 구조를 갖는다.슬래시(/)로 각 토픽들을 계층화하고 구분할 수 .. 2024. 10. 5.
Redis 사용해보기 1. Redis(Remote Dictionary Server)란?Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. You can run atomic operations on these types, like appending to a str.. 2024. 8. 17.
배치 만들기 앞에서 http 라이브러리를 이용하여 외부 데이터를 받아오는 방법에 대하여 작성하였다. 받아온 외부 데이터는 서비스 오픈 전 dummy 데이터를 한꺼번에 테이블에 미리 저장해주고, 이후 신규로 업데이트 되는 데이터들에 대하여 배치 파일을 이용하여 주기적으로 실행하여 업데이트 해주기로 하였다. 그래서 이번에는 배치에 대해 알아보고 개인 프로젝트에 적용해보기로 하였다.1. 배치란?배치는 단순하게 설명해서 외부 상호 작용이나 중단이 필요하지 않은 방식으로 한정된 양의 데이터를 처리하는 것이다. 회원에게 일괄적으로 메시지를 보내거나, 정산/통계 업무 등에도 사용될 수 있다. 사진과 같이 Batch는 별도의 서버에서 관리하는게 좋다.별도의 서버에서 관리되면 대량의 데이터가 한 번에 처리될 때 Application.. 2024. 8. 16.