분류 전체보기

    Spring batch 시작하기

    JobBuilderFactory job을 생성하는 빌더 팩토리 StepBuilderFactory step을 생성하는 빌더 팩토리 Job ramJob 이름으로 Job 생성(jobBuilderFactory.get("ramJob")) Step ramStep 이름으로 step 생성(stepBuilderFactory.get("ramStep")) tasklet (인터페이스) Step 안에서 단일 테스크로 수행되는 로직 구현 기본적으로 Job은 task를 무한반복시킴, 그래서 RepeatStatus.FINISHED로 한번만 실행시키고 끝내줘야함 동작 순서 Job 구동 Step을 실행 Tasklet을 실행 JOB (일, 일감) STEP (일의 항목, 단계) Tasklet(작업 내용) - 실제 비지니스 로직을 가지고 있..

    프로젝트 구성 및 의존성 설정

    의존성 추가 @EnableBatchProcessing 어노테이션 추가 총 4개의 설정 클래스 실행, 스프링 배치의 모든 초기화 및 실행 구성이 이루어짐 스프링 부트 배치의 자동 설정 클래스가 실행됨으로 빈으로 등록된 모든 Job을 검색해서 초기화와 동시에 Job을 수행하도록 구성됨 BatchAutoConfiguration 스프링 배치가 초기화 될 때 자동으로 실행되는 설정 클래스 Job을 수행하는 JobLauncherApplicationRunner빈을 생성 SimpleBatchConfiuguration JobBuilder-Factory와 StepBuilderFactory 생성 스프링 배치의 주요 구성 요소 생성 - 프록시 객체로 생성됨 BatchConfigurerConfiguration BasicBatc..

    스프링 배치 - 아키텍쳐

    Application 스프링 배치 프레임워크를 통해 개발자가 만든 모든 배치 JOB과 커스텀 코드 개발자는 업무로직의 구현에만 집중하고 공통적인 기반 기술은 프레임웤이 담당 Batch Core Job을 실행, 모니터링, 관리하는 API로 구성되어있음, JobLauncher, Job, Step, Flow등이 속함 Batch Infrastructure Application, Core 모두 공통 Infrastructure 위에서 빌드 Job 실행의 흐름과 처리를 위한 틀을 제공함 Reader, Processor, Writer, Skip Retry 등이 속함 출처 : 인프런 스프링배치(정수원)

    [모든 개발자를 위한 Http 웹 기반기술] HTTP 상태코드

    상태코드 1xx(informational) : 요청이 수신되어 처리중 2xx(Successful) : 요청 정상 처리 3xx(Redirection): 요청을 완료하려면 추가 행동이 필요 4xx(Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx(Server Error): 서버오류, 서버가 정상 요청을 처리하지 못함 2XX 클라이언트의 요청을 성공적으로 처리 200 : 요청 성공 201 : created 요청 성공해서 새로운 리소스가 생성됨 204: No content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 3xx 리다이렉션 영구 리다이렉션 - 특정 리소스가 URI가 영구적으로 이동 원래의 URL를 사용하지 않음, 검..

    [모든 개발자를 위한 Http 웹 기반기술] HTTP API

    리소스의 의미? 회원을 등록하고 수정하고 조회하는게 리소스가 아님 회원이라는 개념 자체가 바로 리소스 리소스 식별? 회원을 등록하고 수정하고 조회하는 것을 모두 배제 회원이라는 리소스만 식별한다. -> 회원 리소스를 URL에 매핑 리소스와 행위를 분리할것 URI는 리소스만 식별 리소스와 해당 리소스를 대상으로 하는 행위를 분리 리소스: 회원 행위: 조회, 등록, 삭제, 변경 리소스는 명사, 행위는 동사 행위는 메소드로구분 HTTP 메서드 종류 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELETE: 삭제 HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환 OPTIONS:..

    [모든 개발자를 위한 Http 웹 기반기술] HTTP 기본

    HTTP 특징 클라이언트 서버 구조 Request Response구조 클라이언트는 서버에 요청을 보내고, 응답을 대기 서버가 요청에 대한 결과를 만들어서 응답 무상태 프로토콜 서버가 클라이언트의 상태를 보존하지 않는다 무상태는 응답 서버를 쉽게 바꿀 수 있다. -> 무한한 서버 증설 가능 (요청에 모든 요청 데이터를 가지고 있기 때문에) 만약 상태유지의 특성을 가지게 된다면, 요청에 대해 항상 같은 서버가 유지되어야 한다 -> 증설이 쉽지 않음 모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다. 무상태 예) 로그인이 필요 없는 단순한 서비스 소개 화면 상태 유지 예) 로그인 비연결 성 HTTP 기본이 연결을 유지하지 않는 모델 일반적으로 초 단위의 이하의 빠른 속도로 응답 1시간 동안 ..

    [스프링 핵심 원리 - 고급편]인터페이스 ,클래스 기반의 프록시

    인터페이스 기반 프록시 vs 클래스 기반 프록시 인터페이스가 없어도 클래스 기반으로 프록시를 생성할 수 있다. 클래스 기반 프록시는 해당 클래스에만 적용할 수 있다. 인터페이스 기반 프록시는 인터페이스만 같으면 모든곳에 적용할 수 있다. 클래스 기반 프록시는 상송을 사용하기 때문에 몇가지 제약이 있다. 부모 클래스의 생성자를 호출해야한다.(super()) 클래스에 final 키워드가 붙으면 상속이 불가능하다. 메서드에 final 키워드가 붙으면 오버라이딩 할 수 없다. 예제 소스 각 인터페이스 코드는 아래와 같다. @RequestMapping//스프링은 @Controller 또는 @RequestMapping이 있어야 스프링 컨트롤러로 인식할 수 있다. @ResponseBody public interfac..

    [모든 개발자를 위한 Http 웹 기반기술] URI

    URI(Uniform Resource Identifier) Uniform : 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL- Locator: 리소스가 있는 위치 지정 URN - Name : 리소스에 이름을 부여 URI와 URL이 사실상 같은 의미로 사용됨 URL분석 scheme://[userinfo@]host[:port][/path][?query][#fragment] https://www.google.com:443/search?q=hello&hl=ko 프로토콜(https) 호스트명(www.google.com) 포트 번호(443) 패스(/search) 쿼리 파라미터(q=hello&hl=ko)..

    [모든 개발자를 위한 Http 웹 기반기술] PORT, DNS

    한번에 둘 이상 연결해야 하면? 요청이 들어왔을때, 해당 요청이 어느 포트로 도착해야하는지에 대한 정보 즉 같은 IP내에서 프로세스를 구분지어주는 것 (ex 카카오톡 8888포트, 네이버 라인 2233포트 이런식으로 있을때, 해당 요청이 프로그램에 도착해야하는지를 구분 지어주는것이 포트이다) 클라이언트가 보내는 위와 같은 요청에 출발지 PORT와 목적지 PORT가 위에 해당 하는 내용이다. PORT 0~65535: 할당이 가능 0~1023: 잘 알려진 포트, 사용하지 않는것이 좋음(이미 시스템이 사용하고 있는 포트가 대부분) FTP - 20,21 TELENT - 23 HTTP - 80 HTTPS - 443 DNS (도메인 네임 서버) IP주소는 언제든지 바뀔수 있다. 그렇기 때문에 도메인을 사용함 만약 ..

    [모든 개발자를 위한 Http 웹 기반기술] IP, TCP, UPD

    IP(인터넷 프로토콜) 지정한 IP 주소에 데이터 전달 패킷이라는 통신 단위로 데이터 전달 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라지면? 패킷이 순서대로 안오면? 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? TCP, UDP 인터넷 프로토콜 스택의 4계층 계층 예 애플리케이션 계층 HTTP, FTP 전송계층 TCP, UDP 인터넷 계층 IP 네트워크 인터페이스 계층 TCP특징(전송 제어 프로토콜) 연결지향 - TCP 3 way handshake(가상연결) 클라이언트가 서버쪾으로 SYN(접속 요청)로 보냄 서버가 클라이언트로 SYN +ACK(요청수락) 응답을 보냄 클라이언트가 다시 ACK 보냄 ..