Dev15 [Spring] Gmail SMTP를 활용한 이메일 인증 기능 개발 with Redis 안녕하세요. 프로젝트를 진행하는 과정에서 사용자가 회원가입을 위해 입력한 이메일이 실제 사용자의 이메일인지 확인할 수 없다는 문제가 발생했습니다. 따라서 사용자가 입력한 이메일이 정말 본인 이메일인지 검증하는 기능을 개발하게 됐습니다. 기존에는 사용자가 임의의 문자열을 입력해도 가입할 수 있었다면, 이제부터는 이메일로 발송된 인증코드를 입력해야만 가입할 수 있습니다. 이메일 발송 솔루션을 통해 기능을 구현하는 방법이 일반적이지만, 솔루션 구입에 추가적인 비용이 발생하기 때문에 간편하면서 무료로 사용할 수 있는 웹 메일 기반 이메일 인증 방식을 적용했습니다. 본 포스트에서는 Gmail SMTP를 바탕으로 이메일 인증 기능을 구현했습니다. 1. Flow (1) 이메일 인증 요청 & 인증코드 발송 사용자가 서.. 2024. 4. 14. [Error] Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 안녕하세요. 스프링부트 환경설정 후 처음 실행했을 때 발생한 오류와 해결법을 공유하려고 합니다. 내용***************************APPLICATION FAILED TO START***************************Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following:If you want an embedded database (H2, HSQL or Derby), .. 2023. 11. 25. [Java] N자리 랜덤 숫자+알파벳 대문자 문자열 생성 - Random Class 안녕하세요. 프로젝트를 진행하는 과정에서 숫자+영문 대문자 문자열로 이뤄진 중복되지 않는 무작위 인증코드를 생성하는 기능이 필요해서 개발을 진행하게 되었는데, 기능을 구현하는 과정에서 공부하고 정리한 내용을 공유하면 좋을 것 같아 포스팅하게 되었습니다. 오늘은 자바의 'Random' 클래스를 활용해서 무작위 영문 대문자 문자열을 생성하는 방법과 무작위 숫자 문자열을 생성하는 방법을 배워보고, 최종적으로 무작위 숫자+영문 대문자 문자열을 생성하는 방법을 알아보겠습니다. 무작위 숫자 문자열 생성 import java.util.Random; public class CreateRandomNumberCode { public static void main(String[] args) { Random random = .. 2023. 5. 5. [IntelliJ] IntelliJ(인텔리제이) IDEA Ultimate Version 설치 방법 1. JetBrains 학생 인증 신청 사이트에 접속해줍니다. 2. 신청서 양식에 맞게 내용을 채워주고 아래의 '무료 제품 신청' 버튼을 눌러줍니다. 3. 신청할 때 기입했던 이메일 주소를 확인해서 두번째 사진에 표시된 링크를 클릭해줍니다. 4. 'JetBrains' 제품의 사용에 동의하는지 물어보는데, 끝까지 스크롤을 내려준 후에 'I Accept'를 눌러줍니다. 5. 이후에 회원가입 또는 로그인을 진행하면 이전에 작성한 이메일 주소로 이메일이 전송되는데 확인해줍니다. 6. 전송된 이메일을 통해서 로그인 또는 회원가입을 마무리해줍니다. 7. 이후에 로그인하여 확인해보면 학생 인증이 완료된 것을 알 수 있습니다. IntelliJ IDEA Ultimate을 눌러줍니다. 8. Ultimate 버전에서 'Do.. 2021. 10. 18. [IntelliJ] IntelliJ(인텔리제이) IDEA Community Version 설치 방법 1. IntelliJ IDEA 설치 사이트에 접속합니다. 2. 아래의 'Download' 버튼을 눌러줍니다. 3. Community 버전에서 'Download'를 누르면 감사하다는 말과 함께 다운로드가 시작됩니다. 4. 설치 마법사가 실행되는데 'Next'를 눌러줍니다. 5. 설치할 폴더를 정해주고 'Next'를 눌러줍니다. 6. 아래에 동그라미 표시된 곳들을 모두 체크하고 'Next'를 눌러줍니다. Create Desktop Shorcut : 바탕화면에 바로가기 생성 Update PATH Variable : 윈도우 환경변수에 자동으로 추가 Update Context Menu : '폴더를 프로젝트로 열기' 기능 추가 C.. 2021. 10. 18. [Collection Framework] 자바(Java) LinkedList(연결 리스트)의 사용법 & 예제 정리 코딩 테스트 문제풀이에 자주 사용하는 컬렉션 프레임워크 중 하나인 'Linked List'에 대해 정리해보려고 한다. 개념 LinkedList는 'List' 인터페이스를 구현한 클래스이며 알고리즘 풀이에 자주 사용되는 컬렉션 프레임워크의 일종이다. 각 노드는 '데이터'와 다음 노드를 가리키는 '포인터'로 구성되며, 마지막 노드의 포인터는 'Null'을 가리키게 된다. 이러한 구성 때문에 아래 그림과 같이 각각의 노드들이 연쇄적으로 이어지는 구조를 이루게 된다. 선언 & 생성 import java.util.List // List 라이브러리 import java.util.LinkedList; // LinkedList 라이브러리 List list = new LinkedList(); // List 인터페이스를 .. 2021. 9. 15. [Tomcat] 자바(Java) 웹 애플리케이션을 사용자들에게 서비스해보기 이 포스트는 이전 글 내용을 먼저 학습하고 보면 이해하기 쉽습니다. 1. 이클립스를 상단 메뉴에서 File - Export...를 선택해주자. 2. Web 항목의 WAF file을 선택한 후 Next를 클릭해주자. 3. 톰캣 폴더의 webapps 디렉터리에 'MyApplication.war'라는 파일 이름으로 저장하자. 4. 저장한 war 파일의 경로를 최종 확인하고 Finish를 클릭해서 war 파일을 내보내자. 5. 톰캣_루트_폴더/bin 폴더에서 'Tomcat9.exe'를 실행한다. 6. 톰캣_루트_폴더/webapps 폴더 내에서 (4) 과정을 통해서 내보낸 war 파일의 압축을 풀어주자. 압축을 풀면 'MyApplication' 폴더가 생성되므로 전에 생성한 폴더명과 이름이 같은 폴더가 있다면 미.. 2021. 8. 29. [Tomcat] 톰캣 컨테이너에서 웹 애플리케이션을 만들고 실행해보기(2) 이 포스트는 [Tomcat] 톰캣 컨테이너에서 웹 애플리케이션을 만들고 실행해보기(1) 내용과 이어지지 않습니다. 1. 톰캣_루트_폴더/webapps 디렉토리 내에 'testapp' 폴더를 생성한다.(폴더명은 바꿔도 상관없음) 2. testapp 폴더 내에 'WEB-INF' 폴더를 생성한다. 3. WEB-INF 폴더 내에 'classes', 'lib' 폴더를 각각 생성한다. 4. 톰캣_루트_폴더/webapps/ROOT/WEB-INF 디렉토리로부터 'web.xml' 파일을 복사해서 톰캣_루트_폴더/webapps/testapp/WEB-INF 디렉토리 내에 붙여넣기 해주자. 이번 글에서는 임의의 장소에 위치한 웹 애플리케이션을 'server.xml에 등록해서 실행하는 방법'으로 웹 애플리케이션을 실행해볼 것이.. 2021. 8. 19. [Tomcat] 톰캣 콘솔 로그 한글 깨짐 현상 해결방법 문제점 웹 애플리케이션 실행 테스트를 위해서 톰캣을 실행시키면 로그가 뜨는데 한글이 깨져서 내용을 알 수가 없다. 콘솔의 인코딩 과정에서 문제가 발생해서 그런 것으로 보인다. 해결 방법 1. 톰캣_루트_폴더/conf 디렉토리 내의 'logging.properties' 파일을 열어주자. 2. 붉은색 사각형으로 표시된 부분들을 전부 'EUC-KR'로 바꿔주자 3. 아래와 같이 한글이 안 깨지면 성공 2021. 8. 2. [Tomcat] 톰캣 컨테이너에서 웹 애플리케이션을 만들고 실행해보기(1) 1. 톰캣_루트_폴더/webapps 디렉토리 내에 'testapp' 폴더를 생성한다.(폴더명은 바꿔도 상관없음) 2. testapp 폴더 내에 'WEB-INF' 폴더를 생성한다. 3. WEB-INF 폴더 내에 'classes', 'lib' 폴더를 각각 생성한다. 4. 톰캣_루트_폴더/webapps/ROOT/WEB-INF 디렉토리로부터 'web.xml' 파일을 복사해서 톰캣_루트_폴더/webapps/testapp/WEB-INF 디렉토리 내에 붙여넣기 해주자. 웹 애플리케이션은 자바 애플리케이션과 달리 단독으로 실행되지 못하고 톰캣과 같은 JSP 컨테이너를 통해서만 실행된다. 웹 애플리케이션을 실행하는 방법은 2가지가 있다. 'webapps 디렉토리 내에 웹 애플리케이션을 저장해서 톰캣을 실행하면 톰캣이 웹.. 2021. 8. 2. 이전 1 2 다음