Spring Batch 2.0 시작하기
|
|
- 명국 도
- 5 years ago
- Views:
Transcription
1 작성자 : 최한수 (cuteimp@gmail.com) 최종수정일 : 2009 년 6 월 22 일 본문서는 Spring Batch을학습하고자하는사람들을위하여 Sample Project를통해 Spring Batch 의기본적인이해와사용을돕는것을목적으로한다. Spring Batch 소개 Spring Batch 란? 우리가일반적으로알고있는 Batch라는것은일괄적으로어떠한작업을반복적으로처리하는것이다. 흔히이런 Batch Application을개발할때에는 I/O에대한처리부터내부적인로직의구현, 그리고 logging과같은부가적인기능들까지도모두개발자가직접개발하고이를어떠한스케줄러 (cron, quartz 등 ) 를통해서실행시키게된다. 보통대용량의 Batch Application들은매일적게는수만, 많게는수억건의 data를처리하게된다. 하지만여타의다른 Application(Web Application, Object/Relation Mapping) 들에비하여발전속도도느리고, 빠르게변화하는환경에적응하기가매우어려웠기때문에보다유연한시스템의개발과유지보수를위하여 Batch 프레임워크의필요성이대두되었다. Spring Batch는이러한대용량 Batch Application들을변화시키기위하여 Batch 작업에필요한기반작업들은모두 Framework에서관리하게끔하여편의성을제공하고 Spring을기반의 POJO(Plain Old Java Object) Programming을통하여재사용이가능하면서유연한 Application의개발이가능하도록도와주기위하여 Spring Source와 Accenture사가공동으로개발한 Batch Framework이다. Spring Batch Architecture Spring Batch는기본적으로다음과같은모습의 Architecture로구성되어있다. [ 그림 1 - Spring Batch Architecture, 출처 : Spring Batch Reference Chapter 1 ] 1 Last Updated : 2009 년 6 월 27 일
2 Batch Application은모든 Job이나사용자가필요에의해개발한코드가위치하고, Spring Batch Core는 job을실행하거나제어하기위한설정또는구현들이위치하게된다. 그리고마지막으로 Application과 Core에서사용하는 I/O나기본적인 Service등이 Batch Infrastructure에위치한다. 기존 Batch Application과 Spring Batch의차이점. 기존의 Batch Application들의특징은과거의웹 Application을 Model1 방식으로개발하던방식과같이모든것을하나의 Class 또는 Application안에서구현이되어있다는점이다. logging, 트랜잭션관리, 리소스관리 (I/O, Database Connection) 등에있어서도개발자마다차이가생기게되며이로인하여해당 Application의성능도천차만별이되고시간이지날수록해당 Application을개발한개발자조차 Application에대한유지보수에어려움을느끼게되는것이다. 게다가처리되어야하는작업을하나의단위로처리하는경우가많기때문에에러가발생했을때디버깅에어려움이많고작업을재시작하고자할때에도진행되어진부분이어디까지이며그이후부터작업을수행하기위해서도부가적인작업들을더수행해야하는어려움이있다. 이에반해 Spring Batch의경우에는기본적으로 Framework에서많은부분들을지원 (logging, 트랜잭션관리및리소스관리 (I/O, Database Connection) 등 ) 해주기때문에개발자는 Batch Application 개발에만집중을할수있게된다 (Separation of concern). 게다가이렇게프레임워크가지원해주는인프라덕분에개발된 Application의안정화에도도움이되며, 리소스를포함하는공통요소들에대한관리포인트도하나로합쳐지기때문에유지보수적인측면에서매우유리하다. 또한설정으로작업을여러단계로나눠서처리하기때문에에러가발생했을경우에디버깅이용이해지며, 실패한작업에대한재시작을하는경우에도손쉽게처리가가능하다. Spring Batch의기본적인구성및용어 Spring Batch에대한간략한구성은다음그림에서보는바와같다. 수행에필요한정보들은모두 Job repository에담고있고 Job Launcher를통하여 Job을실행시키게되며, 이 Job은여러개의 step으로구성되었으며각각의 step은 item reader/writer/processor를하나씩갖는다. [ 그림 2 - Spring Batch 의기본구성, 출처 : Spring Batch Reference Chapter 3 ] 2 Last Updated : 2009 년 6 월 27 일
3 Job, Step Job는 Batch에서처리해야하는 Process을의미한다. 매일저녁마다처리해야하는일마감업무가하나의 Job이되는샘이다. 이러한 Job은여러개의 Step으로구성이될수있으며, 이 Step이실제적으로수행되는작업의단위라고볼수있다. 즉, 일마감업무에는하루동안발생한거래내역을읽어들여처리하고, 관련된다른시스템들에자료를전송하거나갱신하는등의여러가지작업단계들이필요한데이러한작업단계하나하나가 Step인것이다. Execution Context 실행되고있는 Job(Job Instance) 과관련된정보 (read count, write count, skip count, 재시작횟수등의통계정보 ) 들을저장하거나조회할수있는일종의메모리로, 우리가흔히알고있는 Web Application에서사용되는 Session의일종이라고생각하면된다. Job Launcher Job Parameter(Job을실행할떄필요한매개변수 ) 를포함하여 Job을실행시키는실행기이다. Job Repository 수행되는 Job에대한정보를담고있는저장소로써어떠한 Job이언제수행되었고, 언제끝났으며, 몇번이실행되었고실행에대한결과가어떤지등의 Batch수행과관련된모든 meta data가저장되어있다. Item Reader Step안에서 File 또는 DB등에서 Item을읽어들인다.. Item Writer Step안에서 File 또는 DB등으로 Item을저장한다. Item Processor Item reader에서읽어들인 Item에대하여필요한로직처리작업을수행한다. Chunk 하나의 Transaction안에서처리할 Item의덩어리. 즉 chunk size가 10이라면하나의 transaction안에서 10개의 item에대한처리를하고 commit을하게되는것이다. Spring Batch 2.0의새로운점 Spring Batch는현재 2.0 정식버전이배포된상태이며, 최신버전인 2.0은 1.x 버전과의하위호환성을갖지않으며많은변경사항이있으나개인적으로는다음 3가지변화에주목하고있다. Chunk oriented processing 3 Last Updated : 2009 년 6 월 27 일
4 기존 Spring Batch 1.x에서는 Item을기반으로작업을처리해왔다. 이 Item이라는것은하나의 Data라고생각하면된다. 다음그림에서와같이 Item 기반의처리는 Item을읽고, 처리하고쓰는것이하나의단위였다면, chunk 기반의처리는지정한크기만큼 Item을읽고, 처리한후이결과를 list의형태로가지고있다가한번에쓰는방식인것이다. 이로인하여리소스관리측면에서이점을가져올수있게되었다. [ 그림 3 - Spring Batch Item 처리방식의변화, 출처 : Spring Batch Reference Chapter 2 ] XML Namespace 기존의 1.x에서는 XML 설정시모든설정항목이오로지 bean으로설정되었기때문에실제 job, step의구성이나사용하는 item reader/writer에대한파악을위해서는 bean id와 property값들을기초로하여분석해야알수있었지만, 2.0에서 XML Namespace가추가되면서 XML 설정상에서 Job과 Step과의관계를명시적으로확인할수있으며, 사용하고있는 item reader/writer의파악도좀더손쉬워졌다. XML Namespace의설정은다음과같이할수있으며굵게표시된부분이 batch의 namespace와 schema이다. <beans:beans xmlns=" xmlns:beans= xmlns:aop= xmlns:tx= xmlns:p= xmlns:xsi= xsi:schemalocation= Last Updated : 2009 년 6 월 27 일
5 </beans:beans> Conditional Step Execution Spring Batch 1.x의경우에는모든 Step의실행이순차적으로이루어졌어야했다. 예외상황이발생하게되는경우에는그냥 skip하여다음 item을처리하거나해당 job의 fail처리를 Listener나 Item Processor를통하여약간의제어는가능하긴했지만실제적으로는거의 Job을재시작하여다시수행하였었다. 하지만 2.0에서부터추가된 Control flow를통하면현재진행중인작업의 ExitStatus( 처리결과상태 ) 에따라서수행할다음 Step을지정하거나우회된 Step으로진행또는 Job을중지시키는것도가능하게되었다. [ 그림 4 - Step 제어방식의변화, 출처 : Spring Batch Reference Chapter 2 ] Sample Project Sample Project의개요 Sample Project는간단한 Application을통하여 Job, Step, Item Reader/Writer등의설정방법과몇가지 in/out 유형별샘플을보여주기위해만들어졌다. Sample Project의간단한흐름은다음과같다. 1. 구분자를포함하는파일 (CSV) 에서고객정보를읽어들인후 Database에저장한다.(customerCsvLoad) 2. 고정된길이로정의되어있는파일에서고객의정보를읽어들인후 Database에저장한다.(customerFixedLoad) 3. Database에저장되어있는고객정보를읽어들인후통계정보를다시 Database에저 5 Last Updated : 2009 년 6 월 27 일
6 장한다.(customerSummarization) 4. Database에저장되어있는전체고객정보를구분자를포함하는파일로저장한다.(exportCustomer) Sample Project의실행 Sample Project는실행시에읽어들여야하는파일 (input data) 과 Database에관한정보는모두설정되어있기때문에 test패키지에존재하는 CustomerJobFunctionalTests를 run as Junit Test로실행시키기만하면된다. Input 파일의경우에는 resources/data/input에존재하며 customerjob.xml 설정상의 customerjobproperties bean내에서사용할파일의이름에대하여정의되어있다. 필요하다면해당파일명을변경하고실제 resources/data/input내의파일의이름로변경해주면된다. 만약 hsql이아닌다른 database를사용하여 sample project를수행하고싶다면, data-sourcecontext.xml에설정되어있는 overrideproperties bean의 location 속성의값을수정하면된다. 현재는시스템의기본설정값으로 hsql을정의해두었고이설정에의해서 resources/batchhsql.properties 파일의정보를읽어들이게되어있다. 따라서 location 속성자체를수정하거나 environment bean의 defaultvalue 속성을수정하고, 실제 property 파일을원하는위치에저장해두면해당값들을읽어들일수있게된다. Sample Project 의이해 Job, step 설정 Job에대한설정은앞서선언한 namespace가있다면다음과같이 <job> 태그를사용하여정의할수있다. 이예제는앞서설명한대로총 4개의 step으로구성이되어있는 job이다. 각각의 step에는 item reader/writer의설정이있으며 next속성을이용하여다음에실행되어야하는 step 을지정하고, 공통적으로모든 step의 commit 주기를통일하기위하여 commit-interval은따로관리하도록했다. Step의 control flow에대한내용은뒷부분에서다시다루기로한다. 이중첫번째 step인 customercsvload만을이글에서는보여주도록한다. <job id="customerjob"> <step id="customercsvload"> <tasklet> <chunk reader="customercsvreader" writer="customerdbwriter" commit-interval="${job.commit.interval" /> </tasklet> </step> </job> 6 Last Updated : 2009년 6월 27일
7 예제에서볼수있듯이 job안에 step이설정되고 step은내부적으로 tasklet 형태로선언된다. 처리할단위로묶어서 (chunk) reader와 writer에대한설정을추가한다. reader/writer의경우에는별도의 bean으로설정하여 reference하여사용한다. Item Reader, Writer 설정앞서의 job,step 설정에서는 item reader/writer의설정은단순히 reader/writer의 id값만을설정하는것처럼보이지만실제로는 reader/writer도당연히 bean으로설정을해주어야한다. 기본적으로 sample에서사용된 item reader는 FlatFileItemReader와 JdbcCursorItemReader 두가지이다. 이름에서유추할수있듯이전자는파일에서 item을읽을때사용하는것이고후자는 Database 에서 item을읽을때사용하는것이다. Spring Batch에서제공하는기본적인 reader/writer에대한간략한표는첨부자료에서확인할수있다. 우선파일로부터 item을읽어들이는 FlatItemReader부터살펴보자. 이 reader의경우에다음과같은순서로파일로부터 item을얻어낸다. 파일에있는하나의라인을 LineMapper를이용하여 fieldset으로변환한다. 이때 LineTokenizer를통하여구분자또는고정길이설정을통해하나의 row를 fieldset으로분해하는것이다. 이렇게분해된 fieldset은 fieldsetmapper를통하여미리설정해둔 Domain Object와 Mapping 하게되는것이다. 즉실제적으로파일에서 item을읽어들이는작업은하나의 ItemReader를사용하되 LineTokenizer의종류에따라서구분자방식또는고정길이방식을처리할수있게된다. [ 그림 5 - File 기반의 Item Reader 의작동방식 ] Sample Project에서구분자를이용한 ItemReader의설정은다음과같다. FlatFileItemReader를이용하며, 읽어들여야할파일을 resource property로정의하고 linemapper는기본제공되는 DefaultLineMapper를사용했다. DelimitedLineTokenizer를사용하여기본구분자인, 를이용하여읽어들인하나의 line을 fieldset으로변경한다. field들에대한이름을 names property로설정해주고 fieldset과 object와의 mapping 설정을해둔 CustomerFieldSetMapper를추가하여주었다. <beans:bean id="customercsvreader" class="org.springframework.batch.item.file.flatfileitemreader"> <beans:property name="resource" 7 Last Updated : 2009년 6월 27일
8 value="classpath:data/input/${customer.file.csv.name" /> <beans:property name="linemapper"> <beans:bean class="org.springframework.batch.item.file.mapping.defaultlinemapper"> <beans:property name="linetokenizer"> <beans:bean class="org.springframework.batch.item.file.transform.delimitedl inetokenizer"> <beans:property name="names" value="name,age,gender, ,contact,memo,joinda te" /> <beans:property name="fieldsetmapper"> <beans:bean class="net.evilimp.batch.sample.domain.internal.customerfie ldsetmapper" /> FieldsetMapper는다음과같은형태를띄고있다. 굵게표시된부분에서볼수있듯이사용하고자하는 domain object에 fieldset의각 field를읽어서 mapping 해주게된다. package net.evilimp.batch.sample.domain.internal; import net.evilimp.batch.sample.domain.customer; import org.springframework.batch.item.file.mapping.fieldsetmapper; import org.springframework.batch.item.file.transform.fieldset; public class CustomerFieldSetMapper implements FieldSetMapper<Customer> public Customer mapfieldset(fieldset fs) { // fieldset이 null인경우에는 null을반환한다. if (fs == null) { return null; 8 Last Updated : 2009 년 6 월 27 일
9 Customer customer = new Customer(); customer.setname(fs.readstring("name")); customer.setage(fs.readint("age")); customer.setgender(fs.readstring("gender")); customer.set (fs.readstring(" ")); customer.setcontact(fs.readstring("contact")); customer.setmemo(fs.readstring("memo")); customer.setjoindate(fs.readstring("joindate")); return customer; 고정길이방식의 ItemReader의경우에는앞서보인구분자를포함하는 ItemReader와거의모든것이동일하고 linetokenizer설정만이다르다. <beans:bean id="customerfixedreader" class="org.springframework.batch.item.file.flatfileitemreader"> <beans:property name="resource" value="classpath:data/input/${customer.file.fixed.name" /> <beans:property name="linemapper"> <beans:bean class="org.springframework.batch.item.file.mapping.defaultlinemapper"> <beans:property name="linetokenizer" ref="customertokenizer" /> <beans:property name="fieldsetmapper"> <beans:bean class="net.evilimp.batch.sample.domain.internal.customerfields etmapper" /> <beans:bean id="customertokenizer" class="org.springframework.batch.item.file.transform.fixedlengthtokenizer"> <beans:property name="names" value="name,age,gender, ,contact,joindate,memo" /> 9 Last Updated : 2009 년 6 월 27 일
10 <beans:property name="columns" value="1-10, 11-12, 13-13, 14-43, 44-54, 55-62, 63-66" /> 설정에서볼수있듯이 linetokenizer를따로선언해서사용하는데이는 bean설정을따로빼도되는것을보여주기위함이고구분자를사용하는 ItemReader와마찬가지로 ItemReader내에바로설정해도무방하다. FixedLengthTokenizer를사용하여하나의라인에대해서각각의 field에대한이름과길이를지정해주면된다. FileWriter의경우에는이와반대의작업이필요한다. 객체를파일에쓰기위해서는하나의 String 으로변경해주는작업을해주어야하는데이작업을하는것이 LineAggregator이다. LineAggregator는객체에서필드들을추출하여구분자를추가하거나고정길이와비교하여부족한공간을공백으로채워주는작업을수행한다. [ 그림 6 - File 기반의 Item Writer 의작동방식 ] 앞서 FileItemReader와는조금다른모습이지만실제적으로는거의동일한모습을보인다. 다만파일에 item을쓰기위한실제적인일을처리하는 customercsvwriter가있고그것을감싸면서 ItemWriter를구현한 customerwriter로구분이되어처리된다. <beans:bean id="customerwriter" class="net.evilimp.batch.sample.domain.internal.customerfilewriter"> <beans:property name="dao" ref="customercsvwriter" /> <beans:bean id="customercsvwriter" class="net.evilimp.batch.sample.domain.internal.flatfilecustomerdao"> <beans:property name="itemwriter"> <beans:bean id="customerflatfileoutputsource" class="org.springframework.batch.item.file.flatfileitemwriter"> <beans:property name="resource" value="file:resources/data/output/${customer.file.csv.name" /> <beans:property name="lineaggregator"> <beans:bean class="org.springframework.batch.item.file.transform.passthroug hlineaggregator" /> 10 Last Updated : 2009년 6월 27일
11 다음의실제 Class 파일에서볼수있듯이 CustomerFileWriter는단지 ItemWriter를구현하여인터페이스를맞춰주는역할을한다. package net.evilimp.batch.sample.domain.internal; import java.util.list; import net.evilimp.batch.sample.domain.customer; import net.evilimp.batch.sample.domain.customerdao; import org.springframework.batch.item.itemwriter; public class CustomerFileWriter implements ItemWriter<Customer> { private CustomerDao dao; public void setdao(customerdao customerdao) { this.dao = customerdao; public void write(list<? extends Customer> customers) throws Exception { for (Customer customer : customers) { dao.write(customer); 실제적으로파일에쓰는작업을하는 FlatFileCustomerDao는다음과같다. 굵게표시된메소드들을보면파일에 write 하기위해서먼저파일의 stream을 open 해주는작업을수행하게되며, 모든작업이종료될때자동으로호출되는 destroy 메소드내에서 close 메소드를호출하여파일을닫아주게된다. package net.evilimp.batch.sample.domain.internal; import java.util.collections; import org.springframework.batch.item.executioncontext; 11 Last Updated : 2009 년 6 월 27 일
12 import org.springframework.batch.item.itemstream; import org.springframework.batch.item.itemwriter; import org.springframework.beans.factory.disposablebean; import net.evilimp.batch.sample.domain.customer; import net.evilimp.batch.sample.domain.customerdao; public class FlatFileCustomerDao implements CustomerDao, DisposableBean { private ItemWriter<String> itemwriter; private String separator = ","; private volatile boolean opened = public void write(customer customer) throws Exception { if (!opened) { open(new ExecutionContext()); String line = "" + customer.getname() + separator + customer.getage() + separator + customer.getgender() + separator + customer.get () + separator + customer.getcontact() + separator + customer.getmemo() + separator + customer.getjoindate(); itemwriter.write(collections.singletonlist(line)); public void setseparator(string separator) { this.separator = separator; public void setitemwriter(itemwriter<string> itemwriter) { this.itemwriter = itemwriter; public void open(executioncontext executioncontext) throws Exception { if (itemwriter instanceof ItemStream) { ((ItemStream) itemwriter).open(executioncontext); 12 Last Updated : 2009 년 6 월 27 일
13 opened = true; public void close() throws Exception { if (itemwriter instanceof ItemStream) { ((ItemStream) public void destroy() throws Exception { close(); 앞서 File과관련된 reader/writer와는다르게 Database에서 item을읽어들이는 ItemReader의방식은오히려간단하다. 다음과같이 Database에서조회된 ResultSet을 RowMapper를이용하여 Domain Object와 Mapping 한다. [ 그림 7 - Database 기반의 Item Reader 의작동방식 ] Sample Project에서는기본적으로 Spring Jdbc를이용하기위해 JdbcCursorItemReader를사용한다. 그리고 result의 row와 object와의 mapping을위하여 CustomerMapper를사용한다. 실행하고자하는 sql문을설정해주면된다. <beans:bean id="customerdbreader" class="org.springframework.batch.item.database.jdbccursoritemreader"> <beans:property name="datasource" ref="datasource" /> <beans:property name="rowmapper"> <beans:bean class="net.evilimp.batch.sample.domain.internal.customermapper" /> <beans:property name="sql"> <beans:value> SELECT idx, name, age, gender, , contact, memo, joindate FROM CUSTOMER 13 Last Updated : 2009 년 6 월 27 일
14 </beans:value> 반대로 Database에 write를하기위해서는 Object의값들을바로 SQL Parameter로 mapping이가능하기때문에따로중간에변형하는작업이필요없다. 실제 XML상의설정으로도 bean을선언하는것외에따로작업해주는것은없고클래스내에서 sql에 object를 bind 하는작업만이필요하다. <beans:bean id="customerdbwriter" class="net.evilimp.batch.sample.domain.internal.jdbccustomerdao"> <beans:property name="datasource" ref="datasource" /> Conditional Step Execution 설정 Step을실행하는과정에서특정한조건이나상태에따라서해당 step의실행을중지시키거나다음에실행되어야하는 step이변경되어야하는경우가발생할수있다. Spring Batch는이러한상황을 Step의 ExitStatus의값으로판단을하여처리를하게된다. 앞서의 job, step의예제에서보면 2가지의 step제어방법이나온다. 이 2가지방법은원리는동일하지만사용자가직접제어를하는지 Framework에서제어를하는지의차이점만있다. 우선 Framework에서제어를하는경우에는다음과같이 exitstatus에따른제어를해줄수있다. <next on="*" to="customersummarization" /> <next on="completed WITH SKIPS" to="fixederrorprint" /> <fail on="failed" exit-code="failed"/> Next의경우에는 property중해당조건을수행하기위한 exitstatus를설정해주고 to를통하여다음에실행되어야하는 step의 id를선언해주면되고, job 자체를실패로간주하기위하여사용되는 fail의경우에는 on property에마찬가지로 exitstatus를설정하고 exit-code에전달하고자는 exitstatus를선언한다. 예제는없지만 stop의경우에는 next와마찬가지로 on property에 exitstatus를설정하고 restart property에다음번에해당 job이재시작되는경우에수행할 step의 id를설정해주면된다. End의경우에 on property에오는 exitstatus에따라서해당 job을종료시키게된다. 방금설명한방법의경우간단하게 step의흐름을제어할수있지만개발자가임의로 step의제어를하고자경우에는다음과같이 decider를구현하여사용하여야한다. 이 decider의경우해당 setp이실패하지않았으면서 skipcount가 2 이상인경우에는 exitstatus를 "COMPLETED WITH SKIPS" 로변경하여반환하고아닌경우에는 COMPLETED 를반환한다. <decision id="skipcheckingdecision" decider="skipcheckingdecider"> 14 Last Updated : 2009 년 6 월 27 일
15 <next on="*" to="customerfixedload" /> <next on="completed WITH SKIPS" to="csverrorprint" /> <fail on="failed" exit-code="failed"/> </decision> import org.springframework.batch.core.exitstatus; import org.springframework.batch.core.jobexecution; import org.springframework.batch.core.stepexecution; import org.springframework.batch.core.job.flow.flowexecutionstatus; import org.springframework.batch.core.job.flow.jobexecutiondecider; public class SkipCheckingDecider implements JobExecutionDecider { public FlowExecutionStatus decide(jobexecution jobexecution, StepExecution stepexecution) { if (!stepexecution.getexitstatus().getexitcode().equals( ExitStatus.FAILED.getExitCode()) && stepexecution.getskipcount() > 2) { return new FlowExecutionStatus("COMPLETED WITH SKIPS"); else { return new FlowExecutionStatus(ExitStatus.COMPLETED.getExitCode()); 맺음말여기까지간단한 sample project를통하여 Spring Batch에대한소개를했다. Spring Batch의모든것을보여주기에역부족인글이지만기존버전에비하여좀더간략하고명시적인설정을통하여수행하고자하는 job에대한이해와 step에대한구성을효율적으로할수있음을보여주었으며, 새롭게등장한 step의실행제어까지의내용을다루었다. 이를통하여기존의 batch application과 Spring Batch를사용할때와의다른모습들을볼수있었을것이며, Spring Batch에대한기본적인이해에도움이되었을것이다. 보다많은정보가필요하면레퍼런스문서와 Spring Source의포럼을통하여얻을수있다. 국내자료로는 KSUG의다음글을참조하면된다. 참고자료. 15 Last Updated : 2009 년 6 월 27 일
16 1. Spring Source, Spring Batch Reference, 2009 첨부자료 1. Spring Batch 에서기본적으로제공되는 Item Reader/Writer Reader 이름 설 명 FlatFileItemReader 구분자 (csv 와같은 ) 를갖는파일또는고정길이파일로부터 item 을읽어들인다. MultiResourceItemReader 여러개의파일로부터 item 을읽어들인다. JdbcCursorItemReader Jdbc 를이용하여 cursor 방식으로 DB 로부터 item 을읽어들인다. JdbcPagingItemReader Jdbc 를이용하여 paging 방식으로 DB 로부터 item 을읽어들인다. Hibernate 를이용하여 cursor 방식으로 DB 로부터 item 을 HIbernateCursorItemReader 읽어들인다. IbatisPagingItemReader Ibatis 를이용하여 paging 방식으로 DB 로부터 item 을읽어들인다. JpaPagingItemReader Jpa 를이용하여 paging 방식으로 DB 로부터 item 을읽어들인다. StaxEventItemReader XML 파일로부터 item 을읽어들인다. [ 표 1 Spring Batch에서제공되는 Item Reader ] Writer 이름 설 명 FlatFileItemWriter 구분자 (csv 와같은 ) 를갖는파일또는고정길이파일로 item 을 Write 한다. MultiResourceItemWriter 여러개의파일로 item 을 Write 한다. JdbcBatchItemWriter Jdbc 를이용하여 batchupdate 의형태로 DB 로 item 을 Write 한다. HibernateItemWriter Hibernate 를이용하여 DB 로 item 을 Write 한다. IbatisBatchWriter Ibatis 를이용하여 DB 로 item 을 Write 한다. StaxEventItemWriter XML 파일로 item 을 Write 한다. [ 표 2 Spring Batch에서제공되는 Item Writer ] * 샘플프로젝트의다운로드는다음의 URL에서가능하다. [Download] * 본문서는지속적인갱신이발생할수있다. 16 Last Updated : 2009 년 6 월 27 일
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개발환경 교육교재
Page l 1 Page l 2 Page l 3 실행환경배치처리레이어 (1/2) 1. 개요 대용량데이터처리를위한기반환경을제공하는 Layer 임 서비스그룹 설명 Presentation Layer 전자정부표준프레임워크실행환경 Business Logic Layer Persistence Layer Batch Layer Integration Layer Mobile Presentation
More informationI 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신림프로그래머_클린코드.key
CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!
More informationSpring Data JPA Many To Many 양방향 관계 예제
Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More informationMicrosoft 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 informationSpring 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 informationJUNIT 실습및발표
JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected
More information12-file.key
11 (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer String s = "910359,,
More informationMobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V
Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4
More informationPowerPoint 프레젠테이션
@ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program
More information- 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 informationJAVA PROGRAMMING 실습 08.다형성
2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스
More informationMicrosoft PowerPoint - CSharp-10-예외처리
10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.
More informationConnection 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교육2 ? 그림
Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,
More information@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 information09-interface.key
9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1
More information2) 활동하기 활동개요 활동과정 [ 예제 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제11장 프로세스와 쓰레드
제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드
More informationInterstage5 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어댑터뷰
04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결
More information02 C h a p t e r Java
02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER
More information내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri
6-20-4. Spring Boot REST CRUD 실습 (JPA, MariaDB) GitHub : https://github.com/leejongcheol/springbootrest 스프링부트에서 REST(REpresentational State Transfer) API 를실습해보자. RESTful 웹서비스는 JSON, XML 및기타미디어유형을생성하고활용할수있다.
More information표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인
표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into
More information슬라이드 1
UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)
More information<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.
More informationPowerPoint 프레젠테이션
@ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field
More information* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f
JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage
More information1
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 informationrmi_박준용_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 informationNoSQL
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 informationPowerPoint Presentation
객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리
More information01-OOPConcepts(2).PDF
Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)
More informationC# 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 informationMasoJava4_Dongbin.PDF
JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr
More informationilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형
바에 제네릭스(generics)를 도입하기 위한 연구는 이미 8년 전인 1996년부터라고 한다. 실제로 자바에 제네릭스를 도입하 는 몇 가지 방안들이 논문으로 나오기 시작한 것이 1998년 초임을 감 안하면 무려 8년이 지난 후에야 자바 5.0에 전격 채택되었다는 것은 이것이 얼마나 어려운 일이었나 하는 것을 보여준다. 자바의 스펙을 결정하는 표준화 절차인
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 informationthesis
( 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비긴쿡-자바 00앞부속
IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter
More information유니티 변수-함수.key
C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)
More informationUSER 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 informationch09
9 Chapter CHAPTER GOALS B I G J A V A 436 CHAPTER CONTENTS 9.1 436 Syntax 9.1 441 Syntax 9.2 442 Common Error 9.1 442 9.2 443 Syntax 9.3 445 Advanced Topic 9.1 445 9.3 446 9.4 448 Syntax 9.4 454 Advanced
More information(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])
예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음
More informationCluster management software
자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException
More information04장
20..29 1: PM ` 199 ntech4 C9600 2400DPI 175LPI T CHAPTER 4 20..29 1: PM ` 200 ntech4 C9600 2400DPI 175LPI T CHAPTER 4.1 JSP (Comment) HTML JSP 3 home index jsp HTML JSP 15 16 17 18 19 20
More informationU.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 informationMicrosoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]
- Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소
More informationMicrosoft PowerPoint - 03-TCP Programming.ppt
Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):
More informationIndex Process Specification Data Dictionary
Index Process Specification Data Dictionary File Card Tag T-Money Control I n p u t/o u t p u t Card Tag save D e s c r i p t i o n 리더기위치, In/Out/No_Out. File Name customer file write/ company file write
More informationChap12
12 12Java RMI 121 RMI 2 121 RMI 3 - RMI, CORBA 121 RMI RMI RMI (remote object) 4 - ( ) UnicastRemoteObject, 121 RMI 5 class A - class B - ( ) class A a() class Bb() 121 RMI 6 RMI / 121 RMI RMI 1 2 ( 7)
More information쉽게 풀어쓴 C 프로그래밍
Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More information5장.key
JAVA Programming 1 (inheritance) 2!,!! 4 3 4!!!! 5 public class Person {... public class Student extends Person { // Person Student... public class StudentWorker extends Student { // Student StudentWorker...!
More information목차 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 informationMicrosoft 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목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에
개념정리및샘플예제 EJB stateful sample 문서 2016. 01. 14 목차 JEUS EJB Session Bean가이드... 3 1. stateful session bean... 3 1.1 stateful sample 가이드... 3 1.1.1 sample source... 3 1.1.2 결과확인... 6 1.2 http session에서사용하기...
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
More informationPowerPoint 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歯Writing_Enterprise_Applications_2_JunoYoon.PDF
Writing Enterprise Applications with Java 2 Platform, Enterprise Edition - part2 JSTORM http//wwwjstormpekr Revision Document Information Document title Writing Enterprise Applications
More information쉽게 풀어쓴 C 프로그래밊
Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.
More information<property name="configlocation" value="classpath:/egovframework/sqlmap/example/sql-map-config.xml"/> <property name="datasource" ref="datasource2"/> *
표준프레임워크로구성된컨텐츠를솔루션에적용 1. sample( 게시판 ) 프로젝트생성 - egovframe Web Project next generate example finish 2. 프로젝트추가 - 프로젝트 Import 3. 프로젝트에 sample 프로젝트의컨텐츠를추가, 기능동작확인 ⓵ sample 프로젝트에서 프로젝트로복사 sample > egovframework
More informationAPI 매뉴얼
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 informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More information목차 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 informationDesign Issues
11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance
More informationMicrosoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx
2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html
More informationJava XPath API (한글)
XML : Elliotte Rusty Harold, Adjunct Professor, Polytechnic University 2006 9 04 2006 10 17 문서옵션 제안및의견 XPath Document Object Model (DOM). XML XPath. Java 5 XPath XML - javax.xml.xpath.,? "?"? ".... 4.
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More information파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter
파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 클래스의사용법은다음과같다. PrintWriter writer = new PrintWriter("output.txt");
More information슬라이드 1
UNIT 6 배열 로봇 SW 교육원 3 기 학습목표 2 배열을사용핛수있다. 배열 3 배열 (Array) 이란? 같은타입 ( 자료형 ) 의여러변수를하나의묶음으로다루는것을배열이라고함 같은타입의많은양의데이터를다룰때효과적임 // 학생 30 명의점수를저장하기위해.. int student_score1; int student_score2; int student_score3;...
More informationecorp-프로젝트제안서작성실무(양식3)
(BSC: Balanced ScoreCard) ( ) (Value Chain) (Firm Infrastructure) (Support Activities) (Human Resource Management) (Technology Development) (Primary Activities) (Procurement) (Inbound (Outbound (Marketing
More informationEclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일
Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae
More informationNo 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 informationPowerPoint 프레젠테이션
@ Lesson 1,..... @ 1 Green Project 1991 Oak Java 1995. 5 December '90 by Patrick Naughton, Mike Sheridan and James Gosling Embedded in various consumer electronic device 1992. 9. 3 Star 7 1993 www portability
More information( )부록
A ppendix 1 2010 5 21 SDK 2.2. 2.1 SDK. DevGuide SDK. 2.2 Frozen Yoghurt Froyo. Donut, Cupcake, Eclair 1. Froyo (Ginger Bread) 2010. Froyo Eclair 0.1.. 2.2. UI,... 2.2. PC 850 CPU Froyo......... 2. 2.1.
More informationPowerPoint Presentation
객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리
More informationMicrosoft PowerPoint - RMI.ppt
( 분산통신실습 ) RMI RMI 익히기 1. 분산환경에서동작하는 message-passing을이용한 boundedbuffer 해법프로그램을실행해보세요. 소스코드 : ftp://211.119.245.153 -> os -> OSJavaSources -> ch15 -> rmi http://marvel el.incheon.ac.kr의 Information Unix
More informationJAVA PROGRAMMING 실습 05. 객체의 활용
public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string
More information[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme
8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationThisJava ..
자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,
More informationData Provisioning Services for mobile clients
4 장. JSP 의구성요소와스크립팅요소 제 4 장 스크립팅요소 (Scripting Element) 1) 지시문 (Directive) 1. JSP 구성요소소개 JSP 엔진및컨테이너, 즉 Tomcat 에게현재의 JSP 페이지처리와관련된정보를전달하는목적으로활용 (6 장 )
More informationuntitled
- -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int
More informationJMF2_심빈구.PDF
JMF JSTORM http://wwwjstormpekr Issued by: < > Document Information Document title: Document file name: Revision number: Issued by: JMF2_ doc Issue Date: Status: < > raica@nownurinet
More information<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 26 장애플릿 이번장에서학습할내용 애플릿소개 애플릿작성및소개 애플릿의생명주기 애플릿에서의그래픽컴포넌트의소개 Applet API의이용 웹브라우저상에서실행되는작은프로그램인애플릿에대하여학습합니다. 애플릿이란? 애플릿은웹페이지같은 HTML 문서안에내장되어실행되는자바프로그램이다. 애플릿을실행시키는두가지방법 1. 웹브라우저를이용하는방법 2. Appletviewer를이용하는방법
More information오버라이딩 (Overriding)
WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener
More information혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가
혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에
More information제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 informationNetwork Programming
Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI
More informationJMF3_심빈구.PDF
JMF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: Revision number: Issued by: JMF3_ doc Issue Date:
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationuntitled
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 informationResearch & 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 information4장.문장
문장 1 배정문 혼합문 제어문 조건문반복문분기문 표준입출력 입출력 형식화된출력 [2/33] ANSI C 언어와유사 문장의종류 [3/33] 값을변수에저장하는데사용 형태 : < 변수 > = < 식 > ; remainder = dividend % divisor; i = j = k = 0; x *= y; 형변환 광역화 (widening) 형변환 : 컴파일러에의해자동적으로변환
More information슬라이드 1
1. 개요 - 실행환경연계통합레이어 (1/3) 연계통합레이어는타시스템과의연동기능을제공하는 Layer 임 전자정부개발프레임워크실행환경 서비스그룹 Presentation Layer 설명 업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면구성, 사용자입력정보검증등의기능을제공함 Layer Presentation Layer Logic Business
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationWeb Application을 구성하는 패턴과 Spring ROO의 사례
Spring Roo 와함께하는 쾌속웹개발 정상혁, KSUG (www.ksug.org) 목차 1. Tool 2. Demo 3. Application 1. Tool 1.1 개요 1.2 Command line shell 1.3 Round-trip 1.4 익숙한도우미들 1.1 개요 Text Based RAD Tool for Java Real Object Oriented의첫글자들
More informationPowerPoint 프레젠테이션
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