Java12 [Regex] 정규 표현식 목차정규 표현식 패턴Pattern 클래스와 Matcher 클래스의 사용법다양한 정규 표현식 1. 정규 표현식의 패턴1.1. 그룹과 범위(Group and Range)패턴설명예시|또는[a-z|A-Z] //소문자 또는 대문자[0-9|a-z] //숫자 또는 소문자()그룹(\\w+) //문자(특수문자 제외)로만 이루어진 문자열(\\d{1,3}) //1이상 3이하인 길이의 숫자로만 이루어진 문자열([a-z]+)([0-9]{1,5}) //소문자로만 이루어진 문자열 그룹1, 1이상 5이하의 길이의 숫자로만 이루어진 문자열 그룹2[]괄호 안의 어떤 문자든[0-9\\s-] //숫자 또는 공백 또는 '-'괄호 안에서 '.' 은 패턴이 아닌 단순 문자로 인식[^]괄호 안의 어떤 문자가 아닐 때[^\\w] // 문자가 아닌.. 2024. 5. 5. [Thread] 뮤텍스, 세마포어, 모니터의 스레드 동기화와 구현 예제 1. 스레드(Thread) 스레드는 프로그램 또는 프로세스 내에서 실제로 작업을 수행하는 주체를 말한다. 모든 프로세스에는 한 개 이상의 스레드가 존재한다. 둘 이상의 스레드를 동시에 실행시키는 방식을 멀티스레드 라고 한다. 1.1. Race Condition(경쟁 조건) 멀티 스레드 프로그래밍에서 자주 발생하는 문제로 두 개 이상의 프로세스 또는 스레드가 공유된 자원에 동시에 접근할 경우 접근 순서에 따라 실행 결과가 달라지는 상황이 자주 발생한다. 공유 자원의 데이터 변경 뿐만 아니라 변경된 공유 자원으로 인한 실행 실패까지도 발생하기도 한다. 이러한 상황을 경쟁 조건(Race Condition) 또는 동시성 문제(Concurrency Problem)라고 한다. 즉, 여러 프로세스 또는 스레드가 동시.. 2023. 6. 20. [Spring Batch] 한 개의 Step에 여러 개의 Processor의 다중 적용이 필요할 경우(CompositeProcessor, 예제 포함) Chunk 방식을 적용할 경우 ItemReader, ItemProcessor, ItemWriter를 이용한 배치처리가 가능하다. 이때 ItemProcessor를 다중 적용할 수 있는 방법인 CompositeItemProcessor에 대해 소개하겠다. CompositeItemProcessor CompositeItemProcessor 코드를 보면 List delegates 객체를 확인 할 수 있다.Step 생성 시 CompositeItemProcessor에 작업을 실행하길 원하는 ItemProcessor들을 작업 순서에 따라 List로 구현한 후delegates에 적용하면 list 순서대로 Processor 작업이 진행된다. 해당 내용을 기반으로 적용해 실행해보도록 하겠다.A의 값을 1부터 10까지 갖고 .. 2023. 1. 18. [Spring Batch]#6 스프링 배치 Item Reader 청크지향처리 즉, ChunkOrientedTasklet를 이용한 스프링 배치에서 아이템 수집의 시작이자 스프링 배치를 다양하게 또는 간편하게 적용할 수 있게 해주는 ItemReader에 대해 알아보도록 하겠다. ItemReader는 청크 방식일때만 적용이 가능하다. 스프링 배치에서 기본적으로 제공하는 ItemReader의 구현체들은 굉장히 많은데 대표적으로 PaingItemReader, CursorItemReader, ItemReaderAdapter 등이 있다. ChunkOrientedTasklet의 ItemReader 동작 Chunk지향 처리의 배치가 실행하게 되면 chunkProvider에 의해 read, chunkProcessor 에 의해 process, write 작업이 순서대로 이루어지게 되는.. 2023. 1. 17. [Thymeleaf] 타임리프 유틸 함수 - #strings, #arrays 등등 타임리프에서는 효율적인 오브젝트 사용을 위해 기본적인 오브젝트 유틸리티를 제공하고 있다. 타임리프의 기본 제공 유틸리티 함수는 다음과 같다.#numbers#strings#arrays#lists#sets#maps#objects#bools#dates#calendars#uris#messages#conversions#aggregates#ids다음 중 자주 사용하는 주요 함수만 정리하도록 하겠다. numbers종류설명${#numbers.formatInteger(num,3)}${#numbers.arrayFormatInteger(numArray,3)}${#numbers.listFormatInteger(numList,3)}${#numbers.setFormatInteger(numSet,3)}자리수를 설정한 숫자 포맷 적.. 2022. 10. 5. [Spring Batch] #4 스프링 배치 Step 과 Tasklet 이번 포스팅에선 Step과 Tasklet의 관계에 대해서 자세히 알아보도록 하겠다. AbstractStepStep 인터페이스를 구현하는 구현체의 추상 클래스는 AbstractStep이다. Job이 갖고 있는 Step의 execute 메소드를 실행하게 되면 Step의 doExecute 메소드를 실행하게 되는데 doExecute 메소드는 추상 메소드로 어떤 구현체냐에 따라 동작방식이 달라지게 된다. 스프링 배치에서 기본 제공하는 AbstractStep의 구현체들이 몇 가지 있는데 오늘은 가장 일반적으로 사용되는 TaskletStep을 기준으로 알아보도록 하겠다. TaskletStepTaskletStep은 한 개의 Tasklet 객체를 갖고 있으며 doExecute 메소드 실행 시 tasklet의 execu.. 2022. 9. 27. 이전 1 2 다음