Java/Spring
-
MyBatis 를 사용할 때 데이터를 사용하는 대입과 치환 방법 2가지가 있다. #{} 방법 //Model public class VOModel { String name; ...getter, setter 생략 } SELECT * FROM test_table WHERE name = #{name} 위와 같이 #{name} 을 사용하게 되면 아래와 같이 치환된다. name 의 값이 abc 라고 하면 아래와 같다. SELECT * FROM test_table WHERE name = 'abc' #{} 으로 사용하게 되면 변수에 작은 따옴표(')가 자동으로 붙여 쿼리가 수행되기 때문에 작은따옴표를 따로 붙일 필요가 없다. 좀더 깊이 들어가자면 #{} 를 사용하게 되면 처음 쿼리는 아래와 같다. SELECT * FR..
[MyBatis] #{} 와 ${} 의 차이MyBatis 를 사용할 때 데이터를 사용하는 대입과 치환 방법 2가지가 있다. #{} 방법 //Model public class VOModel { String name; ...getter, setter 생략 } SELECT * FROM test_table WHERE name = #{name} 위와 같이 #{name} 을 사용하게 되면 아래와 같이 치환된다. name 의 값이 abc 라고 하면 아래와 같다. SELECT * FROM test_table WHERE name = 'abc' #{} 으로 사용하게 되면 변수에 작은 따옴표(')가 자동으로 붙여 쿼리가 수행되기 때문에 작은따옴표를 따로 붙일 필요가 없다. 좀더 깊이 들어가자면 #{} 를 사용하게 되면 처음 쿼리는 아래와 같다. SELECT * FR..
2022.12.14 -
Statement 자바에서 정적 쿼리문을 수행할 때 java.sql 패키지에 있는 Statement 인터페이스를 사용하게 된다. Statement 객체에 Connection 되어 있는 곳에 쿼리문을 수행하고 결과를 반환한다. Statement 는 아래와 같은 동작 순서를 가진다. 1. SQL 쿼리문 분석 2. 쿼리문 컴파일 3. 실행 아래는 예시이다. int seq = 3; String sql_str = "SELECT name FROM test_table WHERE seq = " + se String url = "jdbc:mysql://localhost:3306/DB명"; String username = "DB 계정 ID"; String password = "DB 계정 PW"; Connection con..
[sql] statement 와 preparedStatementStatement 자바에서 정적 쿼리문을 수행할 때 java.sql 패키지에 있는 Statement 인터페이스를 사용하게 된다. Statement 객체에 Connection 되어 있는 곳에 쿼리문을 수행하고 결과를 반환한다. Statement 는 아래와 같은 동작 순서를 가진다. 1. SQL 쿼리문 분석 2. 쿼리문 컴파일 3. 실행 아래는 예시이다. int seq = 3; String sql_str = "SELECT name FROM test_table WHERE seq = " + se String url = "jdbc:mysql://localhost:3306/DB명"; String username = "DB 계정 ID"; String password = "DB 계정 PW"; Connection con..
2022.12.14 -
Java 개발자라면 한번쯤은 봤을 Static 키워드이다. Static 키워드로 선언된 필드, 메소드, 클래스는 프로그램이 실행될 때 생성 및 초기화가 된다. 즉, 프로그램이 시작될 때 메모리에 올라간다. 메모리에 올라가 같은 주소만을 바라보기 때문에 공유할 수 있어 공유해야 하는 필드에 보통 사용한다. Static 키워드는 필드, 메소드, 클래스에 적용할 수 있다. static 필드 public class Obo { public String name = "obo"; } public class Ok { public static final int number = 123; public static String name = "ok"; } public class Test { System.out.println("..
Static 키워드Java 개발자라면 한번쯤은 봤을 Static 키워드이다. Static 키워드로 선언된 필드, 메소드, 클래스는 프로그램이 실행될 때 생성 및 초기화가 된다. 즉, 프로그램이 시작될 때 메모리에 올라간다. 메모리에 올라가 같은 주소만을 바라보기 때문에 공유할 수 있어 공유해야 하는 필드에 보통 사용한다. Static 키워드는 필드, 메소드, 클래스에 적용할 수 있다. static 필드 public class Obo { public String name = "obo"; } public class Ok { public static final int number = 123; public static String name = "ok"; } public class Test { System.out.println("..
2022.12.14 -
Spring Security 에서 권한에 따른 접근 불가한 url 에 대한 handler 설정이다. 본인은 권한 없는 사람의 접근에 따라 특정 화면으로 고정시킬 목적으로 handler 설정을 한다. 1. AccessDeniedHandler 발생 시 보여줄 View 화면 설정 본인은 아래와 같은 경로에 accessDenied.html 파일을 생성했다. 2. AccessDeniedHandler 설정 아래와 같이 security/handler/ 경로에 AuthenticationAccessDeniedHandler 클래스를 생성한다. import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServ..
[Spring Security] AccessDeniedHandler 설정Spring Security 에서 권한에 따른 접근 불가한 url 에 대한 handler 설정이다. 본인은 권한 없는 사람의 접근에 따라 특정 화면으로 고정시킬 목적으로 handler 설정을 한다. 1. AccessDeniedHandler 발생 시 보여줄 View 화면 설정 본인은 아래와 같은 경로에 accessDenied.html 파일을 생성했다. 2. AccessDeniedHandler 설정 아래와 같이 security/handler/ 경로에 AuthenticationAccessDeniedHandler 클래스를 생성한다. import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServ..
2022.12.02 -
Spring Security 에서 로그아웃을 하기 위해선 2가지 방법이 있다. 다른방법이 있을지 모르겠지만본인이 사용했던 방법은 2가지다..logoutUrl("URL") 과 .logoutRequestMatcher() 방법이다. 처음 설정할땐 .logoutUrl 을 사용했었으나 csrf() 설정 여부에 따라 GET 방식, POST 방식 요청이 달라져logoutRequestMatcher() 로 설정했다. 기본적으로 logoutUrl 은 "/logout" 으로 설정되어 있다.아무 설정도 안했을 땐 /logout 으로 요청 시 로그아웃이 된다.여기서 달라지는건 CSRF 활성화 여부이다. 아래는 Spring Security 의 logoutUrl 메서드이다. 먼저 주석내용을 구글번역기에 돌려보면 아래와 같다...
[Spring Security] logout 설정 2가지Spring Security 에서 로그아웃을 하기 위해선 2가지 방법이 있다. 다른방법이 있을지 모르겠지만본인이 사용했던 방법은 2가지다..logoutUrl("URL") 과 .logoutRequestMatcher() 방법이다. 처음 설정할땐 .logoutUrl 을 사용했었으나 csrf() 설정 여부에 따라 GET 방식, POST 방식 요청이 달라져logoutRequestMatcher() 로 설정했다. 기본적으로 logoutUrl 은 "/logout" 으로 설정되어 있다.아무 설정도 안했을 땐 /logout 으로 요청 시 로그아웃이 된다.여기서 달라지는건 CSRF 활성화 여부이다. 아래는 Spring Security 의 logoutUrl 메서드이다. 먼저 주석내용을 구글번역기에 돌려보면 아래와 같다...
2022.11.29 -
출처 : https://12bme.tistory.com/555 출처 : https://roadofdevelopment.tistory.com/56 위 티스토리에 적어놓은 내용을 바탕으로 작성했으며, 좀 더 이해하기 위한 글을 작성합니다. 서블릿 컨테이너는 개발자가 웹서버와 통신하기 위한 복잡한 일들을 할 필요가 없게 해준다. 컨테이너는 Servlet의 생성부터 소멸까지의 일련의 과정을 관리한다. 서블릿 컨테이너는 요청이 들어올때 마다 자바 쓰레드를 생성하여 작업을 한다. 서블릿 컨테이너의 대표적인 예로는 흔히 사용하는 Tomcat 이 있다. 여기서 서블릿이란 동적인 웹페이지를 만들기 위해 사용되는 자바 기반의 웹 프로그래밍 기술이다. 클라이언트의 요청이 있고 요청에 대한 응답 결과를 반환해야 하는데 이러한..
서블릿, 서블릿 컨테이너(WAS)와 스프링 컨테이너출처 : https://12bme.tistory.com/555 출처 : https://roadofdevelopment.tistory.com/56 위 티스토리에 적어놓은 내용을 바탕으로 작성했으며, 좀 더 이해하기 위한 글을 작성합니다. 서블릿 컨테이너는 개발자가 웹서버와 통신하기 위한 복잡한 일들을 할 필요가 없게 해준다. 컨테이너는 Servlet의 생성부터 소멸까지의 일련의 과정을 관리한다. 서블릿 컨테이너는 요청이 들어올때 마다 자바 쓰레드를 생성하여 작업을 한다. 서블릿 컨테이너의 대표적인 예로는 흔히 사용하는 Tomcat 이 있다. 여기서 서블릿이란 동적인 웹페이지를 만들기 위해 사용되는 자바 기반의 웹 프로그래밍 기술이다. 클라이언트의 요청이 있고 요청에 대한 응답 결과를 반환해야 하는데 이러한..
2022.11.28