스프링.docx

Size: px
Start display at page:

Download "스프링.docx"

Transcription

1 1. 스프링기초 01. 스프링프레임워크란? 중량급인 J2EE 컨테이너를대신할경량컨테이너로서스프링을고안. 경량컨테이너란 POJO(Plain Old Java Object) 로불리는, 컨테이너와프레임워크등에의존하지않는일반오브젝트의생애주기관리나오브젝트간의의존관계를해결하는아키텍처를구현한컨테이너. 02. 스프링프레임워크특징 1) 경량컨테이너. 스프링컨테이너는자바객체의생성, 소멸과같은라이프사이클을관리하며, 스프링 컨테이너로부터필요한객체를가져와사용. 2) DI(Dependency Injection) 를지원. 설정파일이나어노테이션을통해서객체간의의존관계를설정 3) AOP(Aspect Oriented Programming) 지원. 트랜잭션이나로깅, 보안과같이여러모듈에서공통으로필요로하지만실제모듈의 핵심은아닌기능들을분리해서각모듈에서적용 4) POJO(Pain Old Java) 지원. 5) 트랙잭션처리를위한일관된방법제공. 6) JDBC, MyBatis(iBatis), 하이버네트, JPA 등데이터베이스처리를위한라이브러리

2 연동 7) JMS, 메일, 스케줄링등엔터프라이즈어플리케이션을개발하는데필요한다양한 API 연동 03. 스프링프레임워크설치 스프링사이트 : STS 다운로드 :

3 04. Dependency Injection 객체간의존관계를형성할때의존 (dependency) 하는객체를조립기가삽입 (inject) 해 주는방식. 스프링은설정파일과어노테이션을이용하여손쉽게객체간의의존 관계를설정하는기능제공. 05. AOP AOP(Aspect Oriented Programming) 는공통의관심사항을적용해서발생하는의존 관계의복잡성과코드중복을해소해주는프로그래밍기법. 보안이나트랜잭션과같은 공통기능을별도의모듈로구현한뒤, 각기능을필요로하는곳에적용. 2. 스프링 DI 와객체관리 01. ID 란 DI(Dependency Injection) 은의존관계주입이다. 오브젝트사이의의존관계를만드는

4 것이다. 오브젝트사이의의존관계를만든다는말은어떤오브젝트의프로퍼티 ( 인스턴스변수를가리킴 ) 에그오브젝트가이용할오브젝트를설정하는것이다. 이것을학술적으로말하면, 어떤오브젝트가의존 ( 이용 ) 할오브젝트를주입혹은인젝션 ( 프로퍼티에설정 ) 한다는것이다. 02. 스프링컨테이너 스프링은객체를관리하는컨테이너를제공. 스프링은컨테이너에객체를담아두고, 필요할때에컨테이너로부터객체를가져와사용할수있도록하고있다. 1) BeanFactory 인터페이스 org.springframework.beans.factory.beanfactory 인터페이스는빈객체를관리하고각 빈객체간의의존관계를설정해주는기능을제공하는가장단순한컨테이너. 구현클래스는 org.springframework.beans.factory.xml.xmlbeanfactory Resource resource = new FileSystemResource( beans.xml ); XmlBeanFactory factory = new XmlBeanFactory(reource); AgentService agent = (AgentService)factory.getBean( agent ); Resource 구현클래스 클래스 org.springframework.core.io.fil esystemresource 설명 파일시스템의특정파일로부터정보를읽어온다. org.springframework.core.io.in InputStream 으로부터정보를읽어온다.

5 putstreamresource org.springframework.core.io.cla sspathresource org.springframework.core.io.url Resource org.springframework.web.conte xt.support.servletcontextresou rce 클래스패스에있는자원으로부터정보를읽어온다. 특정 URL 로부터정보를읽어온다. 웹어플리케이션의루트디렉터리를기준으로지정한경로에위치한자원으로부터정보를읽어온다. 2) ApplicationContext 인터페이스와 WebApplicationContext 인터페이스 org.springframework.context.applicationcontext 인터페이스 빈관리기능, 빈객체라이프사이클, 파일과같은자원처리추상화, 메시지지원및 국제화지원, 이벤트지원, XML 스키마확장을통한편리한설정등추가적인기능을 제공. String configlocation = config/applicationcontext.xml ; ApplicationContext context = new ClassPathXmlApplicationContext(configLocation); ParserFactory factory = (ParserFactory)context.getBean( parserfactory ); 여러 XML 파일사용시 String[] configlocation = new String[]{ config/applicationcontext.xml, config/aop.xml ; ApplicationContext context = new ClassPathXmlApplicationContext(configLocation); ParserFactory factory = (ParserFactory)context.getBean( parserfactory );

6 org.springframework.web.context.webapplicationcontext 인터페이스 웹어플리케이션을위한 ApplicationContext 로서하나의웹어플리케이션 ( 즉, 하나의 ServletContext) 마다한개이상의 WebApplicationContext 를가질수있다. 웹어플리케이션에서 web.xml 파일에설정을통해 XmlWebApplicationContext 객체를생성하고사용. <context-param> <param-name>contextconfiglocation</param-name> <param-value>web-inf/applicationcontext.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listenerclass> </listener> 03. 빈 (Bean) 생성과의존관계설정 1) 빈객체설정및컨테이너를통한빈객체사용 <bean id= articledao class= com.spring.chap02.mysqlarticledao ></bean> or <bean name= articledao class= com.spring.chap02.mysqlarticledao ></bean> XmlBeanFactory 클래스를이용해서빈객체를가져와사용하는코드

7 Resource resource = new ClassPathResource("applicationContext.xml"); // 스프링컨테이너생성 BeanFactory beanfactory = new XmlBeanFactory(resource); // 스프링컨테이너로부터빈객체를가져와사용 WriteArticleService articleservice = (WriteArticleService) beanfactory.getbean("writearticleservice"); 스프링 3 버전부터타입변환대신제네릭 (Generic) 을이용해서원하는타입으로빈을 구할수있는 getbean() 메서드제공 ArticleDao articledao = beanfactory.getbean("articledao",articledao.class); 2) 의존관계설정 2-1) 생성자방식 <bean name="writearticleservice" class="madvirus.spring.chap01.writearticleserviceimpl"> <constructor-arg> <ref bean="articledao" /> </constructor-arg> </bean> <bean name="articledao" class="madvirus.spring.chap01.mysqlarticledao"></bean>

8 2-2) 프로퍼티설정방식 <bean name="writearticleservice" class="madvirus.spring.chap02.writearticleserviceimpl"> <property name="articledao"> <ref bean="mysqlarticledao" /> </property> </bean> <bean name="mysqlarticledao" class="madvirus.spring.chap02.mysqlarticledao" /> 2-3) XML 네임스페이스를이용한프로퍼티설정 <beans xmlns=" xmlns:p=" xmlns:aop=" xmlns:context=" xmlns:xsi=" xsi:schemalocation="

