본문 바로가기
국비학원

[국비지원] KH 정보교육원 92-94일차

by 도전하는 개발자 2022. 8. 11.

 해당 기간 동안은 Spring을 배우기 이전에 MyBatis에 이어서 Quartz의 개념을 배우고 스프링을 설치하는 과정을 거쳤다. 이제는 국비 과정도 종반을 향해 가는 느낌이다. 인강을 추가적으로 수강하며 이해도를 높이고 경쟁력을 끌어 올려야겠다.

 

---

 

* Quartz Job Scheduler 구현에 알고 있어야 할 용어 및 개념 *

1. Job : 수행시켜야 할 일 (Task)

2. JobDetail  : Job에 대한 상세정보
 - Identity : Job Name, Job Group
 - Job에 전달할 데이터 설정

3. Trigger : JobDetail 스케쥴링 정보 (언제, 어떻게)
 - Identity : Name, Group설정
 - JobDetail을 언제 시작시킬 것인가?
 - 실행주기 ( 반복적 or 1회성 ) 설정

4. Scheduler
 - Scheduling된 Job을 실제 수행시키는 서버 프로그램
 - Trigger(스케쥴링)을 등록하고
 - JobDeatil(실제 수행시킬 Job)을 등록하고
 - Trigger대로 JobDetail을 수행시킬 책임

5. Listener (3가지 종류)
 - Scheduler 자체의 Event Listening
 - Job Event Listening
 - Trigger Event Listenning

 

---


* How to install Spring MVC plugin on the Eclipse Enterprise 2022-06

Step 1. Install Lombok Agent using "https://projectlombok.org/p2"
Step 2. Setting Global Preferences : Windows > Preferences

2022년 스프링 설치 사이트에서 드래그로 안 될때!
Step 3. Install `Atlassian Connector` plugin using "http://update.atlassian.com/atlassian-eclipse-plugin/rest/e3.7"
           -> 롬복처럼 하면 된다. trust 설정 뜨면 unsigned까지 다 신뢰한다고 체크한다
           -> 설치 후 restart시 오류창나도 괜찮다, restart후 다시 atlassian 지워준다 (헬프탭에서 진입)

          - Again remove `Atlassian Connector` plugin (***)
            + Mylyn Task List (3.25.2.v20200814-0512)
              + Mylyn Commons                       - 3.25.2.v20200813-0821
              + Mylyn Commons Connector: Discovery  - 3.25.2.v20200813-0821
              + Mylyn Commons Connector: Monitor    - 3.25.2.v20200813-0821
              + Mylyn Commons Identity              - 1.17.2.v20200813-0821
              + Mylyn Commons Notifications         - 1.17.2.v20200813-0821
              + Mylyn Commons Respositories         - 1.17.2.v20200813-0821

Step 4. Install Spring Tool 3 Standalone Plugin
        After that, search spring in the eclipse market client (**)

Step 5. Eclipse Marketplace client => Update Spring Tool 3 Add On Update 


---


* Spring MVC Project 생성 및 설정 순서 *

1. New Project > Spring > Spring Legacy Project 선택
   - Template : Spring MVC Project 선택
   - Project 이름 입력
   - Top-level package 입력 : org.zerock.myapp (배우시는 동안은 이것으로 통일합니다.)
   - 새로운 Maven 기반의 Spring MVC Project 생성됨

2. Spring MVC Project 생성 후, 설정 순서
   (1) Maven Pom.xml 파일 편집
      - 특히, 스프링 기반 개발을 위해 추가된 아래 2개의 dependencies에 대해 숙지할것
         1. AspectJ : 클래스파일의 바이트 코드 조작 언어
         2. Spring  : 스프링MVC 개발을 위한 최소한의 2개 sub framework 의존성 설정:
                  spring-context, spring-webmvc
   (2) Update Maven Project 수행
   (3) Maven 의 기본 4개(2개는 main, 2개는 test) 소스폴더 구성확인
   (4) lombok의 @Log4j2 가 사용하는 log4j2 로그 라이브러리의 설정파일 생성(log4j2.xml)
      - src/main/resources/ 폴더에만 저장
      - src/test/resources/ 폴더에는 저장안함(main쪽 로그설정파일이 대신 적용됨)
   (5) src/main/webapp/WEB-INF/web.xml 설정파일 설정
      - 특히 기본 2.5 버전의 top-level tag를, version 4.0 이상으로 변경해줘야 함 아래 태그로 변경

 <web-app 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 
  id="WebApp_ID" 
  version="4.0">

   (6) src/main/webapp/WEB-INF/spring/root-context.xml
       src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 

       위 2개 파일이 스프링의 설정파일임 (당장 설정할 것은 없음)

3. 위 2까지 마친후에, 마지막으로, Update Maven Project 수행(with force option)
   - 오류(x배지)가 모두 사라졌는지 확인할 것!

4. 프로젝트 설정: Servlet/JSP할 때 배운것처럼, Apache Tomcat9 에 배포될 수 있게 설정할 것!   

5. 마지막 확인으로, 이 프로젝트를 Run As > Run On Server 수행하여,
   Hello World 가 웹브라우저에 나타나는지 확인

---

톰캣 서버 만드는법
localhost - pc이름으로 변경
디렉토리 - c\app\scoop\apps\tomcat9\current
jre - temurin 11

아래 두개 체크후 세이브 기회는 한번 뿐!!!!
use tomcat installation
publish module context 

---

설정파일들

1) log4j2.xml
 - 이 로그 설정 파일에서 핵심은 개발자가 로그를 보고 싶은 라이브러리의 패키지를 지정해 새로운 logger를 등록하는 것
ex) <Logger name="org.springframework" level="info" />
     스프링 프레임워크에서 남기는 info 레벨의 로그를 보자!

2) web.xml (Servlet, listener)
 - Spring Container를 생성하는 Listener가 자동등록 (설정파일 : root-context.xml 사용됨)
 - Front Controller 패턴으로 구현된 DispatcherServlet 등록되어있음 (설정파일 : servlet-context.xml)

3) pom.xml (주로 dependency)
 - 핵심 : 스프링 등을 비롯한 반드시 필요한 라이브러리에 대한 의존성 설정 (dependency)
 - 스프링 기반으로 웹 어플리케이션 생성시 반드시 필요한 2가지 라이브러리
  1) spring-context (Spring Container 생성에 필요)
  2) spring-webmvc (Spring MVC 패턴을 강제하는데 필요)

4) 스프링 MVC의 설정파일 -> web.xml에 이미 등록
 - 가. Spring Container 생성 역할하는 ContextLoaderListener의 설정파일 -> root-context.xml
 - 나. Spring MVC를 강제하고 Front Controller 역할을 수행하는 DispatcherServlet의 설정파일 ->  servlet-context.xml

6) mybatis-config.xml (MyBatis)


* WAR vs JAR
WAR : Web Archieve -> xxx.war
JAR : Java Archieve -> xxx.jar