목록초보 개발자의 스터디룸 (26)
운동하는 개발자의 메모장

여러 코드를 마주하다보면 Stream이 적지 않게 보이는 걸 알 수 있다. 특히 IO가 많이 발생하는 Client 부분의 코드에서 많이 보였다. 그냥 단순히 반복문을 간결하게 작성하는 기능 선에서만 대충 알고 있었는데, 이번 기회에 알아보기나 하자는 느낌으로 포스팅을 했다. 일단 Stream 을 왜 사용하는 지 부터 궁금했다. 여러 포스팅을 읽어보고 Java 공식 문서도 읽어보았다. 사용하는 이유가 정말 다양했지만 단편적으로 느낀 첫 번째 이유는 많은 양의 병렬 처리가 필요할 때 사용하면 좋다는 것이다. 코드 자체가 간결해져서 가독성이 향상되는 단편적인 장점도 있지만 아무래도 중, 장기적으로는 성능적인 면을 제대로 파악해야 적재적소에 Stream을 사용할 수 있을 것으로 판단했다. 많은 양의 병렬 처리..

https://appmaster.io/ko/blog/peurotobeopeuran-mueosibnigga Protobuf란 무엇인가요? | AppMaster Protobuf, 장점과 단점, Protobuf와 JSON의 차이점, 앱에서 구현하는 방법에 대해 알아보세요. appmaster.io 본 게시물은 위 자료를 토대로 작성되었습니다. 목차 [1] Protobuf의 개요 [2] Protobuf의 특징 [3] 결론 [1] Protobuf의 개요 1. Protobuf란? Protobuf는 Protocol Buffers의 약어 Google에서 개발한 데이터 직렬화 형식 : 구조화된 데이터를 이진 형식으로 효율적이고 조밀하게 저장하여 네트워크를 통해 빠르게 전송 가능 다양한 프로그래밍 언어 지원 및 독립적 플랫..

https://www.youtube.com/watch?v=sKWy7BJxIas&t=2524s 본 게시물은 위 영상을 토대로 작성되었습니다. 목차 [1] gRPC의 스트리밍 방식 [2] 개발 순서와 상세 정보 [3] 추가적인 확인 사항 [1] gRPC의 스트리밍 방식 1.1 gRPC의 스트리밍 방식 종류 설명 - 스트리밍은 아니지만 타 스트리밍 방식과 다르기 때문에 첨부 - 가장 단순한 형태 - 클리이언트가 요청을 1번 보내면 서버가 여러 번 보내는 구조 ex) 클라이언트가 어떤 목록 조회 요청 상황 - 목록은 여러 개 존재할 수 있어 서버는 여러 개의 목록을 순차적으로 스트리밍하여 회신할 때 사용 - 클라이언트에서 여러 번 요청을 보내면 서버가 클라이언트에서 받은 정보들을 집계하여 하나의 정보로 회신 -..

https://www.youtube.com/watch?v=sKWy7BJxIas&t=2524s 본 게시물은 위 영상을 토대로 작성되었습니다. 목차 [1] gRPC의 개요 [2] gRPC의 특징 [3] gRPC의 사례 [1] gRPC의 개요 1.1 gRPC의 간단한 설명 다양한 환경에서 실행할 수 있는 고성능 오픈 소스 RPC 프레임워크 : Google 개발 구글이 1주일 동안 띄우는 마이크로 컨테이너의 수 : 20억 구글이 1초 동안 던지는 원격 호출의 수 : 100억 1.2 원격호출(RPC)란? 원격 호출 : RPC(Remote Procedure Call) 원격에 존재하는 함수(Procedure)를 마치 로컬에 존재하는 것 처럼 호출하는 것 원격에 있는 메서드를 호출하는 데 사용하는 호스트(클라이언트) ..

