본문 바로가기

전체 글

(143)
VScode로 플러터를 개발하는데 필요한 익스텐션 VScode로 플러터를 개발하는데 필요한 익스텐션 생산성 도구Awesome Flutter Snippets - stless + Tab = StatelessWidget 자동완성 Flutter Widget Snippets - 위젯별 코드 스니펫 제공 Dart Data Class Generator - 모델 클래스 자동 생성코드 품질 관리 - Error Lens - Better Comments - Bracket Pair Colorizer 2 - indent-rainbow (들여쓰기) 개발환경 - Material Icon Theme - Flutter Tree (위젯 트리 시각화) 실무 필수 - GitLens ( Git 히스토리 시각화) ..
VSCode 멀티루트 워크스페이스 - 백엔드/프론트 한번에 보기 VSCode 멀티루트 워크스페이스 (Multi-root Workspace) 를 이용해 풀스택 프로젝트 동시에 작업해보자VSCode의 '멀티루트 워크스페이스' 기능을 사용하면, Spring Boot 백엔드와 Flutter 프론트엔드와 같이 물리적으로 분리된 두 개 이상의 프로젝트를 한꺼번에 작업할 수 있다.단계1. 워크스페이스 생성 및 경로 설정① 상단 메뉴 파일(File) > 작업 영역에 폴더 추가...(Add Folder to Workspace...) 항목을 선택.② 두 번째 프로젝트 폴더(예: markit_place_front)를 선택하여 작업 영역에 추가함.③ 파일(File) > 작업 영역을 다른 이름으로 저장...(Save Workspace As...)을 선택하여, 현재 구성된 작업 영역을 .co..
Flutter로컬커머스) 이메일 도메인 리팩토링 작업 ◇ 이메일 도메인 리팩토링내부적으로 더 유연하고 확장 가능한 구조 확보, 외부적으로는 사용자의 계정 보안과 편의성을 크게 높이는 필수 기능들을 확보했음.EmailService 비동기 처리:개요: 메인 애플리케이션에 @EnableAsync를 선언하고, EmailService의 sendEmail 메서드에 @Async를 적용했음.목표: 이메일 발송처럼 시간이 걸리는 네트워크 작업을 백그라운드 스레드에서 처리하게 바꿨음. 덕분에 API 응답 시간이 짧아지고 서버 자원 효율이 높아져서, 전체적인 시스템 성능과 사용자 경험 향상.인증 코드 저장소 추상화:작업: 기존의 VerificationCodeManager 역할을 VerificationCodeStore라는 인터페이스로 추상화하고, 기존 로직은 InMemoryVe..
Flutter로컬커머스) 비밀번호 찾기 기능 구현 사용자가 비밀번호나 아이디를 잊어버렸을 때, 안전하고 편리하게 계정을 복구하도록 돕는다.비밀번호 찾기(재설정) 기능:개요: "코드 발송 → 코드 검증 및 임시 토큰 발급 → 최종 비밀번호 변경"의 안전한 3단계 프로세스를 구현.목표: 사용자가 비밀번호를 잊었을 때, 이메일 인증을 통해 안전하게 계정을 복구할 수 있는 필수 기능을 제공.구현방법:① JwtUtil을 확장해서, 10분 유효기간을 가진 비밀번호 재설정 전용 임시 토큰(password-reset-jwt)을 발급하고 검증하는 로직을 추가해 보안을 강화.② 관련 DTO 3종(SendPasswordResetCodeRequest, PasswordResetRequest, PasswordResetTokenResponse)과 PasswordResetContr..
인메모리 캐시 개념 메모리 내 캐시(In-memory Cache)외부 캐시 없이 앱 메모리 쓰는 캐시의 개념과 동작 방식인메모리 캐시는 지금 돌아가는 앱의 메모리 공간을 그냥 데이터 저장소로 쓰는 방식.인증 코드처럼 빨리 사라지고(Time-sensitive), 사라져도 상관없고(Non-durable), 읽고 쓰는 속도가 엄청 빨라야 하는 데이터에 적합함.이메일인증에서 이게 왜 필요한가?이메일 인증은 사용자가 요청하면 코드를 생성하고, 짧은 시간 내에 이 코드를 검증하는 과정임. 이 작업은 속도가 중요한데 매번 DB를 조회하는 건 비효율적. 인메모리 캐시를 쓰면 더 빠르고 서버 부하도 줄어듬. 유효 시간이 지난 코드는 자동 삭제돼 메모리 누수도 방지됨.구현 절차자료구조 선택 -> 인증코드 저장절차 구현 -> 인증코드 확인절차..
스프링부트 스타터 메일 기능 설명 스프링 부트 스타터 메일(Spring Boot Starter Mail)이메일 전송을 위한 스프링 프레임워크의 도구스프링 부트 스타터 메일은 스프링 프레임워크에서 이메일 보내는 걸 완전 쉽게 만들어주는 도구다. 개발자는 JavaMailSender 빈을 주입받아 send() 메서드만 호출하면 이메일이 발송된다. 핵심 기능① JavaMailSender 빈(Bean) 자동 생성 스프링부트가 application.yml 파일에 있는 spring.mail.* 속성들을 읽어서, 호스트, 포트, 계정 정보, TLS/SSL 옵션 등 모든 설정이 끝난 JavaMailSender 빈을 스프링 컨테이너에 알아서 등록해줌.② MailProperties 바인딩 application.yml의 모든 spring.mail 속성들은 M..
Flutter로컬커머스) 인증메일 발송기능 구현 SMTP 를 통한 인증메일 발송기능신규 회원가입 시 사용할 이메일 인증 코드 발송 및 검증 기능을 구현했다.또한 이 기능을 기존 회원가입 로직과 안전하게 통합했다.이메일 발송 시나리오◎ 등장인물 (기술 요소)계정 담당: MemberAuthService 파일. 고객의 요청을 받아 편지 발송을 결정한다.우편 담당: EmailVerificationService 파일. 계정 담당의 요청을 받아 편지 내용물을 작성하고 발송을 준비한다.배달부: JavaMailSender 객체. 우편 담당이 준비한 편지를 받아 외부 우체국으로 배달한다.배달 매뉴얼: application.yml의 spring.mail 설정. 우체국에 방문할 때 필요한 우체국 주소와 출입증구글 우체국: Gmail 의 SMTP 서버. 편지를 안전하게 받..
로컬 커머스) 준비작업1 현존하는 중고거래앱의 기본기능을 구현하고 차별화 지점을 만든다 ◆ 역할분담 1 회원가입 로그인 (1명) (약관? 동의) -> 동의여부 테이블 저장 회원가입시 현재위치로 위치정보 인증 및 저장 2 동네 인증 위치기반 (2명이 같이) 몇키로 반경 api.. 자기 위치를 저장할 수 있게 현재 위치/ 즐찾 위치 3 중고거래 게시판 (1명)상품을 등록하면 위치정보 기록 비회원도 전체/상세 조회 가능 5 커뮤니티 (1명)댓글 좋아요 + 위치정보 비회원도 전체/상세 조회 가능 6 거래관리 판매상태 (거래테이블의 status 칼럼) 4 채팅 (1명)소켓 4-2 알림 SSE 5 뷰(1명) 테이블명_tb pk : id jwt 사용 h2 콘솔 create ◆ 내가 맡게된 부분 백엔드의 회원가입, 로그인, 인증, 예..