개발환경 교육교재

Size: px
Start display at page:

Download "개발환경 교육교재"

Transcription

1 Page l 1

2 Page l 2

3 Page l 3

4 실행환경배치처리레이어 (1/2) 1. 개요 대용량데이터처리를위한기반환경을제공하는 Layer 임 서비스그룹 설명 Presentation Layer 전자정부표준프레임워크실행환경 Business Logic Layer Persistence Layer Batch Layer Integration Layer Mobile Presentation Layer Layer Mobile Device API Presentation Layer Business Logic Layer Batch Layer Persistence Layer 업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면구성, 사용자입력정보검증등의기능을제공함 업무프로그램의업무로직을담당하는 Layer 로서, 업무흐름제어, 에러처리등의기능을제공함 대용량데이터처리를위한기반환경을제공하는 Layer 임 데이터베이스에대한연결및영속성처리, 선언적인트랜잭션관리를제공하는 Layer 임 Foundation Layer ( 공통기반레이어 ) Integration Layer 타시스템과의연동기능을제공하는 Layer 임 환경 서비스그룹 Foundation Layer 실행환경의각 Layer 에서공통적으로사용하는공통기능을제공함 Page l 4

5 실행환경배치처리레이어 (2/2) 1. 개요 배치처리레이어는 Batch Core, Batch Execution, Batch Support 등총 3 개의서비스를제공함 실행환경 화면처리레이어 업무처리레이어 데이터처리레이어 배치처리레이어 연계통합레이어 모바일화면처리 모바일디바이스 API Ajax Support MVC UI Adaptor Internationalization Security Biz. Process Management Exception Handling Data Access ORM Transaction DataSource Batch Core Batch Execution Batch Support Message Service Naming Service Web Service UX/UI Component Device API 공통기반레이어 AOP Cache Compress/Decompress Encryption/Decryption Excel File Handling File Upload/Download FTP ID Generation IoC Container Logging Mail Marshalling/Unmarshalling Object Pooling Property Resource Scheduling Server Security String Util XML Manipulation Page l 5

6 Batch 개념 1. 개요 Batch 작업의정의 Batch processing is execution of a series of programs ("jobs") on a computer without human interaction [ 출 처 : Wikipedia] Without Human Interaction Batch From Time Based Event 주요사례 : PC 에서프린트출력, 웹사이트로그분석, 주기적으로계산처리하는회계결산이나급여작업등 Batch 작업의특징 특징관리자에의한실행스케줄링사용백그라운드실행 설명 - 상용대형컴퓨터나서버에서는일반적으로시스템사용자에의해실행 - 특정시간에자동으로실행되도록정의 - 주로 Back Ground( 후면 ) 에서실행 - 배치작업보다우선순위가높고 Fore Ground( 전면 ) 에서실행되는인터랙티브프로그램이사용자의요청을기다리는시간에실행 Page l 6

7 Spring Batch 1. 개요 Spring Batch Spring Batch is a lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems Spring Batch 기능 Batch Monitoring 기능제공 Commit Interval 지원 Retry, Restart, Skip 기능지원 Commit/Rollback/Retry Count 정보제공 Quartz, Command Line, Web 등을통한실행지원 Page l 7

8 Spring Batch 구성요소 (1/5) 1. 개요 Spring Batch 기본구성 Page l 8

9 Spring Batch 구성요소 (2/5) 1. 개요 Spring Batch 구성요소 구분 설명 JobLauncher JobLauncher 는 Batch Job 을실행시키는역할수행. Job 과 Parameter 를받아서실행하며 JobExecution 를반환. JobRepository 수행되는 Job 에대한정보를담고있는저장소. Job 이수행, 종료, 실행횟수및결과등, Batch 수행과관련된모든 Meta Data 가저장되어있음 Job 실행시킬작업. 논리적인 Job 실행의개념. JobParameter JobInstance Batch Job 을실행하는데사용하는파라미터의집합으로 Job 이실행되는동안에 Job 을식별하거나 Job 에서참조하는데이터로사용 논리적인 Job 실행 (JobInstance=Job+JobParameter) Step Batch Job 을구성하는독립적인하나의단계. Job 은 1 개이상의 Step 으로구성실제 Batch 처리과정을정의하고, 제어하는데필요한모든정보를포함 Step 의내용은전적으로개발자의선택에따라구성됨. Item 처리할데이터의가장작은구성요소. ( 예 ) 파일의한줄, DB 의한 Row, Xml 의특정 Element ItemReader Step 안에서 File 또는 DB 등에서 Item 을읽어들임. 더이상읽어올 Item 이없을때에는 read() 메소드에서 null 값을반환하며그전까지는순차적인값을리턴. ItemWriter Step 안에서 File 또는 DB 등으로 Item 을저장. Item Processor Item reader 에서읽어들인 Item 에대하여필요한로직처리작업을수행. Page l 9

10 Spring Batch 구성요소 (3/5) 1. 개요 Spring Batch Layered Architecture 서비스그룹 Application 설명 Spring Batch 를이용해개발된 Batch Job 과커스텀코드 Batch Core Batch Job 을실행하거나제어하는데필요한설정또는구현체 ( 예 : JobLauncher/Job/Step) Batch Infrastructure Application 과 Core 에서사용하는 I/O 나기본적인서비스기능 Page l 10

11 Spring Batch 구성요소 (4/5) 1. 개요 Spring Batch Architecture 회색박스 외부어플리케이션으로 Spring Batch 의범위에포함되지않음파란박스 Spring Batch 가제공하는 Application Architecture Service 녹색박스 개발자구현부분으로 Job Scheduler 나 Job 설정파일등을포함 Page l 11

12 Spring Batch 구성요소 (5/5) 1. 개요 Spring Batch Architecture Tier 설명 Run Tier Scheduling 과 Application 실행담당 Spring Batch 에서는 Scheduling 기능을따로제공하지않고 Quartz 같은외부모듈이나 Cron 을이용하도록권고 Job Tier Application Tier Data Tier 전체적인 Job 실행담당 Job 내의각 Step 들을지정한정책에따라순차적으로수행 Job 을실행하는데필요한컴포넌트들로구성 Database, File 등물리적데이터소스와결합이이루어지는영역 Page l 12

13 Page l 13

14 Job Repository 2. Batch 구성요소 개념 JobRepository 은수행되는 Job 에대한정보를담고있는저장소로 JobExecution 과 StepExecution 에대한 CRUD 기능수행 Batch 작업최초실행시 JobRepository 에서 JobExecution 이생성되고 Batch 작업이실행되는동안 설정 StepExecution 및 JobExecution 의정보들이 JobRepository 에저장되고갱신됨 <job-repository id="jobrepository" data-source="datasource" transaction-manager="transactionmanager" isolation-level-for-create="serializable" table-prefix="batch_" max-varchar-length="1000" /> Database 방식과 Memory 방식지원 Spring Batch 는 jobrepository 를 Database 또는 Memory 로설정가능 작업상태를유지하지않아도되는 Batch 작업을수행할경우 Memory Repository 를통해 Job 을실행 <bean id="jobrepository" class="org.springframework.batch.core.repository.support.mapjobrepositoryfactorybean"> <property name="transactionmanager" ref="transactionmanager"/> Page l 14

15 Job Launcher (1/2) 2. Batch 구성요소 개념 JobLauncher 는 Batch 작업을실행시키는역할을수행하며 Job 과 Job Parameters 를이용하여요청된 Batch 작 설정 업을실행후 JobExecution 을반환. <bean id="joblauncher" class="org.springframework.batch.core.launch.support.simplejoblauncher"> <property name="jobrepository" ref="jobrepository" /> JobLauncher Interface 의기본구현클래스로는 SimpleJobLauncher 가제공. SimpleJobLauncher 클래스는 JobName 과 JobParameter 를이용하여 JobRepository 에서 JobExecution 을획득 하고작업을수행함. jobrepository 설정은필수임 Page l 15

16 Job Launcher (2/2) 2. Batch 구성요소 Job 의동기적실행과비동기적실행 JobLauncher 는 taskexecutor 설정을통해 Job 을동기적혹은비동기적으로실행가능. 별도로설정하지않으면 synctaskexecutor 클래스가 Dafault 로설정됨. <bean id="joblauncher" class="org.springframework.batch.execution.launch.simplejoblauncher"> <property name="jobrepository" ref="jobrepository" /> <property name="taskexecutor"> <bean class="org.springframework.core.task.synctaskexecutor" /> </property> <bean id="joblauncher" class="org.springframework.batch.execution.launch.simplejoblauncher"> <property name="jobrepository" ref="jobrepository" /> <property name="taskexecutor"> <bean class="org.springframework.core.task.simpleasynctaskexecutor" /> </property> Page l 16

17 Job Runner (1/3) 2. Batch 구성요소 개념 외부실행모듈과 JobLauncher를연결해주는모듈 유형 Command Line방식, Web 방식 (Scheduler는두가지방식모두가능 ) Job Runner Command Line 방식 Web 방식 Command Line Http JMS Scheduler Cron Scheduler Web Service Page l 17

