src/main/java : 자바코드(컨트롤러, 모델)
src/main/resources : 자바 코드에서 사용할 리소스(mapper, sql)
src/test/java : 테스트 코드
src/test/resources : 테스트 코드에서 사용할 리소스
JRE System Library : 자바 컴파일러
Maven Dependencies : 라이브러리 관리도구(maven에서 다운받은 jar파일)
src : web디렉토리
src/main/webapp/resources : js, css, image 등 관리
src/main/webapp/WEB-INF/classes : 컴파일된 클래스
src/main/webapp/WEB-INF/spring : 스프링 환경설정파일
(root-contect.xml,servlet-context.xml)
src/main/webapp/WEB-INF/views : html, jsp 파일
src/main/webapp/ : 외부접근가능
src/main/webapp/WEB-INF : 외부접근 불가, 컨트롤러 경유해서 접근 가능
<WEB-INF : 접근 금지 디렉토리 - 보안성을 이유로
외부에서 직접 접속을 할 수 없게 막았다.)
외부에서 직접 접속이 차단되어 있다. 그 이유는 컴파일된 클래스와 스프링 환경설정파일(DB연결정보)이 존재하기 때문이다.
JSP 또한 외부로 접속하여 수정되는 것을 방지하기 위한 보안 때문에 외부접근이 금지되어 있기 때문에
maven은 빌드와 관련된 정보를 프로젝트 객체모델(Project Object Model)이라는 이름으로 정의하고 사용하는데
pom이라는 이름으로된 pom.xml 파일을 사용한다.
*maven의 로컬저장소
C:\Users\사용자계정.m2\repository
pom.xml에서 dependency 태그를 추가하고 설정하고싶은 라이브러리를 추가하면 된다. 라이브러리는 maven repository에서 원하는 라이브러리를 검색하여 내용을 복사하여 추가해주면 maven이 알아서 jar파일을 로컬저장소에 다운받아준다.
📌 https://mvnrepository.com/
-> 여기서 기존의 웹프로젝트의 경우 프로젝트에 필요한 모든 라이브러리 파일을 직접 다운받아 적용시켜야했던 반면,
denpendency태그를 적용시켜주면 알아서 다운받고 해당 프로젝트에 적용하여 스프링의 장점을 알 수 있다.