본문 바로가기

기록해보기35

E-mail인증 처리2 다음으로 Service 인터페이스와 구현 클래스를 작성해 보겠습니다. package com.project.user.service.email; import com.project.user.dao.EmailVerificationMapper; import com.project.user.dto.EmailVerificationDto; import lombok.RequiredArgsConstructor; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; import java.time.Local.. 2023. 9. 8.
E-mail인증 처리 프로젝트에 적용할 이메일인증처리 관련 로직을 구현해 보려고합니다. 먼저 구현하려는 요구사항을 아래와 같습니다. 이메일 인증 코드를 생성하고 해당 코드를 사용자 이메일로 전송. 사용자는 이메일에 있는 코드를 입력하여 사용자의 이메일을 인증. 코드는 일정 시간 후에 만료. 프로젝트 환경은 아래와 같습니다. IntelliJ Ultimate Java11 Spring Boot 2.7.14 Gradle MyBatsi MariaDB 먼저 E-mail 인증관련 의존성을 "build.gradle"에 추가합니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-mail' } 그리고 application.yml에 mail관련 서비스를 처.. 2023. 9. 8.
MQTT를 사용한 프로젝트 진행해보기 2 다음으로 센서 데이터를 전송하기 위해 데이터를 생성하는 로직을 만들어보려고 한다. 모의 프로젝트라 센서 데이터를 생성 할 수가 없어서 가상의 센서 데이터를 생성하는 로직을 추가하는 방법을 택했다. 이렇게 생성된 가상의 센서데이터는 MQTT브로커로 전송이 된다. 특정 간격으로 온도 데이터를 생성하고 브로커로 전송하는 기능을 가지게 했다. @Service public class MqttPublisher { @Autowired private MqttClient mqttClient; private int temperature = 0; // 초기 온도 설정 // 클라이언트의 요청에 따라 온도를 증가시키는 메서드 public void startTemperatureIncrease() { try { temperatur.. 2023. 8. 28.
MQTT를 사용한 프로젝트 진행해보기 1 MQTT를 현재 진행중인 프로젝트에 적용시켜보려고한다. 먼저 Homebrew에서 mosquitto를 설치를 한다. https://formulae.brew.sh/formula/mosquitto mosquitto Homebrew’s package index formulae.brew.sh Homebrew가 있다면 간편하게 설치가 가능하다. brew install mosquitto 다음으로 MQTT가 정상작동하는지 확인해 보았다. mosquitto 이미 1883port를 사용중이라 하니 1883포트를 사용중인 프로세스를 먼저 찾아보겠다. 이미 사용중인데.. 그냥 Mosquitto서비스를 재시작해보겠다.. 아놔.. 포트를 바꾸고해보겠다.. 문제를 해결했다. 하나의 터미널에서 사용하려고 한 것이 문제였다.ㅠㅠ.. .. 2023. 8. 28.
메서드 분리와 DRY의 원칙 진행중인 프로젝트의 코드를 가다듬으면서 메서드의 분리와 DRY의 원칙에 대해서 생각을 해 보았다. 먼저 기존에 내가 작성했던 코드는 아래와 같다. 기능은 사용자의 회원가입에 대한 코드이다. 아래의 코드는 하나의 메서드 안에서 사용자 정보 검증, 반려동물 정보 조회, 토큰 생성 등을 모두 수행한다. 하나의 메서드안에 모두 집어 넣다 보니 메서드 자체가 굉장히 길어지고 복잡해져 가독성과 유지보수성이 매우 떨어지게 설계되어있다. @Override @Transactional public SignInResponseDto authenticateUser(String userEmail, String userPassword) { //사용자 정보 조회 UserDto userDto = userMapper.findByEmai.. 2023. 8. 27.
Follow 기능 구현 프로젝트를 진행중 Follow기능을 구현하기로해 공부한 내용을 적어본다. 사용한 기술 Java 11 MyBatis Spring Frame work 2.7.14 MariaDB IntelliJ Ultimate 나는 Backend 담당이여서 Back에 대한 코드밖에 제공하지 못한다..틈나는대로 적은거라 테스트는 PostMan으로 진행할 것이다. 요구사항 회원의 Follow 기능 구현 팔로우 관계를 나타내는 테이블을 만들고., 팔로우 및 언팔로우 기능을 제공하는 API를 설계 팔로워 및 팔로잉 조회 특정 사용자의 팔로워와 팔로잉 목록을 조회하는 API를 제공 FK없이 테이블 설계 Foreign Key를 사용하지 않고 테이블 간의 관계를 관리 먼저 팔로우 테이블 설계를 한다. CREATE TABLE follows.. 2023. 8. 24.
DB설계시 제공식별자, 시스템 생성 식별자의 장단점 1.사용자 제공 식별자 (예: 이메일 또는 사용자 이름) 장점: 사용자가 기억하기 쉽고, 로그인 시스템 등에서 자연스럽게 사용할 수 있다. 단점: 변경될 수 있으므로, 사용자가 이메일 주소나 사용자 이름을 변경하면 연결된 모든 정보를 업데이트해야 할 수도 있다. 또한 보안 문제로 예를 들어, 사용자 이메일이 공개적으로 알려져 있으면 스패밍 또는 사기에 이용될 수 있다. 2.시스템 생성 식별자 (예: 자동 증가 ID, UUID) 장점: 이 식별자는 시스템에 의해 제어되므로 변경되지 않는다. 이를 통해 데이터 일관성을 유지하고 보안 문제를 방지할 수 있다. 단점: 사용자가 기억하기 어렵다. 따라서 사용자 인터페이스에서는 이 식별자를 직접 사용하기보다는 사용자 제공 식별자를 사용하는 것이 일반적. 나는 개발자.. 2023. 8. 6.
하루종일 만들어본 첫 게시판🥲 구현 기능 - 회원 가입 회원 조회 회원 목록 회원 session 조회 및 삭제 회원 삭제 회원 정보 조회 (일 대 일) 회원 정보 수정 개발 환경 및 의존성 Open JDK Java 11 IntelliJ IDEA Community MySQL 8.0.33 Spring Boot 2.7.13 Spring Data JPA Thymeleaf Lombok Gradel 느낀점 거의 따라 치는 코딩 급이였지만 여지껏 학원에서 JSP를 활용해서 스프링을 사용해오다 오늘 처음으로 Spirng Boot와 사용해보고 싶던 여러가지 기술 JPA, Thymeleaf, Lombok 등등을 사용해 볼수 있어서 좋았다. 많은 기술들이 들어 간것은 아니였지만 여러 오류들도 접하고 JSP에서 사용하지 못했던 기술이나 오늘 각종 라이브러.. 2023. 7. 10.
스프링프레임워크를 이용한 순수자바 프로젝트 해보기 프로젝트 생성 비지니스 요구사항과 설계 회원 도메인 설계 회원 도메인 개발 회원 도메인 실행과 테스트 주문과 할인 도메인 설계 주문과 할인 도메인 개발 주문과 할인 도메인 실행과 테스트 프로젝트 생성 사전 준비물 Java 11설치 IDE:InteliJ 또는 Eclipse 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project : Gradle Project Spring Boot : 2.3.x Language : Java Packaging : Jar Java : 11 Project Metadata groupId : hello artifactId : core Dependencies 선택하지 않음 비지니스 요구사항과 설계 회원 회원을 가.. 2023. 7. 4.