9 <bean id="monitor" class="madvirus.spring.chap02.systemmonitor" p:periodtime="10" p:sender-ref="smssender" /> 주요스키마명세 명칭스키마파일 URI 설명 bean spring-beans-3.1.xsd rg/schema/beans Bean( 컴포넌트 ) 설정 context spring-context- 3.1.xsd rg/schema/context Bean( 컴포넌트 ) 검색 과애노테이션설정 util spring-util-3.1.xsd rg/schema/util jee spring-jee-3.1.xsd rg/schema/jee lang spring-lang-3.1.xsd rg/schema/lang aop spring-aop-3.1.xsd rg/schema/aop tx spring-tx-3.1.xsd rg/schema/tx mvc spring-mvc-3.1.xsd rg/schema/mvc 정의와프로퍼티파일을불러오는등의유틸리티기능설정 JNDI 의 lookup 및 EJB 의 lookup 설정스크립트언어를이용할경우의설정 AOP 설정트랜잭션설정 Spring MVC 설정

10 2-4) 룩업메서드인젝션방식 package madvirus.spring.chap02; public abstract class Processor { public void process(string commandname) { CommandFactory factory = getcommandfactory(); Command command = factory.createcommand(commandname); command.execute(); // 룩업메서드를이용해서의존객체를구함 protected abstract CommandFactory getcommandfactory(); - 접근수식어가 public 이나 protected 여야한다. - 리턴타입이 void 가아니다. - 인자를갖지않는다. - 추상메서드여도된다. - final 이아니다. 2-5) 임의빈객체전달 <bean id="processor" class="madvirus.spring.chap02.systemmonitor" p:periodtime= 10 >

11 <property name= sender > <!-- 임의빈객체 <bean class= madvirus.spring.chap02.smssender > <constructor-arg value= true /> </bean> </property> </bean> 2-6) 콜렉션타입프로퍼티설정 태그컬렉션타입설명 <list> java.util.list 자바배열 List 타입이나배열에값목록을전달할때사용 <map> java.util.map Map 타입에 < 키, 값 > 목록을전달할때사용 <set> java.util.set Set 타입에값목록을전달할때사용 <properties> java.util.properties Properties 타입에 < 프로퍼티이름, 프로퍼티값 > 목록을전달할때사용 - List 타입과배열 <bean name="performancemonitor" class="madvirus.spring.chap02.performancemonitor"> <property name="deviations">

12 <list> <value type="java.lang.double">0.2</value> <value type="java.lang.double">0.3</value> </list> </property> </bean> - Map 타입 <!-- Map 타입프로퍼티설정 --> <bean name="protocolhandlerfactory" class="kr.spring.ch10.protocolhandlerfactory"> <!-- setmap 메서드를찾아서객체전달 --> <property name="map"> <!-- <map> --> <map key-type="java.lang.string" valuetype="java.lang.object"> <entry> <key><value>soap</value></key> <ref bean="soaphandler"/> </entry> <entry> <key><value>rest</value></key> <ref bean="resthandler"/> </entry> </map> </property> </bean>

13 - Properties 타입 <!-- Properties 타입프로퍼티설정 --> <bean name="bookclient" class="kr.spring.ch11.bookclient"> <property name="prop"> <props> <prop key="server"> </prop> <prop key="connectiontimeout">5000</prop> </props> </property> </bean> - Set 타입 <!-- Set 타입프로퍼티설정 --> <bean name="bookclient2" class="kr.spring.ch12.bookclient"> <property name="subset"> <set> <value>10</value> <value>20</value> </set> </property> </bean> 3) 의존관계자동설정 byname 프로퍼티의이름과같은이름을갖는빈객체를설정

14 bytype constructor autodetect 프로퍼티의타입과같은타입을갖는빈객체를설정생성자파라미터타입과같은타입을갖는빈객체를생성자에전달 constructor 방식을먼저적용하고, bytype 방식을적용하여의존객체를설정 04. 빈범위설정 스프링빈의범위를설정 범위 설명 singleton 스프링컨테이너에한개의빈객체만존재한다.( 기본값 ) prototype 빈을사용할때마다객체를생성 request HTTP 요청마다빈객체를생성. WebApplicationContext 에서만적용가능 session HTTP 세션마다빈객체를생성. WebApplicaitionContext 에서만적용가능 globalsession 글로벌 HTTP 세션에대해빈객체를생성. 포틀릿을지원하는컨텍스트에대해서만적용가능하다. 05. 어노테이션기반설정 어노테이션을이용한필수프로퍼티검사 org.springframework.beans.factory.annotation

15 어노테이션은필수프로퍼티를명시할때사용. 어노테이션을이용한자동설정 org.springframework.beans.factory.annotation 어노테이션은의존관계를자동으로설정할때사용 어노테이션을이용한자동설정제한 main ) private Recorder recorder; <bean id= recorder class= com.spring.ch04.homecontrol.recorder > <qualifier value= main /> </bean> = camera1 ) private Camera = camera2 ) private Camera camera2;

16 어노테이션은 javax.annotation 어노테이션과마찬가지로자바 6 및 JEE 5 public void init(){ // public void close(){ // 자원반환등종료처리 06. 어노테이션을이용한자동스캔 <context:component-scan> 어노테이션이 ( 또느하위어노테이션이 ) 적용된클래스를검색하여 빈으로등록하게된다. <context:component-scan base-package="com.spring.ch06" /> 1) public class HomeController{

17 homecontrol ) public class HomeController{ 의확장 설명 프레젠테이션층스프링 MVC 비즈니스로직층 Service 데이터액세스층의 DAO 용애놑이션. 예외를모두 DataAccessException 으로변환한다.(PersistenceExceptionTranslationPostProcessor 를 Bean 정의파일에등록함으로써유효해진다.) 3) 빈의범위설정 스프링은기본적으로빈의범위를 singleton 으로설정하지만빈의범위를변경할 를이용 prototype )

