프로젝트 12

이메일 인증 기능 @Async 비동기 처리

✔️ 이메일 전송 기능에서 비동기를 도입하였다.이메일 전송 로직에서 JavaMailSender를 이용하고 있는데, 메일 지연 전송 시간이 많이 든다는 단점이 있다.아래 내용과 같이 대략 9.65s가 소요된다. ✔️  이메일을 보내는 과정 자체를 쓰레드가 기다리는 것이 아니라 요청을 보내고 쓰레드는 다른 작업을 수행하도록 변경하였다.✔️ AsyncConfig@Configuration@EnableAsyncpublic class AsyncConfig implements AsyncConfigurer { @Override @Bean(name = "mailExecutor") public Executor getAsyncExecutor() { ThreadPoolTaskExecutor exe..

PlantUML을 이용하여 시퀀스/클래스 다이어그램 설계

현재 Auth 도메인을 맡고 있다.Auth 도메인에서 전반적인 API 명세서는 다음과 같다.1. 토큰 재발급2. 회원탈퇴3. 로그아웃4. 회원가입/로그인 이 프로젝트 또한 PlantUML을 이용하여 시퀀스 다이어그램과 클래스 다이어그램을 그려보았다.토큰 시퀀스 다이어그램/클래스 다이어그램   회원탈퇴 (시퀀스 다이어그램/클래스 다이어그램) 로그아웃 (시퀀스 다이어그램/클래스 다이어그램) 회원가입/로그인

PlantUML을 이용하여 시퀀스 다이어그램 설계 (1)

현재 Spring Webflux를 이용하여 간단한 채팅 서버를 구현하고 있다. 주 기능은 다음과 같다.1. 사용자가 채팅 요청을 보내면 사용자가 들어간 채팅방의 모든 사용자에게 채팅을 보낸다.2. 모든 사용자에게 푸시 알림을 보낸다. (비동기적으로 소요시간이 0.5s가 되는 푸시 알림 서버에 Request를 보내고,Response를 Client에게 보낸다.) 클라이언트의 비지니스 로직은 다음과 같다.비즈니스 로직- payload 로 넘어온 채팅방 PK가 정말 있는 채팅방인지와 사용자가 채팅방에 들어가있는지 확인- 해당 채팅방에 채팅 레코드 추가- 해당 채팅방에 있는 사용자 모두 조회- 조회된 사용자들의 device 에 모두 push 요청- push 요청 보내기 시작하면서부터 모든 사용자의 device 에..

[프로젝트] 스프링 시큐리티를 이용한 소셜로그인 및 JWT 구현하기 - (1)

[참고 글 및 코드] https://velog.io/@tmdgh0221/Spring-Security-%EC%99%80-OAuth-2.0-%EC%99%80-JWT-%EC%9D%98-%EC%BD%9C%EB%9D%BC%EB%B3%B4 Spring Security 와 OAuth 2.0 와 JWT 의 콜라보 Spring Boot, Spring Security, OAuth 2.0, JWT 와의 치열한 싸움 기록 velog.io https://deeplify.dev/back-end/spring/oauth2-social-login [Spring Boot] OAuth2 소셜 로그인 가이드 (구글, 페이스북, 네이버, 카카오) 스프링부트를 이용하여 구글, 페이스북, 네이버, 카카오 OAuth2 로그인 구현하는 방법에 대해..

프로젝트/Moamoa 2022.07.28

개발일지 (2) - 페이징 처리하기 & 제목으로 검색하기

현재 데브싱크(DevThink) 서비스를 구축하고 있다. 데브싱크는 개발자들이 사용하는 성장형 커뮤니티 앱이다. 자세한 내용은 아래 링크를 통해 확인할 수 있다! https://devthink.notion.site/devthink/185af3c83f4743f292067f206bc95acf 안녕하세요, '데브싱크' 팀 입니다 데브싱크(DevThink) 팀을 소개합니다! devthink.notion.site 데브싱크 서비스에 기본적인 게시글 기능이 필요하다. 그래서 내가 짠 전체적인 POST API에 대해 소개 하려고 한다. 일단 Controller의 개념에 대해 소개하려고 한다. Controller는 사용자의 요청이 진입하는 지점(entry point)이며, 요청에 따라 어떤 처리를 할지 결정해주며 실질적..

개발일지 - (1) 전체적인 구조와 도메인

현재 데브싱크(DevThink) 서비스를 구축하고 있다. 데브싱크는 개발자들이 사용하는 성장형 커뮤니티 앱이다. 자세한 내용은 아래 링크를 통해 확인할 수 있다! https://devthink.notion.site/devthink/185af3c83f4743f292067f206bc95acf 안녕하세요, '데브싱크' 팀 입니다 데브싱크(DevThink) 팀을 소개합니다! devthink.notion.site 현재 백엔드 개발자로 참여중인 나는, POST(커뮤니티 글 쓰기 부분)을 담당하고 있다. 스프링 부트/JPA를 통해 앱 개발 프로젝트를 진행하고 있는데, 전체적인 구조는 다음과 같다. JPA에서 Dto랑 Entity의 개념이 들어가는데, Entity 클래스란 JPA에서 실제 데이터베이스의 테이블과 매칭되..