Spring

Spring - 테스트 코드 작성하기

테스트의 목적은 설계를 검증하기 위함이다. 어떠한 목적을 이루기 위한 비즈니스 로직을 설계하고 해당 설계가 제대로된 결과값을 내는지를 검증하기 위해 이용한다. 테스트를 작성함으로써 검증 및 예상되는 문제를 미리 확인할 수 있다는 장점이 있다.

Spring - Filter와 GenericFilterBean, OncePerRequestFilter

Spring boot에서 Filter를 만들기 위한 방법에는 여러가지가 존재한다. 그 중 자주 사용하는 방식은 다음과 같다. Filter 인터페이스 이용 GenericFilterBean 추상 클래스 이용 OncePerRequestFilter 추상 클래스...

Spring - mvc 설정을 위한 다양한 방법들

Spring boot를 이용한 프로젝트 도중 WebMvc 설정에 문제가 발생하였다. WebMvcConfigurationSupport와 WebMvcConfigurer를 혼용하면서 발생한 문제였다. 가까스로 문제를 해결한 후 해당 개념에 대한 지식이 부족하다고 판단하여 이에 관한 내용...

Spring - Argument Resolver와 동작원리 Deep Dive

Controller의 메서드에 파라미터로 사용하는 @RequestParam, @RequestBody 는 어떻게 동작하는 것일까? Controller의 파라미터로 클라이언트의 요청정보가 아닌 추가적인 정보를 넘길 수 있을까? 이러한 의문들을 해결하기 위해 HandlerMethodAr...

Spring Security Authentication Architecture

Spring Security은 인증 기능을 지원해준다. 인증방식에는 Username/Password를 이용한 방식, OAuth2.0을 이용한 방식 등 여러가지 메커니즘들이 존재하는데 Spring Security는 여러가지 인증방식에 대해 모두 지원해준다.

Spring Security Architecture

Spring Security는 Spring Framwork를 기반으로 한 인증과 인가, 웹 공격에 대한 방어를 위한 기술이다. Servlet Container, Webflux 기반 모두 지원한다. 이 중 Servlet Container 기반으로 Spring Security가 동작하...

Spring - Apache Tomcat 구조

Spring을 이용하여 서버를 구현할 때 보통 Tomcat을 Servlet Container로 많이 이용한다. 그렇다면 Tomcat은 어떻게 클라이언트의 요청을 받아들이고 Spring 웹 어플리케이션으로 요청을 전달하게 되는걸까?

객체지향으로 접근하는 데이터베이스 - JPA

익히 알고 있듯 데이터베이스는 데이터를 생성하거나 조회를 하기 위해선 insert, select 와 같은 SQL 문법을 사용해야한다. 데이터베이스에 대해 공부해본 사람들이라면 익숙하게 사용할 수 있을 것이다. 하지만 이를 프로그래밍 언어를 기반으로 하는 서버 개발에서 사용하게 된다...

Spring - Core(Container의 동작구조)

스프링 프레임워크는 IoC 원칙을 구현한 IoC Container(이하 스프링 컨테이너)를 내장하고 있다. 이것은 스프링 프레임워크의 가장 중요한 개념이다. 복잡한 객체간의 관계를 관리하고 의존 객체를 생성하고 주입해주는 역할을 한다. 덕분에 객체 생성과 관리에 대한 제어권을 외부...

Spring - 핵심가치(POJO와 핵심기능)

Spring(이하 스프링)은 Java로 웹 어플리케이션을 편하게 개발할 수 있도록 도와주는 오픈소스 프레임워크다. 스프링은 이전 기술들과 비교해 웹 개발을 보다 간편하게 할 수 있어 개발 생산성을 높여준다. 이전 개발자가 작성해야했던 불필요하고 복잡한 코드들을 제거하여 비즈니스 로...

Spring 시리즈

왜 스프링인가? Spring - 핵심가치(POJO) Spring - 핵심가치1(IoC/DI) Spring - 핵심가치2(AOP) Spring - 핵심가치3(PSA) Spring - 핵심가치++(Bean) ...