18 Job Runner (2/3) 2. Batch 구성요소 Command Line 방식 CommandLineJobRunner 라는클래스를이용하면 main 메소드가포함된일반적인 java application 처럼 Spring Batch 의 Job 들을실행 java CommandLineJobRunner [ 설정파일명 ] [ job 이름 ] [Job Parameter A=B 형태 ] 예시 Web 방식 Web 방식은 WebApplicationContext 에 job Launcher 및 job 설정을 bean 으로등록한후, Controller 에 Http Request 요청이왔을때, Job Launcher 의 run() method = RequestMethod.POST) public String batchrun(@requestparam(value = "jobname", required = false) String = "async", required = false) String async, Model model){ try { JobExecution jobexecution = joblauncher.run(jobregistry.getjob(jobname), getuniquejobparameters(jobname));.. Page l 18

19 Job Runner (3/3) 2. Batch 구성요소 Scheduler 설정 Spring Batch 에서는내부적으로 Quartz 를이용해서실행스케줄을설정 Command Line 과 Web 에서모두사용가능 <bean class="org.springframework.scheduling.quartz.schedulerfactorybean"> <property name="triggers"> <bean id="crontrigger" class="org.springframework.scheduling.quartz.crontriggerbean"> <property name="jobdetail" ref="jobdetail" /> <property name="cronexpression" value="0/10 * * * *?" /> </property> <bean id="jobdetail" class="org.springframework.scheduling.quartz.jobdetailbean"> <property name="jobclass" value="org.springframework.batch.sample.quartz.joblauncherdetails" /> <property name="group" value="quartz-batch" /> <property name="jobdataasmap"> <map> <entry key="jobname" value="footballjob"/> <entry key="joblocator" value-ref="jobregistry"/> <entry key="joblauncher" value-ref="joblauncher"/> </map> </property> <bean id="jobregistry" class="org.springframework.batch.core.configuration.support.mapjobregistry" /> Page l 19

20 Job (1/2) 2. Batch 구성요소 Job 개념 Job 은 Batch 작업중심개념으로 Batch 작업자체를의미 Job 은실제프로세스가진행되는 Step 을최상단에서포함하고있으며 Job 의실행은 Batch 작업전체실행의 미 Job 설정 <job id="footballjob job-repository= jobrepository" > <step id="playerload" next="gameload" /> <step id="gameload" next="playersummarization" /> <step id="playersummarization" /> </job> 구분 id step jobrepository job 식별자 설명 job 은적어도하나이상의 step 을정의 Batch 작업실행중 JobExecution 을주기적으로저장하기위한저장소 (default 설정은 'jobrepository' 로생략가능 ) Restart 가능여부설정 동일한 Job Instance 에대해 Job 실패시 Job Restart 를가능하게하는옵션 (COMPLETED 일경우 Restart 불가 ) restartable=false 로설정된 job 을재시작할경우 JobRestartException 발생 Page l 20

21 Job (2/2) 2. Batch 구성요소 Job Instance JobInstance는논리적 Job 실행의개념으로 JobInstance = Job + JobParameters로표현할수있음. JobInstance는동일한 Job이각기다른 JobParameter를통해실행된 Job 실행단위임. Job Parameters JobParameters는하나의 Job에존재할수있는여러개의 JobInstance를구별하기위한 Parameter 집합임. Job이실행되는동안에 Job을식별하거나 Job에서참조하는데이터로사용됨. Job Parameter를통해여러 JobInstance 생성가능. Page l 21

22 Job Execution 2. Batch 구성요소 Job Execution JobExecution 은한번의 Job 시도를의미하는기술적인개념. Status 가 COMPLETED 인 JobExecution 을가진 JobInstance 는 restart 불가. Job 에정의된 Step 들을순서에따라실행 JobRepository 에실행정보저장. Job Execution Property 정보 status starttime 구분 JobExecution 의상태를보여주는지표 - 수행중 : STARTED - 실패 : FAILED - 성공 : COMPLETED Job 이실행된시간 endtime Job 이종료된시간 (Job 성공여부와무관함 ) exitstatus createtime lastupdated executioncontext failureexceptions Job 의실행결과를보여주는상태값 JobExecution 정보가최초에생성된시간 (starttime 보다 createtime 이먼저등록됨 ) 설명 JobExecution 정보가마지막으로변경된시간 JobExecution 정보를담고있는공간 Job 수행동안발생한 Exception 의 List Page l 22

23 Step (1/2) 2. Batch 구성요소 Step 개념 Step은 Job 내부에구성되어실제 Batch작업수행을위해작업을정의하고제어함. Step은 Job의독립적이고순차적단계를캡슐화하는도메인객체이고모든 Job은적어도하나이상의 Step으로구성되며 Step에실제 Batch작업을처리하고제어하기위해필요한모든정보가포함됨. Step에는 JobExecution에대응되는 StepExecution이있음. Job 내에복수개의 Step 설정가능 Job + JobParameter JobInstance + 실행시점 Job 실행내에복수개의 Step 이실행 Step 설정으로여러번의실행가능 Page l 23

24 Step (2/2) 2. Batch 구성요소 Step 설정 Step 에서는입력자원을설정하고어떤방법으로어떤과정을통해처리할지그리고어떻게출력자원을만들 것인지에대한모든설정을포함. <job id="samplejob" job-repository="jobrepository"> <step id="step1"> <tasklet transaction-manager="transactionmanager"> <chunk reader="itemreader" writer="itemwriter" commit-interval="10"/> </tasklet> </step> </job> 구분 설명 reader writer transaction-manager commit-interval Batch 작업을위해 item 을읽는 ItemReader ItemReader 에의해읽힌 item 을쓰는 ItemWriter Spring 의 PlatformTransactionManager 로 Batch 작업중트랜잭션을시작하고커밋하는데사용 (default 설정은 transactionmanger 이며생략가능 ) 트랜잭션이커밋되기전처리되어야할 item 의수 ItemProcessor 속성은옵션이며 ItemProcessor 가없는경우 reader 에서 writer 로직접전달됨 Page l 24

25 Step Execution 2. Batch 구성요소 Step Execution StepExecution은 Step을수행하기위한단한번의 Step 시도를의미하며매번시도될때마다생성. StepExecution은주로 Step이실행중에어떤일이일어났는지에대한속성들을저장하는저장메커니즘역할을하며 commit count, rollback count, start time, end time 등의 Step 상태정보를저장함.(commit 시점에데이터갱신되며, restart, 통계용도로주로사용됨 ) JobRepository로실행정보저장 Event(Exception 등 ) 발생시에 Step Listener를이용해서해당 Event처리가능 구분 설명 status StepExecution의상태를보여주는지표 ( STARTED/ FAILED/ COMPLETED ) starttime Step이시작된시간 endtime Step이종료된시간 exitstatus Step의실행결과를보여주는상태값 readcount 성공적으로읽은데이터의개수 writecount 성공적으로쓴데이터의개수 commitcount StepExecution 동안 Commit된횟수 rollbackcount StepExecution동안 Rollback된횟수 readskipcount 데이터읽기도중실패로인하여 skip한횟수 processskipcount 데이터처리도중실패로인하여 skip한횟수 filtercount ItemProcessor에서 Filtering한데이터의개수 writeskipcount 데이터쓰기도중실패로인하여 skip한횟수 Page l 25

26 Step 유형 2. Batch 구성요소 Chunk-Oriented Processing Spring Batch에서가장일반적으로사용하는 Step 유형 Item 읽기 (Read) 처리 / 변환 (Processor) 쓰기 (Write) 의단계를거치는메커니즘 구성요소 : ItemReader, ItemWriter, PlatformTransactionManager, JobRepository 중요속성 : commit interval( 하나의트랜잭션당처리개수 ), startlimit(step의실행횟수제한 ) Page l 26

27 Step 흐름제어 (1/2) 2. Batch 구성요소 Step Flow Control Step 내의 next 설정과 Decision 설정으로 Job을수행할수있음 Step의처리결과에따라다른 Step을선택하여수행할수있고, 특정 Step의실패가 Job 전체의실패로이어지지않도록구성할수있음 [ 순차적인 Step 실행 ] [ 조건에따른 Step 실행 ] 설명 - 모든 Step을순서대로실행 - Step 엘리먼트의 'next' 어트리뷰트를이용해서설정 - Spring Batch의 XML 설정은 Job 설정최상단 Step이최초로실행되며, 그후의 Step 실행순서는 XML 설정순서와는관계없음 소스코드 <job id="job"> <step id="stepa" parent="s1" next="stepb" /> <step id="stepb" parent="s2" next="stepc"/> <step id="stepc" parent="s3" /> </job> 설명 - 조건에따라 Step 실행 - next 엘리먼트는사용횟수에제한이없으며, 실행실 패에대한 default 설정이없음 소스코드 <job id="job"> <step id="stepa" parent="s1"> <next on="*" to="stepb" /> <next on="failed" to="stepc" /> </step> <step id="stepb" parent="s2" next="stepc" /> <step id="stepc" parent="s3" /> </job> Page l 27

28 Step 흐름제어 (2/2) 2. Batch 구성요소 Batch Status 와 Exit Status 의관계 구분 Batch Status Exit Status 특징 Job 과 Step 의수행상태표현 Step 의수행이완료된시점의상태표현 상태값 COMPLETED, STARTING, STARTED, STOPPING, STOPPED, FAILED, ABANDONED or UNKNOWN EXECUTING, COMPLETED, NOOP, STOPPED, FAILED, UNKNOWN & Custom Exit( 사용자정의가능 ) 활용 배치운영환경에서 Job 의상태를확인하고자할경우에사용 Step 이나 decision 의 next on 에해당하는조건값으로사용 표현 JobExecution, StepExecution 테이블의 status 항목에기록 JobExecution 과 StepExecution 테이블의 ExitCode 항목에기록 Page l 28

29 ItemReader 와 ItemWriter(1/3) 2. Batch 구성요소 Item 종류 Item 의종류로는 Reader( 필수 ), Processor( 옵션 ), Writer( 필수 ) 가있음 ItemProcessor ItemProcessor 는아이템변환및처리를목적으로하고, Generic 개념의도입으로타입안정성까지강화 public interface ItemProcessor<I, O> { process(i item) throws Exception; } Foo 타입의 input 을받아 Bar 타입으로변환하는예 public class FooProcessor implements ItemProcessor<Foo,Bar>{ public Bar process(foo foo) throws Exception { //Perform simple transformation, convert a Foo to a Bar return new Bar(foo); } } Page l 29

30 ItemReader 와 ItemWriter(2/3) 2. Batch 구성요소 ItemReader 의종류 Flat File, XML, Database 등의데이터타입을입력받을수있음 ItemReader AggregateItemReader FlatFileItemReader StaxEventItemReader JdbcCursorItemReader 설명 DelegatingItemReade 를확장한클래스. Read 메소드의결과로 java.util.collection 객체를반환함. 직접파일을 READ 하지않고대신 READ 할클래스를지정함 ( 주로 Parrlel 작업에사용됨 ) 플랫파일을읽어와서 read() 메소드에서 String 을반환함. Flat file 에서 item 을읽어들이며 ItemStream 을구현하고있음. StAX 를통해서 XML 파일에서 Item 을읽음 JDBC 를이용해서 DB 에서 Item 을읽어옴 HibernateCursorItemReader 하이버네이트의 HQL 을사용해서커서기반으로 Item 조회를함. IbatisPagingItemReader ibatis 를통해 Driving query 기반으로 Item 을읽어들임 JmsItemReader read 메서드에서 javax.jms.message 객체를반환. Spring 의 JmsOperations 객체의 receive 메소드를통해서 Item 을조회함 JpaPagingItemReader JPQL 문에기반하여 row 를페이지단위로읽어큰데이터를읽을때메모리부족이생기지않음 JdbcPagingItemReader SQL 문에기반하여 row 를페이지단위로읽어큰데이터를읽을때메모리부족이생기지않음 Page l 30

31 ItemReader 와 ItemWriter(3/3) 2. Batch 구성요소 ItemWriter 의종류 Flat File, XML, Database 등을지원함 ItemWriter AbstractItemStreamItemWriter CompositeItemWriter 설명 ItemStream and ItemWriter interfaces 를결합하여만든 Abstract Class 가장기본적인 ItemWriter Interface Item 을 List 로담겨진여러개의 ItemWriter 에게전달하여처리한다 ItemWriterAdapter 다른어플리케이션의클래스를 Spring Batch 에적용할수있도록하는 ItemWriter interface 이다. PropertyExtractingDelegatingItemW riter FlatFileItemWriter HibernateItemWriter JdbcBatchItemWriter JpaItemWriter StaxEventWriterItemWriter ItemWriter 인터페이스를구현하지않은기존의클래스를 ItemWriter 로쓰고자할때, 이 ItemWriter 의구현체를써서기존클래스에파라미터로넘겨질속성값들을지정하고실행할수있다 Item 을 String 으로변환해서 Flat File 에쓸수있게하는 ItemWriter Hibernate 를이용하여 DB 로 Item 을쓸수있게하는 ItemWriter Jdbc 를이용해 Batch Update 의형태로 DB 로 Item 을쓸수있게하는 ItemWriter JPA EntityManager 인식및핸들링할수있는 ItemWriter StAX 를이용해서 Item 을 XML 파일에쓰는 ItemWriter Page l 31

32 Page l 32

33 Spring Batch 2.x 주요업그레이드 (1/4) 3. Spring Batch 2.x Java 5 Annotation, Generic 지원 Spring Batch Chunk Oriented Processing 1.x에서는 Item 기반으로작업처리 Chunk 기반처리는지정한크기만큼 Item을읽고처리한후이결과를 List의형태로가지고있다가한번에쓰 는방식 Page l 33

34 Spring Batch 2.x 주요업그레이드 (2/4) 3. Spring Batch 2.x Xml Namespace 1.x 에서는 XML 설정시모든설정을 Bean으로등록 2.0 에서는 XML Namespace가추가되어 XML 설정상에서 Job과 Step과의관계를명시적으로확인할수있으며사용하고있는 Item Reader/writer 파악용이 [ Spring Batch 1.x ] [ Spring Batch 2.x ] Page l 34

35 Spring Batch 2.x 주요업그레이드 (3/4) 3. Spring Batch 2.x Meta Data enhancements 1.x에서는 Batch 작업실행중인상태에서 JobRepository에직접접근불가 2.x에서는 JobExplorer와 JobOperator가추가되었고이를통해 JobRepository에접근할수있게되어 Batch작업수행도중 Meta Data를조회하거나실행중인 Job을제어할수있음 Page l 35

36 Spring Batch 2.x 주요업그레이드 (4/4) 3. Spring Batch 2.x Non Sequential Step Execution 1.x의경우모든 Step의실행이순차적으로이루어져예외상황발생시해당 Item은 Skip하고다음 Item을처리하거나해당 Job의 Fail 처리를 Listener나 ItemProcessor를통해제어 2.0은추가된 Control Flow를이용하면현재진행중인작업의처리결과상태 (Exit Status) 에따라수행할다음 Step을지정하거나우회된 Step으로진행하거나 Job 중지가가능 [ 조건처리 ] [ Step 제어방식의변화 ] Page l 36

37 Page l 37

38 Flat File 처리 (1/4) 4. Batch Processing Flat File 플랫파일은 2 차원데이터를포함하는유형의파일로 Flat File 을읽고파싱하는기본적인기능을제공함. Flat File 의두가지 Token 방식 구분 설명 구분자 (delimiter) 를이용하여 Element 를구분함 1. 파일에서한줄읽기 2. 한줄문자열을 LineTokenizer.tokenize() 메소드에전달해서 FieldSet 을받아옴 3. 반환받은 FieldSet 을 FieldSetMapper 에게전달하고, 그결과객체를 ItemReader.read() 에서반환. 구분자 (Delimited) 방식 FlatFileItemReader itemreader = new FlatFileItemReader(); itemreader.setresource(new FileSystemResource("resources/players.csv")); //DelimitedLineTokenizer defaults to comma as it's delimiter itemreader.setlinetokenizer(new DelimitedLineTokenizer()); itemreader.setfieldsetmapper(new PlayerFieldSetMapper()); itemreader.open(new ExecutionContext()); Player player = (Player)itemReader.read(); 전문과같이고정길이의문자열을통해 Element 를구분함 고정길이 (Fixed Length) 방식 1. 파일에서한줄읽기 2. FixedLengthLineTokenizer() 메소드이용 FieldSet 을받아옴 3. 반환받은 FieldSet 을 FieldSetMapper 에게전달하고, 그결과객체를 ItemReader.read() 에서반환. <bean id="fixedlengthlinetokenizer" class="org.springframework.batch.io.file.transform.fixedlengthtokenizer"> <property name="names" value="isin, Quantity, Price, Customer" /> <property name="columns" value="1-12, 13-15, 16-20, 21-29" /> Page l 38

39 Flat File 처리 (2/4) 4. Batch Processing Flat File Read Mechanism Item 을한라인씩읽어서 String 으로변환후에 VO 로변환 FlatFile 1 Line String By FlatFileItemReader (BufferdReader.readLine() 호출 ) String FieldSet By LineTokenizer 1) DelimitedLineTokenizer ( 구분자 ) 2) FixedLengthTokenizer ( 고정길이 ) 3) PrefixMatchingCompositeLineTokenizer( 앞첨자 ) FieldSet Mapped Object By FieldSetMapper Flat File Write Mechanism Object List 형태의 Item 을받아와서 StringBuffer 에한라인씩 Add 한후 FileWriter 를통해 File 로변환 Mapped Object FieldSet By FieldExtractor FieldSet String By LineAggregater 1) Delimited, 2) FixedLength String FlatFile 1 Line By FlatFileItemWriter Page l 39

