본문 바로가기

Spring

(7)
[Spring Batch] 메타 테이블에 대해 알아보자! 스프링 배치(Spring Batch)는 대규모 데이터 처리를 위한 프레임워크로, 작업(Job)과 단계(Step)를 기반으로 데이터를 읽고 처리하고 쓰는 기능을 제공합니다. 이 과정에서 작업의 실행 상태를 추적하고 관리하기 위해 메타 테이블을 사용합니다. 메타 테이블은 작업 실행의 상태와 관련된 다양한 정보를 저장하는데 사용됩니다.주요 메타 테이블BATCH_JOB_INSTANCE구분내용용도작업의 논리적 단위를 나타내는 테이블입니다. 각 작업(Job)의 인스턴스(Instance) 정보를 저장합니다.주요 컬럼JOB_INSTANCE_ID: 작업 인스턴스의 고유 IDJOB_NAME: 작업 이름JOB_KEY: 작업 인스턴스를 구분하기 위한 키 (주로 파라미터 기반의 직렬화)BATCH_JOB_EXECUTION구분내용..
[Spring Boot] DI(Dependency Injection: 의존성 주입) 란 무엇인가? DI의 주요 개념IoC (Inversion of Control):전통적인 방식에서는 객체가 직접 자신의 의존성을 생성하거나 관리합니다. IoC는 이러한 제어의 흐름을 개발자가 아닌 컨테이너(Sprint Container)에게 맡기는 개념입니다.빈(Bean):Spring 컨테이너가 관리하는 객체를 빈이라고 합니다. 빈은 Spring 애플리케이션 컨텍스트에 의해 생성되고 관리됩니다.컨테이너(Container):Spring에서는 ApplicationContext가 컨테이너 역할을 하며, 애플리케이션의 빈을 생성, 설정, 관리합니다.DI 유형필드 주입(Field Injection):필드에 직접 주입하는 방식입니다.생성자 주입(Constructor Injection):생성자를 통해 의존성을 주입받는 방식입니다.세..
[Spring Boot] Spring Boot에서 JWT 토큰 발급 및 인증 해보기!! Spring Boot에서 JWT 토큰을 발급하고 검증하는 방법을 설명드리겠습니다. JWT를 사용한 인증을 구현하기 위해 Spring Security와 함께 JWT 라이브러리를 사용합니다. 여기서는 기본적인 설정과 함께 JWT 토큰을 발급하고 검증하는 예제를 소개 하겠습니다.  프로젝트 설정먼저, 필요한 의존성을 build.gradle (또는 pom.xml에 추가해야 합니다.)Gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'io.j..
[Spring Boot] AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)란 무엇인가? Spring Boot에서 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 코드의 중복을 줄이고, 모듈성을 향상시키기 위한 강력한 도구입니다. AOP는 주로 애플리케이션의 로깅, 트랜잭션 관리, 보안, 예외 처리 등 횡단 관심사(Cross-Cutting Concerns)를 처리하는 데 사용됩니다.AOP의 기본 개념Aspect(애스펙트): 횡단 관심사를 모듈화한 것입니다. 예를 들어, 로깅이나 트랜잭션 관리 기능이 하나의 Aspect가 될 수 있습니다.Join Point(조인 포인트): 애플리케이션 실행 중 특정 지점입니다. 메서드 호출이나 예외 처리 등 여러 종류의 Join Point가 있습니다.Advice(어드바이스): 특정 Join Point에서 실행될 코드를 정의합..
Spring Native Image 란 무엇인가? Graal VM 이란? Graal VM은 Oracle이 개발한 고성능 가상 머신입니다. Graal VM은 다양한 언어를 지원하며, 특히 Java 언어에 최적화되어 있습니다. 이 가상 머신은 기존의 JVM(Java Virtual Machine)과는 다른 컴파일러를 사용하여 더 빠른 실행 속도와 낮은 메모리 사용량을 제공합니다. Graal VM은 JIT(Just-In-Time) 컴파일러와 AOT(Ahead-of-Time) 컴파일러를 모두 지원하여, 실행 시점에 최적화된 코드를 생성하거나 미리 컴파일하여 더 효율적인 실행을 가능하게 합니다. 또한, 다른 언어를 JVM 위에서 실행할 수 있는 기능을 제공하여, 다양한 언어 간의 상호 운용성을 향상시킬 수 있습니다. Graal VM은 다양한 분야에서 사용될 수 있..
[개념] Spring Framework와 Spring boot에 대해 알아보자! Spring Framework와 Spring Boot는 모두 Java 기반의 프레임워크로, 웹 애플리케이션 및 서비스를 개발하는 데 사용됩니다. 그러나 두 프레임워크 간에는 몇 가지 중요한 차이가 있습니다. 1. 초기 설정과 설정의 용이성: Spring Framework: 초기에는 XML 기반의 설정이 많이 사용되었습니다. Annotation 기반 설정이 도입되었지만 여전히 일부 설정은 XML을 사용할 수 있습니다. 프로젝트를 시작하기 위해 많은 설정이 필요할 수 있습니다. Spring Boot: 스프링 부트는 기본적인 설정을 자동으로 제공하는 "초기화 자동화"에 중점을 두고 있습니다. Convention over Configuration 원칙을 따르므로 개발자가 추가 설정을 하지 않아도 기본적인 설정이..
[Spring Boot] Spring Boot에 HTTP/2 적용하기 JDK 9, Tomcat 9, Spring boot 2.X에 HTTP/2를 설정하는 방법을 알아보자. (JDK 8 이하이거나 Tomcat이 8이하일 경우 별도의 라이브러리[libtcnative library] 설치후 의존성을 주입해주어야 한다.) 1. ssl설정 : Spring boot에 HTTP/2를 적용하기 위해서는 ssl 설정은 필수이다. 만약 설정하지 않으면 HTTP/2 통신이 지원되지 않는다. - keystore 파일 생성 하기 - Terminal 창에 아래 커맨드를 입력하여 keystore 생성. $keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 400..