Spring
-
[Spring] RedirectAttributesSpring 2021. 6. 21. 15:19
RedirectAttributes 폼 형식의 문서를 작성 후, 서버로 보내면(POST 방식) 곧이어 다른 페이지로 리다이렉트 하는데, 이러한 리다이렉트 방식은 GET방식이라 전송에는 적절치 않다. 리다이렉트 특징은 다음과 같은데, spitter 객체를 보내려고 한다 리다이렉트가 발생하면 원래 요청은 끊어지고, 새로운 HTTP GET 요청이 시작된다. 때문에 리다이렉트 실행 이전에 수행된 모델 데이터는 소멸한다. 따라서 리다이렉트로 모델을 전달하는 것은 의미없다. 그러나 GET의 특징을 사용하면 리다이렉트로도 데이터를 전달할 수 있는 방법이 존재한다. 리다이렉트는 HTTP GET 메소드 방식이기때문에 아래 그림 처럼 header에 ? 파라미터를 붙여서 전달한다. 하지만 GET 방식의 특성상 URL에 노출된..
-
[Spring] modelSpring 2021. 6. 8. 15:15
model 객체란? -Controller 에서 생성된 데이터를 담아서 View로 전달할 때 사용하는 객체 -Servlet의 request.setAttribute() 와 유사한 역할 jsp의 경우 request.setAttribute("date", new java.util.Date()); RequestDispatcher dispatcher = request.getRequestDispatcher("url"); dispatcher.forward(request, response); 스프링의 경우 public String home(Model model) { model.addAttribute("date", new java.util.Date()); return "home"; } View에 데이터 전달하기 1.Mode..
-
Maven 이란?Spring 2021. 1. 11. 19:22
Maven 이란 아파치 메이븐은 자바 개발에 있어서 기초적인 부분이다. 또한 가장 많이 사용되는 build management tool 이기도 하다. Maven을 사용하는 이유? 빌드 툴을 사용하지 않고 자바 어플리케이션을 관리하고 빌드 하는 것은 매우 복잡하고 많은 작업을 요구한다. 하지만 메이븐을 사용하면 dependency system 과 빌드에 관련된 프로젝트 라이브러리를 보다 간단하게 유지 할 수 있다. POM.XML 메이븐을 이용하여 프로젝트 생성시 pom.xml 이라는 파일을 찾을수 있다. Project Object Model을 뜻한다고 한다. 4.0.0 org.zerock controller practice war 1.0.0-BUILD-SNAPSHOT : pom.xml 파일의 루트 요소 :..
-
[Spring Security] 스프링시큐리티의 기본 개념과 구조Spring 2020. 12. 1. 16:32
스프링시큐리티(Spring Security)란? 스프링 시큐리티는 스프링 기반의 애플리케이션 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임 워크이다. 즉 인증(Authenticate, 누구인지) 과 인가(Authorize, 어떤것을 할 수 있는지)를 담당하는 프레임워크. 기본용어 -접근 주체 (Principal): 보호된 리소스에 접근하는 대상 -인증(Authentication): 보호된 리소스에 접근한 대상에 대해 누구인지, 애플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정 => 즉 누구인지? -인가(Authorize): 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정(After Authentication, 인증이후) => 즉, 어떤것을 할 수 있는지? -권한..
-
Spring MVC 패턴Spring 2020. 10. 25. 17:06
1. Spring MVC란? Model-View-Controller의 약자이다. Model: 어플리케이션 계층의 정보, 데이터 의미 View: 화면 출력 로직을 담당 Controller: Model과 View의 연결하는 제어 로직을 담당 2.Spring MVC 처리 순서 DispatcherServlet Spring Framework가 제공하는 Servlet 클래스 Spring MVC의 핵심 구성 요소 사용자의 Request 을 관리 Dispatcher가 받은 Request 을 HandlerMapping에게 위임 Spring 에서는 front controller는 DispatcherServlet 이라고 하고 Controller는 handler 라고 말함 HandlerMapping requestUR과 Con..
-
Spring에 커넥션풀(Connection Pool) 등록 - HikariCPSpring 2020. 10. 24. 14:26
커넥션풀 이란? 위의 그림처럼 풀(Pool) 속에 데이터 베이스와의 연결들을 미리 만들어 두고 데이터베이스에 접근시 풀에 남아있는 커넥션중 하나를 받아와서 사용한뒤 반환 하는 기법 웹 애플리케이션의 경우 다수의 사용자가 데이터 베이스에 접근해야 하는 상황이 생겼을때 사용자들이 요청할때마다 연결을 만들고 해제하는 과정을 진행하면 비효율적이다. 따라서 커넥션풀을 이용하여 미리 여러 연결을 만들어놓고 필요한 사용자가 요청시 미리 만들어 놓은 연결을 주는 형식인 커넥션 풀이 더욱 효과적임 xml을 통해 빈을 등록할때는 아래의 코드를 사용하면 된다 root-context.xml에 등록 1 2 3 4 5 6 7 8 9 10 11 12 13 Colored by Color Scripter cs 그러면 스프링에 appl..
-
[Spring] 스프링 어노테이션 종류Spring 2020. 10. 17. 14:54
어노테이션 이란? Annotation은 Java5부터 새롭게 추가된 문법요소 이며, 사전적으로는 "주석" 이라는 의미를 가지고 있고, 의미대로 자바 코드에 주석처럼 달아 특수한 의미를 부여해준다. 이 특별한 의미는 컴파일 타임 또는 런타임에 해석된다. 아래와 같이 클래스 내부 또는 클래스 바로위에 '@'와 함께 시작하는 것이 어노테이션이다. 이는 자바, Spring 이 제공해주는 것도 있고, 사용자가 직접 만들수도 있다. 어노테이션 용도 -Override 어노테이션처럼 컴파일러를 위한 정보를 제공하기 위한 용도 -스프링 프레임워크의 @Controller 어노테이션처럼 런타임에 리플렉션을 이용하여 특수한 기능을 추가하기 위함 -컴파일 과정에 어노테이션 정보로 부터 코드를 생성하기 위함 어노테이션 종류 어노..
-
MyBatis란?Spring 2020. 9. 28. 17:33
MyBatis란? 객체지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할수 있게 도와주는 개발 프레임 워크로서 JDBC를 통해 데이터 베이스에 엑세스 하는 작업을 캡슐화 하고 , 일반 SQL쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거함. Mybatis에서는 프로그램에 있는 SQL 쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리 할수 있는 장점을 가지고 있다. MyBatis 특징 복잡한 쿼리나 다이나믹한 쿼리에 강하다! 반대로 비슷한 쿼리는 남발하게 되는것이 단점! 프로그램 코드와 SQL 쿼리의 분리로 코드의 간결성 및 유지보수성 향상 resultType, resultClass등 Vo를 사용하지 않고 조회결과를 사용자 정..
-
의존성 주입 테스트Spring 2020. 9. 18. 13:34
예제로 구성할 내용은 레스토랑 객체를 만들고 레스토랑에서 일하는 셰프 객체를 주입하는 예제를 작성 스프링에서의 의존성 주입 구현 -생성자를 이용한 주입 -setter메서드를 이용한 주입 1.예제를 작성하기 위해서 pom.xml에 추가하거나 혹은 변경할 라이브러리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 org.projectlombok lombok 1.18.12 provided org.springframework spring-test ${org.springframework-version} log4j log4j 1.2.17 cs 예제 클래스 생성 org.zerock.sample 패키지의 Restaurant 클래스와 Chef 클래스 생성하기 1 2 3 4 5 6 7 8 9 10 11 1..
-
Spring Framework의 구성요소와 동작 원리Spring 2020. 9. 17. 21:19
POJO 스프링의 특징을 살펴보면 POJO라는 단어가 등장한다. POJO란 Plain Old Java Object로 직역하자면 평범한 옛날 자바 객체이다 Spring Framework의 장점 기존 Servlet 클래스를 이용해서 자바 웹 어플리케이션을 구축하려면 반드시 Servlet 에서 요구하는 규칙에 맞게 클래스를 실행해야 했지만 스프링을 통해서라면 일반적인 자바 객체로 웹 어플리케이션을 구축할 수 있으며 비즈니스 로직에 집 중할 수 있게 되는것이다. 스프링에서 Servlet은 모두 추상화 되어 라이브러리로 들어가 있으며 개발자는 XML또는 다른 설정을 통해서 Servlet을 이용할 수 있게 된다. 스프링 컨테이너의 종류 (*컨테이너란? 컨테이너는 특정 객체의 생성과 관리를 담당하며 객체 운용에 필요..