Posts List

Translate

2014년 1월 24일 금요일

[Spring MVC] 스프링 MVC 구성요소

[Spring MVC] 스프링 MVC 구성요소



DispatcherServlet웹 브라우저로부터 송신된 Request를 일괄적으로 관리한다.

HadlerMappingRequestURL과 Controller 클래스의 맵핑을 관리한다.

org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 
RequestURL과 스프링 설정 파일에 정의된 Request컨트롤러르의 name 속성을 연관 지음으로써 Request컨트롤러를 해결한다. 스프링 설정 파일 내에 HandlerMapping 인터페이스의 정의가 존재하지 않는 경우 디폴트 값이 인스턴스가 된다.

org.springframework.web.servlet.handler.SimpleUrlHandlerMapping 
RequestURL과 Request컨트롤러를 정의한다. Bean정의 파일 내에서의 Request컨트롤러를 정의한다. Bean정의 파일 내에서의 Request 컨트롤러의 분산을 방지할 수 있다.

org.springframework.web.servlet.handler.metadate.CommonsPathMapHandlerMapping 
Request 컨트롤러에 메타 데이터를 정의함으로써 RequestURL과의 관련을 정의한다. Apache Jakartacommons attributes라이브러리가 필요하다.

Controller비즈니스 로직을 호출하여 처리 결과 ModelAndView 인스턴스를 반환한다.

org.springframework.web.servlet.mvc.AbstractController
: GET,POST를 허가하는 Request() 메소드 세션의 체크 등을 스프링 설정 파일에서 설정할 수 있는 범용적인 클래스

org.springframework.web.servlet.mvc.SimpleFormController 
: 웹 브라우저로부터 송신된 입력 폼을 처리하는 확장된 클래스

org.springframework.web.servlet.mvc.multiaction.MultiActionConroller
: 복수 RequestURL에 대해 개별 처리를 구현하는 확장된 클래스

ViewResolverController클래스로부터 반환된 View정보가 논리적인 View 이름일 경우에는 bean 설정파일에 정의되어 있는 ViewResolver 클래스를 이용하여 클라이언트에게 출력할 View 객체를 얻게 된다.

org.springframework.web.servlet.view.Internal.ResourceViewResolver
: WEB-INF 디렉터리 안에 있는 ViewResouce를 해결한다.
스프링 설정 파일 안에 ViewResolver인터페이스 정의가 존재하지 않는 경우 디폴트 인스턴스이다.

org.springframework.web.servlet.view.ResourceBundleViewResolver
: 프로퍼티 파일 상에서 View명과 그 실체가 되는 View를 관련 짓는다. 프로퍼티 파일은 클래스 패스 상에 배치한다.

org.springframework.web.servlet.viwe.velocity.VelocityViewResolver 
 Velocity 템플릿에서 작성된 View를 해결한다.

View프레젠테이션층으로의 출력 데이터를 설정한다.

org.springframework.web.servlet.view.InternalResourceView
: JSP등의 리소스 전용의 View.Request 속성에 모델을 세트하여 RequestDispatcher 클래스를 참조한 다음, 해당 View로 forward한다.

org.springframework.web.servlet.view.view.JstlView
: JSTL을 사용한 페이지 전용의 View.InternalResourceView 클래스의 서브 클래스.
스피링의 메시지 소스 파일을 JSTL의 포맷 태그로부터 참조할 수 있게 된다.

org.springframework.web.servlet.view.velocity.VelocityView 
 벨로시티 템플릿 전용의 View

[Spring AOP] AOP 용어

[Spring AOP] AOP 용어

결합점(Join Point)
: 인스턴스의 생성시점, 메소드를 호출하는 시점, Exception 이 발생하는 시점과 같이 애플리케이션이 실행될 때 특정작업이 실행되는 시점.
교차점(pointcut)
: 교차점은 결합점을 선택하고 결합점의 환경정보(context)를 수집하는 프로그램의 구조물이다. Target 클래스와 Advice 가 결합(Weaving)될때 둘 사이의 결합규칙을 정의 하는 것이다.
충고(Advice)
: 충고는 교차점에서 지정한 결합점에서 실행되어야하는 코드이다.
에스팩트(Aspect)
: 에스팩트는 AOP 의 중심단위, Advice 와 pointcut 을 합친 것이다.(Advisor)
대상(target)
: 충고를 받은 클래스를 대상(target)이라고 한다. 대상은 여러분이 작성한 클래스는 물론, 별도의 기능을 추가하고자 하는 써드파티 클래스가 될 수 있다.
역기(Weaving)
: 에스팩트를 대상 객체에 제공하여 새로운 프록시 객체를 생성하는 과정을 말한다.
프록시(Proxy)
: 대상객체에 충고가 적용된후 생성된 객체


2014년 1월 23일 목요일

[DAP, DAsP] 2014 DB자격검정 시험일정

