본문 바로가기

분류 전체보기28

Spring ExecutorService 멀티 쓰레드 성능 개선 (Grafana & Prometheus) 오늘은 회사에서 진행한 업무중에 대량으로 사용자에게 이메일/문자를 전송하는 기능을 구현하는 과정에서 성능 테스트를 진행하고, 성능개선한 후기를 작성하려고합니다! 여려명의 사용자가 자신만의 고객을 만들 수 있는데 (설문조사 등을 통해) 이때 설문에 참여한 고객들에게 대량의 이메일/문자를 발송할 수 있는 기능 중 사용자를 여러명 선택후 예약된 시간에 이메일/문자를 발송하는 기능을 구현하는 과정에서, 너무나도 당연하게 사용자 수가 많아 질 수록 속도가 엄청 오래걸리는 문제가 발생했고, 이를 해결하는 것을 목표로 성능 개선에 집착했습니다! 그래서 선택한 기술은 ExecutorService를 사용해 속도를 개선했습니다. 먼저 시나리오는 다음과 같습니다.하지만 테스트용도로 작성하는 점과 회사 코드이기 때문에 약소하.. 2024. 8. 17.
ELK 구축하기 오늘은 쿠버네티스에 ELK를 구축하는 방법을 포스팅하려고한다.ELK는 3개의 tool을 합친거다Elasticsearch + Logstash + Kibana 를 합친 용어로 ELK라 부르며 또 다른 조합으로는 EFK가있다.나는 단순히 ELK로 서버의 Metric 데이터를 수집하고 모니터링을 진행하는 것으로 구축하였다.Elasticsearch분산 검색 및 분석 엔진고성능의 분산 시스템으로, 대용량 데이터도 빠르게 처리Logstash로그와 이벤트 데이터를 수집, 처리, 변환하는 파이프라인 도구다양한 입력 플러그인을 통해 여러 소스로부터 데이터를 수집하고, 필터 플러그인을 통해 데이터를 변환 및 정제하며, 출력 플러그인을 통해 데이터를 다양한 목적지로 보낼 수 있음KibanaElasticsearch 데이터를 시.. 2024. 7. 16.
쿠버네티스 구축하기 Ubuntu 22.04 & K8S 1.29 오늘은 쿠버네티스를 베어메탈 환경에 구축해보려고한다.소프트웨어 마에스트로 연수생일때 쿠버네티스를 다뤄본 경험이있는데, 회사에서 쿠버네티스 경험자인 나에게 사내 서버를 싹 쿠버네티스로 전환하는 작업을 맡게되었다.물론 나는 평소에도 이런 서버 관리가 재미있어서 만드는 과정에서 너무 재밌었다본론으로 돌아와서 깡통 서버에 쿠버네티스를 설치하는 법을 포스팅을 진행하겠습니다.혹시나 따라하게 되신다면 총 3대의 리눅스 Ubuntu 22.04 버전을 준비해주세요.1. Iptables 활성화쿠버네티스는 기본적으로 Iptables를 이용하기 때문에 iptables가 정상 작동하도록 해주세요.cat 2. Swap 메모리 비활성화성능을 최대한으로 쓰기 위해 스왑 메모리를 비활성화 해주자!## swap 영역 비활성화sudo s.. 2024. 7. 16.
쿠버네티스 이해하기 쿠버네티스는 DevOps와 같이 쓰이는데, 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상 시키는 문화 철학, 방식 및 도구의 조합이다. -> DevOps 그렇기 때문에 DevOps는 쿠버네티스를 포함하고 있는 말이기 때문에, 결론은 더 빨리, 더 자주 실패없이 배포하자 가 쿠버네티스의 매커니즘이다. 먼저 쿠버네티스 공식 홈페이지에 들어가보자!https://kubernetes.io/ Production-Grade Container OrchestrationProduction-Grade Container Orchestrationkubernetes.io들어가면 한국어도 지원이 된다.  밑으로 내려보면 다음과 같은 글이 써져있다. 쿠버네티스에서 제공해주는 기능들이라 볼 수 있다. 이중 .. 2024. 7. 16.
Apple 로그인 Oauth 2.0 구현 오늘은 애플 로그인을 구현하려고한다. 사실 소프트웨어 마에스트로 앱 출시를 위해 애플 스토어 심사를 받았는데, 리젝당했다.. 그 이유는 구글 로그인이 있지만, 애플로그인이 없어서 그렇다,,ㅎㅎ 그래서 오늘은 애플로그인을 구현한걸 포스팅하고자 한다! Spring Boot, gradle 프로젝트로 진행하였다. implementation group: 'com.auth0', name: 'java-jwt', version: '3.4.0' 다음과 같이 의존성을 추가해준다. 애플 로그인 토큰을 Decode하려면 필요하다. 먼저 나는 프론트 친구한테 identyToken을 받았다. identityToken 의 길이가 어마무시하다.. 이걸 헤더로 받아와서 스프링에서 이 헤더를 가지고 애플로그인을 진행하려고한다. 기존의 .. 2023. 10. 27.
ECR 스프링 부트 GitHub Action 설정하기 Ekastic Container Registry 를 사용해보려고 한다. 컨터이너 기술을 점점 많이쓰이며 배포가 엄청 간단해지고 있다. 그래서 나도 이번에는 깃허브를 이용해서 AWS에서 제공해주는 컨테이너 이미지 저장을 통해 Github Action CI를 구축해보려고한다. ECR은 AWS에서 제공하는 도커 컨테이너 이미지를 저장할 수 있는 완전관리형 도커 컨테이너 레지스트리 서비스이다. 완전 기계처럼 말했는데, 맞다 지피티가 말해준 것이다. 그냥 우리가 도커 레포지토리에 올리면 되는데 왜 AWS꺼를 써야하지? 이런 생각을 했다. 그이유는 간단하다. 그냥 도커도 쓰기 간단한데 ECR을 쓰면 간단한건 똑같지만, 우리가 AWS에 몇몇 서비스를 이용하고 있다고 하자, EKS등과 같이 이럴 경우 AWS 리전 안에.. 2023. 8. 20.