728x90
728x90

전체 글 117

[gRPC] Protobuf란?

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에서 개발한 데이터 직렬화 형식 : 구조화된 데이터를 이진 형식으로 효율적이고 조밀하게 저장하여 네트워크를 통해 빠르게 전송 가능 다양한 프로그래밍 언어 지원 및 독립적 플랫..

[gRPC] gRPC 기초적인 추가 정보 2. 스트리밍 방식, 개발 순서

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

[gRPC] gRPC란? 1. 개요, 특징, 사례

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)를 마치 로컬에 존재하는 것 처럼 호출하는 것 원격에 있는 메서드를 호출하는 데 사용하는 호스트(클라이언트) ..

[Logstash] 로그스태시란? 개요, 기능, 특징

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

[JAVA, Programmers] 멀리 뛰기(자바)

1. 문제 설명 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다. 2. 제한 사항 n은 1 이상, 2000 이하인 정수입니다. 3. 입출력 예 n result 4 5 3 3 4. 입출력 예 설명 - 입출력 예 #1 위에서 설..

[Elastic Search] 엘라스틱서치란? 3. 장/단점, ES vs RDBMS

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

[Elastic Search] 엘라스틱서치란? 2. 역 색인(Inverted Index)

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 즉, 문서에 번호가 지정된 것이..

[Kafka] 아파치 카프카란? 2. 개요, 사용 이유, 데이터 모델

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

[Elastic Search] 엘라스틱서치란? 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..

[Kafka] 아파치 카프카란? 1. 구성요소, 연산방식, 관련용어

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

[JAVA, Programmers] 안전지대(자바)

1. 문제 설명 다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다. 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요. 2. 제한사항 board는 n * n 배열입니다. 1 ≤ n ≤ 100 지뢰는 1로 표시되어 있습니다. board에는 지뢰가 있는 지역 1과 지뢰가 없는 지역 0만 존재합니다. 3. 입출력 예 board result [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0],..

[JAVA, Programmers] A로 B 만들기(자바)

1. 문제 설명 문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요. 2. 제한사항 0 0;i--) { s += before.substring(i-1, i); } if(s.equals(after)) { return 1; }else {return 0;} } } 입출력 예 에서 olleh를 hello와 비교하는 예제가 나와서 완벽하게 오해하였다. before의 역순 값이 after와 비교하여 동일 여부를 확인하는 것이 아니라 before의 스펠링 위치를 각각 바꾸어서 after와 동일한 지를 확인하는 것이었다.. 6. 재풀이 import java.util.*; c..

[JAVA, Programmers] 구슬을 나누는 경우의 수(자바)

1. 문제 설명 머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요. 2. 제한사항 1 ≤ balls ≤ 30 1 ≤ share ≤ 30 구슬을 고르는 순서는 고려하지 않습니다. share ≤ balls 3. 입출력 예 balls share result 3 2 3 5 3 10 4. 입출력 예 설명 - 입출력 예 #1 서로 다른 구슬 3개 중 2개를 고르는 경우의 수는 3입니다. - 입출력 예 #2 서로 다른 구슬 5개 중 3개를 고르는 ..

[JAVA, Programmers] 순서쌍의 개수(자바)

1. 문제 설명 순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요. 2. 제한사항 1 ≤ n ≤ 1,000,000 3. 입출력 예 n result 20 6 100 9 4. 입출력 예 설명 - 입출력 예 #1 n이 20 이므로 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return합니다. - 입출력 예 #2 n이 100 이므로 곱이 100인 순서쌍은 (1, 100), (2, 50), (4, 25), (5, 20), (10, 10), (20, 5), (25,..

[JAVA, Programmers] 7의 배수(자바)

1. 문제 설명 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 2. 제한사항 1 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 100,000 3. 입출력 예 array result [7, 77, 17] 4 [10, 29] 0 4. 입출력 예 설명 - 입출력 예 #1 [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다. - 입출력 예 #2 [10, 29]에는 7이 없으므로 0을 return 합니다. 5. 풀이 class Solution { public int solution(int[] array) { int answer = 0; String [] li..

[JAVA, Programmers] 카펫 만들기(자바)

1. 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 2. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로..

[GitHub] 이클립스 깃허브 연동

코딩 테스트를 준비하면서 포스팅도 하면서 깃에 추가적으로 올리면 좋을 것 같아 깃허브도 연동할 겸 포스팅하게 되었다. 1. 깃헙 레파지토리 생성 1.1 깃헙 로그인 후 Repositories 선택 1.2 new 선택 1.3 repository 생성 1.3.1 - Repository name : 레파지토리명 - Description (optional) : 간단한 레파지토리 설명(옵션) 1.3.2 - 레파지토리 공개 범위 설정 : 모든 사용자가 확인해도 상관없으므로~ public! 1.3.3 - README : 상세한 레파지토리 설명 - .gitignore : 깃 커밋 시 올리지 않을 파일 선택 : 없음 - license : 라이선스 없음 1.3.4 생성 2. 이클립스에 레파지토리 연동 2.1 이클립스 우측..

[JAVA, Programmers] 소수 만들기(자바)

1. 문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 2. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 3. 입출력 예 nums result [1,2,3,4] 1 [1,2,7,6,4] 4 4. 입출력 예 설명 - 입출력 예 #1 [1,2,4]를 이용해서 7을 만들 수 있습니다. - 입출력 예 #2 [1,2,4]를 이용해서 7을 만들 수 있..

[JAVA, Programmers] 푸드 파이트 대회(자바)

1. 문제 설명 수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수웅이는 음식을 주문했는데, 대회의..

[Mac M1] 소소한 맥북 무료 앱 추천(AltTab, Hidden Bar 등)

매우 주관적인 맥북 추천 앱 4(+1) 개 추천!(아직도 Mac에 적응을 끝내지 못한 비루하고 남루한 나) 1. AltTab 개인적으로 Window OS 환경에서 Mac으로 넘어올 때 진입장벽이 가장 높았던 부분 중 하나였다.. mac은 alt + tab으로 창 변환 구조가 Window랑 달라서 매우 불편하였다,, 저 앱은 Window OS에서 창 변환을 할 때와 매우 유사하게 바꿔준다! 이젠 창 변환이 아주 편안하다! 이미 종료한 프로그램에 여전히 목록에 나와있어 불편.. Window 환경처럼 활성화되지 않은 앱은 없어져서 화면 전환 시 편리~ https://alttab.kr.uptodown.com/mac AltTab (Mac) AltTab을 위한 Mac을 무료로 다운로드하세요. Alt + Tab을 M..

[JAVA, Programmers] 콜라 문제(자바)

1. 문제 설명 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 ..

[JAVA, Programmers] 숫자의 표현(자바)

1. 문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. 1. x의 모든 0을 제거합니다. 2. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 2. 제한사항 s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함되어..

[JAVA, Programmers] 숫자의 표현(자바)

1. 문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 2. 제한사항 n은 10,000 이하의 자연수 입니다. 3. 입출력 예 n result 15 4 4. 입출력 예 설명 - 입출력 예#1 문제의 예시와 같습니다. 5. 풀이 class Solution { public int solution(int n)..

728x90
728x90