40 Flat File 처리 (3/4) FlatFileItemReader 4. Batch Processing Flat File 읽기설정 (Fixed Length 방식 ) FlatFileReader 를통해 txt 파일을한라인씩읽은후에 VO 의 field 값에 Mapping 할길이를지정하여 Tokenizing 하고 Tokenizing 된결과를 VO 에 Mapping 하는예제 <bean id="itemreader" class="org.springframework.batch.item.file.flatfileitemreader"> <property name="resource" value="data/iosample/input/fixedlength.txt" /> <property name="linemapper"> <bean class="org.springframework.batch.item.file.mapping.defaultlinemapper"> <property name="linetokenizer"> <bean class="org.springframework.batch.item.file.transform.fixedlengthtokenizer"> <property name="names" value="name,credit" /> <property name="columns" value="1-9,10-11" /> </property> <property name="fieldsetmapper"> <bean class="org.springframework.batch.item.file.mapping.beanwrapperfieldsetmapper"> <property name="targettype value="org.springframework.batch.sample.domain.trade.customercredit" /> </property> </property> Page l 40

41 Flat File 처리 (4/4) FlatFileItemWriter 4. Batch Processing Flat File 쓰기설정 (Fixed Length 방식 ) FieldExtractor 를통해 VO 의 field 값에서값을꺼내와서지정한 Format 으로변환하여한라인으로합친후에 File 에 Write 를수행하는예제 <bean id="itemwriter" class="org.springframework.batch.item.file.flatfileitemwriter"> <property name="resource" ref="outputresource" /> <property name="lineaggregator"> <bean class="org.springframework.batch.item.file.transform.formatterlineaggregator"> <property name="fieldextractor"> <bean class="org.springframework.batch.item.file.transform.beanwrapperfieldextractor"> <property name="names" value="name,credit" /> </property> <property name="format" value="%-9s%-2.0f" /> </property> <bean id="outputresource" class="org.springframework.core.io.filesystemresource"> <constructor-arg value="target/test-outputs/fixedlengthoutput.txt" /> Page l 41

