Skip to content

2022 01 09

Crow edited this page Jan 9, 2022 · 17 revisions

08일 커밋 누락

어제 배가 아파서 커밋 누락함 9일 오후 6시 21분 실행
그리고 다음주 중으로 파일 충돌 테스트도 해봐야할꺼 같음
깃허브는 협업을 위해서 만든건대 나중에 협업시 문제가 생겼을때 원활한 해결을 위해서

실습외 내용 정리

빌드시 자동으로 git or github에 업데이트를 쳐주는게 좋음 jenkins사용해보기
ec2상의 톰캣을 사용하려고 했지만 알아보니 파일을 수정할때마다 계속 올려줘야 해서 비효율적임
db와는 다르게 일단 로컬 서버를 사용하고 배포만 ec2상에 사용하는게 좋겠음

스프링 MVC의 기본구조

스프링 MVC를 학습하는데 가장 먼저 기억해야할 점은 스프링 MVC가 스프링의 서브 프로젝트라는 점임
https://spring.io/project를 보면 Spring Framework라는 메인 프로젝트 외에도
여러 종류의 서브 프로젝트가 존재하는데, 스프링 MVC역시 이러한 프로젝트 중 하나임

스프링은 하나의 기능을 위해서 만들어진 프레임워크가 아니라 코어라고 할수있는
프레임워크에 여러 서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발됨.

서브 프로젝트라는 의미를 가장 쉽게 이해할 수 있는 방법은 별도의 설정이 존재할 수 있다는 개념임.
Spring Legacy Project로 생성한 예저의 경우에도 servlet-context.xmlroot-context.xml로 설정 파일이 분리된 것을 볼 수 있습니다.

스프링 MVC가 서브 프로젝트이므로 구성 방식이나 설정 역시 조금 다르다고 볼 수 있음
Spring MVC 설정을 servlet-context.xml or ServletConfig.class
Spring Core and MyBatis 설정을 root-context.xml or RootConfig.Class에 함

스프링 MVC 프로젝트의 내부 구조

스프링 MVC 프로젝트를 구성해서 사용한다는 의미는 내부적으로는 root-context.xml로 사용하는 일반
Java 영역(흔히 POJO(Plain Old Java Object))과 servlet-context.xml로 설정하는 Web 관련 영역을
같이 연동해서 구동함.

WebApplicationContext라는 존재는 기존의 구조에 MVC설정을 포함하는 구조로 만들어짐

스프링은 원래 목적 자체가 웹 애플리케이션을 목적으로 나온 프레임워크가 아니기 때문에
달라지는 영역에 대해서는 완전히 분리하고 연동하는 방식으로 구현됨

IDE내 Spring Legacy Project를 이용해서 ex01을 생성 프로젝트는 Spring MVC Project로 생성함
패키지명은 기존과 동일하게 com.crow.controller지정

생성된 프로젝트는 스프링 3버전이므로 pom.xml에 5.0.7버전으로 변경함
이때 자바 버전 역시 1.8로 변경함
maven의 컴파일 옵션은 1.8버전으로 변경
ex00처럼 lombok기능을 이용하기 위해서 1.18버전의 lombok도 추가해줌
javax.servlet버전도 3.1.0으로 변경
위의 변경점을 추가후 저장한뒤 Maven 메뉴에서 update project를 해줘서 문제가 없는지 확인

tomcat 9버전을 사용해서 http://localhost:8080/controller 경로에 home.html페이지가 뜨는지 확인
또한 웹 프로젝트는 가능하면 절대 경로를 이용하는 구조를 사용하는 것이 바람직함.
Tomcat의 'Modules'메뉴를 이용해서 '/'경로로 프로젝트가 실행될 수 있도록 처리
혹은 해당 Properties의 Web Project Settings 속성을 '/'로 지정

프로젝트의 경로(Context Path)를 수정한 뒤에는 '/'경로가 인식되는지 Tomcat을 재시작해서 확인해볼것.