[ DB ] Redis를 활용한 캐싱 ( with UpStash )
·
DB
캐시 레이어데이터를 찾는다고 하면 대부분은 DB에서 조회하게 됩니다.하지만 동일한 데이터에 대해 반복적인 읽기를 요청할 경우 DB에 부하를 주는 문제가 발생합니다.그렇다면 데이터를 미리 기억하고 빠르게 데이터에 접근할 수 있다면 성능을 높일 수 있지 않을까요?이렇게 데이터베이스에 접근하지 않고 빠른 접근이 가능한 저장소를 캐시 레이어라고 합니다. 캐시 종류카페인 캐시 : 애플리케이션 프로세스 내부 메모리에 데이터를 저장하는 라이브러리Redis : 애플리케이션 외부의 별도 서버에 데이터를 저장하는 메모리 기반 저장소AWS 엘라스틱 캐시 : AWS에서 제공하는 관리형 캐시 서비스로 AWS가 대신 운영, 백업을 해주는 서비스 UpStach캐시 데이터를 여러 서버에서 접근해야 한다면 외부 캐시 (Redis, ..
[ 모니터링 ] 그라파나 알림 설정
·
Spring
그라파나 알림시스템이 예기치 못한 사유로 동작하지 않을 때 알람을 통해서 원인을 쉽게 찾기 위해서 사용 폴링 / Webhook출처: 블로그 폴링: 클라이언트가 지속적으로 API 호출하여 서버에 이벤트가 발생 했는지 응답 확인웹훅: 서버에 해당 이벤트가 발생하면 서버가 응답 모니터링 알람은 서버에 문제가 발생하면 알려주는 웹훅 방식을 사용합니다. 디스코드 웹훅 등록 디스코드 설정 창에서 연동을 클릭하고 웹훅 URL을 생성 합니다. 웹훅을 생성한 후 생성된 URL 복사 합니다. 그라파나 알림 룰에 들어가서 Contact points를 클릭하여 어디로 알림을 전송할지 설정합니다. 알림 등록 Alert rules를 클릭하여 새로운 알림을 등록합니다.운영 환경에서 톰캣 스레드가 고갈된다면 위험 상황이기 때문..
[ PCCP ] 후기
·
회고
PCCPPCCP란 프로그래머스에서 주최하는 코딩 전문 역량 인증 입니다.매달 실시하고 2시간 동안 4문제를 풀고 당일에 결과를 알려줍니다. 기본 응시료는 5만원인데 ( 개인적으론 좀 비싸다고 생각 합니다. ) 프로그래머스 데브코스를 참여한 적이 있어서 1회 무료 이용권을 제공 받아서 보게 되었습니다. 준비전... 코테는 정말 재능이 없고 프로그래머스 2단계도 못 풀때가 많습니다.이번에 하는김에 매일 4 - 5문제 풀어보고 안되면 코테는 내길이 아닌가 보다로 생각하기로 했습니다.( 안되면 어떻게 하지?... ) 한달간 프로그래머스 2단계 100문제, 1단계 30문제 정도 풀었습니다.푼 방식은 20분간 알고리즘 종류를 못 맞추면 힌트를 GPT한테 받고 1시간 동안 아에 모르겠다 싶으면 답을 보았습니다. 이렇..
[ MySQL ] FullText Index
·
DB
📌 주의: 해당 글은 잘못된 내용이 포함 되어 있을 수 있습니다.혹시 잘못된 내용을 발견 하신다면 댓글로 알려주시면 감사 합니다! 배경일반적으로 검색을 사용할 때 LIKE '%검색어%' 를 사용 하게 됩니다.하지만 와일드카드를 검색어 앞에 사용하면 인덱스를 타지 못하는 문제가 발생합니다.이를 해결 하기 위해서 MySQL은 전문 검색 인덱스인 FullText Index를 지원합니다. 적용 방법MySQL 설정 파일인 My.ini 파일 [ mysql ] 영역에 밑 내용을 적용합니다.파일을 찾기 어렵다면 my.ini 찾는 방법을 참고 하시면 좋을 것 같습니다.ngram_token_size=2;ft_stopword_file=' ' n-gram 알고리즘이란 공백 기준으로 단어를 분리하고 n 길이씩 토큰으로 만드..
@Async 메일 전송 개선하기
·
Spring
📌 주의: 해당 글은 잘못된 내용이 포함 되어 있을 수 있습니다.혹시 잘못된 내용을 발견 하신다면 댓글로 알려주시면 감사 합니다! [ 🌱 회원 가입 ] 스터디 관리 플랫폼 Wibby 에서는 회원 가입할 때 이메일 인증 후 가입이 가능 합니다. 인증 버튼을 누르면 해당 이메일로 인증 번호를 전송 후 인증을 진행 합니다. 그런데 인증 버튼을 누르면 3 ~ 4 초 이후에 인증 번호 체크 창이 뜨는 문제가 있습니다.왜 이런 문제가 발생 하는지 간단한 메일 전송 API를 통해 테스트 해보겠습니다.[ 🌱 메일 전송 ] 인증코드를 이메일로 전송 하는 코드 입니다.@Slf4j@RequiredArgsConstructor@Servicepublic class MailService { private final ..
[ 책 리뷰 ] 함께 자라기
·
우연히 인프런 댓글 이벤트에 당첨되어 읽게 되었는데 학습과 협업에 대한 시각을 키우기에 좋은 책이라고 생각 합니다. 책을 읽으며 놀랐던 점은 좋은 개발자란 기술의 깊이가 있는 개발자라고 생각 하였는데결국 동료와 같이 일하는 것이기 때문에 협업이 엄청 중요 하구나 느꼈습니다. " 어떻게 학습 하는 것이 좋을까? " 혹은 " 좋은 팀은 어떻게 일할까? " 질문에 대한 궁금증이 있는 분이라면 추천 드리며 기억에 남는 부분들을 요약하여 정리해 보겠습니다.달인이 되는 비결단순히 작업을 반복 한다고 되는 것은 아니며 달인이 되기 위해선 동기와 적절한 시기의 피드백이 중요하다.피드백은 짧은 단위의 주기로 이루어져야 한다. 엔 데릭슨의 만시간의 법칙만 시간 지속적으로 하는 것이 중요 하다는 것이 아니라 잘하기 위해서 ..