티스토리 툴바


스프링 프레임크를 사용하기 시작한지는, 만 5년 정도 된것 같다. 아니 정확하게 이야기하면 알기 시작한지 5년이다. 그 동안 몇개의 프로젝트에는 적극적으로 사용해왔고, 사용하려고 했었다.

솔루션을 위한 내부의 기반 프레임워크를 개발하기에도, 그 자체만으로도 스프링은 너무 훌륭하기 때문에, Application의 공통 부분을 위한 기능들만을 최적화하고, 정의하는 것 만으로도 노력대비 좋은 결과들을 낼수 있었다. 다 로드존슨 아저씨가 많은 시간을 들여서 갈고 닦고, 발전시킨 노력의 결과들이다.

시간이 흐를수록 큰 조직에서는 코드와 PC와 씨름하기 보다는 수 많은 회의와 씨름을 하는 일이 많아진다. 더군다나 같이 협업하는 사람들이 많아지면, 본인이 원치 않아도 관리자의 길에서 뛰고 있는 모습을 보게된다. 딱 지금의 나의 모습니다.

공부하지 않고, 적절하게 판단하고 선택하고 방향에 대해서 이야기 할 수 있을까?
많은 고민을 하지만, 역시 시간이 절대적으로 부족하다.

요즘은 코드를 보기가 힘들정도로, 공부할 여유가 별로없다.
하지만, 사둔 책이 아깝다는 이유이든, 공부의 재미를 알았다는 이유이든 개발자로 살아가는 한은
꾸준히 배워야한다.

스프링 3.1은 또 다른 변호들을 이야기 할지는 모르겠다. 이전에 책을 보면서 정리한 내용인데 일단 올려놓는다.

[Spring Framework 3.0 - MVC]

·         스프링은 DespatcherServlet 7개의 Strategy를 기반한 MVC 프레임워크를 제공한다.

·         이중 DespatcherServlet는 가장 기본적이면서도 SpringMVC의 필수적인 기본 Servlet 역할과 스프링의 특징중의 하나인 Light-weight 컨테이너의 역할을 수행한다.

 

1.     @RequestMapping 핸들러 매핑

o    @MVC는 메소드 레벨에서 컨트롤러를 작성할 수 있다.

o    Annotation은 타입(클래스, 인터페이스)레벨뿐 아니라 메소드 레벨에도 적용 가능함.

o    @MVC 핸들러 매핑을 위해서는 DefaultAnnotationHandlerMapping이 필요하다.

o    DefaultAnnotationHandlerMapping은 기본 핸들러 이므로 다른 Handler Mapping bean이 명시적으로 등록이 되지 않았다면, 기본으로 사용이 가능하다.

o    만약, 다른 핸들러 매핑 빈이 등록이 되었다면, DefaultAnnotationHandlerMapping
명시적으로 등록을 해주어야 사용이 가능하다.

2.     Class/Method 결합 Mapping 정보

o    DefaultAnnotationHandlerMapping

·         @RequestMapping 애노테이션을 활용해서 타입레벨과 메소드 레벨 지원하며
타입레벨을 기본으로 삼고, 메소드 레벨의 어노테이션 정보는 타입레벨의 매핑을 세분화 하는데 사용한다.

o    @RequestMapping Annotation

·         Spring[] value(): URL 패턴

1.     String 배열 타입으로 URL 패턴을 지정해서 사용

2.     URL 패턴은 ANT 스타일과 와일드카드를 사용이 가능하다.

·         @RequestMapping("/hellow")

·         @RequestMapping("/admin/**/user")

·         @RequestMapping("/hellow", "/hi")

3.     "{ }"를 사용할때는, "{ }"의 위치에 해당하는 내용을 컨트롤러 Method에서 파라메터로 전달받을 수 있다. "{ }"에 들어가는 변수를 "path variable"이라고 부른다.

·         @RequestMapping("/user/{userid}")

·         RequestMethoe{} method(): HTTP Request Method

1.     Request Method GET, HEAD, POST, PUT, DELET, OPTIONS, TRACE 7개의 HTTP 메소드가 정의되어 있다

2.     HTTP 메소드를 추가하면 요청 메소드에 따라 다른 메소드를 매핑해 줄 수 있다.

·         @RequestMapping(value="/user/add", method=RequestMethod.GET)

3.     정의된 메소드 이외의 사용시 "HTTP 405 - Method Not Allowed"를 받음.

4.     타입레벨에서 URL을 주고 HTTP 요청 메소드를 지정할 경우 URL 생략가능.

·         @RequestMapping(method=RequestMethod.GET)

·         String[] params(): Request Parameter

1.     이것은 요청 Parameter와 그 값을 비교해서 매핑해 주는 것이다.

2.     같은 URL을 사용하지만, Parameter값에 따라 다른 작업을 할 때 사용한다.

·         @RequestMapping(value="/user/edit", params="type=admin")

3.     특정 Parameter 값이 존재하지 않아야 한다는 조건을 둘 경우 사용

