목록분류 전체보기 (124)
just_do_IT

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

문제 설명문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다.b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다.n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다.a는 자신보다 두 칸, 네 칸 앞에 a가 있습니다. 이 ..

문제 설명로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위당첨 내용16개 번호가 모두 일치25개 번호가 일치34개 번호가 일치43개 번호가 일치52개 번호가 일치6(낙첨)그 외로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다.알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨 번호 6개가 31, ..

문제 설명수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.제한사항마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예participant completion return["leo", "kiki", "ede..

자료구조특징추가(ADD) 속도읽기(READ) 속도검색(SEARCH) 속도삭제(DELETE) 속도배열(Array)고정 크기.메모리 연속 저장.인텍스 기반 접근.불가(크기 고정)O(1)O(n)-ArrayList크기 동적 증가.인덱스 기반 접근.O(1)(끝에 추가 시)O(1)O(n)(전체 탐색)O(n)(중간 삭제 시)LinkedList노드 기반 연결 구조.삽입 및 삭제 빠름.O(1)(노드 추가 시)O(n)O(n)O(1)(노드 삭제 시)HashMap키 - 값 기반 저장.해싱 사용으로 빠른 접근.O(1)O(1)O(1)O(1)HashSet유일한 값만 저장.순서 없음.O(1)O(1)O(1)O(1)TreeMap정렬된 키-값 쌍 저장.키를 기준으로 자동 정렬.O(log n)O(log n)O(log n)O(log n)Tr..
2023년 1월 2일에 지금 다니는 회사를 입사했다. 회사에서는 많은 오픈소스를 사용한다. Logstash, Kafka, Redis, Elasticsearch, Docker 등등. 아무것도 모르는 채 입사했다고 해도 과언이 아니다. 물론 아직도 모르는 게 많지만, 그래도 그 당시 내 모습과는 발전했다고 자부할 수 있다. 처음 입사했을 때 IDE로 IntelliJ를 사용했는 데, 디버깅하는 법도 몰라서 사수님께 물어봤었다. 부끄럽지만 그땐 그랬다. 더구나 본인은 명석한 두뇌는커녕 지극히 평범한 수준의 지능이어서 전부를 기억하기가 만무했다. 그래서 2023년에는 사소한 것까지 전부 나름의 문서를 작성했었던 것 같다. 그리고 그때의 문서들이 지금 나를 지탱하는 힘 중에 하나가 되고 있다. 2024년에는 참 다..
Project READMEhttps://github.com/justdoit0730/AutoTR?tab=readme-ov-file#autotr후기 TCP, HTTP Client 통신 기능, Kafka 적재, Elasticsearch indexing, index 정보 확인, Query 사용, TPS에 맞춘 요청 기능, Redis Command 등을 한 번에 수행할 수 있는 웹페이지를 만들고 싶었다. 가볍게 회원가입과, 게시판, 댓글 기능까지 추가했다. UI는 깔끔하게 구현하고 싶었지만, 귀찮다는 이유로 대충 넘긴 부분이 있다. 가이드 없이 바로 사용할 수 있도록 나름 직관적으로 만든 것 같다. 본인은 각 요청이 필요하면 AutoTR을 사용하고 있다. 찾으면 있을 수도 있겠지만 비슷한 콘셉트의 프로그램이 없었..

1. 문제 설명 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요. 2. 제한사항 dots의 길이 = 4 dots의 원소의 길이 = 2 -256

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) 클라이언트가 어떤 목록 조회 요청 상황 - 목록은 여러 개 존재할 수 있어 서버는 여러 개의 목록을 순차적으로 스트리밍하여 회신할 때 사용 - 클라이언트에서 여러 번 요청을 보내면 서버가 클라이언트에서 받은 정보들을 집계하여 하나의 정보로 회신 -..