18 public class HomeController{ 의주요 Value 속성 Value 속성 설명 singleton 인스턴스를싱글톤으로한다. prototype 이용할때마다인스턴스화한다. request Servlet API 의 Request 스코프인동안만인스턴스가생존 * session Servlet API 의 Session 스코프인동안만인스턴스가생존 * * Servlet2.3 에서는 RequestContextFilter, Servlet2.4 에서는 RequestContextLinstener 설정이 web.xml 에필요 07. 자바코드기반설정 Spring JavaConfig 프로젝트는 XML 이아닌자바코드를이용해서컨테이너를설정할 public class public AlarmDevice alarmdevice(){ return new SmsAlarmDevice();

19 3. 스프링 AOP 로깅과같은기본적인기능에서부터트랜잭션이나보안과같은기능에이르기까지어플리케이션전반에걸쳐적용되는공통기능이존재하고이런공통기능들은어플리케이션의핵심비즈니스로직과는구분되는기능이다. 핵심비즈니스기능과구분하기위해공통기능을공통관심사항 (cross-cutting concern) 이라고표현하며, 핵심로직을핵심관심사항 (core concern) 이라고표현. 01 AOP 소개 AOP(Aspect Oriented Programming) 는문제를바라보는관점을기준으로 프로그래밍하는기법. 공통관심사항을구현한코드를핵심로직을구현한코드안에 삽입하는것을의미. 1) AOP 용어 Advice 언제공통관심기능을핵심로직에적용할지를정의. Joinpoint Advice 를적용가능한지점을의미. 메서드호출, 필드값변경등이 Joinpoint 에해당 Pointcut Joinpoint 의부분집합으로서실제로 Advice 가적용되는 Joinpoint 를나 타냄. Weaving Advice 를핵심로직코드에적용하는것을 weaving 이라고함. Aspect 여러객체에공통으로적용되는공통관심사항

20 2) 세가지 Weaving 방식 - 컴파일시에 Weaving 하기 - 클래스로딩시에 Weaving 하기 - 런타임시에 Weaving 하기 3) 스프링에서의 AOP - XML 스키마기반의 POJO 클래스를이용한 AOP 구현 어노테이션기반의 AOP 구현 4) 구현가능한 Advice 종류 종류 Before Advice After Returning Advice After Throwing Advice After Advice 설명대상객체의메서드호출전에공통기능을실행대상객체의메서드가예외없이실행한이후에공통기능을실행대상객체의메서드를실행하는도중예외가발생한경우에공통기능을실행대상객체의메서드를실행하는도중에예외가발생했는지의여부와상관없이메서드실행후공통기능을실행. Around Advice 대상객체의메서드실행전, 후또는예외발생시점에공통기능을실행하는데사용

21 02. XML 스키마를이용한 AOP 설정 <!-- Aspect 설정 : Advice 를어떤 Pointcut 에적용할지설정 --> <aop:config> <aop:aspect id="traceaspect1" ref="performancetraceadvice"> <aop:pointcut expression="execution(public * com.spring.board..*(..))" id="publicmethod"/> <aop:around method="trace" pointcut-ref="publicmethod"/> </aop:aspect> </aop:config> <bean id="writearticleservice" class="com.spring.board.service.writearticleserviceimpl"> <constructor-arg> <ref bean="articledao"/> </constructor-arg> </bean> <bean id="articledao" class="com.spring.board.dao.writearticledao"/> <aop:config> : AOP 설정정보임을나타냄 <aop:aspect> : Aspect 를설정함 <aop:pointcut> : Pointcut 을설정함 <aop:around> : Around Advice 를설정함 Advice 정의관련태그 종류 설명 <aop:before> 메서드실행전에적용되는 Advice 를정의한다.

22 <aop:afterreturning> <aop:afterthrowing> <aop:after> <aop:around> 메서드정상적으로실행된후에적용되는 Advice 를정의한다. 메서드가예외를발생시킬때적용되는 Advice 를정의한다. try-catch 블록에서 catch 블록과비슷하다. 메서드가적상적으로실행되느니지또는예외를발생시키는지여부에상관없이적용되는 Advice 를정의한다. try-catchfinally 에서 finally 블록과비슷하다. 메서드호출이전, 이후, 예외발생등모든시점에적용가능한 Advice 를정의한다. AspectJ 의 Pointcut 표현식 <aop:aspect id="traceaspect1" ref="performancetraceadvice"> <aop:pointcut expression="execution(public * com.spring.board..*(..))" id="publicmethod"/> <aop:around method="trace" pointcut-ref="publicmethod"/> </aop:aspect> execution 명시자는 Advice 를적용할메서드를명시할때사용됨 execution( 식어패턴리턴타입패턴클래스이름패턴이름패턴 ( 파라미터패턴 ) 예 ) execution(public void set*(..))

23 리턴타입이 void 이고메서드이름이 set 으로시작하고, 파라미터가 0 개이상인메서드호출 execution(* com.spring.ch01.*.*()) com.spring.ch01 패키지의파라미터가없는모든메서드호출 execution(* com.spring.ch01..*.*(..)) com.spring.ch01 패키지및하위패키지에있는파라미터가 0 개이상인메서드호출 execution(integer com.spring.ch01..writearticleservice.write(..)) 리턴타입이 Integer 인 WriteArticleService 인터페이스의 write() 메서드호출 execution(* get*(*)) 이름이 get 으로시작하고 1 개의파라미터를갖는메서드호출 execution(* get*(*,*)) 이름이 get 으로시작하고 2 개의파라미터를갖는메서드호출 execution(* read*(integer,*)) 메서드이름이 read 로시작하고, 첫번째파라미터타입이 Integer 이며, 1 개이상의파라미터를갖는메서드호출 어노테이션을이용한 public class ProfilingAspect * com.spring.board..*(..))") private void public Object trace(proceedingjoinpoint joinpoint)

