본문 바로가기

전체 글42

Parameter 0 of constructor in controller required a bean of type service that could not be found. Parameter 0 of constructor in controller required a bean of type service that could not be found. Controller에서 Test를 진행하는 도중 사진과 같은 에러가 발생했다. 해당 Controller에 생성자의 매개변수를 찾을 수 없다고 나오면서 Service의 Bean이 필요하다는 에러 문구인데 Controller와 Service에 어노테이션을 등록을 했는데 왜 에러가 발생하는지 발견하지 못 했다. 분명 테스트가 성공된 것을 눈으로 직접 확인했던 것을 기억하고 있었고, 테스트 부분 말고 서버를 띄어서 직접 url을 실행해보니 정상적으로 실행이 되었다. 테스트는 계속 실패하기 때문에 전반적으로 에러난 부분에 대해 조금 자세하게.. 2023. 5. 1.
Spring boot 이메일 인증 코드 보내기 설정 및 기능 구현(구글) 대체로 회원가입 과정 중 이메일 인증번호를 발송해서 인증번호를 작성하거나 또는 특정 URL 링크를 발송해서 해당 링크를 클릭하면 이메일 인증과 함께 회원가입 완료를 진행한다. 예전에 구글 이메일 인증을 했을 때는 발송이 잘 되었는데 최근 이메일 발송이 안되는 문제점이 생기게 되었다. 보안 수준이 낮은 앱의 액세스를 통해 smtp를 사용하도록 했지만 2022년 5월 30일부터 더 이상 지원하지 않는 다는 내용을 찾게 되었다. 다른 이메일을 설정해서 사용하면 되지만 기존에 사용하던 구글 이메일을 계속 유지하고자 블로그를 작성하게 되었다. 1. SMTP 계정 설정 먼저 구글 계정에서 보안을 선택하고 2단계 인증 사용으로 활성화 후 앱 비밀번호를 설정을 선택한다. 앱 비밀번호를 설정할 때 메일 / Windows.. 2022. 12. 15.
[MySQL]양방향 암호화 알고리즘 DB 함수 사용법 # 암호화 # aes_encrypt(); # 복호화 # aes_decrypt(); # MySQL HEX(AES_ENCRYPT('문자열', '암호화 키')); # 예시 # aes_encrypt 암호화 insert into 테이블명 values (hex(aes_encrypt('문자열', '암호화 키'))); # aes_decrypt 복호화 select aes_decrypt(unhex(필드명), '암호화 키') from 테이블명; # hex를 쓰는 이유는 2진법을 16진수로 표현하기 위해서 사용된다. # unhex를 쓰는 이유는 16진수를 2진법으로 표현하기 위해서 사용된다. 테스트용 테이블로 컬럼은 id, name, phone 이렇게 3개로 지정했다. 연락처만 암호화를 위해 암호화 함수를 활용해 연락처 값을.. 2022. 11. 22.
양방향 암호화 알고리즘의 개념과 종류 양방향 암호화 (Two way Encryption) 암호문을 통해 암호화된 평문(Plain Text)을 복호화할 수 있는 경우 양방향 암호화라 볼 수 있다. (단방향 암호화의 경우 복호화를 할 수 없다는 특징이 있다.) 암/복호화 시 Key가 존재하며, 같은 키를 사용할 때는 대칭키 암호화, 다른 키를 사용할 때는 비대칭키 암호화라 한다. Qustion. 단방향 암호화(One way Encryption)의 경우 복호화 할 수 없다? 단방향 암호화 기법으로 Hash 함수 알고리즘을 통해 암호화를 한다. 문득 해당 알고리즘을 파악하여 유추할 수 있는 경우 복호화를 할 수 있을까 의문이 들게 되었다. 물론 이전에 사용되던 Hash 함수 알고리즘은 복호화가 되는 문제와 취약점의 문제가 발생되었다. 그렇기 때문에.. 2022. 11. 21.
Cause: class lombok.javac.apt.LombokProcessor 오류: > Task :compileJava FAILED Execution failed for task ':compileJava'. > java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x56fdae13) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x56fdae13 * Try: > Run w.. 2022. 11. 19.
[MySQL] Schema + Table 생성 MySQL Workbench로 Schema + Table을 생성한다. Schema 생성 Name: 사용할 스키마(데이터베이스) 이름을 입력한다. Charset/Collation: 다양한 인코딩을 지원하는데, utf8 / Default Collation으로 상관없다. 하지만 🙂😛 등의 이모지(Emoji)를 DB에 적용하려면 사진과 같이 utf8mb4 / utf8mb4_bin로 설정한다. 설정이 완료되었으면 Apply를 누른다. CREATE SCHEMA `test_example` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin ; Apply SQL Script to Database 창이 나타나는데, DDL이 이상 없는지 확인 후 Apply를 누른다. SQL Scrip.. 2022. 11. 18.
[국비] JDBC 내용정리 Day01 JDBC (Java Data Base Connectivity) 자바와 데이터베이스를 접속하기 위해서 만들어진 자바API이다. (자바와 DB를 연결해주는 통로 역할이라 보면 된다.) Java의 문법은 데이터베이스가 읽을 수 없고, 데이터베이스의 문법은 Java가 읽을 수 없다. 하지만, JDBC Template의 라이브러리를 이용해서 자바 언어로 데이터베이스를 사용할 수 있다. Insert import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Scanner; public class JDBCInsert { pub.. 2021. 12. 15.
[국비] SQL 내용정리 Day07 PL/SQL 오라클에서 제공하는 SQL 프로그래밍 기능이다. 일반적으로 프로그래밍과 차이가 있지만, 오라클 내부에서 적절한 처리를 위해서 적용해 줄 수 있는 절차지향적 코드 작성 방식이다. 쿼리문의 집합으로 어떠한 동작을 일괄처리 하기 위한 용도로 사용한다. SET SERVEROUTPUT ON; -- 출력문 활성화 DECLARE -- 변수를 선언하는 구간(선언부) emp_num NUMBER; BEGIN -- 대입/출력문/기타등등 코드를 실행하는 시작구간(실행부) emp_num := 10; dbms_output.put_line(emp_num); -- 출력문 dbms_output.put_line('hello PL/SQL'); -- [EXCEPTION] 옵션 END; -- PL/SQL이 끝나는 구간(종료) -.. 2021. 12. 14.
[국비] SQL 내용정리 Day06 Modeling Quiz 영화 예매 사이트는 회원제로 관리되고 있으나 비회원인 경우에도 예매가 가능하다. 회원 가입을 위해서는 이름, 주민번호, 전화번호, 이메일, 회원 아이디, 비밀번호와 같은 기본적인 정보를 입력해야 한다. 여러 지점에 있는 극장에 대해서 영화를 예매할 수 있다. 예매가 순조롭게 이루어지려면 각 극장 지점명과 위치가 관리되어야 한다. 극장은 여러 개의 상영관이 있으며 각각의 상영관에서는 여러 종류의 영화가 상영된다. 영화표에는 해당 상영관의 좌석이 정해져서 기록되어 있다. 영화표를 예매할 때 고객들은 원하는 좌석을 지정할 수 있으며 예매일자와 예매 수량이 기록된다. 결제방법은 카드결제나 계좌이체 방법이 있다. 영화표를 예매할 때 회원의 경우에 한해서 포인트 점수가 적립된다. 예매한 영.. 2021. 12. 13.