본문 바로가기

Spring 프레임워크/이론27

Spring MVC 패턴의 구조 파악 4 (Controller 파트) https://hwanii96.tistory.com/314 위의 글에서, Spring에서 DispatcherServlet 을 포함 해서, Controller 인터페이스, HandlerMapping 클래스, ViewResolver 클래스 까지 전부 다 기본 제공 해주기 때문에, DispatcherServlet-servlet.xml 내부에서 세팅 하는것을 정리 했다. 근데, 실제로 Spring 에서는 .xml 기능 설정 파일 내부의 코드가 길지 않고, @ 어노테이션을 훨씬 더 많이 사용 한다. 왜 ? 가독성 측면에서 훨씬 유리 하므로 ! 그래서, DispatcherServlet-servlet.xml 내부의 코드를 전부 지우고, @ 어노테이션 방식으로 변경하는 작업을 해보려고 한다. 1. @ 어노테이션 개념 .. 2023. 8. 4.
Spring MVC 패턴의 구조 파악 3 (Controller 파트) 1. 컨테이너 (Container) == 객체를 생성하는 주체. == 개발자가 (.xml) 설정만 해주면, new를 스스로 관리 한다. == "객체 생성 및 관리를 스스로 처리" 한다. 컨테이너는 인공지능이 아니기 때문에, 개발자가 반드시 .xml 파일 내부에서 기능 설정을 작성해 줘야 한다. 2. web.xml 톰캣 == 서블릿 컨테이너 에게 설정을 알려주는 파일 이다. 서블릿 컨테이너니까, 서블릿 관련 설정을 모두 web.xml 에서 할 수 있다. 그래서, 필터 서블릿도 여기서 등록 한다. encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding *.do 3. 서블릿 클래스에 대한 설정은 아래와 같이 .. 2023. 8. 4.
Spring MVC 패턴의 구조 파악 2 (Controller 파트) 1. Spring 에서는, 기존의 Action 인터페이스를 의미하는 인터페이스를 Controller 인터페이스로 이름을 사용. 또한, 기존의 excute() 메서드를 의미하는 메서드는 handleRequest() 메서드로 이름을 사용. 기본적으로 Spring 에서는, 어디로 갈지에 대한 경로값을 String 타입으로 해서 반환 한다. FrontController 때 처럼, ActionForward 타입의 actionforward 객체를 반환 하는것 보다, 상대적으로 String 타입의 데이터를 반환 하는게 가볍기 때문이다. 암튼, String 타입으로 경로를 반환 하게 되면, 이 페이지의 확장자가 뭔지, 어떻게 갈지, 어디로 갈지 "주체"를 알 수 있다. https://hwanii96.tistory.co.. 2023. 8. 3.
Spring MVC 패턴의 구조 파악 (Model 파트) 1. Controller 파트에서 Service 레이어가 관념적으로 존재 한다. XxxServiceImpl 은 Service 레이어를 구현한 클래스 이다. 정석적인 개념은 아니고, 이해를 위해 정리. Impl은 Implements를 의미 한다. ("무언가의 개념을 해당 클래스에서 구현 했다" 라는 의미) Service 레이어 : DAO를 사용하는 "주체" 가 되는 공간. 즉, DAO를 열심히 사용 하기 때문에, Controller 파트 이다. 이때, Controller 가 DAO를 열심히 사용 하기 위해서, DAO의 메서드 시그니쳐를 잘 맞춰서 사용 하면 좋다. 맞춘다 ? 메서드 시그니쳐를 강제한다 ? >> XxxService 인터페이스를 생성 해서, 그 인터페이스를 구현 하기 ! 2. C에서 M의 DA.. 2023. 8. 2.
Spring MVC 패턴의 구조 파악 (Controller 파트) 스프링 에서는 기존 서블릿 파일 이름이였던, FrontController를 DispatcherServlet 로 사용 한다. 1. 기존, controller.jsp의 코드를 FrontController.java 서블릿으로 옮겨 왔다. >> 유지 보수 불리 2. 그래서, XxxAction 클래스로 모듈화를 진행 했다. XxxAction 클래스 내부에는, execute(request, response) 메서드가 있었다. 이러한 Action 류 클래스는 공통적으로 execute() 메서드를 사용하기도 하고, 하드 코딩 하는것을 줄이기 위해서, Action 인터페이스를 생성 했고, Action류 클래스들은 이 Action 인터페이스를 구현 했다. 3. Spring 에서는 이 XxxAction 클래스를, XxxCo.. 2023. 8. 2.
IoC 로 객체를 호출 하기 (어노테이션 & .xml) TV 인터페이스를 구현한, SamsungTV 클래스와, LgTV 클래스가 있고, RemoteControl 인터페이스를 구현한, SamsungRC 클래스와, LgRC 클래스가 있다. SamsungTV 는 TV 인터페이스를 구현 했기에, 추상 메서드를 구현 받은 상황 이고, 설계상, channelUp과, volumeDown 은, 리모콘을 통해 기능을 수행 할 수 있다. 그래서, 위와 같이, RemoteControl 인터페이스가 멤버로 (멤버변수) 선언 되어 있다. 이는, 의존 관계가 발생 했다고 한다. 이렇게 의존 관계가 발생 했을 때, 의존 주입을 해야 한다. 기존에, 의존 주입을 하는 방법으로는, 생성자를 통해 객체를 주입 하거나, 또는 setter을 통해 주입 하는 방법 이였다. 생성자를 통해 객체를 .. 2023. 8. 1.
Spring 프레임워크 기본 개념 (개요) 2 1. ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 1) 의존성 (Dependency), 의존 관계 예시) 갤럭시폰 음량 조절을 하려면 갤럭시워치를 통해 해야 한다고 가정 해보자. 그렇게 되면, 갤럭시폰 클래스 내부에 갤럭시워치가 멤버로 존재 하게 된다. 또한, 갤럭시폰은 갤럭시워치 객체 없이는 메서드 수행이 불가능 하다. 즉, 의존 관계가 되었다 ! 2) 의존주입 (DI, Dependency Injection) == 의존성주입 갤럭시폰은 갤럭시워치를 주입 받아야 한다. 즉, new 키워드를 통해 초기화를 해야 한다. (생성자 호출을 해야 한다 ~) >> 생성자를 주입 시키던가 ! (자바 때 이렇게 했다) >> setter을 주입 시키던가 ! (JSP 때 이렇게 했다) Spring은 무슨 방법으.. 2023. 8. 1.
Spring 프레임워크 기본 개념 (개요) [ Spring 프레임워크 개요 ] (만든사람 왈 : 개발자에게 봄이 왔어,, 해서 Spring 이라고,,) 1. SpringBoot >> 스프링을 편리하게 사용할 수 있도록 기능을 지원 해주는 기술. 1) 단독으로 실행할 수 있는 스프링 어플리케이션을 쉽게 생성 2) Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치 하지 않아도 된다 3) 손쉬운 빌드 구성을 위한 starter 종속성을 제공 한다 4) 스프링과 3rd party (외부) 라이브러리를 자동 구성 한다 5) 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능을 제공 한다 6) 관례에 의한 간결한 설정을 한다 2. 프레임워크란 ? == 골격 예시) 리모콘, 인형 개발자들끼리의 기준이며, 유지 보수 용이의 장점을 지니게 된다... 2023. 7. 31.
Spring 프레임워크 설치 및 기본 세팅 [순서] 1. Spring 플러그인 설치 2. 프로젝트 생성 (MVC 템플릿) 3. 프로젝트 설정 (Java, Tomcat) 4. 패키지, 폴더 정리 5. web.xml + pom.xml 설정 --------------------------------------------------------- [방법] 1. Help - Eclipse Marketplace 클릭. 2. spring 검색 - 첫번째 & 세번째 다운로드 Spring Tools 3 (Standalone Edition) 설치 먼저 하고 ! Spring Tools 3 Add-On for Spring Tools 설치 하기 ! Spring Tools 3 (Standalone Edition) 를 설치하면, 자동으로, Spring Tools 3 Add-.. 2023. 7. 31.