24 throws Throwable{ String signaturestring = joinpoint.getsignature().toshortstring(); System.out.println(signatureString + " 시작 "); long start = System.currentTimeMillis(); Object result = null; try{ // 핵심비지니스로직을수행 result = joinpoint.proceed(); catch(exception e){ e.printstacktrace(); finally{ // 메서드실행직후의시간을저장 long finish = System.currentTimeMillis(); System.out.println(signatureString + " 종료 "); System.out.println(signatureString + " 실행시간 : " + (finish- return result; start)+"ms"); 4. 스프링 MVC 스프링 MC 의주요구성요소 구성요소 설명

25 DispatcherServlet HandlerMapping 클라이언트의요청을전달받는다. 컨트롤러에게클라이언트의요청을전달하고, 컨트롤러가리턴한결과값을 View 에전달하여알맞은응답을생성하도록한다. 클라이언트의요청 URL 을어떤컨트롤러가처리할지를결정한다. 컨트롤러 (Controller) 클라이언트의요청을처리한뒤, 그결과를 DispatcherServlet 에알려준다. 스트럿츠의 Action 과동일한 역할을수행한다. ModelAndView 컨트롤러가처리한결과정보및뷰선택에필요한정보를 담는다. ViewResolver 컨트롤러의처리결과를생성할뷰를결정한다. 뷰 (View) 컨트롤러의처리결과화면을생성한다. JSP 나 Velocity 템플릿 파일등을뷰로사용한다. 01. 스프링 MVC 설정

26 1) DispatcherServlet 설정및스프링컨텍스트설정 DispatcherServlet 의설정은웹어플리케이션의 /WEB-INF/web.xml 파일에추가 <servlet> <servlet-name>appservlet</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/spring/appservlet/servletcontext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>appservlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> 2) public class HelloController public ModelAndView hello() { ModelAndView mav = new ModelAndView(); // 뷰이름지정

27 mav.setviewname("hello"); // 뷰에서사용할데이터셋팅 mav.addobject("greeting", "Hello World!!"); return mav; 3) servlet-context.xml 설정 bean 설정및 viewresolver 설정 <?xml version="1.0" encoding="utf-8"?> <beans:beans xmlns=" xmlns:xsi=" xmlns:beans=" xmlns:context=" xmlns:p=" xsi:schemalocation=" <!-- bean 설정 --> <beans:bean id="hellocontroller" class="kr.spring.ch01.controller.hellocontroller" /> <!-- viewresolver 설정 -->

28 <beans:bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <beans:property name="prefix" value="/web-inf/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> </beans:beans> 4) 뷰코드구현 page language="java" contenttype="text/html; charset=utf-8"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title> 인사 </title> </head> <body> 인사말 : <strong>${greeting</strong> </body> </html> 02. Validator 인터페이스를이용한폼값검증 package kr.spring.ch08.validator; import kr.spring.ch08.model.address; import kr.spring.ch08.model.memberinfo;

29 import org.springframework.validation.errors; import org.springframework.validation.validator; public class MemberInfoValidator implements Validator //Validator 가해당클래스에대한값검증을지원하는지의여부를리턴 public boolean supports(class<?> clazz) { return //target 객체에대한검증을실행한다. 검증결과문제가있을경우 errors 객체에 // 어떤문제인지에대한정보를저장한다. public void validate(object target, Errors errors) { MemberInfo memberinfo = (MemberInfo) target; if (memberinfo.getid() == null memberinfo.getid().trim().isempty()) { errors.rejectvalue("id", "required"); if (memberinfo.getname() == null memberinfo.getname().trim().isempty()) { errors.rejectvalue("name", "required"); Address address = memberinfo.getaddress(); if (address == null) { errors.rejectvalue("address", "required");

30 03. 메시지처리 1). MessageSource 를이용한메시지국제화처리 국제화지언을위해 org.springframework.context.messagesource 인터페이스를제공 <bean id="messagesource" class="org.springframework.context.support.resourcebundlemessagesource"> <property name="basenames"> <value>message.greeting</value> </property> </bean> - ResourceBundle 은프로퍼티파일의이름을이용해언어및지역에따른메시지로딩 message.properties : 기본메시지 message_ko.properties : 한글메시지 message_en_us.properties : 미국을위한영어메시지 2) 에러코드호출시메서드사용 reject() 메서드를이용하여커맨드객체자체에대한에러코드를입력한경우, 다음의 순서로메시지코드를생성 1) 에러코드 +. + 커맨드객체이름

31 2) 에러코드 reject() 메서드를이용하여특정필드에대한에러코드를입력했다면, 다음의순서로 메시지코드를생성 1) 에러코드 +. + 커맨드객체이름 +. + 필드명 2) 에러코드 +. + 필드명 3) 에러코드 +. + 필드타입 4) 에러코드 예 ) 1) required.logincommand.userid 2) required.userid 3) required.java.lang.string 4) required 04. 파일업로드처리 1) MulipartResolver 설정 <beans:bean id="multipartresolver" class="org.springframework.web.multipart.commons.commonsmultipartresol ver"> <beans:property name="maxuploadsize" value=" " /><!-- 50M --> <beans:property name="defaultencoding" value="utf-8" /> </beans:bean>