[DAP, DAsP] 2014 DB자격검정 시험일정

[DAP DAsP] 관계연산자


1.관계연산자 : 조회
select(or Restrict) : (Column)에 의거한 행(Row) Subject
Project : (Column)Subject
Product : 두 관계 테이블간 행(Row)의 조함을 묶음
Join : (Column)의 기준에 의거하여 각 행(Row)을 수평적으로 묶음
Union : 중복을 없이하여 각 행(Row)을 수직적으로 묶음
Intersection : 관계 테이블간의 공통된 행(Row)
Difference : 하나의 관계 테이블에만 있는 행(Row)
Division : 다른 관계 테이블의 모든행에 대응하는 열을 제외한 열
 
2.처리연산자 : 관계 테이블이 내용에 변화
Insert : 행의 입력
Update : 행의 수정
Delete : 행의 삭제

[Flex, Flash Builder] Flash Builder Air 3.x 설치

[Flex, Flash Builder] Flash Builder Air 3.x 설치
현재 flex 는 버전입4.6 입니다.
하지만 AIR SDK 는 3.1 버전을 사용하고 있습니다. 다음은 Flash Builer 4.6 에서 AIR SDK 3.2 버전을 사용할 수 있는 방법 입니다. 참고 하세요..^^
테스트 환경 Windows7  32bit / Flash Builer 4.6
1. AIR SDK 3.2 다운로드 
2. flex sdk 4.6.0 폴더를 그대로 복사 해서 다른 이름으로 변경 합니다.(ex: 4.6.3.2)
경로 : C:\Program Files\Adobe\Adobe Flash Builder 4.6\sdks\4.6.3.2
기존에 4.6.0 버전은 그대로 두시고 새로운 4.6.0_AIR3.2 폴더가 생성 되었다면 다음으로 넘어가세요.
3. 1.번에서 다운로드 한 AIR SDK 3.2 폴더에 내용물을 그대로 복사 해서 4.6.0_AIR3.2 폴더에 붙혀 넣기 합니다.
모두 복사가 끝났다면 다음으로 넘어가세요.
4. 4.6.3.2 폴더에 flex-sdk-description.xml 파일을 열어서 <name>Flex 4.6.0</name> 이부분을  <name>4.6.3.2</name> 으로 변경 합니다.

5. 플래시 플레이어 11에 대한 지원을 추가 해주어야 합니다.
다운로드http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/playerglobal11_0.swcC:\ProgramFiles(x86)\Adobe\AdobeFlashBuilder 4.6\sdks\4.6.0_AIR3.2\frameworks\libs\player
폴더에서 11.2 폴더를 생성 합니다.
플래시플레이어 11.2 API 파일 “Playerglobal.swc” 를 다운로드 하여 11.2폴더에 넣어 주세요.
6. 이제 Flex 를 실행해서 환경설정을 해주셔야 합니다.
1. Properties > Felx Compiler > Use a specifc SDK 에서 “4.6.3.2″ 를 선택 합니다.
이후 Additonal compiler arguments 부분에 “-swf-version=15″ 를 입력 합니다.
7. 새로운 프로젝트를 test 를 생성 하고 test-app.xml 파일 상단에보시면
<application xmlns=”http://ns.adobe.com/air/application/3.2″>
가 있을거에요 이제 부터 AIR 3.2버전을 사용 하실 수 있습니다.
참고:이렇게 설정 하고 나니  Flex Mobile 컴파일에서 오류가 방생했습니다.
해결방법은 C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0\lib\android\lib\resources
폴더의 android-res.jar 파일을 복사해서 C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0_AIR3.2\lib\android\lib\resources 폴더에 붙혀 넣기 하시면 해결 됩니다. ^^

[XPlatFiorm] XPlatForm 단축키

[XPlatFiorm] XPlatForm 단축키

■ 디자인

  • Tab, Shift + Tab : 컴포넌트간 이동
  • 방향키 : 컴포넌트 이동,  Dot Grid 크기만큼 이동 -> 해당 크기는 메뉴에서 Tool > Options > Form Design > General 에서 설정
  • Ctrl + Tab : 폼 여러 개 편집시, 다음 탭Ctrl + 방향키 : 픽셀단위로 컴포넌트 이동
  • Shift + 방향키 : 컴포넌트 크기 변경
  • Shift + Ctrl + 방향키 : 픽셀단위로 크기 변경
  • F2 : InPlaceEdit, UX스튜디오에는 컴포넌트 클릭시 클릭 이벤트를 만들거나 이동하기 때문에 라벨을 수정하기 애매한데 단축키를 쓰면 쉽게 편집).

