Spring
-
[spring] 자바 Config 설정하기 vs XML 설정하기Spring 2020. 3. 10. 00:34
Spring Framework는 설정이 반이라는 말이 있다. 그만큼 초기 설정 방법도 여러 가지고 복잡하기 때문에 이런 말이 나왔을 거라 생각한다. (스프링 부트를 이용해서 간단하게 설정하는 해결하는 방법도 있구..) 기본적인 XML을 통한 설정과 자바 Annotation을 통한 설정 두 가지를 정리해보자. XML을 통한 스프링 설정 web.xml Deployment Descriptor(배포 서술자) 라고 불리며 웹페이지의 환경설정 부분을 담당한다. WAS(Web Application Server)가 최초 구동될 때 web.xml을 읽고 그에 해당하는 설정을 구성한다. 설정을 위한 설정파일이 되는 셈이다. contextConfigLocation /WEB-INF/spring/root-context.xml ..
-
[spring] 스프링 MVC 라이프사이클 이해하기();Spring 2020. 2. 25. 22:44
웹 요청을 처리하기 위해 스프링은 다양한 구성 요소들을 연동한다. 그 중심에는 항상 DispatcherServlet 객체가 존재한다!! 스프링 MVC 라이프 사이클을 간단하게 정리해 보았다. 라이프 사이클을 알아두는 것만 해도 스프링 MVC의 큰 틀을 이해할 수 있다. :) 스프링 MVC 라이프사이클 클라이언트로부터 웹브라우저를 통해 요청이 들어오면 DispatcherServlet 객체가 요청을 가로챈다. DispatcherServlet 객체는 요청을 처리하기 위해 HandlerMapping 객체에게 요청 경로에 부합하는 컨트롤러 객체 검색을 요청한다. HandlerMapping 객체는 요청을 처리하고 알맞은 컨트롤러 객체를 DispathcerServlet 객체에게 리턴한다. 컨트롤러 객체를 전달받은 D..
-
[spring] AOP 프로그래밍 분석하기();Spring 2020. 2. 25. 03:43
DI 이외의 또 다른 스프링 프레임워크의 큰 특징인 AOP에 대해 알아보자..! (최범균 님의 스프링 5 서적을 보며 참고하여 정리한 글인데, 최범균 님은 참 글을 이해하기 쉽게 잘 쓰시는 거 같다..) AOP(Aspect Oriented Programming) 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법이다. AOP는 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있게 만들어 준다. 즉, 핵심 기능의 코드는 수정하지 않으면서 공통 기능의 구현을 추가하는 것이 AOP의 목적이다. 아래 예제를 보자..! public class CalcMain { public static void main(String a..
-
[spring] DI와 자동 의존 주입(@Autowired) 박살내기();Spring 2020. 2. 20. 05:46
스프링 프레임워크의 핵심 기능인 DI가 무엇이고? 자동 의존 주입의 종류와 사용법은 무엇인고? 어떠한 자동 의존 주입 방식을 선택할꼬? DI(Dependency Injection) '의존성 주입'이라는 이해하기 어려운 용어로 번역될 수 있다... 가끔은 영어 그대로의 의미를 곰곰히 생각해보는게 한글보다 이해하기 더 편할때도 있는것 같다.. 주륵 본론으로 돌아가서, 의존성 주입에서 '의존'은 객체간의 의존을 의미한다. 객체가 의존한다는 건 무엇일까? public class MemberService { // 직접 생성 private MemberRepository memberRepository = new MemberRepository(); public void register(Member member) { m..
-
[spring] 페이징 처리하기 (feat. Thymeleaf)Spring 2020. 2. 4. 18:48
페이징 처리는 웹 개발에서 필수적인 기술이며, 요즘은 무한스크롤로 처리하는 경우도 많다. 무한스크롤 + 페이징을 접목하는 경우도 다수 본 것 같다. (...나중에 써봐야징..) 페이징을 처리하는 방법은 여러가지가 있지만, 간단한 예제를 통해서 가장 기본이 되는 방식으로 구현해 보자 !! 개발 환경은 아래와 같다..! 언어 : java 1.8 프레임워크 : springboot 2.2.4.RELEASE (spring-boot-starter) 템플릿엔진 : thymeleaf 2.2.4.RELEASE (spring-boot-starter) 데이터베이스 : H2 1.4.200 (spring-boot-starter) orm : data-jpa 2.2.4.RELEASE (spring-boot-starter) 사전준비..