본문 바로가기

Back-end/Spring

MVC란? (Spring MVC) https://gmlwjd9405.github.io/2018/12/20/spring-mvc-framework.html [SpringMVC] Spring MVC Framework란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io https://developer.mozilla.org/ko/docs/Glossary/MVC MVC - 용어 사전 | MDN MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 developer.mozilla.org 참고자료 Spring MVC 사용자 인터페이.. 더보기
MVC 핵심 구성 요소 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 이라고 표시한 것은 스프링 빈으로 등록해야 하는 것을 의미한다. Spring Mvc 핵심 구성요소 4가지 HandlerMapping - 컨트롤러 검색 HandlerAdapter - 컨트롤러 실행 ViewResolver - 컨트롤러의 실행 결과를 보여줄 View 객체 검색 View - View 객체를 실행하여 응답 결과 JSP 페이지를 생성 1번 과정 (DispatcherServlet) 모든 연결을 담당한다. 웹 브라우저로부터 요청이 들어오면 DispatcherServlet은 요청을 처리하기 위한 컨트롤러 객체를 검색한다. 이때 DispatcherServlet은 직접 컨트롤러를 검색하지 않고 HandlerMappin.. 더보기
AOP 프로그래밍 (학습필요) 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 학습 부족으로 후에 업로드 예정.. 더보기
빈 라이프 사이클과 범위 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 스프링 컨테이너는 초기화와 종료라는 라이프 사이클을 갖는다. ex) // 1. 컨테이너 초기화 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class); // 2. 컨테이너에서 빈 객체를 구해서 사용 Greeter g = ctx.getBean("greeter", Greeter.class); String msg = g.greet("스프링"); System.out.println(msg); // 3. 컨테이너 종료 ctx.close(); 1. 컨테이너 초기화 위 코드에서 AnnotationConfigAp.. 더보기
컴포넌트 스캔(@Component, @ComponentScan) - 학습필요 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 컴포넌트 스캔 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능이다. @Component를 가진 모든 대상을 가져와서 빈에 등록하기 위해 찾는 과정이다. @Component 해당 클래스를 스캔 대상으로 표시한다. 애노테이션 값을 주지 않을 경우 클래스 이름의 첫 글자를 소문자로 바꾼 이름을 빈 이름으로 사용한다. 애노테이션에 값을 주면 그 값을 빈 이름으로 사용한다. @ComponentScan @Component 애노테이션을 붙인 클래스를 스캔하여 스프링 빈으로 등록한다. basePackages 속성값으로 스캔 대상 패키지 목록을 지정하여 지정 패키지와 하위 패키지에 속한 클래스를 스캔 대상으로 설정한다. 추.. 더보기
의존 자동 주입 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 앞의 DI 내용에서 DI 방식을 잠깐 다뤘었다. 생성자나 메소드를 이용한 주입 방법이였는데 의존 대상을 설정 코드에서 직접 주입하는 코드를 보겠다. @Configureation public class AppCtx { @Bean public MemberDao memberDao() { return new MemberDao(); } @Bean public ChangePasswordService changePwdSvc() { ChangePasswordService pwdSvc = new ChangePasswordService(); pwdSvc.setMemberDao(memberDao()); // 의존 주입(직접 주입) r.. 더보기
스프링 DI 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. DI DI는 'Dependency Injection'의 약자로 우리말로는 '의존 주입'이라고 한다. 의존이란 변경에 의해 영향을 받는 관계를 의미하며, 한 클래스가 다른 클래스의 메소드를 실행할 때 이를 '의존'한다고 표현할 수 있다. DI를 통한 의존 처리 DI는 의존하는 객체를 직접 생성하는 대신 의존 객체를 전달 받는 방식을 사용한다. ex) public class MemberService { // 의존 객체를 직접 생성하는 방법 private MemberDao memberDao = new MemberDao() ... } public class MemberService { private MemberDao me.. 더보기
싱글톤(Singleton) 객체 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. Singleton pattern이란? 클래스는 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고, 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 자바에서의 단점 유연하지 않다. 스프링 해결방법 스프링 컨테이너를 이용해 Singleton pattern을 적용하지 않아도 객체 인스턴스를 Singleton으로 관리하여 해결하였다. 스프링의 경우 별도 설정을 하지 않을 경우 한 개의 빈 객체만을 생성하며, 이때 빈 객체는 '싱글톤(Singleton) 범위를 갖는다'고 표현한다. Spring에서 Singleton을 사용하는 이유 스프링은 주로 서버환경에 적용되는데 클라이언트에서 매.. 더보기