■ 소스/스크립트

  • Ctrl + F : 찾기
  • Ctrl + G : 특정 라인으로 이동하기
  • Ctrl + ] : Match Brace
  • Ctrl + Shift + ] : Match Brace Select, 대상 범위 영역을 선택 상태로
  • /  : 선택된 영역 주석 처리
  • Alt + /  : 선택된 영역 주석 해제
  • Ctrl + F2 : Bookmark 토글
  • F2  : 다음 Bookmark
  • Shift + F2 : 이전 Bookmark
  • Ctrl + Shift + L  : 현재 라인 삭제
  • Ctrl + Shift + Back : 커서 위치 이전의 내용 삭제
  • Ctrl + Del : 단락 삭제 ->예를 들어 alert("Event"); 라는 코드에서 단락 삭제 명령을 실행하면 ,alert, (", Event, "); 항목 단위로 삭제할 수 있다.
  • Ctrl + (-, +) : 화면 확대 또는 축소

■ 기본

  • Ctrl + S :저장
  • Ctrl + C :복사
  • Ctrl + X : 잘라내기
  • Ctrl + V :붙여넣기
  • Ctrl + Z ; Undo
  • Ctrl + Y :Redo
  • F1 :도움말
  • Ctrl + F5 : 프로젝트 실행
  • F5 :프로젝트 디버깅
  • Ctrl + F6 :폼 실행, 퀵뷰
  • F6 : 폼 디버깅
  • F9 :토글 브래이크포인트
  • F10 : Step Over
  • F11 : Step Into
  • Shift+F11 : Step Out

■ 창 전환

  • Ctrl + Shift + Tab : 이전 탭

■ 프로젝트 탐색창

  • F2 : 파일명 변경, 단 파일이 열려있는 경우에는 변경 안됨
  • F3 : 검색

프로젝트 탐색창 상단에 있는 부분이 검색창 -> 검색과 필터링 기능을 같이 함.
키워드를 입력하고 찾기 버튼을 클릭하면 해당하는 아이템이 있는 폼만 보여줌.
파일명 뿐 아니라 각 컴포넌트나 오브젝트의 id 까지 검색을 해줌.
==> 규모가 큰 프로젝트인 경우 네이밍 규칙을 잘 정해놓으면 유용하게 사용 가능

[Inno Setup] Inno Setup - 설치프로그램 제작

[Inno Setup] Inno Setup - 설치프로그램 제작

간단하게 만들어 준 Inno Setup 스크립트 예제 및 설명
;Setup 이여유
[Setup]
AppID=KSeongH_TEST
;AppName 프로그램 이름, 설치 시 표시
AppName=KSeongH_TEST
AppVersion=1.234
;AppVerName 프로그램 버전 이름 - 설치 시 표시
AppVerName=KSeongH_TEST_V1.234
AppCopyright=Kimseonghun
AppPublisher=KSeongH, Inc.
AppPublisherURL=http://www.xxxxxx.com
AppSupportURL=http://www.xxxxxx.com
AppUpdatesURL=http://www.xxxxxx.com
;UninstallDisplayName 프로그램 추가/삭제에서 표시
UninstallDisplayName=KSeongH_TEST 제거
;DefaultDirName 설치 기본 폴더, {pf}는 Program Files
DefaultDirName={pf}\KSeongH_TEST
;DefaultGroupName 시작 프로그램에서의 그룹 이름
DefaultGroupName=KSeongH_TEST
DisableProgramGroupPage=yes
;OutputBaseFilename 생성되는 설치 파일 이름
OutputBaseFilename=KSeongH_TEST-Setup
DisableReadyPage=yes
ShowLanguageDialog=no
UninstallLogMode=overwrite
;WizardImageFile 설치시 첫 화면 좌측에 표시되는 큰 그림
WizardImageFile=kseongh_Setup.bmp 
;WizardSmallImageFile 설치 시 우측 상단에 표시되는 작은 그림
WizardSmallImageFile=kseongh_Setup_S.bmp
;셋업 파일에 포함될 파일 리스트
;Source :  PC의 원본파일 전체 경로              ;DestDir : 설치될 위치            ; {app}는 설치시 선택된 경로를 가리킴    
;Flags : 각종 옵션
;시작-프로그램에 들어갈 아이콘 리스트         ;Name은 표시될 이름              ; FileName은 연결될 파일 이름
;WorkingDir은 해당 파일이 실행될때의 시작위치
FMS는 시작 경로를 명시 안할 경우 초기화 오류 발생
;{group}은 Setup 섹션에서 DefaultGroupName에 해당
[Icons]
Name: "{group}\FMS_XCopter 제거"; Filename: "{uninstallexe}"
Name: {group}\FMS_XCopter; Filename: {app}\FMS.exe; WorkingDir: "{app}"
;언인스톨 시 모든 파일을 삭제
[UninstallDelete]
Name: {app}\*.*; Type: filesandordirs 

;언어 설정
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

;Tasks 설정
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";

;Run 설정
[Run]
Filename: "{app}\KSeongH_TEST.exe"; Description: "{cm:LaunchProgram,KSeongH_TEST}"; Flags: nowait postinstall skipifsilent