트러블슈팅 42

3주 차: 알림 기능 찾아 삼만리 Day 16 - 구현 사항 설명하기

[알림 기능 찾아 삼만리 링크 1주 차: (1) (2)][알림 기능 찾아 삼만리 링크 2주 차: (3) (4) (5) (6) (7) (8) (9) (10)][알림 기능 찾아 삼만리 링크 3주 차: (11) (12) (13) (14) (15)]채우기 쉽지 않은 20분을 최대한 더듬거리지 않고 채우려면 문장 길이가 짧아야 했다. 어떤 글을 쓸 때든 항상 한 줄씩 띄어 쓰면 길이가 한눈에 들어왔다. 혹시 나중에 면접 준비할 때 도움이 될지 모르니, 오늘 20분짜리 영상을 제출한 김에 정리했다. 1. 🌟 소개더보기您好,我是翻译人和计算机语言的开发者申智贤。안녕하십니까.사람뿐만 아니라 컴퓨터 언어를 번역하며 언어 사랑을 키워나가는 개발자, 신지현입니다.지금까지 이메일 알림 기능을 구현하면서 겪은 시행착오를 공유해 ..

3주 차: 알림 기능 찾아 삼만리 Day 12 - 이상하다, 별로 한 일이 없는 줄 알았는데 정리가 왜 안 끝나죠?

[알림 기능 찾아 삼만리 링크 1주 차: (1) (2)][알림 기능 찾아 삼만리 링크 2주 차: (3) (4) (5) (6) (7) (8) (9) (10)][알림 기능 찾아 삼만리 링크 3주 차: (11)] 팀에서 중간 발표회 대비 여태까지 한 일을 서로 발표하는 시간을 갖기로 했다. 원래 목요일에 예정되었으나 하루 앞당겨진 만큼, 여태까지 작성한 개발 일지를 바탕으로 발표회 대비 자료를 정리했다. 코드 작성 못지않게 여태까지 무엇을 했는지 정리하는 일 또한 개발의 중요한 일부분이라고 생각했다. 오늘 하루는 경쟁하듯 튀어 오르는 생각을 가지치기하는 시간으로 보냈다. 1. 🔑 주요 기능(1) 한 줄 소개Spring Scheduler + SendGrid API를 사용하여 하루에 한 번 사용자들에게 맞춤형 ..

3주 차: 알림 기능 찾아 삼만리 Day 11 - 안녕, 지메일! 'Too many login attempts'에 질려서 SendGrid로 갈아탄다!

[인용 및 참고 출처]1. 구글 검색: Google Help, "Too many login attemps 454 google", Community, (2025.02.25) 2. 구글 검색: Google Help, "Too many login attemps 454 google", Community, (2025.02.25) 3, 구글 검색: Google Help, "Too many login attempts 454 error codes", Gmail SMTP errors and codes, (2025.02.25)4. 구글 검색: 티스토리, "SendGrid Spring", Spring Boot에서 SendGrid로 이메일 전송하기, (2025.02.25)5. 구글 검색: Baeldung, "SendGrid ..

3주 차: 알림 기능 찾아 삼만리 Day 10 - 로직 나누기는 마치 원심분리기 같아요. 영혼까지 분리될 뻔했거든요 (2)

[알림 기능 찾아 삼만리 Day 1 링크][알림 기능 찾아 삼만리 Day 2 링크][알림 기능 찾아 삼만리 Day 3 링크][알림 기능 찾아 삼만리 Day 4 링크][알림 기능 찾아 삼만리 Day 5 링크][알림 기능 찾아 삼만리 Day 6 링크][알림 기능 찾아 삼만리 Day 7 링크][알림 기능 찾아 삼만리 Day 8 링크][알림 기능 찾아 삼만리 Day 9 링크] 천만다행으로 준실시간 알림 기능을 구현할 틀을 마련했다. 로직 나누기에 가까스로 성공했다. 알림이란 객체를 만들어서 이메일 전송이나 푸시(Push) 알림 등등 다양한 알림 기능을 구현할 때 활용하고 싶었고, 알림을 읽었는지 또는 언제 읽었는지를 확인할 수 있다면, 나중에 또 의미 있는 정보를 얻을 수 있을 듯했다. 물론 이 알림 객체는 전..

2주 차: 알림 기능 찾아 삼만리 Day 9 - 로직 나누기는 마치 원심분리기 같아요. 영혼까지 분리될 뻔했거든요 (1)

[알림 기능 찾아 삼만리 Day 1 링크][알림 기능 찾아 삼만리 Day 2 링크][알림 기능 찾아 삼만리 Day 3 링크][알림 기능 찾아 삼만리 Day 4 링크][알림 기능 찾아 삼만리 Day 5 링크][알림 기능 찾아 삼만리 Day 6 링크][알림 기능 찾아 삼만리 Day 7 링크][알림 기능 찾아 삼만리 Day 8 링크][깃허브(GitHub) 링크]더보기package com.project.cheerha.domain.notice.entity;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.Generatio..