·         @RequestMapping(value="/user/edit", params="!type")

·         String[] header(): HTTP 헤더

1.     Header 정보에 따라 매핑이 가능하다.

·         @RequestMapping(value="/view", headers = "content-type="text/*")

 

o    Type level 매핑과 Method level 매핑의 결합

·   타입(클래스오 인터페이스)레벨에 붙는 @RequestMapping은 타입내의 모든 매핑용 메소드의 공통 조건을 지정할대 사용한다.

·   메소드 레벨의 매핑은 클래스 레벨의 매핑을 상속한다.

      1. 컨트롤러가 각각 /user/add, /user/edit, /user/delete URL에 매핑

@RequestMapping("/user")

public class UserController{

@RequestMapping("/add") public String add(){ }

@RequestMapping("/edit") public String edit(){ }

@RequestMapping("/delete") public String delete(){ }

}

2.     타입 레벨의 URL패턴에 * **를 사용하여 매핑 가능

·         /user/*

·         /user/**  

·         타입레벨에서 공통의 매핑을 정의하고, 메소드 별로 세분화 해서 사용

 

o    Method 레벨 단독 매핑

·   공통 매핑 조건이 없을 경우, 조건을 주지 않고 메소드 레벨에 정의해서 사용.

·   이렇게 정의하지 않는다면, 클래스 자체가 매핑이 되지 않는다.

·   만약, @Controller 애노테이션을 붙여서 자동 빈 스캔을 사용할 경우는, 클래스 레벨의 @RequestMapping을 생략할 수 있다.

o    Type 레밸 단독 매핑

·   클래스 레벨의 URL 패턴이 /*로 끝나는 경우, apthem 레벨의 URL 패턴으로 메소드 이름을 사용할 수 있음.

·   아래는 /user/add /user/edit 로 각각 매핑

@RequestMapping("/user/*")

Public class UserController {

@RequestMapping public String add( ) { }

@RequestMapping public String edit( ) { }

}

 

 

 

 

 

Posted by 행복상자

댓글을 달아 주세요

오늘 갑자기 10년전에 리눅스에서 개발하면서 사용했던 Vi 에디터가 생각이 나서 몇가지 자료와 웹사이트를 두루 돌아 다녔다.

Eclipse용은 특별히 강추하는 글들이 없어서, 하나씩 설치해 봐야할 것 같은데, 하필 처음 설치한 것이 유료 버전이어서, 무시 무시한 팝업창에 놀라곤 한다. 그러나 가벼우서 나쁘지는 않다는 것이 나의 첫인상이다.

아래는 오늘 다녀왔던, 그리고 설치한 vim에 대한 링크아 정보 요약이다.


1.     Vim 설치하기

·         Vim 사이트: http://www.vim.org

·         Vim 다운로드: http://www.vim.org/download.php

o    OS Version 별로 download 가능함

o    필요한 버전을 다운해서 설치 가능함

·         Vim User Manual: http://www.vim.org/docs.php

o    다양한 형태의 매뉴얼과 문서가 있음.

o    Vim 5.7을 위한 pdf 매뉴얼은 아래 링크에서 다운로드 가능하나, 추천하지 않음)

·         : ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf

o    아래 사이트는 한번 볼만함: wiki book

·         http://www.swaroopch.com/notes/Vim_en:Table_of_Contents

o    기타 다른 문서는 시간 나는 대로 참조

·         PC버전 설치

o    Windows 버전과 Console 버전이 있음.

o    내가 설치한 것은 Console 버전과 Visual Studio로 제작된 버전

사용하는 큰 문제 없음

o    설치버전을 받지 않고, 압축파일로 묶인 버전 설치

PC에 흔적을 남기기 싫음.

2.     Eclipse Vim Plugin  설치

·         Viable 1.31.10 : http://viableplugin.com/

o    Eclipse.org에서 검색해서 찾음

·         설치 방법: Eclipse에서 아래와 같이 메뉴에서 추가한다.

o    Help > Install New Software > Add > http://viableplugin.com/update_site

·         설치를 하게 되면, 3가지 기본 모듈이 설치가 됨

o    Viable core plugin

o    Viable CDT feature

o    Viable JDT Feature

·         다큐멘트:

o     http://viableplugin.com/documentation/HomePage

·         Eclipse Vim : http://juan.boxfi.com/vim-color-schemes/#eclipse

o    다운하기: http://juan.boxfi.com/wp-content/uploads/2011/03/eclipse.vim_.gz

 

·         간단 사용

o 생각보다 가볍고 잘 동작한다. 명령이나 이에 대한 실행에 대한 분석은 시간이 필요함.

·         유의 사항

o 유료버전으로 라이선스 파일이 정상 설치하지 않으면, 당신을 죽일지도 모른다는
무시 무시한 메시지 창을 5분마다 띄우니 유의 할 것


 

Posted by 행복상자

댓글을 달아 주세요

  1. 2012/04/05 18:08  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다