42 XML File 처리 (1/3) 4. Batch Processing Xml File 처리방안 XML 처리과정에서토크나이징이필요한레코드의행 (FieldSet) 대신에 XML 자원을개별레코드에대응되는 Fragments 의콜렉션으로가정. Spring Batch 는 Fragment 를객체로바인드하는데 Object/XML Mapping(OXM) 을사용. 그렇지만 Spring Batch 는특정 XML 바인딩기술에종속되지않음. 대표적인사용방법은가장대중적인 OXM 기술에대한일관된추상화를제공하는 Spring OXM 에위임. Spring OXM 에대한의존성은선택이며, 필요시 Spring Batch 에서특정인터페이스를구현하도록선택가능.(JDK 6 에기본으로포함 ) Page l 42

43 XML File 처리 (2/3) 4. Batch Processing StaxEventItemReader XML레코드처리시설정항목 설정항목 설명 fragmentrootelementname 매핑되는객체를구성하는프레그먼트의루트엘리먼트이름. resource 읽어들일데이터의위치를지정 ( 파일이나 URL 등 ) unmarshaller XML 프레그먼트를객체로매핑하는 Spring OXM 에의해서제공되는언마샬링기능 StaxEventItemWriter XML 레코드처리시설정항목 resource marshaller 설정항목 작성할파일의위치 설명 객체를 XML 프레그먼트로매핑하는 Spring OXM 에의해서제공되는마샬링기능 roottagname 객체를 XML 에매핑할때사용하는루트태그이름. Page l 43

44 XML File 처리 (3/3) 4. Batch Processing XML Reader/Writer 설정 <bean id="itemreader" class="org.springframework.batch.item.xml.staxeventitemreader"> <property name="fragmentrootelementname" value="customer" /> <property name="resource" value="data/iosample/input/input.xml" /> <property name="unmarshaller" ref="customercreditmarshaller" /> XML파일을 Object로변환 <bean id="itemwriter" class="org.springframework.batch.item.xml.staxeventitemwriter"> <property name="resource" ref="outputresource" /> <property name="marshaller" ref="customercreditmarshaller" /> Object를 XML파일로변환 <property name="roottagname" value="customers" /> <property name="overwriteoutput" value="true" /> <bean id="customercreditmarshaller" class="org.springframework.oxm.xstream.xstreammarshaller"> <property name="aliases"> <util:map id="aliases"> <entry key="customer value="org.springframework.batch.sample.domain.trade.customercredit" /> <entry key="price" value="java.math.bigdecimal" /> <entry key="name" value="java.lang.string" /> </util:map> </property> Page l 44

45 Multi File 처리 4. Batch Processing Multi File 처리 N N: N 개의대상을읽은후읽은개수만큼결과물을만들어냄. 다수의파일 ( 동일유형의복수개의파일 ) 을대상으로동일유형의 Batch 처리시사용. 하나의 Reader 와 Writer 를지정하며 XML 과 Flat File 등다양한입력타입을제공 Reader 설정 MultiResourceItemReader 를통해 1 개이상의리소스를읽어온다음 Reader 에게데이터처리를위임함. input resource 경로에 * 를사용하여다수의파일을처리가능. <bean id="multiresourcereader class="org.springframework.batch.item.sortedmultiresourceitemreader"> <property name="resources" value="classpath:data/multiresourcejob/input/file-*.txt" /> <property name="delegate" ref="flatfileitemreader" /> Writer 설정 MultiResourceItemWriter 를통해출력파일의개수를지정한다음 Writer 에게데이터처리를위임. <bean id="itemwriter class="org.springframework.batch.item.file.multiresourceitemwriter scope="step"> <property name="resource" value="#{ jobparameters['output.file.path']}" /> <property name="itemcountlimitperresource" value="6" /> <property name="delegate" ref="delegatewriter" /> Page l 45

46 DB 처리 4. Batch Processing DB 처리 DB는 Batch 저장메커니즘의중심으로만일 SQL 문이백만행을반환하는경우결과집합은모든행을읽을때까지메모리에모든결과를보유함. Spring Batch는이문제를해결하기위해 Cursor와 Paging기반 Database ItemReader를제공. DB처리방식의유형 구분유형설명 처리건수축소 대상의범위축소 Cursor 기반 Paging 기반 Driving Query 1 라인씩읽어서처리 Page Size 만큼읽어서처리 1 단계 : 조회조건을통해 Primary Key 도출 2 단계 : Primary Key 를이용하여데이터처리 처리가능 DB 유형 구분 설명 JDBC ibatis Hibernate 가장기본적인데이터접근지원프레임워크 DriverManager 클래스, Connection, 다양한구문, ResultSet 클래스로구성 특징 : 일괄처리능력 ORM 도구로자바빈프로퍼티값을생성하는데필요한 SQL 코드직접작성. 각데이터베이스에서표준 SQL 을확장한기능을완벽히사용가능 - 객체 - 관계매핑도구로자바코드에최소한의영향을가하여 DB 에있는일반자바객체를찾고저장하고삭제가가능 Page l 46

47 기존서비스재사용 4. Batch Processing 배치업무의유형 구분업무유형배치구현방안 배치전용프로그램 설계초기부터대량 (Bulk) 데이터처리고려해서구현 ItemReader ItemWriter 온라인시스템, Thin Client Program 기존의 Service, Dao 를배치업무로사용 ItemReaderAdapter ItemWriterAdapter 구현방안 targetmethod 가 read() 메소드의형태와동일해야함. ItemReader 인터페이스를구현하고있는클래스가아니더라도메소드호출시하나씩읽어온 Object 를반환하고더읽을것이없으면 null 을반환하는 ItemReader 의동작방식만만족한다면사용가능. ItemReader 의경우 ItemReaderAdapter 를이용해서 targetobject 속성에서실행할클래스의 bean 선언을참조하고 tagetmethod 속성에서 ItemReader.read() 와같은역할을하는메소드를지정함. <bean id="itemreader" class="org.springframework.batch.item.adapter.itemreaderadapter"> <property name="targetobject" ref="fooservice" /> <property name="targetmethod" value="generatefoo" /> <bean id="fooservice" class="org.springframework.batch.item.sample.fooservice" /> <bean id="itemwriter class="org.springframework.batch.item.adapter.itemwriteradapter"> <property name="targetobject" ref="fooservice" /> <property name="targetmethod" value="processfoo" /> <bean id="fooservice" class="org.springframework.batch.item.sample.fooservice" /> Page l 47

48 Page l 48

