10월, 2013의 게시물 표시

Command Pattern

1. 요구사항을 객체로 캡슐화 할수 있다 2. 매개변수를 활용하여 다른 요구사항을 삽입한다 3. 요청내역을 큐에 저장하거나 로그에 기록할 수 있다. 4. 작업취소 기능 지원이 가능하다

WSDL (Web Services Description Languasge) WSDL / Architecture

1. WSDL 이란?  - Web Service가 제공하는 서비스에 대한 정보를 기술하기 위한 XML 기반의 마크업 언어     ☞ 특정 비즈니스가 제공하는 서비스를 설명하고, 개이이나 다른 회사들이 그러한 서비스에 전자적으로 접근할 수 있는         방법을 제공하기 위해 사용되는 XML 기반의 언어이다. WSDL은 마이크로소프트, IBM 및 Ariba 등에 의해 주도된 UDDI의         기본이라 할 수 있다. 즉, UDDI는 기업들이 자신들의 서비스 내용을 인터넷 상에 스스로 등록할 수 있게 해주는 XML         기반의 등록처이며, WSDL은 그렇게 하기 위한 언어이다.                  WSDL은 마이크로소프트의 SOAP와 IBM의 NASSL로부터 파생되었지만, 이제 UDDI 등록처에 비즈니스 서비스를 명시하는         수단으로써, NASSL과 SOAP 둘 모두를 대체할 수 있다. 2. WSDL 내용      ☞ 웹 서비스의 name 과 URL 정보     ☞ SOAP 메시지의 인코딩 방법     ☞ SOAP 메시지 전송을 위한 프로토콜 정보     ☞ 웹 서비스를 이용하는데 필요한 인터페이스 정보 (Type, including name, poerations, parameter, data)  3. WSDL 역할     ☞ 웹 서비스를 기술     ☞ WSDL은 공표된 웹 서비스가 실제 어디에 위치하고 있고, 그 웹 서비스를 이용하기 위한 Biding 정보를 담고 있는 문서     ☞ WSDL 정보를 해석하면 비로서 SOAP를 사용해 해당 서비스에 필요한 객체를 실행할 수 있음.     ☞ 대부분의 경우 인터넷이나 이메일을 통해서 이러한 정보를 주고 받게 될 것임으로 HTTP나 SMTP가 가장 많이 사용하는         전송프로토콜이 될 것임.     ☞ WSDL은 XML로 표기되며 해당 웹 서비비의 문법적인 규격에 대한 정보만 있을 뿐, 그 웹 서비스가 갖는 의미는 표현되지          않음.    4. WSDL의

frameWork 개론

이미지
성공적인 프로젝트를 위한 프레임워크의 재발견 2006.11.28 22:30  |  웹정보시스템구축  |  이재상 http://kr.blog.yahoo.com/iluvsge/174   프레임워크의 도움 없이 애플리케이션을 개발한다는 것은 상상하기 힘든 시대가 다가오고 있다. 하루가 다르게 늘어만 가는 각종 프레임워크의 홍수 속에서 자신에게 필요한 최적의 프레임워크를 선별하고 효과적으로 사용할 줄 아는 능력이 개발자들에게 요구되고 있다. 프레임워크는 애플리케이션 개발자들의 오랜 숙원을 해결해 주기 위해 등장한 멋진 도구가 분명하다. 하지만 그것을 적절하게 다루고 사용할 줄 아는 지혜를 가진 자들에게만 그럴 뿐이다. 프레임워크가 무엇이라고 한마디로 정의하기는 쉽지 않다. 사람들 입에 많이 오르내리는 IT용어들은 그 정의가 사실 매우 느슨한 경우가 많다. 프레임워크라는 말은 유행어처럼 점점 많은 곳에서 폭넓은 의미로 사용되고 있다. 그래서 많은 경우에 프레임워크의 개념에 대한 오해로 인해 잘못된 판단을 하기도 한다. 그런 탓에 프레임워크의 활용 방법을 알아보기에 앞서 프레임워크라는 용어의 정확한 의미와 특징을 이해해 두는 것이 중요하다. 프레임워크의 특징 프레임워크에 대해 정확히 이해하려면 프레임워크와 그 특징이 비슷하지만 프레임워크는 아닌 것들과 비교해 보는 것이 좋다. 여기에서는 프레임워크와 혼용되어 사용되기도 하는 라이브러리와 디자인 패턴이 프레임워크와 어떻게 다른 특징을 가지는지에 대해 알아보자. 프레임워크 vs 라이브러리 프레임워크의 가장 대표적인 특징 중 하나는 그 안에 클래스 라이브러리를 가지고 있다는 것이다. 혹자는 프레임워크를 반제품이라고 설명하기도 한다. 개발해야 할 애플리케이션의 일부분이 이미 만들어져 있다는 뜻이다. 프레임워크를 이용한 개발은 결국 그 기반이 되는 이미 존재하는 부분을 확장하고 이용하는 것이라고 볼 수 있다. 윈도우즈 환경의 대표적인 GUI 애플리케이션 프레임워크인 마이크로소프트의 MFC(Microsoft Foundation Cl

