My Project 4

Flutter로컬커머스) 이메일 도메인 리팩토링 작업

◇ 이메일 도메인 리팩토링내부적으로 더 유연하고 확장 가능한 구조 확보, 외부적으로는 사용자의 계정 보안과 편의성을 크게 높이는 필수 기능들을 확보했음.EmailService 비동기 처리:개요: 메인 애플리케이션에 @EnableAsync를 선언하고, EmailService의 sendEmail 메서드에 @Async를 적용했음.목표: 이메일 발송처럼 시간이 걸리는 네트워크 작업을 백그라운드 스레드에서 처리하게 바꿨음. 덕분에 API 응답 시간이 짧아지고 서버 자원 효율이 높아져서, 전체적인 시스템 성능과 사용자 경험 향상.인증 코드 저장소 추상화:작업: 기존의 VerificationCodeManager 역할을 VerificationCodeStore라는 인터페이스로 추상화하고, 기존 로직은 InMemoryVe..

My Project 2025.09.02

Flutter로컬커머스) 비밀번호 찾기 기능 구현

사용자가 비밀번호나 아이디를 잊어버렸을 때, 안전하고 편리하게 계정을 복구하도록 돕는다.비밀번호 찾기(재설정) 기능:개요: "코드 발송 → 코드 검증 및 임시 토큰 발급 → 최종 비밀번호 변경"의 안전한 3단계 프로세스를 구현.목표: 사용자가 비밀번호를 잊었을 때, 이메일 인증을 통해 안전하게 계정을 복구할 수 있는 필수 기능을 제공.구현방법:① JwtUtil을 확장해서, 10분 유효기간을 가진 비밀번호 재설정 전용 임시 토큰(password-reset-jwt)을 발급하고 검증하는 로직을 추가해 보안을 강화.② 관련 DTO 3종(SendPasswordResetCodeRequest, PasswordResetRequest, PasswordResetTokenResponse)과 PasswordResetContr..

My Project 2025.09.02

Flutter로컬커머스) 인증메일 발송기능 구현

SMTP 를 통한 인증메일 발송기능신규 회원가입 시 사용할 이메일 인증 코드 발송 및 검증 기능을 구현했다.또한 이 기능을 기존 회원가입 로직과 안전하게 통합했다.이메일 발송 시나리오◎ 등장인물 (기술 요소)계정 담당: MemberAuthService 파일. 고객의 요청을 받아 편지 발송을 결정한다.우편 담당: EmailVerificationService 파일. 계정 담당의 요청을 받아 편지 내용물을 작성하고 발송을 준비한다.배달부: JavaMailSender 객체. 우편 담당이 준비한 편지를 받아 외부 우체국으로 배달한다.배달 매뉴얼: application.yml의 spring.mail 설정. 우체국에 방문할 때 필요한 우체국 주소와 출입증구글 우체국: Gmail 의 SMTP 서버. 편지를 안전하게 받..

My Project 2025.09.01

CRUD 이후 필요한 고급 기능 체크리스트

기능 분류 기능명 중요도 구현 난이도 사용 기술 사전 검토 필요검색 및 필터링키워드 검색☆☆SQL, JPA, Elasticsearch○검색 및 필터링조건 필터☆☆SQL, JPA, QueryDSL○검색 및 필터링카테고리별 조회 SQL, JPA 페이징 및 정렬페이징 처리☆ JPA, Spring Data Paging○페이징 및 정렬정렬 기능 JPA, SQL 권한 및 인증본인만 수정/삭제 가능☆☆Spring Security○권한 및 인증관리자 전체 목록 보기☆☆Spring Security○권한 및 인증공개 범위 제한 Spring Security 태그 및 카테고리스킬태그 등록☆☆JPA, DB 관계설정○태그 및 카테고리태그별 목록 필터링 JPA, QueryDSL 상호작용스크랩/좋아요 DB, JPA 추천 및..

My Project 2025.08.06