49 Scaling and Parallel Processing (1/3) 5. Batch Support Multi-threaded Step 하나의 StepExecution 을여러개의 Thread 로처리하는형태 가장단순한병렬처리로 Step 구성요소중 <tasklet> 속성에 TaskExecutor 를추가하여구현 Multi-thread 처리를원하는 Step 의경우 tasklet 에비동기설정필요 <step id="loading"> <tasklet task-executor="taskexecutor">...</tasklet> </step> <bean id="taskexecutor" class="org.springframework.core.task.simpleasynctaskexecutor" /> Thread 의수는기본값으로 4 가설정되어있으나필요하다면증가시켜사용가능 <step id="loading"> <tasklet task-executor="taskexecutor" throttle-limit="20">... </tasklet> </step> Page l 49

50 Scaling and Parallel Processing (2/3) 5. Batch Support Parallel Step 병렬화가필요한부분에따라영역을나눈후각단계별로할당하여하나의프로세스에서병렬처리가능 각작업분할은최종종료상태로통합되기전에모두완료하도록구성해야함 분리된 flow들이모두완료되어야만다음 step으로진행가능 <job id="job1"> <split id="split1" task-executor="taskexecutor" next="step4"> <flow> <step id="step1" parent="s1" next="step2" /> <step id="step2" parent="s2" /> </flow> <flow> <step id="step3" parent="s3" /> </flow> </split> <step id="step4" parent="s4" /> </job> <beans:bean id="taskexecutor" class="org.spr...simpleasynctaskexecutor" /> Page l 50

51 Scaling and Parallel Processing (3/3) 5. Batch Support Partitioning Spring Batch 는 Step Partitioning 과 Remote execution 지원 설정항목 설명 Grid-Size - 실행할 Context 영역의개수를지정하는단위 (Thread Pool 개수지정 ) - Grid-Size 만큼의 Context 가생성되며, 각 Context 마다데이터가나뉘어져들어감 Page l 51

52 Listener 5. Batch Support Listener Batch 처리중이벤트발생시해당이벤트를 Intercepting 하여필요한 Logic 수행 사용예 Job 설정파일에서 <listener> 이용해등록 <job id="compositeitemwriterjob" xmlns=" > <step id="compositeitemwriterstep1"> <tasklet> <chunk reader="fileitemreader" processor="processor" writer="compositewriter commit-interval="1"> <streams> <stream ref="fileitemreader"/> <stream ref="fileitemwriter1"/> <stream ref="fileitemwriter2"/> </streams> </chunk> </tasklet> <listeners> <listener ref="forsteptestlistener" /> </listeners> </step> <listeners> <listener ref="forjobtestlistener" /> </listeners> </job> <bean id="forsteptestlistener" class="org.springframework.batch.sample.forsteptestlistener" /> <bean id="forjobtestlistener" class="org.springframework.batch.sample.forjobtestlistener" /> Page l 52

53 Page l 53

54 실행환경배치처리레이어 (1/5) 6. egovframe Batch 제공기능 표준프레임워크배치실행환경은 3 개레이어 (Core, Support, Execution Layer) 로구성되며, 일괄 ( 배 치 ) 처리를위한기반환경을제공 Presentation Layer Job Configuration Step Configuration ItemReader/ ItemWriter 배치실행환경구성 Business Logic Layer Batch Layer Batch Core Batch Execution Batch Support Job Execution Step Execution Tasklet 표준프레임워크실행환경 Foundation Layer 전자정부표준프레임워크 Data Layer Job Repository Job Launcher Job Runner Integration Layer Skip/Repeat/ Retry History Management Pre/Post Processing Batch Layer Scalability Sync/Async Processing Parallel Processing 표준프레임워크 배치실행환경 구현 배치실행관리 다양한배치실행기능지원 병렬처리 주요내용 - 시작 (Run) - 재시도 (Retry) - 건너뛰기 (Skip) - 재시작 (Restart) 전처리 / 후처리관리 프로세스전 / 후단계에서이벤트처리 (Event Handling) 기능제공 배치처리시멀티스레드기반의병렬처리기능제공 Page l 54

55 실행환경배치처리레이어 (2/5) 6. egovframe Batch 제공기능 egovframe Batch Architecture 표준프레임워크배치실행환경은일괄처리기능구현에필요한사항을프레임워크영역에서제공함으로써개발자의변경부분을작업설정및비즈니스구현등으로최소화 Run Tier Job Tier Application Tier 분류 구성요소 제공기능 JobLauncher Job Runner Job 실행유형설정 Scheduler Http, Web Service Command- Line JobRunner egovjob Job 설정 egovstep Step 설정 ItemReader ItemProcessor ItemWriter Run Tier Job Tier Job Locator Job Configuration Job Launcher Job 기등록한 Job 검색기등록한 Job 설정 Job 실행모듈 Job 정보설정 JobRepository Job Repository Job 수행이력기록 [ 범례 ] 외부실행모듈표준프레임워크제공개발대상모듈 표준프레임워크실행환경 Presentation Layer Business Logic Layer Data Layer Foundation Layer 전자정부표준프레임워크 Integration Layer 처리흐름 참조 Batch Layer Application Tier Step Item Reader Item Processor Item Writer Step 정보설정 리소스형식에따라데이터읽기 비즈니스처리 리소스형식에따라데이터쓰기 Page l 55

56 실행환경배치처리레이어 (3/5) 6. egovframe Batch 제공기능 전자정부배치실행환경구성요소 분류기술요소제공기능 Batch Core Batch Execution Batch Support Job Configuration Step Configuration ItemReader/ItemWriter Job Execution Step Execution Tasklet Job Repository Job Runner Job Launcher History Management Scalability Sync/Async Processing Parallel Processing Pre/Post Processing Skip/Repeat/Retry Job 설정기능제공 Step 설정기능제공 File/DB 처리기능제공 Job Instance 의수행기능제공 Step Instance 의수행기능제공 Job 의실행중배치작업외단순처리가필요한작업 ( 파일이동등 ) 의처리기능을제공 JobExecution, StepExecution 정보를저장 Scheduler, CommandLine (CronTab), Http/Webservice 방식지원인터페이스제공 Job Repository 및실행방법설정기능제공 JobRepository 와이력관리기능제공 Partitioning 기능제공 JobLauncher 설정을통한동기 / 비동기처리기능제공 Job 설정을사용하여병렬처리기능제공 Listener 를사용한전처리 / 후처리 Event Handling 기능제공 건너뛰기, 반복, 재시도기능제공 Page l 56

57 실행환경배치처리레이어 (FlatFileItemReader) 6. egovframe Batch 제공기능 Flat File 처리 - egovframe Batch 제공 FlatFileItemReader 파일 ItemReader의요소중성능저하요인인 LineMapper 부분개선. FieldSet을사용하지않으므로 Tokens FieldSet으로변환하는과정이없음. 전자정부 Batch 실행환경에서제공하는 EgovDefaultLineMapper, EgovLineTokenizer, EgovObjectMapper를사용하는경우 Token 상태에서 Object로직접맵핑됨. 개선항목 EgovDefaultLineMapper EgovLineTokenizer EgovAbstractLineTokenizer EgovDelimitedLineTokenizer EgovObjectMapper 설명 EgovLineTokenizer 와 EgovObjectMapper 가변경됨에따라 LineMapper 총과정을제어하는 DefaultLineMapper 를변경하여 EgovDefaultLineMapper 제공 전자정부에서는 FieldSet 을사용하지않기때문에 FieldSet 을반환하는 LineTokenizer 인터페이스를변경하여 EgovLineTokenizer 제공 LineTokenizer 인터페이스가 EgovLineTokenizer 로변경됨에따라토크나이징만관여하는추상클래스 EgovAbstractLineTokenizer 제공 Spring 에서제공하는 DelimitedLineTokenizer 의성능을개선한 EgovDelimitedLineTokenizer 제공 전자정부에서는 FieldSet 을사용하지않고토크나이징된값들을직접 Object 에맵핑하는 EgovObjectMapper 를제공 Page l 57

58 실행환경배치처리레이어 (FlatFileItemWriter) 6. egovframe Batch 제공기능 Flat File 처리 - egovframe Batch 제공 FlatFileItemWriter - Spring Batch 의 FileItemWriter 개선사항 개선항목 BeanWrapperFieldExtractor 성능개선 FormatterLineAggregator 경량화 설명 item 에서 field 값을추출하는과정의성능을개선한 EgovFieldExtractor 제공 FormatterLineAggregator 를경량화하여고정길이방식의 EgovFixedLineAggregator 제공 Page l 58

