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" 입니다. 또한, 클라..
AOP (Aspect-Oriented Programming)란 무엇일까?! AOP(Aspect-Oriented Programming)는 객체 지향 프로그래밍(OOP)의 부족한 부분을 보완하는 방법론입니다. 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있는데요, 핵심 기능(Core Concerns)은 핵심 기능(Core Concerns)은 객체가 제공하는 고유의 기능을 뜻하며 부가 기능(CROSS-CUTTING CONCERNS)은 핵심기능을 보조하기 위해 제공되는 기능으로 로그 추적 로직, 보안, 트랜잭션 기능 등이 있습니다 또한, 단독으로 사용하지 않고 핵심 기능과 함께 사용합니다. 즉, AOP는 OOP방식을 보완하기 위해 핵심 기능과 부가 기능을 분리하는 방식으로 모듈화 하는 프로그래밍..