2 Cover Story POJO 로돌아온 EJB 3.0 과자바퍼시스턴스 API 이번특집에서는자바EE 5의변화중가장눈에띄는 EJB 3.0과자바퍼시스턴스 (Java Persistence) API 기술을소개하고자한다. 이기술들은기존 EJB 2.1에비해서많은부분이달라졌다.

Size: px
Start display at page:

Download "2 Cover Story POJO 로돌아온 EJB 3.0 과자바퍼시스턴스 API 이번특집에서는자바EE 5의변화중가장눈에띄는 EJB 3.0과자바퍼시스턴스 (Java Persistence) API 기술을소개하고자한다. 이기술들은기존 EJB 2.1에비해서많은부분이달라졌다."

Transcription

1 2 Cover Story POJO 로돌아온 EJB 3.0 과자바퍼시스턴스 API 이번특집에서는자바EE 5의변화중가장눈에띄는 EJB 3.0과자바퍼시스턴스 (Java Persistence) API 기술을소개하고자한다. 이기술들은기존 EJB 2.1에비해서많은부분이달라졌다. 자바SE 5의메타데이터어노테이션 (metadata annotation) 을도입하고 POJO(Plain Old Java Object) 기반의단순화된프로그래밍모델을제공한다는것이가장큰특징이다. 더불어기존의 EJB 엔티티빈은자바퍼시스턴스 API로대체되면서좀더쉽고강력한 ORM 기술을제공한다. 김원석 티맥스소프트에서 WAS(Web Application Server) 제품인제우스 (JEUS) 를개발하고있다. 주로 EJB 컨테이너와백엔드부분에대한일을담당하고있다. 또한자바표준화단체인 JCP에서자바EE 5의스펙을제정하는전문가그룹멤버로활동을해왔다. 최근에는오픈소스자바EE 플랫폼인글래스피시 (GlassFish) 프로젝트에도참여하고있다. EJB(Enterprise JavaBeans) 는한마디로말해 분산컴포넌트와 DB에대한접근방법을제공하는기술이라고할수있다. EJB는자바 EE 프레임워크에서백엔드를담당하는중요한역할을해왔지만기존 EJB 2.1은개발자에게다가가기쉬운존재는아니었다. 일반적인자바 OOP 프로그래밍과는다른복잡한구조와많은코드, 복잡한 XML 정의가필요한등의문제탓이었다. EJB 프로그래밍을위해서는많은노력이필요했고, 당연히처음접하는사람들에게는높은벽으로느껴질수밖에없었다. 하지만 EJB 3.0에서는 EJB만의복잡한프로그래밍모델에서탈피하여일반적인자바프로그래밍모델인 POJO(Plain Old Java Object) 스타일로바뀌면서단순화된프로그래밍이가능해졌다. POJO 스타일프로그래밍은이미스프링 (Spring) 이나하이버네이트 (Hibernate) 와같은오픈소스프레임워크에서많이사용되고있다. 단순화된프로그래밍모델과코드의재활용가능성을높여줄뿐만아니라 IDE의리팩토링기능을십분활용할수있다는점들이이프레임워크들의인기비결이다. 또한자바SE 5에서추가된메타데이터어노테이션 (Metadata annotation) 언어기능을사용하여 EJB에관련된설정을 XML 디스크립터 (deployment descriptor) 대신코드상에서직접할수있게되었다. 이렇게하면서개발자는복잡한 XML 설정에서탈 micro software

2 피할수있게되고코드상에서연관된설정을할수있기때문에코드의가독성도높아지게되었다. 물론그외에도여러방면에서개발자편의성을높이기위한노력이이루어졌다. 자바퍼시스턴스 (Java Persistence) API 1.0은 DB 에접근하기위해사용되었던기존엔티티빈을대체하는새로운기술이다. 자바퍼시스턴스는엔티티빈과는아주다른 POJO 기반의 ORM(Object-Relational Mapping) 프로그래밍모델을제공하며기존에존재하던하이버네이트 (Hibernate) 와같은 ORM 솔루션과유사하다. 또한 EJB에국한되지않은범용적인기술로만들어졌기때문에자바EE 환경에서뿐만아니라자바SE 환경에서도사용할수있다. 자바퍼시스턴스는 EJB 3.0과는별도로다루기로하고여기에서는먼저 EJB 3.0에대해서알아보자. EJB 3.0 EJB 3.0 프로그래밍모델이 EJB 2.1에비해서얼마나개선되었을까? 백문이불여일견이라했으니 Hello 메시지를출력하는간단한예제코드인 HelloEJB를통해살펴보도록하자. < 리스트 1> 은기존 EJB 2.1 방식으로구현한것이다. 자바 EE 5 애플리케이션서버 현재여러벤더들이자바EE 5의플랫폼을내놓고있다. 완성된상용수준의제품은아니지만충분히개발용으로쓸만하다. 국내제품으로는자바EE 5 호환인증을세계최초로통과한티맥스소프트의제우스 (JEUS) 6.0 프리뷰가있다. 또한썬마이크로시스템즈의자바EE 5 SDK( 또는이의오픈소스구현인글래스피시 (GlassFish)) 도나와있다. 그외에도 EJB 3.0만지원하는 JBoss EJB 3.0과 Oracle Application Server , BEA WebLogic Server EJB 3.0 프리뷰와같은제품도있으니참고하자. 여기에제시된예제들은기본적으로제우스 6.0을기반으로작성되었으며자바 EE 5 SDK를통해서도구동할수있다. TmaxSoft JEUS Java EE 5 SDK - GlassFish - JBoss - Oracle AS - index.html BEA WebLogic Server - weblogic/server/ < 리스트 1> EJB 2.1 로구현한 HelloEJB 와클라이언트 // 컴포넌트인터페이스 public interface Hello extends EJBObject { public String sayhello() throws RemoteException; // 홈인터페이스 public interface HelloHome extends EJBHome { Hello create() throws RemoteException, CreateException; // 빈클래스 public class HelloBean implements SessionBean { public String sayhello(){ return "Hello EJB!"; public void ejbcreate() { public void ejbremove() { public void ejbactivate() { public void ejbpassivate() { public void setsessioncontext(sessioncontext sc) { // ejb-jar.xml <ejb-jar version="2.1" xmlns=" <enterprise-beans> <session> <ejb-name>helloejb</ejb-name> <home>hello.hellohome</home> <remote>hello.hello</remote> <ejb-class>hello.hellobean</ejb-class> <session-type>stateless</session-type> </session> </enterprise-beans> </ejb-jar> // 클라이언트 public class HelloClient { public static void main(string[] args) throws Exception { Context ic = new InitialContext(); Object objref = ic.lookup("java:comp/env/ejb/helloejb"); HelloHome home = (HelloHome)PortableRemoteObject.narrow(objref, HelloHome.class); Hello hello = home.create(); System.out.println(hello.sayHello()); micro software

