자바 스프링의 환경설정 계속 공부

 

view폴더 아래에 있는 home.jsp를 tomcat이 home.java로 바꾸고 home.class로 바뀌어 객체 실행을 하게 된다.

 

<!--  --> → HTML에 쓰이는 주석

: 응답 내용에는 나오지만 브라우저에는 나오지 않는다. (클라이언트 측 주석)

 

<%--  --%> → JSP만 쓸 수 있는 주석

: 대부분 이 뒤에 자바 코드가 들어간다.

응답 내용에도 나오지 않고, 브라우저에도 나오지 않는다. (서버 측 주석)

 

※ 우리가 include하여 가져왔던 코드를 떠올려보자.

ex) <!-- <%@include file="/WEB-INF/views/common/header.jsp"%> -->

이렇게 주석을 넣어주면 응답을 해주게 된다.

ex) <%-- <%@include file="/WEB-INF/views/common/header.jsp"%> --%>

이렇게 주석을 넣어주면 응답 내용에도 나오지 않는다.

 

● include를 사용할 때

1) <%@include file="/WEB-INF/views/common/menu.jsp"%>
2) <jsp:include page="/WEB-INF/views/common/menu.jsp"></jsp:include>
위의 코드들은 같은 기능을 하고 화면을 출력하게 된다.

- 차이점은?
1번은 include 지시자
2번은 include 액션
개발자 선호도 차이로 씀. --> 생각해보자

 

● JSP파일의 맨 윗줄 page 부분 해석.

<%-- page 지시자: page 서버(was)에서 JSP를 해석하는 방법을 기술 --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

language="java" → 생략 가능
contentType="text/html; charset=UTF-8" → 실행 후 결과에 대한 문자셋
pageEncoding="UTF-8" → 파일에 저장할 때 문자셋
contentType charset과 pageEncoding의 문자셋 형식은 같아야 한다.
따라서 pageEncoding부분도 생략 가능

<%@ contentType="text/html; charset=UTF-8" %>

이렇게만 써주어도 같은 기능을 한다는 것.

 

 

★ Context Root (Path) 변경

 

▶  홈페이지의 주소는 ArtifactId 아이디를 따라간다.

현재 파일 구조와 형태로 서버를 구동하게 되면 .metadata에 저장되어 사용하게 된다.

★ 이 때 아티팩트아이디를 변경하고 싶다면? (홈페이지의 주소)
1) pom.xml에서 아티팩트 아이디를 바꿔준다.
2) 해당 프로젝트를 maven update 해준다.
3) 서버를 지우고 다시 깔아준다.
4) 실행하면 바뀌어 있다.
cf) pom.xml은 Maven 설정 파일

 

※ 경우에 따라서 ArtifactId를 바꿀 수도 있다.

이런 경우에 아티팩트 아이디의 경로를 사용하는 모든 소스를 수정해야할 수도 있는 것이다.

 

○ JSP파일 내에서 이미지를 참조할 때 경로를 설정해주는데,

src="/ContextName/resources/image/logo-spring.png"

Context Name(아티펙트 아이디)을 자동으로 찾아주려면? 

src="${pageContext.request.contextPath}/resources/image/logo-spring.png"

${ } 를 사용하여 경로를 자동으로 잡아줄 수 있다. (아티펙트 아이디가 바뀌어도 경로를 찾아줌)

 

 

○ 컴파일 과정 : 소스코드를 기계어로 바꾸는 과정을 의미함

○ 빌드 과정 : 최종 실행 가능한 산출물을 만드는 과정 (ppt 4페이지의 비드 구성을 예로 보자)

○ groupid : 회사의 주소 ex) com.mycompany → 거꾸로 나열

○ packaging - war : 최종 산출물은 war가 될 것이라는 뜻. (war로 만든 다음 배포한다고 배웠었다)

우리가 프로젝트 Run As로 들어갔을 때 Maven Install이라는 옵션이 있다. 이 의미는 최종 산출물로 만들겠다는 의미이다. 이 최종 산출물은 target 폴더에 저장된다.
이 파일을 운영 서버에 올려 구동하면 배포가 완료되는 것이다.

 

위의 그림에서 프로젝트 기본 정보 / 빌드 설정 은 알고 있자.

우리는 POM.xml파일에 라이브러리들을 Maven하여 추가했었다.

Effective POM은 실제의 POM 코드라고 보면된다.

dependencies 내의 라이브러리들 추가
dependency 하나씩
이런 라이브러리들이 실제로 다운 받아지는 곳
윈도우의 경우
사용자 - 해당 계정 - .m2 - repository폴더에 다운받아진다.

Maven Install하여 생성된 타겟폴더 안의 war파일 안에서도 확인해볼 수 있다

 

 

→ 간략하게 이해하자.

사용자 폴더 내에서 .m2폴더 - repository폴더 내의 라이브러리들 (jar파일 등) 직접 눈으로 확인해봄.

 

 

 

# Spring Framework의 버전을 어떻게 선택할 것인가?
자바 1.8의 마지막 지원 버전 5.3.33 → 이처럼 자바 JDK의 버전에 따라 선택하여 사용해야한다.

또한 Spring Framework의 모듈(라이브러리, jar)도 해당 Spring Framework 버전과 호환되는 버전을 선택해야 한다.

 

## 이러한 버전들을 어디에서 알아볼 수 있을까?
(Spring Framework Documentation)
https://spring.io/projects/spring-framework#learn
https://docs.spring.io/spring-framework/docs/5.3.33/reference/html/web.html#spring-web
https://docs.spring.io/spring-framework/docs/5.3.33/javadoc-api/

 


※ 정리

스프링의 환경설정은 이것으로 마쳤다.. (ppt 1장)

지금도 너무 어렵게 느껴지지만 차근차근 다시 들여다 볼 생각이고, 앞으로 할 프로젝트를 진행하며 반복 숙달 될거라 생각한다.

 

ppt 2장 부터는 Spring과 SpringBoot와 같은 내용이라 한다.

SpringBoot는 Spring을 기반으로 하기 때문.

SpringBoot는 1장에서 학습했었던 Spring의 환경설정들을 내부적으로 다 연결시켜준다.

 

다음 수업에는 Controller / RequestMapping 부터 시작.

'JAVA' 카테고리의 다른 글

33일차 2024 - 4 - 12  (0) 2024.04.12
32일차 2024 - 4 - 11  (0) 2024.04.11
30일차 2024 - 4 - 8  (0) 2024.04.08
29일차 2024 - 4 - 5 (Git과 GitHub)  (0) 2024.04.05
28일차 2024 - 4 - 4  (0) 2024.04.04

+ Recent posts