spring 21

Spring Security What is Spring Security? Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications. Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can.. Domain/Spring 2023. 5. 31.
Filter Filter는 J2EE 표준 스펙 기능으로 Dispatcher Servlet에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공합니다. Front Controller인 Dispatcher Servlet의 앞에서 동작합니다. 따라서 Filter는 Spring의 범위 밖에서 동작하고 처리됩니다. Filter는 Spring Bean으로 등록은 되지만 Spring Container가 아닌 톰캣과 같은 Web Container에 의해 관리됩니다. Filter는 FilterChain을 통해 연쇄적으로 동작하도록 할 수 있습니다. Spring에서 Filter를 구현하기 위해서는 javax.servlet.Filter 인터페이스를 구현하여 사용할 수 있습니다. Filt.. Domain/Spring 2023. 1. 28.
[Spring] Logging과 LoggingFramework Logging이란 시스템이 동작할 때, 시스템의 상태 및 동작 정보를 시간 경과에 따라 기록하는 것을 의미합니다. 개발 과정 혹은 개발 후에 발생하는 동작에 대해 트래킹을 하여 예기치 못한 이슈를 진단 및 해결하는데 도움이 됩니다. 하지만 무분별한 로깅은 성능상 이슈를 발생할 수 있기 때문에 의미있는 정보를 적절한 수준으로 수집하는 것이 중요합니다. Java는 System.out.println()을 이용하거나 Logging Framework를 사용하여 로그를 남길 수 있습니다. # System.out.println() # 일명 sout, System.out.println()은 Java를 처음 접할 때부터 사용할 수 있는 간단한 로깅 방법입니다. 가장 편하고 확인하기 좋은 방법이지만 성능에 영향을 많이 주.. Domain/Spring 2022. 9. 2.
[Spring] Web.xml Web Application의 설정을 위한 Deployment Descriptor으로 Web Application이 최초 구동될 때 WEB-INF 디렉토리에 존재하는 web.xml을 읽고, 그에 해당하는 Web Application 설정을 구성합니다. contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 appServlet / Dis.. Domain/Spring 2021. 11. 30.
[Spring] JPA 영속성 컨텍스트 영속성 컨텍스트는 엔티티를 영구 저장하는 환경이라는 의미입니다. 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리합니다. em.persist(object); 이 코드를 단순히 엔티티를 저장한다고 표현했지만 정확히 이야기 하자면 persist()는 엔티티 매니저를 사용해서 데이터를 영속성 컨텍스트에 저장한다는 의미입니다. 영속성 컨텍스트트 엔티티 매니저를 생성할 때 하나 만들어집니다. 그리고 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있고 영속성 컨텍스트를 관리할 수 있습니다. Entity Manager JPA가 제공하는 기능은 크게 엔티티와 테이블을 매핑하는 설계 부분과 매핑한 엔티티를 실제 사용하는 부분으로 나눌 수 있습니다. 엔티티 매니저는 .. Domain/Spring 2021. 11. 18.
[Spring] Context ( RootContext, ServletContext ) Application Context ( Root WebApplication Context ) ContextLoaderListener 클래스에 의해 생성됩니다. Spring에서 IOC Container라고 불리는 존재입니다. ApplicationContext는 root-context.xml, applicationContext.xml의 정보를 바탕으로 생성됩니다. Root라는 이름처럼 최상위 Context입니다. Root Context에 등록된 Bean들은 모든 Context에서 사용할 수 있습니다. 특정 Servlet 설정과 관계 없는 설정을 합니다. Servlet Context을 서브 클래스로 두고 있기 때문에 Servlet Context에 선언된 Bean들은 사용할 수 없습니다. 대표적으로 Servic.. Domain/Spring 2021. 11. 18.
[Spring] JPA (2) 왜 JPA를 사용해야 하는가? JPA는 자바 0RM 기술에 대한 API 표준 명세다. 쉽게 이야기해서 인터페이스를 모아둔 것입니다. 따라서 JPA를 사용하려면 JPA를 구현한 ORM 프레임워크를 선택해야 합니다. Hibernate, EclipseLink, DataNucleus이 있고 보통 Hibernate를 많이 사용합니다. JPA라는 표준 덕분에 특정 구현 기술에 대한 의존도를 줄일 수 있고 다른 구현 기술로 쉽게 이동할 수 있는 장점이 있습니다. 그리고 JPA 표준은 일반적이고 공통적인 기능의 모음이다. 따라서 표준을 먼저 이해하고 필요에 따라 JPA 구현체가 제공하는 고유의 기능을 알아가면 됩니다. 1. 생산성 JPA를 사용하면 다음 코드처럼 자바 컬렉션에 객체를 저장하듯이 JPA에게 저장할 객체를.. Domain/Spring 2021. 9. 28.
[Spring] JPA (1) 등장배경 자바로 애플리케이션을 개발하고 관계형 데이터베이스를 데이터저장소로 사용하면서 SQL을 주로 사용하게 됩니다. 초기에 JDBC API를 직접 사용해서 개발하기도 했는데, 애플리케이션의 비즈니스 로직보다 SQL과 JDBC API 작성에 더 많은 시간을 소비하는 경우가 많았습니다. 마이바티스나 JdbcTemplate 같은 SQL Mapper를 사용하면서 JDBC API 관련 코드를 많이 줄일 수 있었습니다. 하지만 여전히 CRUD용 SQL은 반복해서 작성해야 했고, 이런 과정은 너무 지루하고 비생산적이었습니다. 객체 모델링을 세밀하게 진행할수록 객체를 데이터베이스에 저장하거나 조회하기는 점점 더 어려워졌고, 객체와 관계형 데이터베이스의 차이를 메우기 위해 더 많은 SQL을 작성해야하는 경우가 생겼습니.. Domain/Spring 2021. 9. 27.
[Spring] Jar와 War JAR (Java Archive) WAR (Web Application Archive) 모두 JAVA의 jar 툴을 이용하여 생성된 압축(아카이브) 파일이며 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 있도록 관련 파일(리소스, 속성파일 등)들을 패키징해주는 것이 주 역할입니다. Spring Boot의 장점 중 하나는 실행 가능한 JAR (Executable Jar)로 빌드하여 프로젝트를 바로 실행시킬 수 있다는 점 입니다. Jar ( Java Archive ) JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일입니다. Class (JAVA리소스, 속성 파일), 라이브러리 파일을 포함합니다. JRE(JAVA Runtime Environment)만 있어도 실행 가능합니다. War ( .. Domain/Spring 2021. 9. 18.
[Spring] Spring MVC ( DispatcherServlet / HandlerMapping / HandlerAdapter / ViewResolver / View ) Spring MVC MVC는 Model-View-Controller의 약자로 MVC 패턴이라고 불립니다. MVC 패턴은 MVC1,MVC2가 있습니다. Spring MVC는 MVC2의 구조를 가집니다. MVC2는 Model, View, Controller가 역할을 나누어 처리하기 때문에 MVC1에 비해 확장에 유리하고, 유지보수하기 쉽다는 장점이 있습니다. Spring MVC의 동작 Client가 보낸 요청을 DispatcherServlet이 감지합니다. DispatcherServlet은 HandlerMapping에게 Controller의 탐색을 요청합니다. HandlerMapping은 Client의 요청 경로를 이용하여 Controller 빈 객체를 DispatcherServlet에 리턴합니다. Disp.. Domain/Spring 2021. 9. 18.