Gmail STMP로 인증번호를 자동으로 발송하는 기능을 구현하고 싶었는데 메일 발송 시점에서 계속 오류가 났다. 찾아보는데도 생소하고 시간이 많이 걸렸었는데 다른 사람에게 도움이 될까하고 정리해본다. pom.xml // email // https://mvnrepository.com/artifact/javax.mail/mail javax.mail mail 1.4.7 // https://mvnrepository.com/artifact/org.springframework/spring-context-support org.springframework spring-context-support 5.3.9 org.springframework spring-webmvc ${org.springframework-versio..
HTTP 404 - 찾을 수 없음 요청된 리소스 [/]은(는) 가용하지 않습니다. Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다. 서버 연결 시 오류가 나면 자주 볼 수 있는 오류이다. 해당 오류를 많이 봐서 도가 텄다고 생각하고 알고 있던 방법과 검색한 걸 총동원 해보았지만 울고 싶을 정도로 해결이 안됐다. 일반적으로는 아래 포스트의 방법으로 대부분 해결이 된다. https://october-east-sea.tistory.com/160 [에러]Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지 1.Server Modules탭에서 /path 바꿔도 안 될 때 ht..
REVOKE 권한을 회수한다. 해당 실습을 위해 sys 사용자로 접속해보자. 앞에서 만든 demo 사용자의 테이블 생성 권한을 회수한다. REVOKE create table FROM demo; 다시 demo 사용자로 접속 후 다른 테이블을 생성하려고 하면 해당 권한이 없다고 뜬다. 현재 demo 사용자인데 hr 소유의 employees 테이블의 조작을 요청하면 오류가 난다! demo가 가진 권한에서는 employees 테이블을 조작할 권한이 없다는 뜻 hr이 demo에게 employees 테이블의 select, update 권한을 부여한다. demo 사용자에 employees 테이블의 업데이트 권한을 회수해서 업데이트가 안되는 상황(권한 부족 오류) Object 권한 회수 REVOKEselect ONem..
SQL 구문 - DQL 데이터질의어 : select - DML 데이터조작어 : insert, update, delete (merge) - DDL 데이터정의어 : create, alter, drop, truncate - DCL 데이터제어어 : grant, revoke GRANT 권한을 부여한다. create user 권한을 가진 소유자가 DB에 hr같은 User를 생성할 수 있다. User 생성 시 유저명과 패스워드명을 기본으로 적절한 권한을 부여해주어야 한다. 평상 시에는 hr 사용자로만 이용했었는데 권한 부여 실습을 하기 위해 sys 사용자로 권한을 바꾼다(hr에는 권한부여 권한이 없기 때문) conn sys/oracle as sysdba demo라는 유저를 만들어본다. 편의상 비밀번호도 demo로 지..
jstl에서 조건에 따른 분기를 처리할 수 있는 태그 , 1. 태그 test 속성내의 EL 의 결과가 참이면 실행됩니다. else 구문은 없습니다. 위의 코드는 변수 name의 값이 "홍길동" 이면 출력합니다. 태그에 사용될 수 있는 속성은 다음 세 가지 입니다. - test : 필수 속성으로 속성값으로 EL 비교식을 가집니다. - var : 조건 결과를 저장할 변수를 지정합니다. - scope : 조건 결과를 저장할 변수의 저장 scope을 지정합니다. 위 코드는 test 속성의 결과를 nameHong 변수 이름으로 session 영역에 저장합니다. 동일 세션의 다른 페이지에서 결과를 찾을 수 있습니다. 2. test 속성에 사용될 비교 연산자 * eq(==) : 문자열 또는 숫자가 같으면 참, nul..
오류노트까지는 아니지만 오류노트에 있던 걸 바탕으로 편하게 쓸 수있는 방법을 알았기 때문에 같은 카테고리에 넣었다. 이전에 작성한 스네이크 표기법을 카멜케이스 표기법으로 자동 변환하는 세팅하는 포스트에서 이어진다. https://kijuk.tistory.com/155 [Spring] insert는 되는데 select 안될 때 로그인 구현하면서 select로 로그인이 안되는 상황에 발생했다. 개발초기라 DB와 연결이 안된 줄 알았는데 회원가입할 때 쓰이는 insert 구문은 제대로 돼서 select의 문제인가 하고 있었다. 로그를 kijuk.tistory.com 카멜케이스 자동 세팅 자체는 좋은데 DB 컬럼명을 일일이 바꾸려니 오타도 나고 값이 많아 좀 더 쉽게 할 수 있는 방법이 없을까 찾아봤다. [ H..
로그인 구현하면서 select로 로그인이 안되는 상황에 발생했다. 개발초기라 DB와 연결이 안된 줄 알았는데 회원가입할 때 쓰이는 insert 구문은 제대로 돼서 select의 문제인가 하고 있었다. 로그를 출력하면 로그인 메서드를 실행까지는 하지만 정작 값을 가져오면 null이 나와서 쿼리문을 조작해봤다. 로그인을 실행하는 userCheck 쿼리문 SELECT * FROM USER_INFO WHERE USER_ID= #{userId} AND USER_PASS= #{userPass} 해당 쿼리문에 컬럼 alias를 DTO 값으로 바꾸니 들어간다! SELECT USER_ID as userId FROM USER_INFO WHERE USER_ID= #{userId} AND USER_PASS= #{userPas..
Controller에서 예외처리 스프링에서 예외를 처리하기위해 아래 3가지 방법이 있다. 컨트롤러 메서드 내에서 try-catch로 처리 컨트롤러에 @ExceptionHandler메서드가 처리 @ControllerAdvice클래스의 @ExceptionHandler메서드가 처리 예외를 처리하게되면 클라이언트에게 보여줄 View를 지정해야하는데 그 방식에는 크게 2가지 방법이 있다. 응답 상태 코드별로 뷰 지정: error-page 예외 종 류별로 뷰 지정: SimpleMappingExceptionResolver Controller에서 예외처리 어노테이션 종류 스프링프레임워크에서 예외처리 할 때 사용되는 어노테이션에는 3가지가 있다. @ExceptionHandler 특정 controller만 예외처리할때 사..