728x90 공부158 개념 SUT System under test (테스트 하려는 대상) BDD Behaviour driven dvelopment(given - when - then) 테스트를 하려는 순간 어디에 어떻게 넣어야 하지 라는 질문을 마주하게 됩니다. 그때 BDD 가 말한다 "행동에 집중해야 한다" 유저가 시스템을 사용하는 user story 를 강조하고 시나리오를 강조한다. 이를 지키기 위한 뼈대로 다음과 같은 구조로 테스트코드를 추천한다. given - 어떤 상황이 주어졌을 떄 when - 이 행동을 한다면 then - 결과는 이렇다 3A 라고 불리기도 함. 상호 작용 테스트 (Interation test) 대상 함수의 구현을 호출하지 않으면서 그 함수가 어떻게 호출되는지를 검증하는 기법(메서드가 실제로 호출됐는지 .. 2023. 7. 4. 스프링배치 - Flow FlowJob 기본개념 Step 을 순차적으로만 구성하는 것이 아닌 특정한 상태에 따라 흐름을 전환하도록 구성할 수 있으며 FlowJobBuilder 에 의해 생성된다. Step 이 실패 하더라도 Job 은 실패로 끝나지 않도록 해야 하는 경우 Step 이 성공 했을 때 다음에 실행해야 할 Step 을 구분해서 실행 해야 하는 경우 특정 Step 은 전혀 실행되지 않게 구성 해야 하는 경우 Flow 와 Job 의 흐름을 구성하는데만 관여하고 실제 비즈니스 로직은 Step 에서 이루어진다. 내부적으로 SimpleFlow 객체를 포함하고 있으며 Job 실행 시 호출한다. 배치 상태 유형 BatchStatus JobExecution 과 StepExeccution 의 속성으로 Job 과 Step 의 종료 후 최.. 2023. 4. 13. 스프링 배치 - Step StepBuilderFactory StepBuilder 를 생성하는 팩토리 클래스로서 get(String name)메서드 제공 StepBuilderFactory,get("stepName"): "stepName" 으로 Step 을 생성 StepBuilder Step 을 구성하는 설정 조건에 따라 다섯 개의 하위 빌더 클래스를 생성하고 실제 Step 생성을 위임한다. TaskletStepBuilder TaskletStep 을 생성하는 기본 빌더 클래스 SimpleStepBuilder TaskletStep 을 생성하며 내부적으로 청크기반의 작업을 처리하는 CHunkOrientedTasklet 클래스를 생성 PartitionStepBuilder PartitionStep 을 생성하며 멀티 스레드 방식으로 Job .. 2023. 4. 13. 스프링 배치 - Job SimpleJob 기본개념 SimpleJob 은 Step 을 실행시키는 Job 구현체로써 SimpleJob 에 의해 생성된다. 여러 단계의 Step 으로 구성할 수 있으며 Step 을 순차적으로 실행시킨다 모든 Step 의 실행이 성공적으로 완료됭야 Job 이 성공적으로 완료 된다. 맨 마지막에 실행한 Step 의 BatchStatus 가 Job 의 최종 BatchStatus 가 된다. validator 기본개념 Job 실행에 꼭 필요한 파라미터를 검증하는 용도 DefaultJobParametersValidator 구현체를 지원하며, 좀 더 복잡한 제약 조건이 있다면 인터페이스를 직접 구현할 수 있음. preventRestart 기본개념 Job 의 재 시작 여부를 셜정 기본 값은 true 이며 false.. 2023. 4. 12. 스프링 배치 실행 - JobBuilderFactory, JobBuilder JobBuilderFactory JobBuilder 를 생성하는 팩토리 클래스, get(String name) 메서드 제공 JobBuilderFactory.get("jobName"): "jobName" 은 스프링 배치가 Job 을 실행시킬 때 참조하는 Job 의 이름 JobBuilder Job 을 구성하는 설정 조건에 따라 두 개의 하위 빌더 클래스를 생성하고 실제 Job 생성을 위임한다. SimpleJobBuilder SimpleJob 을 생성하는 Builder 클래스 Job 실행과 관련된 여러 설정 API 를 제공한다. FlowJobBuilder FlowJob 을 생성하는 Builder 클래스 내부적으로 FlowBuilder 를 반환함으로써 Flow 실행과 관련된 여러 설정 API 를 제공한다. 2023. 4. 12. 스프링배치 도메인 JOB 기본 개념 배치 계층 구조에서 가장 상위에 있는 개념. 하나의 배치작업 자체를 의미. Job Configuration 을 통해 생성되는 객체 단위로서, 배치 작업을 어떻게 구성하고 실행할 것인지 설정하고 명세해 놓은 객체 배치 Job 을 구성하기 위한 최상위 인터페이스이며 스프링 배치가 기본 구현체를 제공한다. 여러 Step 을 포함하고 있는 컨테이너로서 반드시 한개 이상의 Step 으로 구성해야 함. 기본 구현체 SimpleJob 순차적으로 Step 을 실행시키는 Job 모든 Job 에서 유용하게 사용할 수 있는 표준 기능을 갖고 있음 FlowJob 특정한 조건과 흐름에 따라 Step 을 구성하여 실행시키는 Job Flow 객체를 실행시켜 작업을 진행함. --- JobInstance 기본 개념 .. 2023. 4. 10. 스프링배치 - 테이블 Job 관련 테이블 BATCH_JOB_INSTANCE Job 이 실행될 떄 JobInstance 정보가 저장, job_name 과 job_key 를 키로 하여 하나의 데이터가 저장. 동일한 job_name 과 job_key 로 중복 저장될 수 없다. BATCH_JOB_EXECUTION Job 의 실행정보가 저장되며 Job 생성, 시작, 종료 시간, 실행상태, 메시지 등을 관리 BATCH_JOB_EXECUTION_PARAMS Job 과 함께 실행되는 JobParameter 정보를 저장 BATCH_JOB_EXECUTION_CONTEXT Job 의 실행동안 여러가지 상태정보, 공유 데이터를 직렬화 해서 저장 Step 간 서로 공유 가능. Step 관련 테이블 BATCH_STEP_EXECUTION Step 의 .. 2023. 4. 10. mysql MyISAM, InnoDB 언두 로그, 리두 로그 myISAM 엔진은 리두 로그와 언두 로그를 지원하지 않습니다. 따라서, 데이터를 복구하거나 롤백하는 과정에서 문제가 발생할 가능성이 높습니다. 반면에 InnoDB 엔진은 리두 로그와 언두 로그를 사용하여 데이터베이스의 일관성과 복구를 보장합니다. InnoDB 엔진에서 데이터가 변경되면, 변경 사항은 리두 로그에 기록됩니다. 이는 변경 사항을 디스크에 먼저 기록하고, 메모리에 데이터를 로드하는 것보다 빠릅니다. 따라서, 시스템이 다운되거나 데이터베이스에 문제가 발생한 경우, InnoDB 엔진은 리두 로그를 사용하여 데이터베이스를 복구할 수 있습니다. 또한, InnoDB 엔진은 언두 로그를 사용하여 롤백 기능을 제공합니다. 이는 데이터베이스에 문제가 발생한 경우 변경 사항을 취소할 수 있는 기능입니다. 따.. 2023. 3. 15. 스프링 부트 에서 @modelAttribute 와 @requestBody 의 차이점과 쓰임새는? @ModelAttribute와 @RequestBody는 모두 Spring MVC에서 사용되는 어노테이션으로, HTTP 요청에서 전송된 데이터를 컨트롤러 메서드에서 사용할 수 있게 하는 역할을 하지만 사용되는 방식과 동작은 다르다. @ModelAttribute는 HTTP 요청 파라미터를 해당 컨트롤러의 메서드 매개변수에 바인딩한다. 즉, HTTP 요청 파라미터와 메서드 매개변수의 이름이 일치하면 자동으로 값을 매핑합니다. 또한, @ModelAttribute는 해당 메서드가 실행되기 전에 먼저 실행되어 모델에 데이터를 바인딩합니다. 이렇게 바인딩된 모델은 View에서 사용될 수 있습니다. 예를 들어 @GetMapping("/person") public String getPerson(@ModelAttribut.. 2023. 3. 9. 이전 1 ··· 6 7 8 9 10 11 12 ··· 18 다음 728x90