servlet JAVA / 프로그래밍

jsp의 로직처리를 위한 기술 (jsp: Asp에 대항한 java진영기술) import javax.servlet : 프로토콜에 독립적인 서블릿 import javax.servlet.http : HTTP의 Get과 Post를 처리하는 Servlet ※ 모든 서블릿은 javax.servlet.Servlet 인터페이스를 implement해야함 main()메서드가 없는 대신, 서버가 서블릿에 요청할때마다 service()메소드가 호출 Tomcat Container는 요청에따라 개체생성 -> Thread생성 -> service()호출 [출처]   servlet | 작성자   지존무상

[JAVA] 예외(Exception)처리 3원칙

1. 에러내용의 고지 2. 모든데이터의 저장 3. 안전한 프로그램종료 [출처]   [JAVA] 예외(Exception)처리 3원칙  | 작성자   지존무상

Spring framework

The Spring approach - Object-oriented - flexible - testable - simple Simple Object -> bluePrints - dependency Injection - AOP - portable service abstractions ---------------------------------------- Spring은 경량 어플리케이션 프레임웤이다 ---------------------------------------- 구조 Spring Core : 근간이되는 IoC또는 DI기능. BeanFactory를 기반으로 Bean클래스제어 Spring Context : Spring Core를 돕는 추가적기능(JNDI, EJB Adaptor 등) Spring DAO : JDBC기반 개발을 더 쉽게 지원하는 DAO Spring ORM : Object Relation Mapping 프레임웤과의 결합(IBatis,JDO, Hibernate=ORM) Spring AOP : 추상화지원(AOP alliance기반) Spring Web : 웹지원(Web Application Context,MultipartRequest), 프레임웤통합지원(Struts 등) Spring Web MVC : 독립적으로 WEB UI Layer에 MVC지원기능, Struts가 담당했던기능을 대체가능, Velocity, Excel, PDF등 다양한 UI를 사용하기위한 API지원

Spring architecture

