
1\. eclipse 실행 → Help → Eclipse Marketplace 클릭2\. sts 검색 → Spring Tools 3 Add-On for Spring Tools 4 3.9.22.RELEASE 인스톨3\. 체크항목 확인 및 동의1\. Open Perspec
📃pom.xml >### 📃log4j.

※ src/main/java 폴더에 xyz.itwill00.log 패키지 생성 → HelloWorld 클래스 생성※ xyz.itwill00.log 패키지에 HelloWorld.java 클래스 생성※ xyz.itwill00.log 패키지에 HelloWorldApp.jav

> >

※ src/main/java 폴더에 xyz.itwill01.old 패키지 생성클래스 하나를 수정하면 다른 묶여있는 클래스도 수정해야함비효율적※ xyz.itwill01.old 패키지에 HelloMessageObject.java 클래스 생성※ xyz.itwill01.old

※ src/main/java 폴더에 xyz.itwill03.spring 패키지 생성※ xyz.itwill03.spring 패키지에 MessageObject.java 인터페이스 생성※ xyz.itwill03.spring 패키지에 HelloMessageObject.java

>

※ src/main/java 폴더에 xyz.itwill04.bean 패키지 생성※ xyz.itwill04.bean 패키지에 CreateBean.java 클래스 생성📢Spring Bean Configuration File을 여러개 작성하여 사용하는 이유→ 하나의 Spr

※ xyz.itwill04.bean 패키지에 InitDestroyMethodBean.java 클래스 생성📌init-method 속성 : 스프링 컨테이너에 의해 객체(Spring Bean)가 생성된 후 한번만 한번만 자동 호출되어 생성 객체의 초기화 작업을 실행하기 위