3 cover story 2 _ EJB 3.0 과자바퍼시스턴스 API 이미 EJB 프로그래밍을해본독자라면알겠지만매우간단한 HelloEJB 예제에도많은코드가필요하다. 또한일반적인자바 OOP 프로그래밍과달리 EJB 만의특수한모델에맞게프로그래밍해야했다. 다음은 EJB 2.1의대표적인불편사항들을정리해놓은것이다. 컴포넌트인터페이스 - 비즈니스메소드를정의한부분으로 EJBObject/EJBLocalObject를 extends하여정의한다. EJB 만의인터페이스상속구조를따라야하므로기존에존재하던일반자바인터페이스를바로재활용할수없다. 또한 EJBObject를 extends한원격인터페이스의경우 RMI(Remote Method Invocation) 인터페이스이므로모든메소드정의에 RemoteException이꼭들어가야한다. 홈인터페이스 - Stateless 세션빈의경우항상똑같이위와같은 create() 메소드를정의해야한다. EJB가많아지면반복적으로코딩해야한다. 빈클래스 - 컴포넌트인터페이스에정의된비즈니스메소드를구현한다. 하지만해당컴포넌트인터페이스를문법적으로 implements 하지않아실제인터페이스와의관계가명시적으로인식되지않는다 (IDE의리팩토링기능도쓸수없다 ). SessionBean 인터페이스를항상 implements해야하기때문에쓰지도않는콜백메소드를모두구현해야한다. ejb-jar.xml - EJB에대한설정을선언적으로해주며항상있어야한다. 컴포넌트인터페이스, 홈인터페이스, 빈클래스의관계가여기서나타나기때문에자바코드와별도로항상이 XML을참고해야 EJB 구조를알수있다. 설정이많아지면 XML 내용과구조가복잡해진다. 클라이언트 - EJB를얻기위해여러단계를거친다. JNDI lookup, 홈객체캐스팅, create 메소드호출등비즈니스로직과관계없는코드가많다. 또한컴포넌트인터페이스가 RemoteException을던질수있기때문에항상예외 (checked Exception 처리를해주어야한다. EJB 3.0에서는위에서제기한상당수의문제를해결하였다. < 리스트 2> 는똑같은예제를 EJB 3.0 방식으로구현한것이다. 실제로직에불필요한코드의양이확줄었고 POJO 방식으로프로그래밍모델이단순해진것을확인할수있다. 새롭게도입된비즈니스인터페이스는이제보통의자바인터페이스이고빈클래스가이를구현 (implements) 하는 POJO 객체이다. EJB에관련된내용은어노테이션을통해표기되므로 EJB 구조를코드상에서파악할수있다. 따라서 XML 설정 (ejb-jar.xml) 은더이 상사용할필요가없다. 반복되던홈인터페이스정의도없어졌다. 클라이언트코드도매우깔끔해졌는데인젝션 (Injection) 을통해 EJB를얻는과정이단순화되었다. < 리스트 2> EJB 3.0 으로구현한 HelloEJB 와클라이언트 // public interface Hello { public String sayhello(); // 홈인터페이스 - 없음 // public class HelloBean implements Hello { public String sayhello(){ return "Hello EJB!"; // ejb-jar.xml - 불필요함 // 클라이언트 public class HelloClient private static Hello hello; public static void main(string[] args) { System.out.println(hello.sayHello()); 앞으로는 LottoApp 이라고하는간단한샘플애플리케이션을통해 EJB 3.0 코드를살펴볼것이다. LottoApp는로또를발급하는애플리케이션으로웹인터페이스를통해 EJB를호출한다. 웹을통해들어온사용자요청은서블릿 (Servlet) 이다음의 EJB 들을사용하여처리하게된다. LotteryBean - 로또번호를발급하는 Stateful 세션빈 RandomGeneratorBean - 1에서 45 사이의랜덤숫자를발생시키는 Stateless 세션빈 TimestampBean - 현재날짜를돌려주는 Stateless 세션빈 세션빈 (Session Bean) 먼저세션빈의변화된특징에대해서먼저살펴보자. 새롭게도입된세션빈의비즈니스인터페이스 (business interface) 는 EJBObject/EJBLocalObject를 extends한인터페이스대신일반적인자바인터페이스를사용한다. 단지원격인터페이스인지 micro software

4 // 원격비즈니스인터페이스 public interface RandomGenerator { public int getnumber( // 로컬비즈니스인터페이스 public interface Timestamp { public String today( ); 위의 RandomGenerator 인터페이스에서보듯이원격인터페이스의경우에 java.rmi.remote 인터페이스를 extends 하지않아도되어 ( 선택사항임 ) 모든메소드에 RemoteException을붙일필요가없어졌다. 따라서클라이언트도이제이체크익셉션 (checked Exception) 을항상처리할필요가없다. 네트워크와같은시스템문제는이제 RuntimeException인 EJBException으로발생하기때문에익셉션처리에좀더유연성을가지게됐다. 물론여전히 EJB에대한원격접근은 RMI/IIOP를통해서이루어진다. public class RandomGeneratorBean implements RandomGenerator { public int getnumber() { Random random = new Random(); return 1 + random.nextint(45); 빈클래스는비즈니스인터페이스를 implements 한 POJO 어노테이션만달아주면된다. 또한빈클래스가 SessionBean 인터페이스를 implements 할필요가없어사용하지않는콜백메소드를모두구현할필요가없어졌다. 필요한콜백의경우콜백어노테이션을통해콜백메소드를지정하면된다. < 리스트 3> 에있는좀더복잡한 LotteryBean Stateful 세션빈을살펴보자. < 리스트 3> 어노테이션을통해서 < 리스트 3> LotteryBean Stateful 세션빈 // 인터셉터지정 public class LotteryBean implements Lottery, Serializable // 인젝션 private SessionContext // PostConstruct 콜백지정 private void // Remove 메소드지정 public void remove(){ // bye~ PostConstruct 콜백메소드를지정하고있다. XXX void XXX() 형태의시그너처를가진모든메소드는어노테이션으로콜백메소드로지정할수있기때문에하나의메소드로여러콜백을처리하는등상당한유연성을제공한다. - 빈인스턴스가생성된후에불리며예전의 ejbcreate( ) - 빈인스턴스가삭제되기전에불리며예전의 ejbremove( ) - Stateful 세션빈인스턴스가 passivation 되기전에불리며예전의 ejbpassivate( ) - Stateful 세션빈인스턴스가 activation 된후에불리며예전의 ejbactivate( ) 와동일 LotteryBean의경우또한 SessionContext source 어노테이션을사용하여인젝션해서가져오고있다. 인젝션은정확한용어로디펜던시인젝션 (Dependency Injection) 혹은리소스인젝션 (Resource Injection) 이라고하는데해당컴포넌트가의존하는외부리소스를가져오는새로운방법이다. 기존에개발자가직접 JNDI lookup하던것을이제컨테이너가알아서필드값에넣어주게된것이다. 인젝션은필드에적용할수도있고아래와같이 setter private void setsessioncontext(sessioncontext sc){ micro software

5 cover story 2 _ EJB 3.0 과자바퍼시스턴스 API this.sc = sc; 또, 인젝션을이용하여 DataSource나 EJB 참조, Connection Factory, Queue, Topic, UserTransaction 등의외부리소스를가져올수있다. LotteryBean은 Stateful 세션빈이기때문에빈을제거하기위한 Remove 어노테이션으로지정한다. Remove 메소드는임의의비즈니스메소드에지정할수있으며메소드의수행이끝나면해당 Stateful 세션인스턴스가제거된다. 인터셉터 (Interceptor) < 리스트 3> 어노테이션을이용하여 EJB 3.0에서새로추가된인터셉터 (interceptor) 클래스를지정하고있다. 인터셉터는현재많은관심을끌고있는 AOP(Aspect Oriented Programming) 의개념에서파생된것으로비즈니스메소드가불리기전에 ( 혹은후에 ) 해야하는공통적인부분 (cross-cutting concerns) 을별도로구현할수있게해준다. 인터셉터는다양한목적으로활용될수있는데, 예를들어메소드의수행시간을측정하거나예외처리, 파라미터검사, 사용자고유의보안검사등에이용될수있다. < 리스트 4> 는메소드수행시간을측정하는인터셉터이다. < 리스트 4> ProfilingInterceptor 인터셉터 public class ProfilingInterceptor public Object intercept(invocationcontext invocation) throws Exception { long start = System.currentTimeMillis(); try { return invocation.proceed(); // 다음인터셉터메소드나실제빈메소드를수행 finally { long time = System.currentTimeMillis() - start; Method method = invocation.getmethod(); System.out.println("Profiling: " + method.tostring() + " took " + time + "(ms)"); Invoke라는어노테이션을통해지정된다. 인터셉트메소드는빈클래스내에서구현하거나 ProfilingInterceptor와같이별도로 인터셉트클래스로만들수있으며인터셉트클래스는재활용할수있다는장점도있다. 중요한것은인터셉터는여러개가있으면체인으로구성되기때문에 Invocation Context.proceed() 를호출해야다음인터셉터나실제빈메소드로넘어가게된다는점이다. 인터셉터는또한디폴트레벨로정의하여모든빈에게적용시킬수도있고메소드별로정의할수도있으며 PostConstruct, PreDestroy와같은콜백인터셉트메소드도가질수있어콜백을별도의핸들러클래스로처리할수있다. 클라이언트뷰 (Client view) 기존의 EJB를호출하는클라이언트코드는실제비즈니스메소드를수행하기전에 JNDI lookup 코드등복잡한과정을수행해야했다. EJB 3.0에서는인젝션과단순화된 lookup을통해 EJB를얻어오는과정이단순해졌다. < 리스트 5> 서블릿클라이언트를살펴보자. < 리스트 5> beanname="lotterybean", beaninterface=lottery.class) public class PlayLotteryServlet extends HttpServlet // 인젝션 private RandomGenerator generator; protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { InitialContext initcontext = new InitialContext(); Lottery lottery = (Lottery) initcontext.lookup("java:comp/env/ejb/lottery"); ejb/lottery...) 어노테이션은기존의 <ejb-ref> 와같이참조되는 EJB에대해정의를한것으로 EJB를 JNDI lookup으로가져오기위해필요하다. 이렇게정의를하면해당 EJB 레퍼런스는 ENC(Environment Naming Context) 에해당하는 java:comp/env 네임스페이스에들어간다. 맨아랫줄의 lookup 코드가해당 EJB 레퍼런스를얻어오는것을보여주고있는데이처럼홈객체를통하지않고바로비즈니스객체를받아올수있다. 비즈니스인터페이스는컨테이너가 lookup 할때기존의홈객체의 create 메소드와같은과정을대신해준다. 이경우에는새로운 Stateful 세션빈인스턴스를생성하고이에대한레퍼런스를얻어오게된다. 인젝션을이용하면 JNDI lookup 보다더쉽게 EJB 레퍼런스를얻어올수있다. 어노테이션은필드 micro software

6 의타입을참조하여해당 EJB 레퍼런스를필드에넣어준다. 웹서비스엔드포인트 EJB 3.0에서는세션빈을웹서비스로노출하는것도매우간단해졌다. 이에대한것은특집 3부 JAX-WS 2.0을참조하자. MDB(Message-Driven Bean) 메시지를처리하기위한 MDB도 EJB 3.0에서 POJO 형태로단순화되었다. < 리스트 6> 에서보듯이 MDB도어노테이션을통해필요한설정을하며이제 MessageListener를직접 implements 하게된다. < 리스트 6> MDB activationconfig = propertyvalue="javax.jms.queue") ) public class SimpleMessageBean implements MessageListener private MessageDrivenContext mdc; public void onmessage(message inmessage) { 애플리케이션에서다루는객체모델을데이터베이스의데이터모델로저장하고매핑하기위해다양한 ORM(Object- Relational Mapping) 기술들이정의되어왔다. EJB에서는엔티티빈이그기술을제공해왔다. 엔티티빈은개발하기가까다롭고 EJB 자체의복잡한프로그래밍모델을사용해야할뿐아니라객체간의상속 (Inheritance) 관계를매핑하지못하는등의제약이있어서실제로쓰기에는불편하였다. 따라서최근에는하이버네이트와같은 POJO 기반의다른 ORM 기술들이점점더인기를끌어왔다. 결국 EJB 3.0 표준화그룹인 JSR 220에서 POJO를표준화된 ORM 기술로채택하게되었는데그것이바로자바퍼시스턴스 API 스펙이다. 실제로자바퍼시스턴스스펙제정에는 Gavin King( 하이버네이트제작자 ) 을포함하여여러 ORM 기술개발자들이참여했기에때문에유사한점이많다. 먼저자바퍼시스턴스가가지는특징이어떤것이있는지살펴보자. POJO 기반의단순한퍼시스턴스모델 표준화된 O/R 매핑 - 어노테이션혹은 XML 사용, 디폴트규칙적용으로대부분의경우별도의 O/R 매핑을지정할필요가없음 객체간의상속관계지원 EJBQL에비해서발전된쿼리언어 - Update/delete, 서브쿼리, 네이티브쿼리지원 자바 EE 환경뿐만아니라자바 SE 환경지원 프로바이더 (Provider) 을플러그인해서사용가능 디스크립터 EJB 3.0에서는 ejb-jar.xml 표준디스크립터의대부분을어노테이션으로설정할수있게되었다. 물론, 어노테이션이모든것을커버하지않기때문에어떤경우에는디스크립터에설정이필요할때가있기는하다. 또한보안설정 (security role) 과같이실제런타임환경에서바뀔수있는부분은디스크립터에설정을하는것이좋다. EJB 3.0에서는디스크립터오버라이딩을지원하기때문에필요한정보만디스크립터에서설정할수있다. 만약어노테이션대신에예전처럼디스크립터에모든정보를주고싶으면그렇게할수도있다. POJO 기반의단순화된프로그래밍모델을지원하기때문에엔티티빈처럼복잡한 EJB 객체모델대신일반적인자바클래스하나로쉽게엔티티를만들수있다. 필요한 O/R 매핑은 POJO 위에어노테이션으로표기하거나 XML로표기할수있고상속관계를지원하므로기존에존재하던객체모델을쉽게자바퍼시스턴스엔티티로전환해서사용할수있다. 또한엔티티객 Customer Item ID string PRIMARY KEY ID int PRIMARY KEY NAME string NAME string ADDRESS string 자바퍼시스턴스 (Java Persistence) API 1 N 이제부터는데이터를관계형데이터베이스 (RDBMS) 에저장하기위한퍼시스턴스레이어기술인자바퍼시스턴스에대해서 N Order ID int PRIMARY KEY M 살펴보자. < 그림 1> 예제데이터모델 micro software

7 cover story 2 _ EJB 3.0 과자바퍼시스턴스 API 체는 POJO 이므로 DTO(Data Transfer Object) 로바로사용이가능하다. 앞으로는 OrderApp이라고하는간단한애플리케이션을통해자바퍼시스턴스의전반적인내용을살펴볼것이다. OrderApp 는 EJB로구현된단순한주문시스템인데 EJB에서자바퍼시스턴스 API를사용하여데이터를다루게된다. 여기에서사용된데이터모델은 < 그림 1> 과같다. 엔티티 (Entity) DB의데이터모델은자바퍼시스턴스에서엔티티 (Entity) 로표현된다. 엔티티는데이터모델을객체모델로표현한것으로 EJB 2.1의엔티티빈과유사하지만자바퍼시스턴스에서는별도의인터페이스없이 POJO 클래스로표현된다. 어노테이션이달려있다. 실제로 < 그림 1> 의데이터모델에대해서엔티티가어떻게만들어지는지 < 리스트 7> 을보도록하자. < 리스트 7> 엔티티클래스 // public class Customer implements Serializable private String id; private String name; private String cascade={cascadetype.all) private List<Orders> orders; // public class Item implements public long getid() { return id; public void setid(long id) { this.id = id; public String getname(){ return name; public void setname(string name){ this.name = name; // public class Orders implements private Long private private Collection<Item> items; 엔티티는기본적으로하나의엔티티클래스에대해하나의 DB 테이블이매핑된다 ( 이경우에는 M:N(many to many) 관계를위한테이블이하나더만들어진다 ). 필드나자바빈즈 (JavaBeans) 프로퍼티값은 DB의컬럼에매핑된다. 어떤부분에어노테이션이달려있는지에따라서필드접근타입 (Field access type) 과프로퍼티접근타입 (Property access type) 이결정된다. 예제에서는 Customer, Orders 엔티티의경우필드들이매핑되고, Item 엔티티의경우프로퍼티들이 DB 컬럼에매핑된다. DB와의매핑은 O/R 매핑어노테이션혹은 XML(orm.xml 디스크립터 ) 로이루어진다. Primary Key를나타내는필드나관계 (Relationship) 를나타내는필드를제외하고는대부분디폴트정책에따라서매핑되기때문에별도의어노테이션을지정하지않아도된다. 다음은위의엔티티에서사용된어노테이션들에대한설명이다. 이외에도 O/R - Primary Key에해당하는 ID - - 1:N - N:1 - M:N - 관계를표현할때어떤테이블을사용할것인지에대해표시한다. micro software

8 엔티티는일반클래스와비슷하지만항상디폴트생성자 (Default constructor) 를만들어주어야한다는특징이있다. 디폴트생성자는엔티티인스턴스를내부적으로도생성해서사용하기때문에필요하다. 또한예제의경우엔티티들이 Serializable 객체로구현되었는데이는필수사항은아니지만엔티티를 DTO(Data Transfer Object) 로사용하여원격으로보낼때필요하다. EntityManager API DB에서엔티티를가져오거나, 생성, 삭제하는일은모두 EntityManager API를통해서이루어진다. EntityManager는누가관리하느냐에따라크게두가지로구분된다. Container-managed EntityManager - 자바EE 환경에서만사용되며컨터이너가 EntityManager 인스턴스의 Lifecycle 을관리한다. JTA 트랜잭션에자동으로연결되기때문데자바 EE 환경에서유용하다. Application-managed EntityManager - 자바EE, 자바SE 환경에서모두사용되며개발자가 EntityManager 인스턴스의 Lifecycle을직접관리하며트랜잭션도직접관리해야한다. EntityManager 객체는 Container-managed Entity Manager의경우인젝션이나 lookup을통해서바로얻어올수있다. // 인젝션이용. private EntityManager em; // lookup 이용. EntityManager를 ENC em, unitname= HR ) public class HelloBean implements Hello { InitialContext ic = new InitialContext(); EntityManager em = (EntityManager)ic.lookup( java:comp/ env/em private EntityManagerFactory emf; EntityManager em = emf.createentitymanager(); 엔티티객체를만드는것은일반자바객체를생성하듯이 new 생성자를사용하면되며이를 DB에저장하려면다음과같이 EntityManager.persist() 메소드를호출해야한다. Customer customer = new Customer(id, name, address); em.persist(customer); DB에서하나의엔티티객체를가져오려면 Entity Manager.find() 메소드를호출한다. 이경우에는 Primary key 에해당하는값을통해서엔티티를가져올수있다. Customer c = em.find(customer.class, id); 또는자바퍼시스턴스쿼리랭귀지 (Java Persistence Query Language) 를이용하여모든엔티티들을가져오거나특정필드값을비교하여엔티티를가져올수있다. Query query = em.createquery( select c from Customer c ); List list = query.getresultlist(); 엔티티의필드를수정하려면엔티티객체의필드를수정하면된다. 해당필드는 EntityManager.flush() 를호출하거나트랜잭션이 commit 될때 DB 와동기화된다. Customer c = em.find(customer.class, id); c.setaddress(address); 엔티티를삭제할때에는 EntityManager.remove() 를호출한다. em.remove(customer); Application-managed EntityManager의경우 Entity ManagerFactory API를통해서 EntityManager 객체를얻게된다. 자바EE 환경에서는인젝션이나 lookup을통해 EntityManagerFactory를얻어올수있다. 엔티티간의관계 (Relationship) 는다른엔티티에대한레퍼런스로표현되는데관계를수정하려면레퍼런스값을바꾸면된다. 혹은 ManyToMany, OneToMany와같이여러개의엔티티와관계를맺고있을때는 Collection 객체로표현되므로해당 micro software

9 cover story 2 _ EJB 3.0 과자바퍼시스턴스 API Collection 내용을바꾸면된다. public class customer, cascade={cascadetype. PERSIST, CascadeType.REMOVE) private List<Orders> orders; public void addorder(orders o){ orders.add(o); 관계의경우에는해당엔티티에대해오퍼레이션 (persist, remove 등 ) 할때관계된엔티티도같이 persist, remove 될것인지를지정하는 cascade 타입을지정할수있다. 기본적으로는 cascade 값이지정되지않지만위와같이지정하면 Customer 엔티티가생성, 삭제될때관계된 Orders 엔티티도같이생성, 삭제된다. 쿼리 (Query) 자바퍼시스턴스에서는자바퍼시스턴스쿼리랭귀지 (Java Persistence Query Language) 라고하는객체지향적인쿼리언어를제공한다. EJBQL와유사하지만자바퍼시스턴스쿼리는 Bulk Update, Delete 문뿐만아니라서브쿼리 (Subquery) 도지원하므로그활용범위가넓다. 또한 DB에특화된 SQL 문을직접사용할수있는네이티브쿼리 (Native Query) 도지원한다. 쿼리를실제로사용할때는동적으로바로생성해서사용하거나네임드쿼리 (Named query) 라고하는정적인방식으로사용할수있다. // 동적쿼리 Query query = em.createquery( select c from Customer c where name=:name ); query.setparameter( name, name); List list = query.getresultlist(); // findcustomerbyname, query= select c from Customer c where c.name=:name ) Query query = em.createnamedquery( findcustomerbyname ); query.setparameter( name, name); List list = query.getresultlist(); 네임드쿼리 (Named Query) 는엔티티클래스에직접명기되며재활용되기때문에해당엔티티에대해서자주활용되는쿼리의경우미리정의해놓고사용하면편리하다. 엔티티의라이프사이클과퍼시스턴스컨텍스트 EntityManager의동작은퍼시스턴스컨텍스트 (Persistence Context) 와이와관련된엔티티인스턴스의라이프사이클을알아야이해할수있다. 이부분은자바퍼시스턴스에서중요하고도조금복잡한부분이다. 퍼시스턴스컨텍스트 (Persistence Context) 는현재관리되고있는엔티티인스턴스들의집합을말하는데엔티티인스턴스의상태는 EntityManager 오퍼레이션과밀접한관련이있다. < 그림 2> 는엔티티의상태가어떻게변화하는지보여준다. Update tx commit/rollback persist clear New Managed Detached merge remove Removed < 그림 2> EntityManager 오퍼레이션에따른엔티티의라이프사이클 New- 엔티티인스턴스가생성되었을때의상태로 DB와연결되어있지않다. persist( ) 를통해서 DB에저장되며 managed 상태가된다. Managed - 엔티티인스턴스가퍼시스턴스컨텍스트에의해서관리되는상태로엔티티인스턴스값의변화가 DB에반영된다. Container-managed EntityManager의경우트랜잭션이종료되면모든엔티티는 detached 상태가된다. Detached - 엔티티인스턴스가퍼시스턴스컨텍스트에의해서더이상관리되지않는상태로 DB와연결되지않는다. EntityManager.merge( ) 를통해서다시 managed 상태로만들수있다. Removed - DB에서해당엔티티가삭제될상태이다. 패키징 (Packaging) 이제엔티티클래스들을실제로애플리케이션에패키징시키는방법에대해알아보자. 엔티티클래스를패키징할때는 META-INF/persistence.xml 디스크립터가꼭필요하다. persistence.xml은관련된엔티티클래스들과이에대한 DB micro software

10 DataSource 설정등과같이퍼시스턴스유닛 (Persistence Unit_ 에대한정보를담고있다. 퍼시스턴스유닛은엔티티를묶는단위이며이것은하나의 DB에만매핑된다. 퍼시스턴스유닛은유닛이름 (Unit Name) 식별자를가지는데이식별자는 EntityManager 나 EntityManagerFactory를얻을때사용된다. EntityManager em = emf.createentitymanager(); EntityTransaction tx = em.gettransaction(); tx.begin(); em.persist(customer); tx.commit(); // persistence.xml <persistence version= 1.0 xmlns= em.close(); emf.close(); persistence > <persistence-unit name= orderunit transaction-type= JTA > <jta-data-source>jdbc/sample</jta-data-source> <properties> <!-- 프로바이더별설정 --> <property name= toplink.ddl-generation value= createtables /> </properties> </persistence-unit> 자바SE에서는 javax.persistence.spi.persistence 부트스트랩 API를사용해서 EntityManagerFactory를얻는다는것과 EntityTransaction API를이용하여직접트랜잭션컨트롤을해주어야한다는차이가있다. 또한 persistence.xml 파일의위치는클래스패스상에서 META-INF/persistence.xml에있어야하며, 자바EE 환경과달리다음과같이모든엔티티클래스를명시적으로나열해주어야한다. </persistence> <persistence-unit name= orderunit > 패키징은다음과같이 JAR 파일이나디렉토리에할수있으며이단위를퍼시스턴스유닛루트 (Persistence Unit Root) 라고한다. <class>orderapp.entities.customer</class> <class>orderapp.entities.item</class> <class>orderapp.entities.orders</class> EAR library 디렉터리의 JAR 파일 (e.g. orderapp.ear!/lib/entities.jar) EAR 루트디렉터리의 JAR 파일 (e.g. orderapp.ear!/entities.jar) EJB JAR 파일 (e.g. orderapp.ear!/orderapp-ejb.jar) WAR 파일의 WEB-INF/classes (e.g. orderapp-web.war!/web-inf/classes) WAR 파일의 WEB-INF/lib에 JAR 파일 (e.g. orderapp-web.war!/web-inf/lib/entities.jar) application client의 JAR 파일 (e.g. orderapp.ear!/orderapp-client.jar) 지금까지 EJB 3.0과자바퍼시스턴스 API 1.0 내용과예제코드를살펴보았다. 지면관계로많은내용을깊이있게다루지는못하였지만전반적인특징을살펴보는데도움이되었으리라믿는다. 2006년자바원 (JavaOne) 에서도 EJB 3.0과자바퍼시스턴스에관련된세션이많았다. 필자의블로그에가면세션에대한소개와프리젠테이션 PDF를받을수있다 ( ml). 자바SE 환경에서사용하기자바SE 환경에서사용할때는 Application-managed EntityManager만사용할수있으며 JDBC 드라이버에국한된로컬 (resource-local) 트랜잭션만쓸수있다. EntityManagerFactory emf = Persistence.createEntityManager Factory( orderunit ); 이달의디스켓 : EJB30samp.zip 참고자료 1. Java EE 5 Tutorial SDN Article: The Java Persistence API - A Simpler Programming Model for Entity Persistence JSR micro software

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

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

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

목차 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

- 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

교육2 ? 그림

교육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

歯Writing_Enterprise_Applications_2_JunoYoon.PDF

歯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

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

JavaGeneralProgramming.PDF

JavaGeneralProgramming.PDF , Java General Programming from Yongwoo s Park 1 , Java General Programming from Yongwoo s Park 2 , Java General Programming from Yongwoo s Park 3 < 1> (Java) ( 95/98/NT,, ) API , Java General Programming

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

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

@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

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* 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 information

J2EE Concepts

J2EE Concepts ! Introduction to J2EE (1) - J2EE Servlet/JSP/JDBC iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

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

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

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

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

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

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

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

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

Design Issues

Design 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 information

어댑터뷰

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

More information

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가 혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

Microsoft PowerPoint - RMI.ppt

Microsoft 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 information

본 강의에 들어가기 전

본 강의에 들어가기 전 웹서버프로그래밍 2 JSP 개요 01. JSP 개요 (1) 서블릿 (Servlet) 과 JSP(Java Server Page) 서블릿은자바를이용한서버프로그래밍기술 초기웹프로그래밍기술인 CGI(Common Gateway Interface) 를대체하기위해개발되었으나, 느린처리속도, 많은메모리요구, 불편한화면제어등의한계로 PHP, ASP 등서버스크립트언어등장 JSP

More information

슬라이드 1

슬라이드 1 EJB and JBoss SEAM 양수열소장 Java Champion, JCO Advisor, Inpion Consulting Agenda Web Framework & EJB What is Seam? Why Seam? Q/A Framework history Main Milestone in Standard & OpenSource 95 96 97 98 99 00

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

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

제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

쉽게 풀어쓴 C 프로그래밊

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

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

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

Microsoft PowerPoint - CSharp-10-예외처리

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lab 4 ADT Design 클래스로정의됨. 모든객체들은힙영역에할당됨. 캡슐화 (Encapsulation) : Data representation + Operation 정보은닉 (Information Hiding) : Opertion부분은가려져있고, 사용자가 operation으로만사용가능해야함. 클래스정의의형태 public class Person { private

More information

EJB Transaction & Exception

EJB Transaction & Exception Enterprise JavaBeans 3.0 Java EE 5.0 Business Tier Component Technology 김병곤 fharenheit@j2eearchitect.net / @gmail.com Enterprise JavaBeans 3.0 Java EE 의핵심비즈니스컴포넌트구현기술 기존의 EJB 2.x 는 Heavy 한 Object 로 EJB

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

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

중간고사

중간고사 중간고사 담당교수 : 단국대학교응용컴퓨터공학박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호 (4자리숫자 ) 를기입하면성적공고시학번대신암호를사용할것임. 1. JSP 란무엇인가? 간단히설명하라.

More information

JAVA Bean & Session - Cookie

JAVA Bean & Session - Cookie JAVA Bean & Session - Cookie [ 우주최강미남 ] 발표내용소개 자바빈 (Java Bean) 자바빈의개요 자바빈의설계규약 JSP 에서자바빈사용하기 자바빈의영역 세션과쿠키 (Session & Cookie) 쿠키의개요 쿠키설정 (HTTP 서블릿 API) 세션의개요 JSP 에서의세션관리 Java Bean Q. 웹사이트를개발한다는것과자바빈?? 웹사이트라는것은크게디자이너와프로그래머가함께개발합니다.

More information

2장 변수와 프로시저 작성하기

2장  변수와 프로시저 작성하기 Chapter. RequestDispatcher 활용 요청재지정이란? RequestDispatcher 활용 요청재지정구현예제 Chapter.9 : RequestDispatcher 활용 1. 요청재지정이란? 클라이언트로부터요청받은 Servlet 프로그램이응답을하지않고다른자원에수행흐름을넘겨다른자원의처리결과를대신응답하는것또는다른자원의수행결과를포함하여응답하는것을요청재지정이라고한다.

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Chap12

Chap12 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

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345]) Chapter 17. RMI Mingyu Lim Collaborative Computing Systems Lab, School of Internet & Multimedia Engineering Konkuk University, Seoul, Korea 학습목표 RMI란 RMI 구조 RMI는어떻게동작하는가 로컬객체를원격객체로변경하기 RMI를이용한계산기애플리케이션

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

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA 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

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 public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 2강 컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.

More information

파워포인트 템플릿

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

More information

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345]) 예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음

More information

FileMaker 15 ODBC 및 JDBC 설명서

FileMaker 15 ODBC 및 JDBC 설명서 FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information

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

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

More information

Business Agility () Dynamic ebusiness, RTE (Real-Time Enterprise) IT Web Services c c WE-SDS (Web Services Enabled SDS) SDS SDS Service-riented Architecture Web Services ( ) ( ) ( ) / c IT / Service- Service-

More information

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다. 설치및환경설정 JDBC 접속세션구분 / 확인 2013. 11. 01 개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다. 사용하기 JEUS 에서설정방법

More information

Interstage4 설치가이드

Interstage4 설치가이드 Interstage Application Server V501 Operation Guide Internet 1 1 1 FJApache FJApache (WWW (WWW server) server) - - file file - - 2 2 InfoProviderPro InfoProviderPro (WWW (WWW server) server) - - file file

More information

JDBC 소개및설치 Database Laboratory

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

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 왜생겼나요..? : 절차지향언어가가진단점을보완하고다음의목적을달성하기위해..! 1. 소프트웨어생산성향상 객체지향소프트웨어를새로만드는경우이미만든개체지향소프트웨어를상속받거나객체를 가져다재사용할수있어부분수정을통해소프트웨어를다시만드는부담줄임. 2. 실세계에대한쉬운모델링 실세계의일은절차나과정보다는일과관련된많은물체들의상호작용으로묘사. 캡슐화 메소드와데이터를클래스내에선언하고구현

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 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

JVM 메모리구조

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

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 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 information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.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 information

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri

내장서버로사용. 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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

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

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt AWT 컴포넌트 (1) 1. AWT 패키지 2. AWT 프로그램과이벤트 3. Component 클래스 4. 컴포넌트색칠하기 AWT GUI 를만들기위한 API 윈도우프로그래밍을위한클래스와도구를포함 Graphical User Interface 그래픽요소를통해프로그램과대화하는방식 그래픽요소를 GUI 컴포넌트라함 윈도우프로그램만들기 간단한 AWT 프로그램 import

More information

유니티 변수-함수.key

유니티 변수-함수.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 information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 9 장생성자와접근제어 이번장에서학습할내용 생성자 정적변수 정적메소드 접근제어 this 클래스간의관계 객체가생성될때초기화를담당하는생성자에대하여살펴봅니다. 생성자 생성자 (contructor): 객체가생성될때에필드에게초기값을제공하고필요한초기화절차를실행하는메소드 생성자의예 class Car { private String color; // 색상

More information

FileMaker ODBC 및 JDBC 가이드

FileMaker ODBC 및 JDBC 가이드 FileMaker ODBC JDBC 2004-2019 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, FileMaker Cloud, FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker,

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

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

Microsoft PowerPoint - 10Àå.ppt

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

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

Microsoft PowerPoint - Lect04.pptx

Microsoft PowerPoint - Lect04.pptx OBJECT ORIENTED PROGRAMMING Object Oriented Programming 이강의록은 Power Java 저자의강의록을사용했거나재편집된것입니다. Class 와 object Class 와객체 클래스의일생 메소드 필드 String Object Class 와객체 3 클래스 클래스의구성 클래스 (l (class): 객체를만드는설계도 클래스로부터만들어지는각각의객체를특별히그클래스의인스턴스

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

슬라이드 1

슬라이드 1 Continuous Integration 엔터프라이즈어플리케이션아키텍처 조영호카페PJT팀 2008.10.01 youngho.cho@nhncorp.com 목차 1. Domain Logic Pattern 2. Data Source Pattern 3. Putting It All Together 1. Domain Logic Pattern Layered Architecture

More information

mytalk

mytalk 한국정보보호학회소프트웨어보안연구회 총괄책임자 취약점분석팀 안준선 ( 항공대 ) 도경구 ( 한양대 ) 도구개발팀도경구 ( 한양대 ) 시큐어코딩팀 오세만 ( 동국대 ) 전체적인 그림 IL Rules Flowgraph Generator Flowgraph Analyzer 흐름그래프 생성기 흐름그래프 분석기 O parser 중간언어 O 파서 RDL

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ 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

gnu-lee-oop-kor-lec10-1-chap10

gnu-lee-oop-kor-lec10-1-chap10 어서와 Java 는처음이지! 제 10 장이벤트처리 이벤트분류 액션이벤트 키이벤트 마우스이동이벤트 어댑터클래스 스윙컴포넌트에의하여지원되는이벤트는크게두가지의카테고리로나누어진다. 사용자가버튼을클릭하는경우 사용자가메뉴항목을선택하는경우 사용자가텍스트필드에서엔터키를누르는경우 두개의버튼을만들어서패널의배경색을변경하는프로그램을작성하여보자. 이벤트리스너는하나만생성한다. class

More information

PowerPoint Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

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

기술자료

기술자료 1 쪽중 1 쪽 WebLogic Server 8.1 Tutorials 03 - 리소스 (JDBC, JMS 등 ) 설정 본문서에서는 MedRec 애플리케이션을디플로이하고서비스하기위해서필요한 WebLogic Server 의리소스들을설정하는방법에대하여설명할것이다. 1. JDBC(Java Database Connectivity) Connection Pool 과 Data

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft 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 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

뇌를 자극하는 JSP & Servlet 슬라이드

뇌를 자극하는 JSP & Servlet 슬라이드 속성 & 리스너 JSP & Servlet 2/39 Contents 학습목표 클라이언트요청에의해서블릿이실행될때에컨테이너에의해제공되는내장객체의종류와역할, 그리고접근범위특성등을알아본다. 웹컴포넌트사이의데이터전달을위한내장객체에서의속성설정과이에따른이벤트처리방법에대해알아본다. 내용 서블릿의초기화환경을표현하는 ServletConfig 객체 웹애플리케이션의실행환경을표현하는

More information

歯Writing_Enterprise_Applications_7_JunoYoon.PDF

歯Writing_Enterprise_Applications_7_JunoYoon.PDF Writing Enterprise Applications with Java 2 Platform, Enterprise Edition - part7 JSTORM http://wwwjstormpekr Revision: Document Information Document title: Writing Enterprise

More information

14-Servlet

14-Servlet JAVA Programming Language Servlet (GenericServlet) HTTP (HttpServlet) 2 (1)? CGI 3 (2) http://jakarta.apache.org JSDK(Java Servlet Development Kit) 4 (3) CGI CGI(Common Gateway Interface) /,,, Client Server

More information

슬라이드 1

슬라이드 1 NeoDeveloper 설치가이드 차례 1. 환경 3 2. 설치 3 2.1 웹서버설치 3 Tomcat 7 3 JDK 1.6 3 2.2 NeoDeveloper 설치 3 Neo Developer 서버구성 3 Demo용 User Application 구성 4 Neo Developer 서버 Data File 4 Client 개발 Tool 설치 4 3. 설정 5 3.1

More information

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E > Chapter 8 데이터베이스응용개발 목차 사용자인터페이스와도구들 웹인터페이스와데이터베이스 웹기초 Servlet 과 JSP 대규모웹응용개발 ASP.Net 8 장. 데이터베이스응용개발 (Page 1) 1. 사용자인터페이스와도구들 대부분의데이터베이스사용자들은 SQL을사용하지않음 응용프로그램 : 사용자와데이터베이스를연결 데이터베이스응용의구조 Front-end Middle

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 예외처리 배효철 th1g@nate.com 1 목차 예외와예외클래스 실행예외 예외처리코드 예외종류에따른처리코드 자동리소스닫기 예외처리떠넘기기 사용자정의예외와예외발생 예외와예외클래스 구문오류 예외와예외클래스 구문오류가없는데실행시오류가발생하는경우 예외와예외클래스 import java.util.scanner; public class ExceptionExample1

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

JEUS

JEUS JEUS Application Client 안내서 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824

More information

JAVA PROGRAMMING 실습 07. 상속

JAVA PROGRAMMING 실습 07. 상속 상속 부모클래스에정의된필드와메소드를자식클래스가물려받는것 슈퍼클래스 (superclass) 특성을물려주는상위클래스 서브클래스 (subclass) 특성을물려받는하위클래스 슈퍼클래스에자신만의특성 ( 필드, 메소드 ) 추가 슈퍼클래스의특성 ( 메소드 ) 을수정 = 오버라이딩구체화 class Phone 전화걸기전화받기 class MobilePhone 전화걸기전화받기무선기지국연결배터리충전하기

More information

BEA_WebLogic.hwp

BEA_WebLogic.hwp BEA WebLogic Server SSL 설정방법 - Ver 1.0-2008. 6 개정이력 버전개정일개정내용 Ver 1.0 2008 년 6 월 BEA WebLogic Server SSL 설명서최초작성 본문서는정보통신부 한국정보보호진흥원의 보안서버구축가이드 를참고하여작성되었습니다. 본문서내용의무단도용및사용을금합니다. < 목차 > 1. 개인키및 CSR 생성방법

More information