1. Logstash 개요 - ELK stack(Elasticsearch, Logstash, Kibana의 세 가지 프로젝트로 구성된 스택을 의미하는 약어) 중 하나 - 데이터 수집과 가공기능을 제공하는 ETL(Extract(추출), Transform(변환), Load(적재)의 약어) Tool - 로그(비정형 데이터)를 수집 및 분석하고 시스템에서 인식 가능하도록 정제하는 작업에 용이 - 데이터 수집 - 데이터 가공(Logstash) - 데이터 저장(ES) - 분석 및 시각화(Kibana) 2. Logstash의 기능 2.1 Pipeline(파이프라인) - 비정형 데이터를 입력받아 실시간으로 변경하고 이를 타 시스템에 전달하는 역할 : Logstash의 핵심 부분 더보기 - 비정형 데이터(Unstrctu..

ES 게시글 더보기 2023.01.05 - [초보 개발자의 스터디룸] - [Elastic Search] 엘라스틱서치란? 1. 관련 용어 정리, 특징 2023.01.06 - [초보 개발자의 스터디룸] - [Elastic Search] 엘라스틱서치란? 2. 역 색인(Inverted Index) 1. Elastic Search의 장/단점 1.1 장점 - 오픈소스이기 때문에 버그 발생 시 대부분 빠른 해결이 가능 - 정형화되지 않은 다양한 형태의 문서도 색인 및 검색 가능 - 멀티-테넌시(Multi-Tenancy, 단일 소프트웨어 인스턴스. 여러 사용자 그룹에 서비스를 제공 가능한 소프트웨어 아키텍처) 기능 제공 - 상이한 인덱스라도 검색할 필드명이 같으면, 여러 개의 인덱스를 한 번에 조회 가능 - ES를 분..

ES 게시글 더보기 2023.01.05 - [초보 개발자의 스터디룸] - [Elastic Search] 엘라스틱서치란? 1. 관련 용어 정리, 특징 1. 역 색인이란? - 키워드를 통해 문서를 찾아내는 방식 - 색인 : 문서 내 키워드를 확인 용이하도록 정렬/나열한 목록 예) - 색인 방식 문서 번호 단어 1 사과 먹는 다람쥐 2 딸기 먹는 하마 3 복숭아 먹는 다람쥐 4 바나나 먹는 원숭이 5 딸기 먹는 악어 6 복숭아 먹는 원숭이 7 딸기 먹는 다람쥐 8 복숭아 먹는 악어 - 역색인 방식 단어 문서 번호 먹는 1, 2, 3, 4, 5, 6, 7, 8 사과 1 딸기 2, 5, 7 복숭아 3, 6, 8 바나나 4 다람쥐 1, 3, 7 하마 2 원숭이 4, 6 악어 5, 8 즉, 문서에 번호가 지정된 것이..

카프카 게시글 더보기 2023.01.04 - [초보 개발자의 스터디룸] - [Kafka] 아파치 카프카란? 1. 구성요소, 연산방식, 관련용어 1. Apache Kafka 개요 1.1 Apache Kafka란? - 2011년 링크드인에서 개발 및 오픈소스 공개, 현재는 아파치 공식 오픈소스 - 애플리케이션 간 대용량 메세지 교환 목적으로 사용되는 메세징 Queue 시스템 - 실시간 비동기 처리 : 병렬식 테스크 수행, 작업의 종료에 관계없이 다음 동작 실행 가능 - 확장성이 용이한 분산 스트리밍 플랫폼 1.2 Apache Kafka의 장점 1.2.1 확장성(분산 시스템) - 클러스터에 브로커를 추가하는 방식 - 여러 개의 브로커로 구성된 클러스터는 개별 브로커 장애를 처리하여 사용자에게 지속적인 서비스 ..

ES 게시글 더보기 2023.01.06 - [초보 개발자의 스터디룸] - [Elastic Search] 엘라스틱서치란? 2. 역 색인(Inverted Index) 1. Elastic Search 관련 용어 정리 1.1 ES vs RDBMS 1.1.1 기본 용어 정리 RDBMS Elastic Search Database Index Table Type Row Document Column Field Index Analyze Primary Key _id Schema Mapping Physical Partion Shard Logical Partion Route Relational Parent/Child, Nested SQL Query DSL 1.1.2 CRUD 용어 비교 RDBMS Elastic Search Se..

카프카 게시글 더보기 2023.01.06 - [초보 개발자의 스터디룸] - [Kafka] 아파치 카프카란? 2. 개요, 사용 이유, 데이터 모델 1. Kafka의 구성요소 [기본 작동 방식] - Producer는 새 메시지를 Kafka에 전달 - 전달된 메시지는 Broker의 Topic이라는 메시지 구분자에 저장 - Consumer는 구독한 Topic에 접근하여 메시지를 가져옴 1. Producer(프로듀서) - 메시지를 만들어서 카프카 클러스터에 적재 - key값 지정하여 특정 파티션으로만 전송 가능 2. Kafka Cluster(카프카 클러스터) - 카프카 서버로 이루어진 클러스터 [카프카 클러스터의 구성요소] 2.1 Broker(브로커) - 카프카 서버 - Producer와 Consumer사이의 발..