59 DB 처리 - egovframe Batch 제공 DB ItemWriter 6. egovframe Batch 제공기능 DB 처리 - egovframe Batch 제공 DB ItemWriter Spring 에서제공하는 JdbcBatchItemWriter 는상용 Batch F/W 와비교하여대용량데이터처리속도차이발생 JdbcBatchItemWriter 에서는사용자가 PreparedStatement 를 setter 하기위한클래스를직접작성하지않으 며 XML 설정시쿼리의파라미터값을지정하여자동으로 PreparedStatement 를 setter 해주는기능제공 Spring Batch 설정 : sql 작성시필드명에 : 을붙여서작성 <bean id="empdbbatchwriter" class="org.springframework.batch.item.database.jdbcbatchitemwriter"> <property name="assertupdates" value="true" /> <property name="itemsqlparametersourceprovider"> <bean class= BeanPropertyItemSqlParameterSourceProvider" /> </property> <property name="sql" value="insert into UIP_EMPLOYEE (num, name, sex) values (:num, :name, :sex)" /> <property name="datasource" ref="datasource" /> 전자정부배치설정 : sql 작성시? 로설정하고필드명을 params 에작성 <bean id="egovjdbcbatchitemwriter3" class="org.springframework.batch.item.database.egovjdbcbatchitemwriter"> <property name="assertupdates" value="true" /> <property name="itempreparedstatementsetter"> <bean class=..egovmethodmapitempreparedstatementsetter" /> </property> <property name="sql value="insert into UIP_EMPLOYEE (num, name, sex) values (?,?,?)" /> <property name="params" value="num, name, sex"/> <property name="datasource" ref="datasource" /> Page l 59

60 Job Runner egovframe Batch 제공 6. egovframe Batch 제공기능 Batch Runner 유형 전자정부배치실행환경에서는작업실행유형에따라미리 JobRunner 를구현한표준 Batch Runner 를제공 유형 EgovBatchJobRunner Web, Java Application 등을이용하여범용적으로실행되는일괄처리작업에사용. EgovCommandLineRunner 외부프로그램 (Windows: / Unix/Linux: crontab 등 ) 이나명령프롬프트 (Windows: bat / Unix/Linux: Shell) 에서독립적으로실행되는 Batch 작업에사용. 설명 EgovSchedulerRunner 주기적으로실행되어야하는일괄처리작업에사용. 유형별 Batch Runner 제공기능 유형 Java Application 실행 Web 실행 Job 상태모니터링 Scheduling 기능 EgovBatchRunner, EgovSchedulerRunner 에서명령프롬프트연동을위해서는추가적인구현이필요 명령프롬프트연동지원 EgovBatchJobRunner X EgovCommandLineRunner X X EgovSchedulerRunner X Page l 60

61 Page l 61

62 Page l 62

63 실행환경배치처리레이어 7. 참고자료 - egovframe Batch 제공기능 Flat File 처리 (Delimited) - egovframe Batch 제공 FlatFileItemReader (1/3) 읽어들인문자열에서구분자를경계값으로사용하여필드를분리 <bean id="itemreader" class="org.springframework.batch.item.file.flatfileitemreader" scope="step"> <property name="resource" value="#{jobparameters[inputfile]}" /> <property name="linemapper"> <bean class="egovframework. rte.bat.core.item.file.mapping.egovdefaultlinemapper"> <property name="linetokenizer"> <bean class="egovframework.rte.bat.core.item.file.transform.egovdelimitedlinetokenizer"> <property name="delimiter" value=","/> </property> <property name="objectmapper"> <bean class="egovframework.rte.bat.core.item.file.mapping.egovobjectmapper"> <property name="type" value="egovframework.brte.sample.domain.trade.customercredit" /> <property name="names" value="name,credit" /> </property> </property> 설정항목내용예시 delimiter 필드의경계를구별해주는문자, ( 콤마 ) type VO 클래스 org.springframework.batch.customercredit names VO 클래스의필드 name,credit Page l 63

64 실행환경배치처리레이어 7. 참고자료 - egovframe Batch 제공기능 Flat File 처리 (FixedLength) - egovframe Batch 제공 FlatFileItemReader (2/3) 읽어들인문자열에서필드의경계를파일내의문자열길이로판단하여필드를분리 <bean id="itemreader" class="org.springframework.batch.item.file.flatfileitemreader" scope="step"> <property name="resource" value="#{jobparameters[inputfile]}" /> <property name="linemapper"> <bean class="egovframework.rte.bat.core.item.file.mapping.egovdefaultlinemapper"> <property name="linetokenizer"> <bean class="egovframework.rte.bat.core.item.file.transform.egovfixedlengthtokenizer"> <property name="column" value="1-9,10-11" /> </property> <property name="objectmapper"> <bean class="egovframework.rte.bat.core.item.file.mapping.egovobjectmapper"> <property name="type" value="egovframework.brte.sample.domain.trade.customercredit" /> <property name="names" value="name,credit" /> </property> </property> 설정항목내용예시 column 필드경계의범위 1-9,10-11 type VO 클래스 org.springframework.batch.customercredit names VO 클래스의필드 name,credit Page l 64

65 실행환경배치처리레이어 7. 참고자료 - egovframe Batch 제공기능 Flat File 처리 (ByteLength) - egovframe Batch 제공 FlatFileItemReader (3/3) EgovFixedByteLengthTokenizer 는 FixedLengthTokenizer 와유사하나, byte 문자열을기준으로필드의경계값 을구해필드를분리 <bean id="itemreader" class="org.springframework.batch.item.file.flatfileitemreader" scope="step"> <property name="resource" value="#{jobparameters[inputfile]}" /> <property name="linemapper"> <bean class="egovframework.brte.core.item.file.mapping.egovdefaultlinemapper"> <property name="linetokenizer"> <bean class="egovframework.brte.core.item.file.transform.egovfixedbytelengthtokenizer"> <property name="encoding" value="utf-8"/> <property name="columns" value="1-9,10-11" /> </property> <property name="objectmapper"> <bean class="egovframework.brte.core.item.file.file.mapping.egovobjectmapper"> <property name="type" value="egovframework.brte.sample.domain.trade.customercredit" /> <property name="names" value="name,credit" /> </property> </property> 설정항목내용예시 column 필드경계의길이 1-9,10-11 encoding byte 문자열인코딩타입 utf-8 type VO 클래스 org.springframework.batch.customercredit names VO 클래스의필드 name,credit Page l 65

66 실행환경배치처리레이어 7. 참고자료 - egovframe Batch 제공기능 Flat File 처리 ( FixedLength ) - egovframe Batch 제공 FlatFileItemWriter (1/2) <bean id="itemwriter" class="org.springframework.batch.item.file.flatfileitemwriter" scope="step"> <property name="resource" value="#{jobparameters[outputfile]}" /> <property name="lineaggregator"> <bean class="egovframework.brte.core.item.file.transform.egovfixedlengthlineaggregator"> <property name="fieldextractor"> <bean class="egovframework.brte.core.item.file.transform.egovfieldextractor"> <property name="names" value="name,credit" /> </property> <property name="fieldranges" value="9,2" /> </property> EgovFlatFileItemWriter 설정항목 (FixedLength) fieldranges names VO 클래스의필드를나타낸다. 설명 Item 의필드값들을 1 Line 의 String 으로만들때필드값의범위 ( 고정길이 ) 지정 Page l 66

67 실행환경배치처리레이어 7. 참고자료 - egovframe Batch 제공기능 Flat File 처리 (Delimited) - egovframe Batch 제공 FlatFileItemWriter (2/2) <bean id="itemwriter" class="org.springframework.batch.item.file.flatfileitemwriter" scope="step"> <property name="resource" value="#{jobparameters[outputfile]}" /> <property name="lineaggregator"> <bean class="org.springframework.batch.item.file.transform.delimitedlineaggregator"> <property name="fieldextractor"> <bean class="egovframework.brte.core.item.file.transform.egovfieldextractor"> <property name="names" value="name,credit" /> </property> <property name="delimiter" value=","/> </property> EgovFlatFileItemWriter 설정항목 (Delimited ) delimiter names VO 클래스의필드를나타낸다. 설명 Item 의필드값들을 1 Line 의 String 으로만들때경계가되는구분자지정 Page l 67

68 Appendix. Chunk Oriented Processing 7. 참고자료 -Batch Core Data를한번에하나씩읽고, 트랜잭션범위내에서 'Chunk' 를만든후한번에쓰는방식. 즉, 하나의 item이 ItemReader를통해읽히고, Chunk 단위로묶인 item들이한번에 ItemWriter로전달되어쓰이게됨. Commit-Interval 횟수만큼데이터를읽어서처리한후한번에 Write함 Page l 68

69 Appendix. Chunk Oriented Processing Restart 7. 참고자료 -Batch Core start-limit 각 Step 실행횟수를설정하는옵션으로 default 값은 Integer.MAX_VALUE 임. <step id="step1"> <tasklet start-limit="1"> <chunk reader="itemreader" writer="itemwriter" commit-interval="10" /> </tasklet> </step> allow-start-if-complete Job 의 Restart 시 COMPLETED 로완료된 Step 의실행여부를설정하는옵션. true 로설정시, COMPLETED 로완료한 Step 도다시실행되며, false 설정시, COMPLETED 로완료한 Step 은 skip 됨. 아래예제에서 step1 Step 은 10 번만실행가능하며 Job 을 Restart 했을시, 이전시도와관계없이재실행됨. <step id="step1"> <tasklet allow-start-if-complete="true"> <chunk reader="itemreader" writer="itemwriter" commit-interval="10" /> </tasklet> </step> Page l 69