32 CommonsMultipartResolver 클래스의프로퍼티 프로퍼티 타입 설명 maxuploadsize long 최대업로드가능한바이트크기, -1 은제한이없음을의미한다. 기본값은 -1 이다. maxinmemorysize int 디스크에임시파일을생성하기전에메모리에보관할수있는최대바이트크기. 기본값은 바이트이다. defaultencoding String 요청을파싱할때사용할캐릭터인코딩. 지정하지않을경우, HttpServletRequest.setCharacterEncoding() 메서드로지정한캐릭터셋이사용된다. 아무값도없을경우 ISO 을사용한다. 2) 구현예 try { File file = new File(path + "/" + command.getreportfile().getoriginalfilename()); command.getreportfile().transferto(file); catch (IllegalStateException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace();

33 5. JDBC 01. 커넥션풀을이용한 DataSource 설정 <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource"> <property name="driverclassname" value="${jdbc.driverclassname"/> <property name="url" value="${jdbc.url"/> <property name="username" value="${jdbc.username"/> <property name="password" value="${jdbc.password"/> <!-- 최대커넥션개수 --> <property name="maxactive" value="50"/> <!-- 접속이없을경우최대유지커넥션개수 --> <property name="maxidle" value="30"/> <!-- 접속이없을경우최소유지커넥션개수 --> <property name="minidle" value="20"/> <!-- 최대대기시간 ( 초 ) : 초과시연결실패오류발생 --> <property name="maxwait" value="5"/> </bean> BasciDataSoute 클래스의주요프로퍼티 프로퍼티 initialsize maxactive maxidle 설명초기에풀에생성되는커넥션의개수커넥션풀이제공할최대커넥션의개수사용되지않고풀에저장될수있는최대커넥션개수. 음수일경우제한이없다.

34 minidle maxwait minevictableidl etimemillis timebetweenev ictionrunsmilli s numtestsperev ictionrun testonborrow testonreturn testwhileidle 사용되지않고풀에저장될수있는최소커넥션개수풀에커넥션이존재하지않을때, 커넥션이다시풀에리턴될때까지대기하는시간. 단위는 1/1000 초이며, -1 일경우무한히대기한다. 사용되지않는커넥션을추출할때이속성에서지정한시간이상비활성화상태인커넥션만추출한다. 양수가아닌경우비활성화된시간으로풀에서제거되지않는다. 시간단위는 1/1000 초이다. 사용되지않은커넥션을추출하는쓰레드의실행주기를지정한다. 양수가아닐경우실행되지않는다. 단위는 1/1000 초이다. 사용되지않는커넥션을몇개검사할지지정한다. true 일경우커넥션풀에서커넥션을가져올때커넥션이유효한지의여부를검사한다. true 일경우커넥션풀에커넥션을반환할때커넥션이유효한지의여부를검사한다. true 일경우비활성화커넥션을추출할때커넥션이유효한지의여부를검사해서유효하지않은커넥션은풀에서제거한다. 02. JdbcTemplate 클래스를이용한 JDBC 프로그래밍 1) JdbcTemplate 빈설정 <!-- JdbcTemplate 객체생성 --> <bean name="jdbctemplate"

35 class="org.springframework.jdbc.core.jdbctemplate"> </bean> <property name="datasource" ref="datasource"/> 2) Dao 클래스에서의 JdbTemplate private JdbcTemplate jdbctemplate; // 등록 public void insertmember(membercommand member){ jdbctemplate.update(insert_sql, new Object[]{member.getId(),member.getPasswd(),member.getName()); // 총데이터수 public int getmembercount(){ return jdbctemplate.queryforobject(select_count_sql, Integer.class); // 목록 public List<MemberCommand> getmemberlist(int startrow,int endrow){ List<MemberCommand> list = jdbctemplate.query(select_list_sql, new Object[]{startRow,endRow, new RowMapper<MemberCommand>(){ public MemberCommand maprow(resultset rs, int rownum) throws SQLException{

36 MemberCommand(); MemberCommand member = new member.setid(rs.getstring("id")); member.setpasswd(rs.getstring("passwd")); member.setname(rs.getstring("name")); member.setreg_date(rs.getdate("reg_date")); ); return list; return member; 03. NamedParameterJdbcTemplate 클래스를이용한 JDBC 프로그래밍 1) NamedParameterJdbcTemplate 빈설정 <!-- NamedParameterJdbcTemplate 객체생성 --> <bean name="namedparameterjdbctemplate" class="org.springframework.jdbc.core.namedparam.namedparameterjdbctemplate" > <constructor-arg ref="datasource"/> </bean> 2) Dao 클래스에서의 NamedParameterJdbcTemplate 객체사용

37 @Autowired private NamedParameterJdbcTemplate namedparameterjdbctemplate; // 등록 public void insertmember(membercommand member){ BeanPropertySqlParameterSource beanprops = new BeanPropertySqlParameterSource(member); namedparameterjdbctemplate.update(insert_sql,beanprops); // 총데이터수 public int getmembercount(){ return namedparameterjdbctemplate.queryforobject(select_count_sql, new MapSqlParameterSource(),Integer.class); // 목록 public List<MemberCommand> getmemberlist(int startrow,int endrow){ List<MemberCommand> list = namedparameterjdbctemplate.query(select_list_sql, new MapSqlParameterSource().addValue("start",startRow).addValue("end",endRow), new RowMapper<MemberCommand>(){ public MemberCommand maprow(resultset rs, int rownum) throws SQLException{ MemberCommand member = new MemberCommand();

38 member.setid(rs.getstring("id")); member.setpasswd(rs.getstring("passwd")); member.setname(rs.getstring("name")); member.setreg_date(rs.getdate("reg_date")); ); return list; return member; 6. 트랜잭션 01. 트랜잭션에는지켜야할 ACID 특성 ACID 의미 설명 Atomicity 트랜잭션의원자성 트랜색션내의모든처리는전부실행했거나혹은아무것도실행되지않았거나둘중하나뿐이다. Consistency 테이터의일관성데이터에일관성이있어야한다. 일관성을 지키지않은예 : 상위테이블이없는데하위 테이블이있는경우 Isolation 트랜잭션의독립성변행해서달리는트랜잭션이서로독립된것 Durability 데이터의영속성데이터가영속화된것

39 02. JDBC 기반트랜잭션관리자설정 1) 빈설정 <!-- JDBC 기반트랜잭션관리자설정 --> <bean id="transactionmanager" class="org.springframework.jdbc.datasource.datasourcetransactionmanager" p:datasource-ref="datasource"/> 2) TransactionTemplate 을이용한트랜잭션처리 public void updatemember(final MemberCommand member){ transactiontemplate.execute(new public Object dointransaction(transactionstatus status) { ); memberdao.updatemember(member); // 트랜잭션테스트를위해서호출 memberdao.insertmember(member); return new Object(); 03. 선언적트랜잭션처리

40 1) 빈설정 <tx:advice id="txadvice" transaction-manager="transactionmanager"> <tx:attributes> <tx:method name="update*" propagation="required"/> </tx:attributes> </tx:advice> 2) <tx:method> 태그의속성 속성이름 name 설명트랜잭션이적용될메서드이름을명시한다. * 을사용한설정이가능하다. 예를들어. get* 으로설정할경우이름이 get 으로시작하는메서드를의미한다. propagation 트랜잭션전파규칙을설정한다. isolation read-only no-rollback-for rollback-for timeout 트랜잭션격리레벨을설정한다읽기전용여부를설정트랜잭션을롤백하지않을예외타입을설정트랜잭션을롤백할예외타입을설정트랜잭션을타임아웃시간을초단위로설정 3) <tx:method> 태그의 propagation 속성에설정가능한값 속성값 설명

41 REQUIRED ( 기본값 ) 메서드를수행하는데트랜잭션이필요하다는것을의미한다. 현재진행중인트랜잭션이존재하면, 해당트랜잭션을 사용한다. 존재하지않는다면새로운트랜잭션을생성한다. MANDATORY 메서드를수행하는데트랜잭션이필요하다는것을의미한다. 하지만, REQUIRED 와달리, 진행중인트랜잭션이존재하지 않을경우예외를발생시킨다. REQUIRES_NEW SUPPORS 항상새로운트랜잭션을시작한다. 기존트랜잭션이존재하면기존트랜잭션을일시중지하고새로운트랜잭션을시작한다. 새로시작된트랜잭션이종료된뒤에기존트랜잭션이계속된다. 메서드가트랜잭션을필요로하지는않지만, 기존트랜잭션이존재할경우트랜잭션을사용한다는것을의미한다. 진행중인트랜잭션이존재하지않더라도메서드는정상적으로동작한다. NOT_SUPPORTED 메서드가트랜잭션을필요로하지않음을의미한다. SUPPORTS 와달리진행중인트랜잭션이존재할경우메서드가실행되는동안트랜잭션은일시중지되며, 메서드실행이종료된후에트랜잭션을계속진행한다. NEVER NESTED 메서드가트랜잭션을필요로하지않으며, 만약진행중인트랜잭션이존재하면예외를발생시킨다. 기존트랜잭션이존재하면, 기존트랜잭션에중첩된트랜잭션에서메서드를실행한다. 기존트랜잭션이존재하지않으면 REQUIRED 와동일하게동작한다. 이기능은 JDBC3.0 드라이버를사용할때에만적용된다. (JTA Provider 가이기능을지원할경우에도사용가능하다.) 4) <tx:method> 태그의 isolation 속성에설정가능한값

