Spring Security란 무엇일까요?! Spring Security는 Spring MVC 기반 애플리케이션의 인증(Authentication)과 인가(Authorization or 권한 부여) 기능을 지원하는 보안 프레임워크입니다. 스프링에서는 자체적으로 Interceptor나 Servlet Filter를 통해 보안 기능을 구현할 수 있지만 웹 애플리케이션 보안의 대부분 기능을 Spring Security에서 안정적으로 지원하고 있습니다. Spring Security의 기능은 다음과 같습니다. 폼 로그인 인증, 토큰 기반 인증, OAuth 2 기반 인증, LDAP 인증의 사용자 인증 기능 적용 애플리케이션 사용자의 역할(Role)에 따른 권한 레벨 적용 애플리케이션에서 제공하는 리소스에 대한 접근 ..
DTO(Data Transfer Object)란 무엇일까요? DTO는 엔터프라이즈 애플리케이션 아키텍처 패턴의 하나로써 데이터를 전송하기 위한 용도쓰이는 객체입니다. DTO를 사용하게 된다면 코드를 보다 더 간결하게 구성할 수 있으며 데이터 유효성 검증을 단순화 할 수 있습니다. 즉, 서비스가 커질수록 다양해지고 복잡해지는 클라이언트의 요청 데이터를 하나의 객체로 모두 전달받아 코드를 간결하게 해주는 역할이 DTO클래스의 역할입니다. @RestController @RequestMapping("/v1/members") public class MemberController { @PostMapping public ResponseEntity postMember(MemberDto memberDto) { retur..
Spring MVC란 무엇일까요? Spring MVC란 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈을 의미합니다. 여기서 말하는 서블릿(Servlet)이란? 클라이언트의 요청을 처리하도록 규약에 맞추어서 Java코드로 작성하는 클래스 파일을 의하며 아파치 톰캣(Apache Tomcat)은 이러한 서블릿들이 웹 애플리케이션으로 실행이 되도록 해주는 서블릿 컨테이너(Servlet Container) 중 하나입니다. MVC (Model View Controller)의 역할 Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달 받으면 요청 사항을 처리하기 위한 작업을 해주게되는데요, 이러한 요청에 대한 응답이 바로 결과 데이터이자 "Model" 입니다. 또한, 클라..
스프링 컨테이너(Spring Container)는 무엇일까? 스프링 컨테이너(Spring Container)는 Spring Framework의 핵심 컴포넌트입니다. Spring Container는 내부에 존재하는 Application Bean의 생명주기를 관리합니다. Spring Container는 XML, 애너테이션 기반의 자바 클래스로 만들 수 있으며, Bean의 인스턴스화, 구성, 전체 생명주기 및 제거까지 처리합니다. 또한, 의존성 주입을 통해 애플리케이션의 컴포넌트를 관리합니다. - Spring Container는 서로다른 Bean을 연결하는 역할을 합니다. Spring Container를 사용하는 이유 객체 의존도를 낮추기 위해서 Spring Container를 통해서 구현클래스의 의존을 제거..