70 Appendix. Chunk Oriented Processing - Retry 7. 참고자료 -Batch Core Retry Batch 작업수행중오류발생시지정한횟수만큼반복해서처리하는옵션 Batch 수행중 Exception 발생시 3 번만큼재시도하는예제 <job id="retrysample"> <step id="step1"> <tasklet> <chunk reader="itemgenerator" writer="itemwriter" commit-interval="1" retry-limit="3"> <retryable-exception-classes> java.lang.exception </retryable-exception-classes> </chunk> </tasklet> </step> </job> Page l 70

71 Appendix. Chunk Oriented Processing Skip 7. 참고자료 -Batch Core Skip Batch 작업수행중오류발생시해당오류를처리하지않고넘기는옵션 Batch 수행중 FlatFileParseException 이나 WriteFailedException 발생시 10 회의오류까지는넘기는예제 (Skip 하면서 ExitCode 를 COMPLETED WITH SKIPS 로변환하는로직이내부적으로포함 ) <job id="skipjob" incrementer="incrementer"> <step id="step1" parent="basestep"> <tasklet> <chunk reader="fileitemreader" processor="tradeprocessor" writer="tradewriter" commit-interval="3" skip-limit="10"> <skippable-exception-classes> org.springframework.batch.item.file.flatfileparseexception org.springframework.batch.item.writefailedexception </skippable-exception-classes> </chunk> </tasklet> <next on="*" to="step2" /> <next on="completed WITH SKIPS" to="errorprint1" /> <fail on="failed" exit-code="failed"/> </step>... </job> Page l 71

72 Appendix. ItemReader 와 ItemWriter (1/2) 7. 참고자료 -Batch Core ItemReader 의종류 Flat File, XML, Database 등의데이터타입을입력받을수있음 ItemReader AggregateItemReader FlatFileItemReader StaxEventItemReader JdbcCursorItemReader 설명 DelegatingItemReade 를확장한클래스. Read 메소드의결과로 java.util.collection 객체를반환함. 직접파일을 READ 하지않고대신 READ 할클래스를지정함 ( 주로 Parrlel 작업에사용됨 ) 플랫파일을읽어와서 read() 메소드에서 String 을반환함. Flat file 에서 item 을읽어들이며 ItemStream 을구현하고있음. StAX 를통해서 XML 파일에서 Item 을읽음 JDBC 를이용해서 DB 에서 Item 을읽어옴 HibernateCursorItemReader 하이버네이트의 HQL 을사용해서커서기반으로 Item 조회를함. IbatisPagingItemReader JmsItemReader JpaPagingItemReader JdbcPagingItemReader ibatis 를통해 Driving query 기반으로 Item 을읽어들임 read 메서드에서 javax.jms.message 객체를반환. Spring 의 JmsOperations 객체의 receive 메소드를통해서 Item 을조회함 JPQL 문에기반하여 row 를페이지단위로읽어큰데이터를읽을때메모리부족이생기지않음 SQL 문에기반하여 row 를페이지단위로읽어큰데이터를읽을때메모리부족이생기지않음 Page l 72

73 Appendix. ItemReader 와 ItemWriter (2/2) 7. 참고자료 -Batch Core ItemWriter 의종류 Flat File, XML, Database 등을지원함 ItemWriter AbstractItemStreamItemWriter CompositeItemWriter ItemWriterAdapter PropertyExtractingDelegatingIt emwriter FlatFileItemWriter HibernateItemWriter JdbcBatchItemWriter JpaItemWriter StaxEventWriterItemWriter 설명 ItemStream and ItemWriter interfaces 를결합하여만든 Abstract Class 가장기본적인 ItemWriter Interface Item 을 List 로담겨진여러개의 ItemWriter 에게전달하여처리한다 다른어플리케이션의클래스를 Spring Batch 에적용할수있도록하는 ItemWriter interface 이다. ItemWriter 인터페이스를구현하지않은기존의클래스를 ItemWriter 로쓰고자할때, 이 ItemWriter 의구현체를써서기존클래스에파라미터로넘겨질속성값들을지정하고실행할수있다 Item 을 String 으로변환해서 Flat File 에쓸수있게하는 ItemWriter Hibernate 를이용하여 DB 로 Item 을쓸수있게하는 ItemWriter Jdbc 를이용해 Batch Update 의형태로 DB 로 Item 을쓸수있게하는 ItemWriter JPA EntityManager 인식및핸들링할수있는 ItemWriter StAX 를이용해서 Item 을 XML 파일에쓰는 ItemWriter Page l 73

74 Appendix. DB 처리 Cursor 기반 (1/2) 7. 참고자료 -Batch Core Cursor 기반 Spring Batch에서 Cursor는 Cursor를초기화해서열어주는 ItemReader에기반하며 read가호출될때마다 Cursor를다음행으로이동시키고처리과정중에사용되는맵핑된객체를반환. 주의점 : ResultSet.HOLD_CURSORS_OVER_COMMIT 을지원하기위해서는 JDBC3.0 드라이버필요. 'FOO' 테이블은 ID, NAME, BAR 3 개의컬럼으로구성되어있으며 SQL 문을통해 ID 가 1 보다크고 7 보다작은행의 결과를조회 Cursor 는 ID 2 에서시작하며 read() 가호출될때마다 FOO 객체로매핑되고 Cursor 는다음행으로이동 Page l 74

75 Appendix. DB 처리 Cursor 기반 (2/2) 7. 참고자료 -Batch Core Cursor 기반 ItemReader 종류 JdbcCursorItemReader : Cursor 기반기술의 JDBC를구현한 ItemReader HibernateCursorItemReader : Hibernate 사용이슈원인인 cache나 dirty checking을제거한 ItemReader로 HQL문을선언하고 SessionFactory를전달하는방식으로동작함 Cursor 기반 ItemReader 설정 : JdbcCursorItemReader <bean id="itemreader" class="org.springframework.batch.item.database.jdbccursoritemreader"> <property name="datasource" ref="datasource"/> <property name="sql" value="select ID, NAME, CREDIT from CUSTOMER"/> <property name="rowmapper"> <bean class="org.springframework.batch.sample.domain.trade.internal.customercreditrowmapper"/> </property> 설정항목 datasource sql rowmapper 설명 DB connection을넣어올수있는 datasource를지정실행할쿼리 ResultSet에서객체를매핑하는클래스로 RowMapper 인터페이스를구현한클래스정의 Page l 75

76 Appendix. DB 처리 Paging 기반 (1/2) 7. 참고자료 -Batch Core Paging 기반처리 데이터베이스커서를사용하는대신여러번쿼리를실행할수있는데실행되는각쿼리는정해진크기인페이지만큼의결과를가져올수있음. 실행되는각쿼리는시작행번호를지정하고페이지에반환시키고자하는행의수를지정한후사용. Paging 기반 ItemReader1 - JdbcPagingItemReader 페이지를형성하는행을반환하는데사용하는 SQL 쿼리를제공할책임을지고있는 PagingQueryProvider 인터페이스필요 데이터베이스유형별로지원하는서로다른 PagingQueryProvider 를사용 <bean id="itemreader class="org.springframework.batch.item.database.jdbcpagingitemreader"> <property name="datasource" ref="datasource"/> <property name="queryprovider"> <bean class="org.spr...sqlpagingqueryproviderfactorybean"> <property name="selectclause" value="select id, name, credit"/> <property name="fromclause" value="from customer"/> <property name="whereclause" value="where status=:status"/> <property name="sortkey" value="id"/> </property> <property name="parametervalues"> <map><entry key="status" value="new"/></map> </property> <property name="pagesize" value="1000"/> <property name="rowmapper" ref="customermapper"/> Page l 76

77 Appendix. DB 처리 Paging 기반 (2/2) 7. 참고자료 -Batch Core Paging 기반 ItemReader2 - JpaPagingItemReader JPA 는하이버네이트 StatelessSession 과비슷한개념이없으므로 JPA 명세에서제공하는다른특징을사용 JpaPagingItemReader 에는 JPQL 문을선언하고 EntityManagerFactory 전달 <bean id="itemreader" class="org.spr...jpapagingitemreader"> <property name="entitymanagerfactory" ref="entitymanagerfactory" /> <property name="querystring" value="select c from CustomerCredit c" /> <property name="pagesize" value="1000" /> Paging 기반 ItemReader3 - IbatisPagingItemReader 페이지의 Row 를읽을수있는직접적인지원은하지않으나여러표준화된변수를이용하여쿼리추가가능 <bean id="itemreader" class="org.spr...ibatispagingitemreader"> <property name="sqlmapclient" ref="sqlmapclient" /> <property name="queryid" value="getpagedcustomercredits" /> <property name="pagesize" value="1000" /> <select id="getpagedcustomercredits resultmap="customercreditresult "> select id, name, credit from customer order by id asc LIMIT #_skiprows#, #_pagesize# </select> Page l 77

