본문 바로가기

Spring

(10)
POJO POJO(Plain Old Java Object) : 평범한 자바 오브젝트 이전 EJB(Enterprise JavaBeans)는 확장 가능한 재사용이 가능한 로직을 개발하기 위해 사용 되었었는데 EJB는 한가지 기능을 위해 불필요한 복잡한 로직이 과도하게 들어가는 단점이 있었다. 그래서 다시 조명을 받은게 POJO이다. POJO는 gettet/setter를 가진 단순 자바 오브젝트로 정의한다. 이러한 단순 오브젝트는 의존성이 없고 추후 테스트 및 유지보수가 편리한 유연성의 장점을 가진다. 이러한 장점들로 인해 객체지향적인 다양한 설계와 구현이 가능해지고 POJO의 기반의 Framework(=> Spring Framework)가 조명을 받고 있음.
IOC IOC(Inversion of Control) : 제어의 역전 [ 정의 ] Spring Framework는 IOC기반이다. 일반적으로 지금까지 프로그램은 1. 객체 결정 및 생성 2. 의존성 객체 생성 3. 객채 내의 메소드 호출 을 반복. 이는 각 객체들이 프로그램의 흐름을 결정하고 각 객체를 구성하는 작업에 직접적으로 참여한 것. 즉, 모든 작업을 사용자가 제어하는 구조이다. 하지만 IOC에서 객체는 자기가 사용할 객체를 선택하거나 생성하지 않는다. 또한 자신이 어디서 만들어지고 어떻게 사용되는지 또한 모른다. 자신의 모든 권한을 다른 대상에 위임함으로 써 제어권한을 위임받은 특별한 객체에 의해 결정되고 만들어진다. 즉, 제어의 흐름을 사용자가 컨트롤 하지 않고 위임한 특별한 객체에 모든 것을 맡기는..
Spring - 유효성 검사(Validation) 유효성을 검사하는 것은 어떤 데이터의 값이 유효한지, 타당한 것인지 확인하는 것이다. 간단한 예를 들면 어떤 페이지의 회원가입을 하다보면 비밀번호를 8자리이상 입력하라거나 이메일 양식이 일치하지 않는다는 메세지등이 곧 유효성 검사를 하는 과정에서 나온것이다. - 웹 브라우저 : 자바스크립트로 웹서버에 전송하기 전 검사한다. - 웹 서버: 전달 받은 요청 파라미터를 검사한다. 자바스크립트에서 유효성 검사를 하지만 서버에서도 유효성 검사를 반드시 해줘야 한다. > sample.xml message.error Spring에서 Message Properties를 사용하기 위한 방법은 2가지가 있는데, ResourceBundleMessageSource 와 ReloadableResourceBundleMessageS..
Spring MVC - 구성 및 흐름 > Spring MVC 주요 구성 구성 요소 설명 [ DispatcherServlet ] 클라이언트의 요청을 전달받는다. Controller에게 클라이언트의 요청을 전달하고, Controller가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성하도록 한다. [ HandlerMapping ] 클라이언트의 요청 URL을 어떤 Controller가 처리할지를 결정한다. [ HandlerAdapter ] HandlerMapping에서 결정된 핸들러 정보로 해당 메서드를 직접 호출해 준다. [ Controller ] 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에 알려준다. 스트러츠의 Action과 동일한 역할을 수행한다. [ ModelAndView ] 컨트롤러가 처리한 결과 ..
Spring 외부 설정 Property 환경에 따라 설정정보가 변경되는 경우가 생긴다면 외부 프로퍼티 파일에 저장된 정보를 유용하게 사용할 수 있다. 예를 들어 각 운영 환경에서 사용되는 DB가 다르면 각 환경에 맞도록 매번 수정하지 않고 프로퍼티를 설정하여 사용함으로서 유지보수성을 향상시킬수 있다. > Environment db.properties db.driver=com.mysql.Driver db.jdbcUrl=jdbc:mysql://host/test db.user=hak db.password=1111 설정을 외부에 존재하는 파일에서 가져온다. 수정시에도 외부파일을 수정하면 된다. MainByEnvXml.java public class MainByEnvXml { public static void main(String[] args) thr..