2주 차: 알림 기능 찾아 삼만리 Day 8 - 데이터 조회 따로, 저장 따로, 전송 따로 나누면 어떨까?

[알림 기능 찾아 삼만리 Day 1 링크][알림 기능 찾아 삼만리 Day 2 링크][알림 기능 찾아 삼만리 Day 3 링크][알림 기능 찾아 삼만리 Day 4 링크][알림 기능 찾아 삼만리 Day 5 링크][알림 기능 찾아 삼만리 Day 6 링크][알림 기능 찾아 삼만리 Day 7 링크]현재 구현한 이메일 스케줄러는 다음과 같은 문제가 있었다.  (1) 한 스케줄러가 데이터 조회와 이메일 전송 두 가지를 모두 담당한다.현재 스케줄러는 데이터를 가져오고 그 데이터를 바로 이메일 전송에 활용하는 구조인데, 만약 이메일 전송에 시간이 오래 걸리면 스케줄러가 다시 작동할 때 작업이 서로 겹칠 위험이 있었다. 이 문제는 특히나 이메일을 대량으로 전송해야 할 때 더욱 심각해질 수 있었다. 현재 @Async 어노테이..

2주 차 : 알림 기능 찾아 삼만리 Day 7 - @Async 어노테이션(annotation)으로 바꾼 이유는?

[인용 및 참고 자료]1. 구글 검색: Spring, "Spring ThreadPoolTaskScheduler Docs", ThreadPoolTaskScheduler, (2025.02.21)2. 구글 검색: Spring, "Task Execution and Scheduling", Task Execution and Scheduling, (2025.02.21) [알림 기능 찾아 삼만리 Day 1 링크][알림 기능 찾아 삼만리 Day 2 링크][알림 기능 찾아 삼만리 Day 3 링크][알림 기능 찾아 삼만리 Day 4 링크][알림 기능 찾아 삼만리 Day 5 링크][알림 기능 찾아 삼만리 Day 6 링크][깃허브(GitHub) 링크]처음 ThreadPoolTaskScheduler를 빈(Bean)으로 등록했을 ..

2주 차: 알림 기능 찾아 삼만리 Day 5 - 이메일 하나 보내는 데 7초씩이나 걸리면, 2,000명일 때는 얼마나 걸린단 소리지?

[인용 및 참고 자료]1. 구글 검색: 티스토리, "java.lang.Object org.hibernate.ScrollableResults.get(int)", 오류 해결하기, (2025.02.19)2. 구글 검색: 티스토리, "java.lang.Object org.hibernate.ScrollableResults.get(int)", 오류 해결하기, (2025.02.19)3. 구글 검색: QueryDSL GitHub, "java.lang.Object org.hibernate.ScrollableResults.get(int)", 오류 해결하기, (2025.02.19)4. 구글 검색: 정책 브리핑, "한국 실업자 수", 2024년 12월 및 연간 고용동향, (2025.02.19) [알림 기능 찾아 삼만리 Day..

2주 차: 알림 기능 찾아 삼만리 Day 4 - 팀장님, 우리 그냥 ZonedDateTime 말고 LocalDateTime 쓰면 안 돼요?

[인용 및 참고 출처]1. 구글 검색: MySQL 8.4 Reference Manua, "MySQL timestamp with time zone", 13.2.2 The DATE, DATETIME, and TIMESTAMP Types, (2025.02.18) [알림 기능 찾아 삼만리 Day 1 링크][알림 기능 찾아 삼만리 Day 2 링크][알림 기능 찾아 삼만리 Day 3 링크][깃허브(GitHub) 링크] '취하여(취업을 위하여)' 프로젝트는 현재 국내 채용 공고만 조회할 수 있지만, 언젠가 다른 나라의 채용 공고도 조회할 수 있도록 서비스를 개선할 생각을 염두에 두고 ZonedDateTime을 사용 중이었다. 어제에 이어 오늘은 한 번 조회한 채용 공고를 다시 조회하지 않도록 스프링 스케줄러(Spri..

2주 차: 알림 기능 찾아 삼만리 Day 3 - Spring Scheduler와 Spring Email로 이메일 보내기에 성공은 했는데

[인용 및 참고 출처]1. 구글 검색: Baeldung, "Spring Email", Guide to Spring Email, (2025.02.17)2. 구글 검색: 티스토리, "구글 SMTP 설정", Gmail SMTP로 메일 발송 설정하기, (2025.02.17)3. 구글 검색: velog, "구글 SMTP 설정", Gmail SMTP 설정으로 이메일 보내기, (2025.02.17) [알림 기능 찾아 삼만리 Day 1 링크][알림 기능 찾아 삼만리 Day 2 링크]더보기package com.project.cheerha.domain.notice.dto;import com.querydsl.core.annotations.QueryProjection;public record UserKeywordDto( ..