42 속성값 설명 DEFAULT 기본설정을사용한다. READ_UNCOMMITTED 다른트랜잭션에서커밋하지않은데이터를읽을수있다. READ_COMMITTED 다른트랜잭션에의해커밋된데이터를읽을수있다. REPEATABLE_READ SERIALIZABLE 처음에읽어온데이터와두번째읽어온데이터가동일한값을갖는다. 동일한데이터에대해서동시에두개이상의트랜잭션이수행될수없다. 04. 어노테이션기반트랜잭션설정 1) public void updatemember(membercommand member){ memberdao.updatemember(member); memberdao.insertmember(member); 어노테이션의주요속성 속성 propagation 설명 트랜잭션전파규칙을설정한다. Propagation 열거형타입에값이 정의되어있다. 기본값은 Propagation.REQUIRED 이다.

43 isolation readonly 트랜잭션격리레벨을설정한다. Isolation 열거형타입에값이정의되어있다. 읽기전용여부를설정한다. boolean 값을설정하며, 기본값은 false 이다. rollbackfor 트랜잭션을롤백할예외타입을설정한다. 예, rollbackfor={exception.class norollbackfor 트랜잭션을롤백하지않을예외타입을설정한다. 예, norollbackfor={itemnotfoundexception.class timeout 어노테이션이적용된스프링빈에실제로트랜잭션을적용하려면 다음과같이 <tx:annotation-driven> 태그를설정하면된다. <tx:annotation-driven transaction-manager="transactionmanager"/> 3) <tx:annotation-driven> 태그의속성 속성설명기본값 transactionmanager proxy-target-class 사용할 PlatformTransactionManager 빈의이름클래스에대해서프록시를생성할지의여부. true 일경우 CGLIB 를이용해서프록시를생성하며, false 인경우자바다이나믹프록시를이용해서프록시를생성한다. transactionmanager false

44 order Advice 적용순서 int 의최대값 ( 가장낮은순위 )

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

4 주차 - SPRING 환경설정및구현 Spring 기반의웹프로젝트를구성하고싶어요 T^T Spring 기반의웹환경구축 1. web.xml 수정으로 Spring 을설정하는방법 2. eclipse Spring Plug-In 을활용한템플릿프로젝트자동구성필수는아니지만해놓으면편

4 주차 - SPRING 환경설정및구현 Spring 기반의웹프로젝트를구성하고싶어요 T^T Spring 기반의웹환경구축 1. web.xml 수정으로 Spring 을설정하는방법 2. eclipse Spring Plug-In 을활용한템플릿프로젝트자동구성필수는아니지만해놓으면편 4 주차 - SPRING 환경설정및구현 Spring 기반의웹프로젝트를구성하고싶어요 T^T Spring 기반의웹환경구축 1. web.xml 수정으로 Spring 을설정하는방법 2. eclipse Spring Plug-In 을활용한템플릿프로젝트자동구성필수는아니지만해놓으면편리한것들 1. slf4j 를활용한 Logger 생성을편리하게해보자 2. AOP 설정 JDBC

More information

Web Service Computing

Web Service Computing Spring MVC 2015 Web Service Computing Request & Response HTTP(Hyper-Text Transfer Protocol) 웹서버가하는일은요청 (Request) 과응답 (Response) 의연속이다. 1) 브라우저에 www.google.co.kr 을입력한다면 2) 구글서버에페이지를요청하는것이고 3) 화면이잘나타난다면구글서버가응답을한것이다.

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 Spring 연동가이드 2010. 08 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference 2010-08 snkim

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 Spring 연동가이드 2014. 10 Copyright c 2000~2014 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference 2010-08 snkim

More information

Spring

Spring Spring MVC 프로젝트생성 2015 Web Service Computing 일반적인스프링의정의 스프링의정의 자바엔터프라이즈개발을편하게해주는오픈소스경량급애플리케이션프레임워크 스프링의기원 로드존슨 (Rod Johnson) 이라는유명 J2EE 개발자가출간한 Expert One-on- One J2EE Design and Development 이라는제목의책에소개된예제샘플

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

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

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

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

More information

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

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

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

<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D> Inside Spring Web MVC 안영회 ahnyounghoe@gmail.com 차례 MVC 개요와오해 Spring Web MVC 개요 Demo 로이해하는 Spring Web MVC 대표적인컨트롤러활용 정리 한국 스프링 사용자 모임 MVC 개요와 오해 한국 스프링 사용자 모임 MVC 개요 MVC 에대한오해 컨트롤러는서블릿이다! 컨트롤러는액션이다! 비즈니스로직은컨트롤러다!

More information

Spring 정의 2012 년 1 월 31 일화요일 오젂 9:17 1. 개요 1.1. 목적 수많은프로젝트에서프레임워크나아키텍체에대한관심없이대부분의개발을개발자의능력에젂담시키는것이일반적이다. 이는프로젝트의위험요소를증가시킬뿐만아니라개발완료후유지보수비용을증가시킴으로써추가적인비

Spring 정의 2012 년 1 월 31 일화요일 오젂 9:17 1. 개요 1.1. 목적 수많은프로젝트에서프레임워크나아키텍체에대한관심없이대부분의개발을개발자의능력에젂담시키는것이일반적이다. 이는프로젝트의위험요소를증가시킬뿐만아니라개발완료후유지보수비용을증가시킴으로써추가적인비 Spring 정의 2012 년 1 월 31 일화요일 오젂 9:17 1. 개요 1.1. 목적 수많은프로젝트에서프레임워크나아키텍체에대한관심없이대부분의개발을개발자의능력에젂담시키는것이일반적이다. 이는프로젝트의위험요소를증가시킬뿐만아니라개발완료후유지보수비용을증가시킴으로써추가적인비용부담을초래할뿐더러안정성에도문제가되곤한다. 이에본내용은 Spring Framework를통해앞에서의문제점들을해결할수있는데초점을맞췄으며,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 2012 년자바카페 OPEN 세미나 주제 : Spring 프레임워크중요구성원리 2012. 6. 16 Today Story 1. 티어와레이어 2. 웹프로그래밍과엔터프라이즈프로그래밍 3. MVC 모델과웹개발의흐름 4. Spring 3대구성원리와디자인패턴 5대원리 5. AJAX와데이터처리 Today Story 1. 티어와레이어 2. 웹프로그래밍과엔터프라이즈프로그래밍

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

제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

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

(Microsoft PowerPoint - spring_ibatis.ppt [\310\243\310\257 \270\360\265\345]) 중소기업직업훈련컨소시엄 Spring & Ibatis 프레임워크과정 11.8.27 ~ 11.10.15 한국소프웨어기술진흥협회 (KOSTA) 1 Web Application 설계방식 모델 1 설계방식 모델 2 설계방식 2 모델 1 설계방식 (1/2) 모델 1 개요 JSP 만이용하여개발하는경우 JSP + Java Bean을이용하여개발하는경우 Model2의 Controller

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

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

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence)

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence) 8 중 1 2008-01-31 오전 12:08 오픈소스스터디 jpetstore 예제로살펴보는 Spring MVC와 ibatis 연동 Added by Sang Hyup Lee, last edited by Sang Hyup Lee on 1월 16, 2007 (view change) Labels: (None) 지금까지 Spring MVC 를셋팅하는과정에서부터하나의