고객의 높은 퀄리티 요구로 인한 테스트중요도 증가 에 따른 테스트 용이성, 개발기간단축, 유지보수비용감소, 일관된 플랫폼 도입, ---------------------------------------------------------------------------------- 배경 AOP WebService의 안정화, MVC Framework의 대중화 (Struts, Webwork) ORM Framework의 안정화(Ibatis, Hibernate) Web 2.0의 출현(RIA-Ajax, Flex) 엔터프라이즈 자바빈즈 (Enterprise JavaBeans;  EJB )는 기업환경의 시스템을 구현하기 위한  서버 측  컴포넌트  모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE 의  자바 API  중 하나로, 주로 웹 시스템에서  JSP 는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다. ---------------------------------------------------------------------------------- <<<<Classic EJB Architecture>>>> UI Tier : J2EE Server( Web Container (Servlet, Web Classes, Business)) <- RMI( Remote Non-Web Client)-> Middle Tier :  J2EE( EJB Container( Session EJB)) EIS Tier : DBMS, Legacy System 특징 : RMI를 통한 Web-EJB통신 장점 1. 정형화된 Service Layer 2. EJB서비스제공(선언적 Transaction 등) 3. Business Object를 여러서버에 분산 4. 익숙한 환경 단점 실행속도 느림 개발속도 느림 OO(Object Oriented)의 제한된 구현 테스트어려움(E

Spring기초 종료

Spring기초 종료

redirect or forward

return new ModelAndView("redirect:/user/list.do"); return new ModelAndView("forward:/user/list.do");

URL:Action = N:1

list.do insert.do update.do view.do delete.do -> SampleAction

URL:Action = 1:1

list.do -> ListAction insert.do -> InsertAction Update.do -> UpdateAction View.do -> ViewAction Delete.do -> DeleteAction

모델2 Web.xml

< servlet >   < servlet -name>action</ servlet -name>   < servlet -class>   org.springframework.web.servlet.DispatcherServlet   </ servlet -class>   <load-on-startup>1</load-on-startup> </ servlet > < servlet -mapping>   < servlet -name>action</ servlet -name>   < url -pattern>*.do</ url -pattern> </ servlet -mapping> < servlet -mapping>   < servlet -name>action</ servlet -name>   < url -pattern>*.html</ url -pattern> </ servlet -mapping>

일반 Controller(Action)의 역할

1. 사용자입력데이터 수령 2. 유효성체크 3. Service로 전달 4. Service와 인터페이스 5. Service의 에러처리 6. Service의 데이터를 View에 전달

transaction

Dirty Read : 커밋 없이 업데이트된 결과도 바로 읽는다 Fuzzy Read (NonRepeatable Read) : 업뎃,딜리트 커밋 전에는 이전 데이터를 이후에는 변경 데이터를 읽는다 Phantom Read : 인서트 커밋 전에는 이전데이터를, 커밋 후에는 이후 데이터를 읽는다

Spring JDBC 구현영역

구현영역 ------------------------------------ Connection : Spring JDBC Statement : Spring JDBC ResultSet : Spring JDBC Parameter Setting : Spring JDBC Transaction : Spring JDBC ------------------------------------ SQL : 개발자 Row데이터추출 : 개발자 파라미터선언 : 개발자

Spring ORM

Hibernate, IBatis, JDO와의 결합을 지원하는 기능이다(Object Relation Mapping 프레임워크)

Spring DAO

JDBC기반하의 DAO개발보다 쉽다 적은 코드로 개발한다

Spring Core

Spring 프레임워크의 근간이 되는 IoC or DI기능을 지원하는 영역담당 Beanfactory를 기반으로 Bean클래스를 제어한다 Spring Context Spring Core위에서 추가적기능과 쉬운개발을 지원한다 JNDI, EJB등을 위한 아답터를 포함한다

view

컨트롤러에서 전달된 데이터의 출력(jsp, velocity) jsp -> .jsp velocity -> .vm

AbstractWizardFormController

AbstractWizardFormController 추상클래스-개발자들이 직접구현 주문서 등 입력폼을 가지는 페이지 처리를 위한 컨트롤 여러 페이지 처리를 위한 next, back, cancel, finish를 제공

SimpleformController

일반적 폼 처리방식은 1. 입력페이지접근 2. 입력후 submit 3. 모델에 저장(Data Binding) 4. 데이터베이스에 저장 SimpleFormController 는 get과 post처리가 다르다 get - 체크없이 입력,수정페이지로 이동 post- 유효성 체크및 db입력 --------------------------------- GET -> formBackingObject() -> initBinder() -> showForm()->referenceData()->view(JSP,Velocity. etc) POst -> formBackingObject() -> ServletRequestDataBinder-> onbind() ->Validator invoked->onBinAndVlaidate()->showform()

HandlerMapping 인터페이스

BeanNameUrlHandlerMapping Web Application Context에서 사용한 Bean이름 기준의 URL Mapping SimpleUrlHandlerMapping 요청URL을 기본으로 URL Mapping을 처리 CommonsPathMapUrlHandlerMapping Mapping을 Bean Definition 설정파일에 정의하는 것이아닌 Controller 그 자체에 Annotation형식으로 정의

컨트롤러

상속관계도 controller <- abstractController <- MultiActionController controller <- abstractController <-BaseCommandController <- AbstractConmmandController <- AbstractFormController <-SimpleFormController <-AbstractWizardFormController

요청처리과정

DispatcherServlet이 메인 컨트롤러(서블릿)이다. 1. 요청 2. DispatcherServlet - 최초진입지점 - 핸들러매핑 - 컨트롤러를 통한 뷰생성 - 뷰응답 - 직접 뷰생성

Spring 연구 시작

시작

모델1과 모델2의 차이점

모델1과 모델2의 차이점 ======================================== 모델1 javaBean을 활용한 jsp코딩 개발속도가 빠르고 스킬이 낮아도 적응하기 쉽다 jsp페이지가 복잡해진다 디자이너와 개발자의 분리작업이 어렵다 모델2 모델, 뷰, 컨트롤러를 통한 구현 javaBean, jsp, servlet에 각각 대응 디자이너와 분리작업가능하다 스킬이 필요하다

이클립스 디버그모드 시작

1. 톰켓서버 디버그모드 이클립스의 디버그기능사용을 위해서는 애플리케이션을 디버그모드로 실행해야한다 2. break point (브레이크포인트 지정) ㄱ) 디버그모드는 코드마다 할당되는 실제값을 확인할 수 있다 코드마다 할당된 값을 확인하고자 할 때는 breakPoint를 지정해야 해당 지점에서 어플리케이션이 대기한다. ㄴ) 소스 좌단을 더블클릭 파란색 점이 표기되며 이점이 breakpoint다 ㄷ) 브레이크포인트를 지정하고 어플리케이션을 디버그모드로 실행하면 소스라인에 파란색 화살표가 가리키고 이것은 실행중에 해당 소스코드 라인부분을 처리하는 중이라는 것을 나타낸다 ㄹ) BreakPoint앞뒤로 값확인이 가능하다 i. 특정변수를 더블클릭하여 범위를 정하고 ii. 마우스를 사용하여 watch, inspect, display 3가지 메뉴를 사용할 수 잇다 iii. Watch의 Expressions뷰 - 값 및 세부속성확인, add new expression을 통한 소스에 없는 값 확인,세부정보확인 iv. inspect - Expressions뷰를 사용하지 않는 직접적인 창 호출, 세부정보확인 v. Display - 별도 창을 통한 세부정보확인