78 Appendix. DB 처리 Driving Query 기반 7. 참고자료 -Batch Core Driving Query 기반처리 많은애플리케이션벤더들은매우극단적인 pessimistic Lock 전략을가지고있음. ( 대표적인경우 IBM, DB2) Pessimistic Lock 전략 ( 조회시에도 Lock 을거는전략 ) 은또다른온라인애플리케이션에서도테이블의읽기가필요한경우문제원인이될수있음. 극단적으로양이많은데이터집합에대해서 Cursor 를여는건특정벤더에따라서이슈가될수있음. 동작메커니즘 1 단계 : 원하는조회조건으로 Primary Key 를우선조회 ( 단일키 : SingleColumnJdbcKeyCollector, 다수키 MultipleColumnJdbcKeyCollector) 2 단계 : 조회한 Primary Key 를파라미터로사용해서처리 (Processing) Page l 78

79 7. 참고자료 -Batch Core Spring Batch Page l 79

Spring Batch 2.0 시작하기

Spring Batch 2.0 시작하기 작성자 : 최한수 (cuteimp@gmail.com) 최종수정일 : 2009 년 6 월 22 일 본문서는 Spring Batch을학습하고자하는사람들을위하여 Sample Project를통해 Spring Batch 의기본적인이해와사용을돕는것을목적으로한다. Spring Batch 소개 Spring Batch 란? 우리가일반적으로알고있는 Batch라는것은일괄적으로어떠한작업을반복적으로처리하는것이다.

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx (보험TM) 소개서 2015.12 대표전화 : 070 ) 7405 1700 팩스 : 02 ) 6012 1784 홈 페이지 : http://www.itfact.co.kr 목 차 01. Framework 02. Application 03. 회사 소개 01. Framework 1) Architecture Server Framework Client Framework

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

Intra_DW_Ch4.PDF

Intra_DW_Ch4.PDF The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology

More information

Intro to Servlet, EJB, JSP, WS

Intro to Servlet, EJB, JSP, WS ! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

More information

Portal_9iAS.ppt [읽기 전용]

Portal_9iAS.ppt [읽기 전용] Application Server iplatform Oracle9 A P P L I C A T I O N S E R V E R i Oracle9i Application Server e-business Portal Client Database Server e-business Portals B2C, B2B, B2E, WebsiteX B2Me GUI ID B2C

More information

ETL_project_best_practice1.ppt

ETL_project_best_practice1.ppt ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

untitled

untitled 3 IBM WebSphere User Conference ESB (e-mail : ljm@kr.ibm.com) Infrastructure Solution, IGS 2005. 9.13 ESB 를통한어플리케이션통합구축 2 IT 40%. IT,,.,, (Real Time Enterprise), End to End Access Processes bounded by

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

untitled

untitled PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

파워포인트 템플릿

파워포인트 템플릿 ibizsoftware 정호열차장 ( 표준프레임워크오픈커뮤니티커미터 ) Agenda 1. ibatis 와 Hibernate 의개념및특징 2. Hibernate 와 JPA 쿼리종류 3. ibatis 와 Hibernate 동시사용을위한 Transaction 처리방안 4. @EntityListeners 활용방법 Agenda 5. Hibernate 사용시 Dynamic

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

ecorp-프로젝트제안서작성실무(양식3)

ecorp-프로젝트제안서작성실무(양식3) (BSC: Balanced ScoreCard) ( ) (Value Chain) (Firm Infrastructure) (Support Activities) (Human Resource Management) (Technology Development) (Primary Activities) (Procurement) (Inbound (Outbound (Marketing

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

Chap7.PDF

Chap7.PDF Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed

More information

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인 표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

More information

JDBC 소개및설치 Database Laboratory

JDBC 소개및설치 Database Laboratory JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

Service-Oriented Architecture Copyright Tmax Soft 2005

Service-Oriented Architecture Copyright Tmax Soft 2005 Service-Oriented Architecture Copyright Tmax Soft 2005 Service-Oriented Architecture Copyright Tmax Soft 2005 Monolithic Architecture Reusable Services New Service Service Consumer Wrapped Service Composite

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

No Slide Title

No Slide Title J2EE J2EE(Java 2 Enterprise Edition) (Web Services) :,, SOAP: Simple Object Access Protocol WSDL: Web Service Description Language UDDI: Universal Discovery, Description & Integration 4. (XML Protocol

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

PowerPoint

PowerPoint .. http://www.acs.co.kr -1- .. http://www.acs.co.kr -3- ( Advanced Computer Services Co.,Ltd. ) 345-9 SK B8 ( sh_kim@acs.co.kr ) 116-81-24039 http://www.acs.co.kr, http://www.emanufacturing.co.kr (Fax)

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint Presentation

PowerPoint Presentation FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

KYO_SCCD.PDF

KYO_SCCD.PDF 1. Servlets. 5 1 Servlet Model. 5 1.1 Http Method : HttpServlet abstract class. 5 1.2 Http Method. 5 1.3 Parameter, Header. 5 1.4 Response 6 1.5 Redirect 6 1.6 Three Web Scopes : Request, Session, Context

More information

Microsoft PowerPoint - 6.pptx

Microsoft PowerPoint - 6.pptx DB 암호화업데이트 2011. 3. 15 KIM SUNGJIN ( 주 ) 비에이솔루션즈 1 IBM iseries 암호화구현방안 목차 목 차 정부시책및방향 제정안특이사항 기술적보호조치기준고시 암호화구현방안 암호화적용구조 DB 암호화 Performance Test 결과 암호화적용구조제안 [ 하이브리드방식 ] 2 IBM iseries 암호화구현방안 정부시책및방향

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 언어 변환 1.4. 기대 효과 4.4. 프로그램 Restructuring 4.5. 소스 모듈 관리 2. SeeMAGMA 적용 전략 2.1. SeeMAGMA

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

[Brochure] KOR_LENA WAS_

[Brochure] KOR_LENA WAS_ LENA Web Application Server LENA Web Application Server 빠르고확장가능하며장애를선대응할수있는운영중심의고효율차세대 Why 클라우드환경과데이터센터운영의노하우가결집되어편리한 관리기능과대용량트랜잭션을빠르고쉽게구현함으로고객의 IT Ownership을강화하였습니다. 고객의고민사항 전통 의 Issue Complexity Over

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

OZ-LMS TM OZ-LMS 2008 OZ-LMS 2006 OZ-LMS Lite Best IT Serviece Provider OZNET KOREA Management Philosophy & Vision Introduction OZNETKOREA IT Mission Core Values KH IT ERP Web Solution IT SW 2000 4 3 508-2

More information

초보자를 위한 분산 캐시 활용 전략

초보자를 위한 분산 캐시 활용 전략 초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

초보자를 위한 ADO 21일 완성

초보자를 위한 ADO 21일 완성 ADO 21, 21 Sams Teach Yourself ADO 2.5 in 21 Days., 21., 2 1 ADO., ADO.? ADO 21 (VB, VBA, VB ), ADO. 3 (Week). 1, 2, COM+ 3.. HTML,. 3 (week), ADO. 24 1 - ADO OLE DB SQL, UDA(Universal Data Access) ADO.,,

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 배효철 th1g@nate.com 1 목차 표준입출력 파일입출력 2 표준입출력 표준입력은키보드로입력하는것, 주로 Scanner 클래스를사용. 표준출력은화면에출력하는메소드를사용하는데대표적으로 System.out.printf( ) 를사용 3 표준입출력 표준출력 : System.out.printlf() 4 표준입출력 Example 01 public static void

More information

MS-SQL SERVER 대비 기능

MS-SQL SERVER 대비 기능 Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

슬라이드 1

슬라이드 1 [ CRM Fair 2004 ] CRM 1. CRM Trend 2. Customer Single View 3. Marketing Automation 4. ROI Management 5. Conclusion 1. CRM Trend 1. CRM Trend Operational CRM Analytical CRM Sales Mgt. &Prcs. Legacy System

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

Amazon EBS (Elastic Block Storage) Amazon EC2 Local Instance Store (Ephemeral Volumes) Amazon S3 (Simple Storage Service) / Glacier Elastic File Syste (EFS) Storage Gateway AWS Import/Export 1 Instance

More information

thesis

thesis CORBA TMN Surveillance System DPNM Lab, GSIT, POSTECH Email: mnd@postech.ac.kr Contents Motivation & Goal Related Work CORBA TMN Surveillance System Implementation Conclusion & Future Work 2 Motivation

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android 2 xmlns:tools=http://schemas.android. 10 차시파일처리 1 학습목표 내장메모리의파일을처리하는방법을배운다. SD 카드의파일을처리하는방법을배운다. 2 확인해볼까? 3 내장메모리파일처리 1) 학습하기 [ 그림 10-1] 내장메모리를사용한파일처리 2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information