More information

PowerPoint Presentation

PowerPoint Presentation Spring Framework 의이해 - 강사김현오 - 1. 스프링프레임워크개요 1.1 스프링프레임워크개요 1.2 스프링시작하기 스프링의등장배경 POJO 프레임워크 스프링프레임워크 스프링의등장배경 (1/2) 자바엔터프라이즈애플리케이션개발표준인 EJB EJB 를사용하면애플리케이션작성을쉽게할수있다. 저수준의트랜잭션이나상태관리, 멀티쓰레딩, 리소스풀링과같은복잡한저수준의

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1. AOP - 개요 (1/7) 서비스개요 객체지향프로그래밍 (Object Oriented Programming) 을보완하는개념으로어플리케이션을객체지향적으로모듈화하여작성하더라도다수의객체들에분산되어중복적으로존재하는공통관심사가여전히존재한다. AOP는이를횡단관심으로분리하여핵심관심과엮어서처리할수있는방법을제공한다. 로깅, 보안, 트랜잭션등의공통적인기능의활용을기존의비즈니스로직에영향을주지않고모듈화처리를지원하는프로그래밍기법

More information

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

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

More information

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

교육자료

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

슬라이드 1

슬라이드 1 7. [ 실습 ] 예제어플리케이션개발 1. 실습개요 2. 프로젝트환경구성 3. 기본환경설정 4. 예제어플리케이션개발 5. 참조 - 539 - 1. 실습개요 (1/4) 7. [ 실습 ] 예제어플리케이션개발 스프링기반의 EGOV 프레임워크를사용하여구현된예제어플리케이션구현을통하여 Presentation Layer와 Business Layer의연계를살펴본다. 예제어플리케이션구현기능

More information

<property name="configlocation" value="classpath:/egovframework/sqlmap/example/sql-map-config.xml"/> <property name="datasource" ref="datasource2"/> *

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

어댑터뷰

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

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

Microsoft PowerPoint - JCO2007_Spring2.0_발표자료_Rev-A.ppt [호환 모드]

Microsoft PowerPoint - JCO2007_Spring2.0_발표자료_Rev-A.ppt [호환 모드] From Spring 1.x Spring 2.0 To 이일민 (Consultant, Epril) 안영회 (Consultant, Epril) 2 목차 q Spring의목표와전략 q Spring 2.0 q Core Container and DI q AOP q Portable Service Abstractions q Web q Spring Portfolio 3 Spring

More information

쉽게 풀어쓴 C 프로그래밊

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

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

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

Spring Batch 2.0 시작하기

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

More information

본 강의에 들어가기 전

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

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 - 테스트주도개발.pptx

Microsoft PowerPoint - 테스트주도개발.pptx 테스트가능한 소프트웨어설계와 TDD 작성패턴 Testable software design & TDD patterns 한국스프링사용자모임 (KSUG ) 채수원 발표자소개 LG CNS 경영기술교육원기술교육팀전임강사 강의과목디자인패턴 & 리팩터링 분석설계실무 Agile 적용실무 블로그여름으로가는문 blog.doortts.com Comments 내용이나후기에대해서는

More information

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드] GUI 설계 6 주차 DB 연동김문정 tops@yd.ac.kr 강의순서강의전환경 JDK 설치및환경설정톰캣설치및환경설정이클립스 (JEE) 설치및환경설정 MySQL( 드라이버 ) 설치및커넥터드라이브연결 DB 생성 - 계정생성이클립스에서 DB에연결서버생성 - 프로젝트생성 DB연결테이블생성및등록 2 MySQL 설치확인 mysql - u root -p MySQL 에데이터베이스추가

More information

슬라이드 1

슬라이드 1 Spring Framework 3.X 오문정강사 (muffle@hanmail.net) 2013. 1. Spring3- Oh Moon Jeong - 1-1 레이어 vs. 티어 레이어 논리적분할, 단방향 티어 -- 물리적분할, 양방향 Spring3- Oh Moon Jeong - 2-2 Java EE Java 2 Platform, Enterprise Edition

More information

슬라이드 1

슬라이드 1 SpringFramework Tutorial Think about User experience for your successful Business 오라클자바 Spring Framework 개요 - 경량, 관점지향, 제어역행, 컨테이너에대한개념 Rod Johnson 이만든오픈소스프레임워크 복잡한엔터프라이즈애플리케이션개발을겨냥 단순성, 테스트용이성, 느슨한결합성의측면에서스프링의이점을얻을수있음

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 한국성서대학교컴퓨터소프트웨어학과 BoostCourse (Full-Stack Developer) 김석래 예약서비스 기본제공페이지 Spring Framework 시스템설정 (pom.xml) Pom.xml Spring DB Servlet JSON 아직확실히필요한지알수없음 dbcp MySQL DTO DTO DAO Controller Service View Config

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

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

실용적인 스프링 AOP

실용적인 스프링 AOP 스프링 AOP 선택, 활용, 이슈 2008.10.12 백기선 한국스프링사용자모임 (http://ksug.org) 1 안녕하세요. 백기선입니다. http://whiteship.me whiteship2000@gmail.com 목표 : 행복한개발자. 취미 : 블로깅, 스크린캐스팅, 스프링, 하이버네이트, 번역, 큐브, 피아노 현재 새싹 OpenSprout 여친구함

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

Open Source Framework과 Ajax

Open Source Framework과  Ajax Spring framework 1 Spring 이란? 오픈소스프레임워크 Rod Johnson 창시 Expert one-on-one J2EE Design - Development, 2002, Wrox Expert one-on-one J2EE Development without EJB, 2004, Wrox 엔터프라이즈어플리케이션개발의복잡성을줄여주기위한목적 EJB

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

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D> 10 장. 에러처리 1. page 지시문을활용한에러처리 page 지시문의 errorpage 와 iserrorpage 속성 errorpage 속성 이속성이지정된 JSP 페이지내에서 Exception이발생하는경우새롭게실행할페이지를지정하기위하여사용 iserrorpage 속성 iserrorpage 는위와같은방법으로새롭게실행되는페이지에지정할속성으로현재페이지가 Exception

More information

JVM 메모리구조

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

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

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

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

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

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

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 4 장. JSP 의구성요소와스크립팅요소 제 4 장 스크립팅요소 (Scripting Element) 1) 지시문 (Directive) 1. JSP 구성요소소개 JSP 엔진및컨테이너, 즉 Tomcat 에게현재의 JSP 페이지처리와관련된정보를전달하는목적으로활용 (6 장 )

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

