본문 바로가기

728x90

Study

(120)
문자열 불변 객체(Immutable)와 가변 객체(Mutable)의 차이점 1. String 불변객체 (Immutable Object)불변(Immutable): 한 번 생성된 객체의 상태(값)가 변경되지 않는 객체Java String 클래스가 대표적인 불변객체특징String 객체는 한 번 생성되면 내부에 저장된 문자(char 배열)가 바뀌지 않음문자열을 변경하는 연산(예: concat, replace 등)을 하면 실제로는 새로운 String 객체가 만들어짐불변성 때문에 여러 스레드에서 안전하게 공유 가능(스레드 안정성)메모리 관리와 최적화에 유리 (String Pool 활용)예시String s1 = "hello";String s2 = s1.concat(" world"); // 새로운 객체 생성, s1은 변경되지 않음 2. String 가변객체 (Mutable Object)가변..
스프링 배치 도메인 이해 - Job I. Job 기본 개념· 배치 계층 구조의 가장 상위에 있는 개념, 하나의 배치 작업을 의미한다.- "API 서버의 접속 로그 데이터를 통계 서버로 옮기는 배치", Job 자체를 의미· Job Configuration을 통해 생성되는 객체 단위, 배치 작업을 어떻게 구성하고 실행할 것인지 전체적으로 설정하고 명세해 놓은 객체· Job을 구성하기 위한 최상위 인터페이스, 스프링 배치의 기본 구현체 제공.· 여러 Step을 포함하고 있는 컨테이너로서 반드시 한개 이상의 Step으로 구성해야함. @ 컨테이너란?애플리케이션을 실행하는 데 필요한 모든 요소(코드, 라이브러리, 설정 파일 등)를 하나로 묶어 경량화된 실행 환경을 제공하는 기술 II. Job 기본 구현체 · SimpleJob(Step을 포함)- ..
Spring Batch 시작 - DB 스키마 생성(2) I. DB 스키마 생성, TABLE별 각 역활 정리. @ Job 관련 테이블BATCH_JOB_INSTANCE select * from BATCH_JOB_INSTANCE;- Job이 실행될 때 Jobinstance 정보가 저장됨, jom_name과 job_key를 키로 하여 하나의 데이터가 저장.- 동일한 job_name과 job_key로 중복 저장될 수 없다. BATCH_JOB_EXECUTION select * from BATCH_JOB_EXECUTION;- job의 실행정보가 저장되며 Job 생성, 시작/종료 시간, 실행상태, 메세지 등을 관리.BATCH_JOB_EXECUTION_PARAMS select * from BATCH_JOB_EXECUTION_PARAMS;- Job과 함께 실행되는 Job..
Spring Batch 시작 - DB 스키마 생성(1) I. 스프링 배치 메타 데이터· 스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters...)의 정보들을 저장 업데이터, 조회할 수 있는 스키마 구성· 과거.. 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부 등을 관리한다. - 배치 운용에 있어 리스크 발생시 빠른 대처 가능· DB 연동할 경우 필수적으로 메타 테이블이 생성되어야 함. II. 스키마 생성 설정· 수동 생성 -> 쿼리 복사 후 직접 실행· 자동 생성 -> spring.batch.jdbc.initialize-schema 설정 · ALWAYS- 스크립트 항상 실행- RDBMS 설정이 되어 있을 경우 내장 DB보다 우선적으로 실행 · EMBEDDED- 내장 DB일 때만 실행되며 스..
SpringBatch Hello Spring Batch 시작하기 I. 스프링 배치 초기 선언 어노테이션@SpringBootApplication@EnableBatchProcessing // 스프링 배치 초기 선언 어노테이션public class SpringBatchApplication { public static void main(String[] args) { SpringApplication.run(SpringBatchApplication.class, args); }} @EnableBatchProcessing 총 4개의 설정 클래스를 실행, 스프링 배치의 모든 초기화 및 실행 구성이 이뤄짐. 스프링 부트 배치의 자동 설정 클래스가 실행됨으로 빈으로 등록된 모든 Job을 검색해서 초기화와 동시에 Job을 수행하도록 구성. II. 스프링 배치 초기화..
Spring Batch 개요 I. 배치 핵심 패턴· Read - 데이터베이스, 파일, 큐에서 다량의 데이터를 조회한다. (추출)· Process - 특정 방법으로 데이터를 가공한다. (변형)· Write - 데이터를 수정된 양식으로 다시 저장한다. (적재) @ DB에서 사용하는 ETL 작업과 비슷E : Extract(추출)- 여러 출처(데이터베이스, API, 로그 파일 등)에서 데이터를 끌어오는 단계ex : MySQL, Oracle, CSV 파일, 외부 시스템 등에서 데이터 수집T : Transform(변환)- 데이터를 가공, 정체, 변환하는 단계ex : 불필요한 컬럼 제거, 날짜 형식 통일, 코드값 변환, 집계 처리 등L : Load(적재)- 가공한 데이터를 목적지(DB, 데이터 웨어하우스 등)에 저장ex : 정제된 데이터를 분석..
클라이언트 요청이란? 클라이언트 요청은 브라우저, 모바일 앱,다른 서버 등 다양한 클라이언트가 서버에 HTTP 프로토콜을 사용해 정보를 요청하는 행위입니다. 이 요청은 HTTP 메서드 (GET, POST, PUT, DELETE 등)와 함께 특정 URL을 통해 전달됩니다. I. 클라이언트 요청의 구성 요소1. HTTP 메서드· GET: 데이터 조회를 요청 (예: /products에서 상품 목록 조회).· POST: 서버에 데이터 전송 및 리소스 생성 요청 (예: /products에서 상품 추가).· PUT: 기존 데이터를 수정 요청 (예: /products/1에서 상품 정보 업데이트).· DELETE: 특정 데이터를 삭제 요청 (예: /products/1에서 상품 삭제). 2. URL(Path)· 클라이언트가 원하는 리소스에 ..
Spring MVC 패턴 I. Spring MVC란?· Model-View-Controller 아키텍처 패턴을 기반으로 한 Spring Framework의 웹 애플리케이션 개발 모듈이다.· 애플리케이션의 각 관심사를 명확히 분리하여 유연하고 유지보수하기 쉬운 코드를 작성가능. 1. 주요 구성 요소 @ Model· 애플리케이션의 데이터와 비즈니스 로직을 담당.· 데이터를 처리하거나 DB와 상호작용하는 역할.· 데이터 객체(VO, DTO)와 이를 처리하는 서비스 계층이 포함될 수 있음. @ View· 사용자에게 데이털르 표시하는 역활.· HTML, JSP, Thymeleaf 등 다양한 템플릿 엔진을 통해 구현 가능.· 사용자 경험(UX)을 담당하며, 컨트롤러가 전달한 데이터를 표시.@ Controller· 사용자의 요청을 처리하고 ..

728x90