Spring

    Spring Batch란?

    1.개요(Spring Batch는 왜 등장했는가) 자바 기반의 표준 배치 기술이 존재하지 않기 때문에 등장했다. 자바에는 Network, TCP, UDP, Thread 등 개발에 필요한 기본 기술들이 JSP(Java Specification Request)에 명시되어있다. 하지만 배치와 관련된 기술은 JSR에 명시되어있지 않고 이것이 Spring Batch의 등장 배경이 되었다. 그렇기 때문에 재사용 가능한 자바 기반 배치 아키텍쳐가 필요하게 되었다. 그렇기에 Spring Batch가 등장하였다. Spring Batch는 SpringSource(현재는 Privotal)와 Accenture(경영 컨설팅기업) 두 기업의 합작품이다. Accenture-배치 아키텍쳐를 구현하면서 쌓은 기술적 경험 노하우를 보유..

    Spring의 필터와 인터셉터

    필터와 인터셉터란? 인증과 보안이 필요한 사이트에서 해당 서비스를 사용할 수 없어야한다. 스프링에서는 인터셉터와 필터를 통하여 검증로직을 작성할 수 있다. 필터는 서블릿 자체의 기술이며 스프링이 서블릿 기반의 기술이기 때문에 필터를 사용할 수 있는것이다. 인터셉터는 스프링 자체의 기술이다. 즉 스프링은 서블릿 기반의 기술이므로 검증을 할 수 있는 수단이 2가지가 있는것이다. 필터와 인터셉터의 흐름 필터와 인터셉터의 전체적인 흐름은 아래와 같다. HTTP요청 -> WAS -> Filter -> Servlet -> Intercepter -> Controller 필터는 서블릿에 도달되기전에 검증로직을 수행한다. 인터셉트는 컨트롤러에 도달하기전에 검증로직을 수행한다. 필터는 아래와 같은 인터페이스를 통해서 구현..

    Spring의 쿠키,세션

    1. 개요 이번 글에서는 고객들의 로그인 상태를 지속적으로 유지시키기 위한 방법을 다룬다. 고객들의 정보를 지속적으로 유지시키기 위해서는 쿠키의 개념이 필요하다. 쿠키의 고질적인 문제를 파악하고 이를 해결하기 위한 세션의 등장개념을 이해하도록 하고 스프링에서의 세션을 어떻게 적용하는지 확인해보자 쿠키가 생성되는 전체 흐름 서버에서 로그인에 성공하면 HTTP 응답을 통해 Server에 접속한다. 접속에 성공한 이후 현재 쿠키가 존재한다면 해당 쿠키를 반환하고 없을 경우 Server에서 생성해서 보내준다. 클라이언트가 쿠키를 가지고 있다면 Server에서는 별도의 login 로직을 거치지 않기 때문에 속도, 성능 측면에서 이점을 가져갈 수 있다. 이런 쿠키에는 2가지의 종류가 있다. 영속 쿠키: 만료 날짜를..

    Spring MVC 구조 및 구현

    개요 얼마전에 네이버에서 기술 면접을 보게 되었는데 질문으로 MVC 패턴에 대해서 설명해달라는 질문을 받게 되었다. 설명은 했으나 너무 오래전에 학습해서 내가 알고있는 전부를 제대로 전달하지는 못한거 같아서 글로 다시 정리해볼려고 한다. 1.스프링 MVC 전체 구조 스프링의 MVC 구조는 간단하게(?) 아래와 같은 구조로 이루어져있다. 먼저 Http 요청이 이루어진다 이후 DispatcherServelet의 doDispatch()가 실행된다. 현재 스프링 부트의 핸들러 매핑 정보를 탐색한다. handler 동작을 수행해줄 Adapter의 정보를 보고 handler 동작을 수행할 수 있는 Adapter가 존재한다면 반환하게 된다. 다시 DispatcherServlet으로 돌아온뒤 3번에서 받아온 Contr..

    Spring의 종류와 장점

    1.스프링이란? 스프링의 종류 스프링 프레임워크(지원 기술 대상을 알아보자) 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술 : 스프링 MVC, 스프링 WebFlux 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합 : 캐시, 이메일, 원격 접근, 스케쥴링 테스트 : 스프링 기반 테스트를 지원한다 언어 : 코틀린, 그루비 스프링 부트란? 스프링을 편리하게 사용할 수 있도록 지원한다. 단독으로 실행할 수 있는 스프링 애플리케이션을 생성한다. Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치할 필요가 없다. 손쉬운 빌드 구성을 위한 starter를 제공한다. 스프링과 외부 라이브러리를 자동으로 구성해준다. Spring과 타 라이브러리의 버전을 전부..