※ xyz.itwill04.bean 패키지에 AnnotationBean.java 클래스 생성※ xyz.itwill04.bean 패키지에 AnnotationBeanApp.java 클래스 생성📢component-scan : 스프링 어노테이션(Spring Annotatio

※ src/main/java 폴더에 xyz.itwill05.di 패키지 생성※ xyz.itwill05.di 패키지에 Student.java 클래스 생성※ xyz.itwill05.di 패키지에 StudentApp.java 클래스 생성📢Spring Bean으로 등록된 클
※ xyz.itwill05.di 패키지에 CollectionBean.java 클래스 생성※ xyz.itwill05.di 패키지에 CollectionBeanApp.java 클래스 생성※ src/main/resources 폴더에 05-1_di.xml 생성※ xyz.itwi
📢학생정보를 처리하는 DAO 클래스가 반드시 상속받아야 되는 인터페이스→ 객체간의 결합도를 낮추어 유지보수의 효율성 증가※ xyz.itwill05.di 패키지에 StudentDAO.java 인터페이스 생성📢DAO 클래스 : 저장매체(File, DBMS 등)에 대한
※ xyz.itwill05.di 패키지에 AutoWireApp.java 클래스 생성📌StudentService 인터페이스를 상속받은 자식클래스를 Spring Bean으로 등록→ StudentServiceImpl 클래스의 studentDAO 필드에 StudentDAO

※ xyz.itwill05.di 패키지에 AnnotationStudentJdbcDAO.java 클래스 생성※ xyz.itwill05.di 패키지에 AnnotationStudentServiceImpl.java 클래스 생성※ xyz.itwill05.di 패키지에 Annot

src/main/java 폴더에 xyz.itwill05.lobok 패키지 생성※ xyz.itwill05.lobok 패키지에 Member.java 클래스 생성※ xyz.itwill05.lobok 패키지에 MemberApp.java 클래스 생성※ src/main/resou

> >
중복된 코드가 많다→ 가독성, 유지보수의 효율성이 떨어진다중복된 코드가 많을시 클래스를 만들어서 메소드 호출(📃OopLogger.java)→ 추상화(캡슐화)의 개념을 위반※ src/main/java 폴더에 xyz.itwill06.oop 패키지 생성📢OOP 단점 :

※ AOP를 사용하기 위해서는 인터페이스가 있어야함※ xyz.itwill06.oop 패키지에 Aop.java 인터페이스 생성📢핵심관심모듈 : 핵심관심코드만 이용하여 메소드를 작성한 클래스※ xyz.itwill06.oop 패키지에 AopOne.java 클래스 생성※ x

src/main/java 폴더에 xyz.itwill07.aop 패키지 생성※ xyz.itwill07.aop 패키지에 Student.java 클래스 생성※ xyz.itwill07.aop 패키지에 StudentDAO.java 인터페이스 생성※ xyz.itwill07.aop

※ xyz.itwill07.aop 패키지에 ExecutionTimeBean.java 클래스 생성※ xyz.itwill07.aop 패키지에 ExecutionTimeApp.java 클래스 생성※ src/main/resources 폴더에 07-3_timer.xml 생성※ x

📢메일 전송 기능을 제공하는 클래스※ xyz.itwill07.aop 패키지에 EmailSendBean.java 클래스 생성

※ xyz.itwill07.aop 패키지에 AopAnnotationBean.java 클래스 생성※ xyz.itwill07.aop 패키지에 AopAnnotationApp.java 클래스 생성※ src/main/resources 폴더에 07-5_aopAnnotation.x
> 🐧SpringDAO 설정 >※ src/main/java 폴더에 xyz.itwill08.dao 패키지 생성 🌈메이븐 빌드 처리 >### 📃pom.xml 🌈클래스 생성 >### 📃DataSourceApp.java ※ xyz.itwill08.dao 패키지에

※ xyz.itwill08.dao 패키지에 Student.java 클래스 생성※ xyz.itwill08.dao 패키지에 Student.java 인터페이스 생성※ xyz.itwill08.dao 패키지에 StudentDAOImpleOne.java 클래스 생성

> >
※ src/main/java 폴더에 xyz.itwill09.mvc 패키지 생성※ xyz.itwill09.mvc 패키지에 DispatcherServlet.java 클래스 생성※ xyz.itwill09.mvc 패키지에 Member.java 클래스 생성※ xyz.itwill

> >

※ src/main/webapp/WEB-INF 폴더에 있는 web.xml 수정※ src/main/webapp/WEB-INF/spring 폴더에 springMvc 폴더 생성※ springMvc 폴더에 mvc-context1.xml 생성※ springMvc 폴더에 mvc-

※ src/main/java 폴더에 xyz.itwill10.controller 패키지 생성📢xyz.itwill10.controller 패키지에 요청 처리 클래스(Model)를 작성하고 스프링 어노테이션을 Spring Bean으로 등록📢servlet-context.x

※ xyz.itwill10.controller 패키지에 ResultController.java 클래스 생성※ WEB-INF/views 폴더에 result_display.jsp 생성

※ xyz.itwill10.controller 패키지에 ModelController.java 클래스 생성※ WEB-INF/views 폴더에 model_display.jsp 생성

※ xyz.itwill10.controller 패키지에 MethodController.java 클래스 생성※ WEB-INF/views 폴더에 method_input1.jsp 생성※ WEB-INF/views 폴더에 method_output1.jsp 생성※ WEB-INF/

※ xyz.itwill10.controller 패키지에 ParamController.java 클래스 생성※ WEB-INF/views 폴더에 param_form.jsp 생성※ WEB-INF/views 폴더에 param_display.jsp 생성※ WEB-INF 폴더에 w

※ xyz.itwill10.controller 패키지에 JoinController.java 클래스 생성※ WEB-INF/views 폴더에 join_form.jsp 생성※ WEB-INF/views 폴더에 join_display.jsp 생성src/main/java 폴더에

※ xyz.itwill10.controller 패키지에 RedirectController.java 클래스 생성※ WEB-INF/views 폴더에 display_forward.jsp 생성※ WEB-INF/views 폴더에 display_redirect.jsp 생성

※ xyz.itwill10.controller 패키지에 ResourceController.java 클래스 생성※ WEB-INF/views 폴더에 resource_display.jsp 생성※ src/main/webapp/WEB-INF/spring/appServlet 폴더

※ xyz.itwill10.controller 패키지에 TilesController.java 클래스 생성
💡@SessionAttributes : Model 객체를 사용하여 저장되는 속성값을 모든 요청 처리 클래스(Controller 클래스)의 모든 요청 처리 메소드와 뷰에게 제공하는 어노테이션 🌈VO 클래스 생성 >### 📃Hewon.java ※ xyz.itwill

기존의 Student 테이블 사용※ xyz.itwill10.dto 패키지에 Student.java 클래스 생성※ src/main/java 폴더에 xyz.itwill10.dao 패키지 생성※ xyz.itwill10.dao 패키지에 StudentDAO 인터페이스 생성※ x
📢회원정보를 저장하는 테이블※ xyz.itwill10.dto 패키지에 PointUser.java 클래스 생성※ xyz.itwill10.mapper 패키지에 PointUserMapper.xml 파일 생성※ xyz.itwill10.mapper 패키지에 PointUserM

📢기존의 USERINFO 테이블 사용※ xyz.itwill10.dto 패키지에 Userinfo.java 클래스 생성※ xyz.itwill10.mapper 패키지에 UserinfoMapper.xml 파일 생성※ xyz.itwill10.mapper 패키지에 Userinf
📢REST(Representational State Transfer) : 자원(Resource)의 표현(Representation)에 의한 상태(State)를 전달(Transfer)하는 것을 의미→ 페이지 요청에 대한 처리결과를 클라이언트에게 XML 이나 JSON 형

※ xyz.itwill10.dto 패키지에 RestBoard.java 클래스 생성※ xyz.itwill10.mapper 패키지에 RestBoardMapper.xml 파일 생성※ xyz.itwill10.mapper 패키지에 RestBoardMapper.java 인터페이스
※ xyz.itwill10.controller 패키지에 FileController.java 클래스 생성※ WEB-INF/views/rest 폴더에 upload_form.jsp 작성※ WEB-INF/views/rest 폴더에 upload_fail.jsp 작성※ WEB-I
※ xyz.itwill10.dto 패키지에 FileBoard.java 클래스 생성※ xyz.itwill10.mapper 패키지에 FileBoardMapper.xml 파일 생성※ xyz.itwill10.mapper 패키지에 FileBoardMapper.java 인터페이스