본문 바로가기

전체 글322

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.
MQTT와 EMQX 프로젝트 진행 중 MQTT와 EMQX를 사용해보라는 과제가 내려왔다. 학원쿼리큘럼중 하나인 MQTT를 사용하는 IoT과정이 있긴한데.. 관련서적을 보니 매우 어려워보였다.. 블루투스니, 센서니뭐니를 데이터를 받아와서 브로커를 통해 관리 어쩌구.. 우선 이번 프로젝트에 적용시켜야하니 남는 시간에 공부하기로 해보았다. 멘토님께서 MQTT를 설명해 주시면서 EMQX에 대해서 사용해보라고 권해주셨는데, 제시해준 과제 안에서 최대한 노력해보려고 한다. 우선 이 둘이 무엇을 해주는지 어떤 기능들이 있는지 한번 살펴보고 시작해보겠다. MQTT(Message Queuin Telemerty Transport) 메세지 큐잉 텔레메트리 전송 프로토콜로 IoT(Internet of Things)디바이스 간의 높은 지연 시간,.. 2023. 8. 28.
Unit TestCode작성해보기(Feat공부해보기) 매일 포스트맨으로만 테스트하고있는 제 자신이 부끄럽기도하고 스프링에 대한 이해도를 조금이나마 좀더 높이고 싶어 테스트코드 작성에 대해서 공부해보았습니다. 가장 기본적이면서도 여지껏 어려워서 못하겠다고 미룬부분을 이번 프로젝트에 힘을 빌어 한번 작성해보려고합니다. 이 글에서는 기존에 만들어둔 비지니스로직중에서 "회원가입"에 대한 테스트 코드만을 작성하면서 공부해보려고 합니다. 먼저 왜 테스크코드를 작성해야하는지는 개발자라면 누구나 잘 아실 부분인것 같습니다. 테스트 코드 작성이 왜 중요한지에 대해서 먼저 공부해 보았습니다. 굳이 검증을 위한 좋은 프로그램이 있는데(귀차니즘..) 왜 테스트 코드를 만들어야 할까라는 생각도 있고, 저처럼 어렵다 생각해서 미루는 사람도 있고.. 여러 귀동냥으로 테스트 코드의 중.. 2023. 8. 28.
메서드 분리와 DRY의 원칙 진행중인 프로젝트의 코드를 가다듬으면서 메서드의 분리와 DRY의 원칙에 대해서 생각을 해 보았다. 먼저 기존에 내가 작성했던 코드는 아래와 같다. 기능은 사용자의 회원가입에 대한 코드이다. 아래의 코드는 하나의 메서드 안에서 사용자 정보 검증, 반려동물 정보 조회, 토큰 생성 등을 모두 수행한다. 하나의 메서드안에 모두 집어 넣다 보니 메서드 자체가 굉장히 길어지고 복잡해져 가독성과 유지보수성이 매우 떨어지게 설계되어있다. @Override @Transactional public SignInResponseDto authenticateUser(String userEmail, String userPassword) { //사용자 정보 조회 UserDto userDto = userMapper.findByEmai.. 2023. 8. 27.
기술글 아닙니다.뻘글 주의 JWT사용해보기 반성과 고찰 주의!!!! 이 글은 JWT기술글이 아닙니다. 이번 협업 프로젝트를 진행하면서 JWT라는 것을 사용해 보고 다시한번 어떤식으로 코드를 작성했는지 되돌아 보는 글입니다. 많이 여쭤봐주시고 많이 비판해주셨으면 감사하겠습니다! https://titlejjk.tistory.com/313 글에서 JWT글을 작성해보긴했는데 글이 올라간 10일부터 지금까지 JWT를 무조건 써봐야해가 아닌 천천히 시간을 두고 하나씩 이해해 보려고 했다. JWT를 왜 쓰고 이해를 해야지 그냥 좋은 기술이다라는 생각으로 접했던 내가 부끄러워 위에 글을 링크에 걸어두었다... 프로젝트전 무조건 신기술이 최고야 하는 나를 반성하면서 내가 써본 JWT를 써내려가보려고 한다.🫣 JSON Web Token 쉽게 말해 JSON으로 이루어진 Web의.. 2023. 8. 25.
Follow기능을 시연하다가 오류를 발견했습니다..중복으로 데이터가 들어가네요...😿 https://titlejjk.tistory.com/317 Follow 기능 구현 프로젝트를 진행중 Follow기능을 구현하기로해 공부한 내용을 적어본다. 사용한 기술 Java 11 MyBatis Spring Frame work 2.7.14 MariaDB IntelliJ Ultimate 나는 Backend 담당이여서 Back에 대한 코드밖에 제공하지 못 titlejjk.tistory.com 오늘 완료된줄 알고 올렸던 Follow기능입니다. 그냥 값이 들어가길래 " 아 돌아가는구나 " 하고 팀원들과 테스트를 돌려보던중에 row에 같은 값이 중복으로 들어가는 설계오류를 발견했습니다. 아래는 기존 데이터가 있는 상황에서 진행한 Postman입니다. 이렇게 되면 완벽한 설정오류이지요.. 어떻게 해결해야할까..D.. 2023. 8. 24.