[Springboot] 2 static 폴더

뷰(view) 영역
김호정's avatar
Aug 14, 2024
[Springboot] 2 static 폴더
 
 
view 폴더 압축해제하고 나온 파일들을 static 폴더에 넣어준다.
 
notion image
notion image
notion image
notion image
notion image
 
notion image
 
 
static 폴더에 넣으면 파일 이름만 입력해서 바로 찾을 수 있다.
→ static 폴더에 넣은건 url에 검색해서 바로 찾을 수 있다.
 
notion image
 
선생님 IP 주소 + 포트번호 + static 폴더에 있는 파일 이름
이렇게 입력하면 바로 파일을 볼 수 있다!
 
http에서 데이터를 전송하는거 = 패킷을 전송하는 것
hello를 보낸다 치면,
h에 IP주소, 번호를 부여해서 패킷을 만들어서 보낸다.
 
:8080 → 애플리케이션 번호. 목적지인 애플리케이션 을 찾아갈때 사용-
 
웹서버.
애플리케이션 서버.
따로 있다.
 
====
컴 192.168.0.99
아파치 톰캣(내장) - 포트번호 8080
여기서 아파치는 웹서버. → 브러우저가 이해할 수 있는 확장자들만 모아둔 폴더
브라우저는 단순히 해석기 → 그중에 대표적인게 .html
브라우저는 html 글자를 해석함
 
192.168.0.99:8080/
→ /라고 적으면 static 폴더에서 찾게 설정되어있음(스프링부트가 다 해줌)
 
static 폴더 안에는 브라우저가 이해할 수 있는 파일만 들어있어야한다.
.css .js .html .avi 등등은 이해할 수 있음
→ 정적 파일은 다 열린다.
 
.java는 브라우저가 이해할 수 없다.
→ JRE, JDK가 있어야 자바를 이해할 수 있다.
→ 그래서 src에 자바파일 만듦
 
식별자 요청
identifier
 
192.168.0.99/hello
여기서 hello가 식별자.
→ 식별자가 들어오면 아파치는 이건 내가 읽을 수 없어! 하면서 톰캣한테 위임한다.
→ 아파치가 읽을 수 없는 자바 파일이나 식별자가 들어오면 톰캣에게 위임!
 
톰캣(was)은
/hello
로 매핑되어 있는 자바 파일을 찾는다. (보통 서블릿 타입)
그리고 자바파일을 컴파일하고 실행하고 응답한다. (← 이건 아파치는 못함)
 
아파치 → 웹 애플리케이션 서버
localhost:8080/list.html → 이건 아파치만 동작한 것!!!
 
템플릿 파일 → 대표적으로 jsp → 템플릿 엔진
추상 클래스처럼 내용을 db에서 가져와서 바꿀 수 있음
우리는 템플릿 엔진으로 Mustache 사용할 예정
 
 
q ) 템플릿 엔진이 뭐에요?
a ) jsp 요…. 정적인 틀 만들어주고 동적인 부부만 자바코드로 실행하는 것!
html, css 코드가 정적인 부분, 특정 부분만 자바코드로 실행하면 동적으로 바뀜
 
 
브라우저가 /hello 를 요청하면 아파치가 난 못해 톰켓한테 넘긴다.
톰캣은 자바파일 해석해서 브라우저 한테 돌려준다.
해석 다 해서 순수하게 html 코드로 만들어서 돌려준다.
→ 서버 측에서 렌더링 되어서 → 서버 사이드 렌더링(SSR) 이라고 함
 
static에는 정적인것,
templates 에는 동적인게 들어간다.
 
 
 
notion image
 
static 에 있는거 복사해서 templates 로 붙여넣는다.
확장자를 mustache로 바꿔준다.
 
→ 외부에서 찾을 수 있는 폴더가 아니기 때문에 이대로 8080/detail.mustache 하면 안뜬다.
→ 식별자 요청을 해야한다!
 
notion image
Settings → Plugins → Handlebars/Mustache 설치
 
notion image
shop.mtcoding.blog 아래에 board 패키지를 만들고 그 안에 BoardController를 만들어준다.
 
notion image
 
templates 폴더 안에 board 폴더를 만들어주고 거기에 mustache 확장자의 파일들을 옮겨준다.
templates에 new file로 .keep 파일을 생성한 뒤에
board 폴더를 만들고, 파일들을 옮기면
templates.board 이런식으로 안바뀐다.
 
 
BoardController 안에 이렇게 식별자 요청을 위한 코드를 작성해준다.
@Controller를 붙여야지 식별자 요청을 받을 수 있다.
notion image
 
 
주소에서는
1) 언더스코어를 쓰지 않는다 _ X
2) 카멜표기법을 쓰지 않는다 saveForm X
3) 하이픈을 쓴다 -
 
이유는 없다. 그냥 컨벤션 (개발자들의 약속)
 
 
상수는 값이 한번 들어가면 수정불가능 readonly상태가 된다.
상수는 대문자로 적어야한다. (→ 이것도 Convention이다)
→ NUM이라고 적어야지, num 이라고 적으면 안된다.
 
자바클래스명 만들ㄸㅐ는 파스칼 규칙을 지킨다?
 
파스칼 표기법이란?
notion image
첫글자는 대문자 + 카멜 ⇒ 파스칼 표기법임
 
추가)
언더스코어 표기법, 헝가리언 표기법 이라는 것도 있다고 한다.
notion image
notion image
 
notion image
 
>> Settings의 Actions on Save에서 이렇게 2개 체크해두면 자동정렬된다.
>> 자동정렬 단축키 : Ctrl + Alt + L
 
URL 규칙을 지켜서 작성한 코드
 
notion image
 
💡
TIP) 한글깨지면 application.properties 파일에 이 2가지 설정해주면
페이지의 한글이 안깨지고 잘 나온다.
 
notion image
notion image
>> 서버 인코딩 어쩌고 설정하기 전에는 글 수정하기 화면입니다 이렇게 안나왔는데, 잘 나온다.
>> 무조건 UTF-8 로 설정해주기
 
Share article

keepgoing