전체 글29 Spring Webflux Exception 전역 처리 하기 (feat. RestControllerAdvice) 오늘은 스프링 WebFlux를 이용해서 Exception을 전역 처리하는 방법을 포스티하려고한다. 이게 나는 굉장히 중요하다고 생각한다.. Exception별로 모아서 처리를 하면 비즈니스 로직에서 가독성도 올라가고 유지보수성이 올라간다 근데 이게 WebFlux로 하려고 하다보니까 기존 MVC랑 구조가 달라서 전역처리가 불가능한 줄 알았다.. 그냥 컨트롤러 단에서 if 뇌절로 처리해야 하나? 생각을 했지만 그런 짓은 하고 싶지 않았다.. 바로 본론으로 들어가서 평소에 우리는 @RestControllerAdvice를 이용해서 Exception을 전역으로 처리해서 참 편했다. Exception을 정의하고 해당 Exception 만 Handling 하면 되니 매우 편했다. 근데 Webflux를 이용하다 보니 .. 2024. 10. 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. 이전 1 2 3 4 5 다음