Web Programming

1. Spring Batch 기본 구성 요소Spring Batch는 대규모 데이터 처리에 최적화된 프레임워크로 대량의 데이터를 처리하거나 활용하는데 널리 사용된다. 스프링 배치에서 사용되는 주된 구성 요소들을 큰 순서부터 차례로 나열하면 다음과 같다Job: 하나 이상의 Step으로 구성된 배치 처리 단위Step: 작업의 논리적 단위로, Tasklet이나 Chunk 기반 처리로 구현Tasklet: 단순 반복 작업을 처리하기 위한 인터페이스Chunk: 데이터를 일정 크기 단위로 나누어 처리하는 방식. 내부적으로는 크게 reader, processor, writer 형태로 처리.tasklet vs chunk chunktasklet장점대량 데이터를 효율적으로 처리 가능(읽기, 처리, 쓰기)간단한 반복 작업에 적..
소프트웨어를 개발할 때, 객체 간의 의존성은 코드를 확장하거나 수정할 때 많은 영향을 끼친다. IoC와 DI는 이런 부분을 좀 더 효율적으로 관리하고 코드의 유연성을 높여주는 설계 패턴이라고 할 수 있다.1. IoC(Inversion of Control)란?IoC란 단어 뜻 그대로 제어의 역전이라고 부른다. 객체의 생성이나 의존성 관리의 책임을 기존에는 개발자가 담당했었다면, 그걸 프레임워크나 컨테이너가 담당하도록 하는 개념을 말한다. 자바를 기준으로 하면 개발자가 아닌 Spring, 좀 더 깊게 들어가면 IoC 컨테이너에서 그 부분을 담당해서 객체의 생성과 관리를 외부에서 제어하게 된다.구체적으로 살펴보면 스프링에서 IoC 컨테이너라는 개념을 구현하기 위해, BeanFactory와 Application..
1. 핵심 학습 키워드웹 인증웹 애플리케이션에서 사용자의 정체를 확인하고(인증), 그에 따른 적절한 권한을 부여(인가)하는 과정을 의미.로그인 인증에는 다양한 방식이 존재한다.ID / PW 기반의 로그인소셜 로그인(Oauth2)이메일 인증휴대폰 인증MFA(다중 인증요소)위와 같은 방법을 인증하는 방식은 크게 세션 / 쿠키, JWT를 활용해서 하는 것이 일반적이다.1-1 HTTP 세션웹 애플리케이션에서 세션 공간에 사용자 정보를 일정 시간 동안 저장하는 기술.HTTP session은 HTTP 프로토콜의 Stateless한 문제로 인해 요청 시 마다 정보롤 다시 보내는 문제를 해결하기 위해서 서버측에서 저장하고 관리하는 session ID를 발급한다.주로 쿠키를 사용해서 구현된다.사용자가 다시 접속해도 유지..
1. Dispatcher Servlet이란?Dispatcher Servlet은 Dispatcher(보내다 / 파견하다) + Servlet(웹 요청과 응답을 처리하는 자바 객체)의 합친 단어로 그 뜻처럼 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에게 보내주는 Front Controller를 의미한다.Front Controller는 서블릿 컨테이너에서 클라이언트의 요청을 받아서 처리해주는 컨트롤러로 MVC 구조에서 함께 사용되는 디자인 패턴으로 이해하면 된다. (https://www.geeksforgeeks.org/front-controller-design-pattern/)2. Dispatcher Servlet의 동작 과정클라이언트 요청 확인: 클라이언트의 요청을 받아들인다.H..
특정 애플리케이션의 비즈니스 로직이 정상적으로 동작하기 위해서 여러가지 요건이 필요하겠지만, 그 중 하나는 올바른 입력값을 위한 유효성 검증이 필요하다. 제대로 된 입력값을 검증하지 않고 입력받게 된다면 의도치 않은 에러나 버그가 발생할 수 있고 데이터의 정확성인 일관성을 보장하기 어렵다.1. Spring Boot에서의 Validation자바에서는 javax.validation(혹은 jakarta.validation) 패키지에 정의된 Bean Validation API를 기반으로 하며 다양한 어노테이션 기반으로 필드 수준의 검증을 쉽게 수행할 수 있다. Spring Boot 에서는 이 Bean Validation의 구체적인 구현체로 Hibernate Validator를 검사 표준으로 채택해 사용하고 있다..