<323020C0CCB8EDC8A32DB0E6B7AEC4C1C5D7C0CCB3CA2E687770>

<323020C0CCB8EDC8A32DB0E6B7AEC4C1C5D7C0CCB3CA2E687770> 한국산학기술학회논문지 Vol. 10, No. 3, pp. 589-595, 2009 이명호 1* 1 세명대학교전자상거래학과 Design and Implementation of Hotel Reservation System Based Spring Framework 2.5 of Lightweight Container Architecture Myeong-Ho Lee

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

[Brochure] KOR_TunA

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

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

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

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드]

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드] Servlet 이해하기 웹 MVC 524730-1 2019 년봄학기 4/29/2019 박경신 Servlet 자바플랫폼에서컴포넌트기반의웹애플리케이션개발기술 JSP는서블릿기술에기반함 Servlet의프리젠테이션문제를해결하기위해 JSP가등장 이로인해웹애플리케이션의유지보수어려움심각. JSP 모델2가주목받으며다시서블릿에대한중요성부각 Servlet 변천 1 서블릿문제점대두

More information

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\) Session 을이용한현재로그인한사용자의 숫자구하기 작성자 : 김성박 ( 삼성 SDS 멀티캠퍼스전임강사 ) email : urstory@nownuri.net homepage : http://sunny.sarang.net - 본문서는http://sunny.sarang.net JAVA강좌란 혹은 http://www.javastudy.co.kr 의 칼럼 란에서만배포합니다.

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

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

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

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

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

More information

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

PowerPoint Presentation

PowerPoint Presentation Spring MVC 기초 - 강사김현오 - 1. Spring MVC 개요 1.1 SpringMVC 개요 1.2 SpringMVC 시작하기 MVC 패턴 DispatcherServlet SpringMVC 요청처리과정 MVC 패턴 (1/2) Model 어플리케이션상태의캡슐화 상태쿼리에대한응답 어플리케이션의기능표현 변경을뷰에통지 View 모델을화면에시각적으로표현 모델에게업데이트요청

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

슬라이드 1

슬라이드 1 1. 개요 - 실행환경연계통합레이어 (1/3) 연계통합레이어는타시스템과의연동기능을제공하는 Layer 임 전자정부개발프레임워크실행환경 서비스그룹 Presentation Layer 설명 업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면구성, 사용자입력정보검증등의기능을제공함 Layer Presentation Layer Logic Business

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

MasoJava4_Dongbin.PDF

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

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

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

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

01-OOPConcepts(2).PDF

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

cover story3 자바기술의미래를비추는거울 스프링프레임워크 2.5 스프링프레임워크 (SpringFramework) 의세번째메이저업그레이드인스프링 (Spring) 2.5 가지난 11 월말에릴리즈되었다. 스프링의캐치프레이 즈처럼더욱간결해지고더욱강력해진 (simpler

cover story3 자바기술의미래를비추는거울 스프링프레임워크 2.5 스프링프레임워크 (SpringFramework) 의세번째메이저업그레이드인스프링 (Spring) 2.5 가지난 11 월말에릴리즈되었다. 스프링의캐치프레이 즈처럼더욱간결해지고더욱강력해진 (simpler cover story3 자바기술의미래를비추는거울 스프링프레임워크 2.5 스프링프레임워크 (SpringFramework) 의세번째메이저업그레이드인스프링 (Spring) 2.5 가지난 11 월말에릴리즈되었다. 스프링의캐치프레이 즈처럼더욱간결해지고더욱강력해진 (simpler and more powerful) 스프링 2.5 의달라진모습과 2008 년에새롭게등장하는스프링포트폴리오에

More information

JAVA PROGRAMMING 실습 09. 예외처리

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

More information

PowerPoint 프레젠테이션

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

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

@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

PowerPoint 프레젠테이션

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

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부개발프레임워크실행환경 목차 1. 실행환경소개 3. 데이터처리레이어 4. 화면처리레이어 5. 업무처리레이어 6. 연계통합레이어 7. [ 실습 ] 예제어플리케이션개발 - 2 - 1. 실행환경소개 1. 개요 2. 배경 3. 실행환경특징 4. 실행환경적용효과 5. 실행환경구성 6. 실행환경오픈소스소프트웨어사용현황 - 3 - 1. 개요 (1/3) 개발프레임워크환경

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

JMF2_심빈구.PDF

JMF2_심빈구.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

PowerPoint Presentation

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

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC 내장객체의정리 헷갈리는내장객체들정리하기 - 컨테이너안에서는수많은객체들이스스로의존재목적에따라서일을한다. - ServletContext, ServletConfig 객체는컨텍스트초기화와서블릿초기화정보를가지고있다. - 이외에도다음의객체들이서블릿과 JSP와 EL에서각각의역할을수행한다. 서블릿의객체 JspWriter HttpServletRequest HttpServletResponse

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

Secure Programming Lecture1 : Introduction

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

More information

서블릿의라이프사이클 뇌를자극하는 JSP & Servlet

서블릿의라이프사이클 뇌를자극하는 JSP & Servlet 서블릿의라이프사이클 뇌를자극하는 JSP & Servlet Contents v 학습목표 서블릿클래스로부터서블릿객체가만들어지고, 서블릿객체가초기화되어서서블릿이되고, 서블릿이사용되고, 최종적으로소멸되기까지의전과정을서블릿의라이프사이클이라고한다. 이장에서는서브릿의라이프사이클에관련된프로그래밍기술을배워보자. v 내용 서블릿의라이프사이클 서블릿클래스의 init 메서드의 destroy

More information

- 목차 - 1. 프로젝트소개 배경및목적 프로젝트기능 4 2. 관련기술 웹사이트개발 패션데이터분석알고리즘 기대효과 진행상황 참조

- 목차 - 1. 프로젝트소개 배경및목적 프로젝트기능 4 2. 관련기술 웹사이트개발 패션데이터분석알고리즘 기대효과 진행상황 참조 졸업작품중간보고서 빅데이터기반의패션의류분석 T6 200711459 이남섭 200711468 장재호 201011346 오지연 지도교수님하영국교수님 ( 인 ) - 1 - - 목차 - 1. 프로젝트소개 3 1.1 배경및목적 3 1.2 프로젝트기능 4 2. 관련기술 5 2.1 웹사이트개발 5 2.2 패션데이터분석알고리즘 11 3. 기대효과 13 4. 진행상황 13

More information

슬라이드 1

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

More information

파워포인트 템플릿

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

More information

04장

04장 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 information