ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] 007. Spring MVC 관찰(3) : 직원 관리 프로그램
    SsY/Class 2023. 7. 12. 12:51
    728x90
    mvc04
    ■■■ Spring MVC 프로젝트 실습04 ■■■
    ○ Perspective
       : JavaEE
    
    ○ 다이나믹 웹 프로젝트 생성
       : mvc04
       (STS - 스프링 / 스프링 레거시 / 스프링 부트 / 스프링 MVC ...)
    
    ○ 기본 환경 구성 및 라이브러리 설정 
       : mvc00 으로부터 src, WebContent 디렉터리 복사 & 붙여넣기
         (→ 우리가 임의로 만들어둔 샘플)
         
    ○ 실습 성격
       : 직원 관리 프로그램 실습(Spring MVC 버전)
         JDBC 모듈 추가 활용
         SimpleDriverDataSource 객체 활용
    
    ○ 기능 구현
       - 직원 데이터 출력, 입력, 수정, 삭제 기능 구현
       - 지역 데이터 출력, 입력, 수정, 삭제 기능 구현
       - 부서 데이터 출력, 입력, 수정, 삭제 기능 구현
       - 직위 데이터 출력, 입력, 수정, 삭제 기능 구현
       - 로그인 / 로그아웃 기능 구현
         → 관리자 및 일반 직원 로그인 구분.
       ==> spring MVC, JSP/Servlet, Oracle, HTML/CSS/Javascript, AJAX
          , jQuery, EL, JSTL 표현 등 사용.
     
    ○ 사전 작업 → 테이블 및 시퀀스, 주요 쿼리문 구성
       - EMPLOYEE 직원
       - REGION 지역
       - DEPARTMENT 부서
       - POSITION 직위
       - 샘플 데이터 입력 및 쿼리문 구성
    
    ○ 물리적 파일 구성
       #00. mvc04_scott.sql                                  → 데이터베이스 관련 객체 구성 및 실습 데이터 준비
                                                             
       #01. Employee.java                                    → 직원 데이터 자료형 클래스(DTO 활용)
       #02. Department.java                                  → 부서 데이터 자료형 클래스(DTO 활용)
       #03. Region.java                                      → 지역 데이터 자료형 클래스(DTO 활용)
       #04. Position.java                                    → 직위 데이터 자료형 클래스(DTO 활용)
                                                             
       #05. IEmployeeDAO.java                                → 인터페이스
           └ 부서 리스트, 직위 리스트(사원 selected 로), 지역 리스트 얻어내기 → selectbox 처리 위해서
           └ 직위 선택에 따른 최소 기본급 표시 
       #06. IDepartmentDAO.java                              → 인터페이스
       #07. IRegionDAO.java                                  → 인터페이스
       #08. IPositionDAO.java                                → 인터페이스
    
       입력, 출력, 수정, 삭제 -> 각각 처리                                   
       -----------------------------------------------------------------------------------------
       #09. EmployeeDAO.java                                → 데이터베이스 액션 처리 클래스
                                                               직원 데이터 입출력 및 수정 삭제 액션 
                                                              (Connection 객체에 대한 의존성 주입)
                                                              (의존성 주입을 위한 준비 → 인터페이스... setter...)
       #10. DepartmentDAO.java                              → 데이터베이스 액션 처리 클래스
                                                               부서 데이터 입출력 및 수정 삭제 액션
                                                              (Connection 객체에 대한 의존성 주입)
                                                              (의존성 주입을 위한 준비 → 인터페이스... setter...)
       #11. RegionDAO.java                                  → 데이터베이스 액션 처리 클래스
                                                               지역 데이터 입출력 및 수정 삭제 액션
                                                              (Connection 객체에 대한 의존성 주입)
                                                              (의존성 주입을 위한 준비 → 인터페이스... setter...)
       #12. PositionDAO.java                                → 데이터베이스 액션 처리 클래스
                                                               직위 데이터 입출력 및 수정 삭제 액션
                                                              (Connection 객체에 대한 의존성 주입)
                                                              (의존성 주입을 위한 준비 → 인터페이스... setter...)
       -----------------------------------------------------------------------------------------
       (단, Final 에서는 통합처리 하지 않고 별개로 컨트롤러와 뷰페이지를 갖게 한다.)
    
       #13. EmployeeMenu.jsp                               → 메인 메뉴 뷰 페이지
                                                              로그아웃 처리 기능
       #14. menuStyle.css                                  → 메뉴 스타일 구성
                                                            
       #15. EmployeeList.jsp                               → 직원 리스트 출력 페이지
       #16. main.css                                       → 메인 스타일 구성
       
       #17. EmployeeListController.java
            (employeelist.action)
         
       #18. web.xml                                       → DispatcherServlet 객체 등록 (Front Controller)
                                                             URL 매핑 주소 등록
                                                          
       #19. dispatcher-servlet.xml                        → 컨트롤러 객체 등록
                                                            URL 매핑 주소 등록
                                                            SimpleDriverDataSource 객체 등록
                                                            의존 객체 주입 설정
                                                            DAO 객체 등록
    
       #20. EmployeeInsertFormController.java
            (employeeinsertform.action)
    
       #21. EmployeeInsertForm.jsp                       → 직원 데이터 입력 폼 페이지
                                                         
       #22. AjaxController.java                          → 최소 기본급 Ajax 처리 기능
                                                         
       #23. Ajax.jsp                                     → 사용자를 만나지 않는 Ajax 처리 결과를 받는 jsp
    
       #24. jquery-ui.js / jquery-ui.css / images        → jquery-ui 삽입 (캘린더 사용)
       
       #25. EmployeeInsertController.java                → 직원 데이터 입력 처리 액션 수행하는 컨트롤러
            (employeeinsert.action)
    
       #26. EmployeeUpdateFormController.java            → 직원데이터 수정 폼 요청에 대한 액션 처리 컨트롤러
            (employeeupdateform.action)
       
       #27. EmployeeUpdateForm.jsp                       → 직원 데이터 수정 폼 페이지
                                                        
       #28. EmployeeUpdateController                     → 직원데이터 수정 요청에 대한 액션 수행
            (employeeupdate.action)                     
                                                        
       #29. EmployeeDeleteController                     → 직원데이터 삭제 요청에 대한 액션 수행
            (employeedelete.action)
       
       #30. LoginForm.jsp                                → 관리자, 일반사원 로그인 폼 페이지
                                         
       #31. LoginFormController.java                     → 관리자, 일반사원 로그인 폼 페이지
            (loginform.action)
       
       #32. LoginController.java                         → 로그인 액션 처리 전용 객체
            (login.action)
            
       #33. EmpList.jsp                                  → 직원 리스트 출력 페이지
       
       #34. EmpListController.java                       → 직원 리스트 폼 요청에 대한 액션 처리 컨트롤러
            (emplist.action)
       
       #35. LogoutController.java                        → 로그아웃 액션 처리 전용 객체
            (logout.action)
       ===================================================================================================
       직원과 마찬가지로 지역, 부서, 직위 관리 하는 파트 직접 구성해보기 - 세션 처리도 필수
       //-- 입력 / 수정 / 삭제 
       //-- 직위관리의 경우는 '최소기본급' 수정 도 가능할 수 있도록 구성
       
       //-- 관리자 지역 관리
       #36. RegionList.jsp -> 지역 리스트 출력 페이지 - 입력 / 수정 / 삭제 연결
       #37. RegionListController.java -> 지역관리 클릭시 지역리스트 페이지로 넘겨주는 액션 처리 컨트롤러
       #38. RegionInsertFormController.java -> 지역리스트 추가 폼 요청 액션 처리 컨트롤러
            (regioninsertform.action)
       #39. RegionInsertForm.jsp -> 지역 리스트 추가 폼 페이지 *기존에 있는 지역인지 확인X*
       #40. RegionInsertController.java -> 지역 추가 요청에 대한 액션 처리 컨트롤러
            (regioninsert.action)
       #41. RegionUpdateForm.jsp -> 지역 이름 업데이트 폼 페이지
       #42. RegionUpdateFormController.java -> 지역 수정 폼 요청에 대한 액션 처리 컨트롤러
            (regionupdateForm.action)
       #43. RegionUpdateController.java -> 지역 수정 요청에 대한 액션 처리 컨트롤러
            (regionupdate.action)
       #44. RegionDeleteController.java -> 지역 삭제 요청에 대한 액션 처리 컨트롤러
            (regionupdate.action)
       //-- 일반사원 지역정보
       #45. RegList.jsp -> 지역 정보 출력 페이지
            (reglist.action)
       #46. RegListController.java -> 지역정보 클릭시 지역정보 출력 페이지로 넘겨주는 액션 처리 컨트롤러
       
       //-- 관리자 부서 관리
       #47. DepartmentList.jsp -> 부서 리스트 출력 페이지 - 입력/수정/삭제 연결
       #48. DepartmentListController.java -> 부서관리 클릭시 부서리스트 페이지로 넘겨주는 액션 처리 컨트롤러
            (departmentlist.action)
       #49. DepartmentInsertForm.jsp -> 부서 추가 입력 폼 페이지
       #50. DepartmentInsertFormController.java -> 부서 추가 입력 폼 요청에 대한 액션 처리 컨트롤러
            (departmentinsertform.action)
       #51. DepartmentInsertController.java -> 부서 추가 요청에 대한 액션 처리 컨트롤러
            (departmentinsert.action)
       #52. DepartmentUpdateForm.jsp -> 부서 수정 폼 페이지
       #53. DepartmentUpdateFormController.java -> 부서 수정 폼 요청에 대한 액션 처리 컨트롤러
            (departmentupdateform.action)
       #54. DepartmentUpdateController.java -> 부서 수정 요청에 대한 액션 처리 컨트롤러
            (departmentupdate.action)
       #55. DepartmentDeleteController.java -> 부서 수정 요청에 대한 액션 처리 컨트롤러
            (departmentdelete.action)
            
       //-- 일반 부서 정보
       #56. DeptList.jsp -> 부서 리스트 출력 페이지
       #57. DeptListController.java -> 부서정보 클릭시 부서리스트 페이지로 넘겨주는 액션 처리 컨트롤러
            (deptlist.action)
            
       //-- 관리자 직위 관리
       #58. PositionList.jsp
       #59. PositionListController.java
            (positionlist.action)
       #60. PositionInsertForm.jsp
       #61. PositionInsertFormController.java
            (positioninsertform.action)
       #62. PositionInsertController.java
            (positioninsert.action)
       #63. PositionUpdateForm.jsp
       #64. PositionUpdateFormController.java
            (positionupdateform.action)
       #65. PositionUpdateController.java
            (positionupdate.action)
       #66. PositionDeleteController.java
            (positiondelete.action)
       
       //-- 일반 직위 정보
       #67. PosList.jsp
       #68. PosListController.java
            (poslist.action)
            
    ○ 사용자 최초 요청 주소 
    http://localhost:3306/mvc04/employeelist.action   → 관리자 요청 시
    http://localhost:3306/mvc04/emplist.action        → 일반사원 요청 시
    
    ※ 추후 우리는 실무 프로젝트를 수행하는 과정에서 
       컨트롤러를 액션 단위가 아닌 업무 단위로 묶어서 작업 및 처리하게 될 것이다.
       이후, 어노테이션을 활용하여 컨트롤러를 지정해서 처리하는 방법도 사용하게 될 것이다.
       하지만, 이번 실습 과정에서 기본 액션 단위의 컨트롤러 구성을 수행함으로써
       Model - View - Controller 의 기능 및 처리 흐름에 대해 제대로 파악할 수 있도록 한다.

    web.xml 필터 적용



    mvc04.war
    5.81MB


     

     

    728x90
Designed by planet-si