본문 바로가기

JAVA/Spring

(28)
스프링3 개론 스프링스프링이 자바에서 가장 중요하게 가치를 두는 것이 객체지향 프로그래밍이 가능한 언어라는 점스프링이 가장 관심을 많이 두는 대상은 오브젝트.스프링을 이해하려면 오브젝트에 깊은 관심을 가져야한다.오브젝트에 대한 관심은 오브젝트의 기술적인 특징과 사용방법을 넘어서 오브젝트의 설계로 발전하게 된다.객체지향 설계의 기초와 원칙을 비롯해서,다양한 목적을 위해 재활용 가능한 설계방법인 디자인 패턴좀 더 깔끔한 구조가 되도록 지속적으로 개선해나가는 작업 리팩토링오브젝트가 기대한 대로 동작하고 있는지 효과적으로 검증하는 데 쓰이는 단위 테스트 등오브젝트 설계와 구현에 관한 여러가지 응용 기술과 지식이 요구된다. 관심사의 분리소프트웨어 개발에서 끝이란 개념은 없다.사용자의 비즈니스 프로세스와 그에 따른 요구사항은 끊..
Spring Boot Spring Boot 스프링 부트는 그 목적 자체가 단독으로 실행 가능하고(stand-alone), 제품 수준의 (production-grade) 스프링 기반 애플리케이션을 제작하는 것을 목표로 진행된 프로젝트이다. 주요기능- 단독 실행 가능한 수준의 스프링 애플리케이션 제작 기능- 내장된 Tomcat, Jetty, UnderTow 등의 서버를 이용해서 별도의 서버 설치 없이 실행 가능- 최대한 자동화된 설정 제공- XML 설정없이 단순한 설정방식제공 pom.xml org.springframework.bootspring-boot-stater-web org.springframework.bootspring-boot-stater-tomcatprovided org.springframework.bootspring..
MyBatis Mapper MyBatis Mapper MyBatis만을 이용해서 프로젝트를 구성할 때 DAO 구성을 좀 더 간단하게 할 수 있는 방법으로 Mapper 인터페이스를 이용해서 자동으로 객체를 생성하는 방법 기존방식1) DAO 인터페이스 작성2) Mapper XML 생성 및 SQL 처리3) DAO 인터페이스를 구현한 구현클래스의 작성 변경1) Mapper 인터페이스 작성2) MyBaits 애노테이션 또는 Mapper XML 작성 mybatis-spring이 자동으로 Mapper 인터페이스를 구현한 프록시 객체를 만들어준다. XML 네임스페이스 지정root-context.xml 파일의 네임스페이스를 지정할때 mybaits-spring을 지정 DataSource, SqlSessionFactory 설정 Mapper 인터페이스..
Spring login with cookie Spring login with cookie (자동 로그인과 쿠키) 최근의 웹페이지를 보면 로그인할 때 체크박스를 만들어두고, 사용자가 원하는 경우 매번 로그인을 하지 않는 '자동로그인' 기능을 제공는 경우가 많다. 흔히 'Remember Me'로 표현하는데, 국내 사이트에서는 '자동 로그인'으로 표시하는 경우가 많다. 자동로그인은 브라우저가 서버에 접속할때 특정한 쿠키를 같이 전송하고, 이를 이용해서 로그인을 처리하는 방식이다. HttpSession에서 사용되는 세션쿠키와 달리 개발자가 만들어 내는 쿠키의 경우는 '만료기한'을 지정할 수 있기 때문에, 오랜 기간 보관이 가능하다.일반적으로 웹에서 로그인은 세션을 사용하는 방식을 더 선호 했는데, 가장 큰 이유는 보안에 대한 문제이다. 세션을 이용하는 경..
Spring Interceptor HttpSession Login Spring Interceptor HttpSession Login(스프링 인터셉터 HttpSession으로 로그인 처리) HttpSession을 이용하는 로그인처리 웹에서 로그인의 가장 기본적인 방식은 HttpSession 객체를 이용해서 사용자의 정보를 보관하고, 피룡한 경우 사용하거나 수정하는 방식HttpSession의 동작은 실제로 세션 쿠키(session cookie)를 통해서 이뤄지는데, 서버는 필요한 경우 접속한 브라우저에 공유한 세션 쿠키를 전달하고, 매번 브라우저에서 서버를 호출 할 때 세션 쿠키를 같이 가지고 다니기 때문에 이를 마치 열쇠처럼 사용해서 필요한 데이터를 보관한다. 세션 쿠키가 열쇠(key)라면 HttpSession은 열쇠가 필요한 잠금장치가 되어 있는 상자와 유사하다. 이 ..
Spring Interceptor Spring MVC Interceptor (스프링 MVC의 인터셉터)스프링을 이용해서 사용자의 단순 로그인을 처리하는 가장 간단한 방법은 Servlet의 Filter와 유사한 인터셉터(Interceptor)를 활용하는 방법 인터셉터는 웹 애플리케이션 내에서 특정한 URI 호출을 말 그대로 가로채는 역할을 한다. 이를 활용하면 로그인한 사용자만 사용할 수 있는 기능을 제어할 수 있기 때문에 기존 컨트롤러의 로직을 수정하지 않고도, 사전이나 사후에 제어가 가능하다.Filter와 Interceptor의 공통점 Servlet 기술의 Filter와 Spring MVC의 HandlerInterceptor는 특정 URI에 접근할 때 제어하는 용도로 사용 설정은 web.xml에 사용하는 필터의 설정과 유사한 부분이 많..
Spring Transaction Spring의 트랜젝션기본적으로 XML을 사용해서 선언하는 방식과 애노테이션을 활용하는 방식 XML의 경우 별도의 transaction-context.xml 파일을 이용해 XML로 작성해서 처리 애노테이션의 경우 DAO 나 Mapper 등을 이용하는 xxxService 클래스에 애노테이션 처리 트랜잭션에 대한 설명트랜잭션은 하나의 업무에 여러 개의 작은 업무들이 같이 묶여 있는 것을 의미한다. 트랜잭션의 기본 원칙 ACID원자성(Atomicity) - 하나의 트랜잭션은 모두 하나의 단위로 처리돼야한다. 어떤 트랜잭션이 A와 B로 구성된다면, 항상 A, B 처리결과는 동일한 결과여야 한다. 즉 A 는 성공했지만 B는 실패할 경우 A, B는 원래 상태로 되돌려져야만 한다. 어떤 작업이 잘못되는 경우 모든 것..
Spring AOP AOP(Aspect Oriented Programming)기존의 비즈니스 로직외 작성해야 하는 코드를 별도로 분리함으로써 개발자가 좀 더 비즈니스 로직에만 집중해서 처리할 수 있는 방법을 제공사전적 의미로는 "측면 혹은 어떤 도형이나 건물의 면" 의미하지만, 실제 프로그램 개발에서 의미하는 것은 '비즈니스 로직은 아니지만 반드시 해야하는 작업' 공통적이고 반복적인, 그러나 비즈니스 로직의 핵심이 아닌 부분을 처리할때...횡단 관심사(cross-concern)는 시스템의 여기저기에서 공통으로 사용되지만, 그 자체가 목적이 아닌 오히려 시스템의 완성도를 높여주는 역할로 보안처리나 로그, 이중백업등 사용"개발의 핵심적인 비즈니스로직을 개발하는데만 집중하고 나머지 부가적인 기능은 설정을 통해 조정하라" 프록시(..