티스토리 뷰
지금까지 실습한 결과 html 파일은 불러오지만, 그 외 js, css 등의 stylesheet 파일은 제대로 호출해오지 못했다.
이것을 알기 위해선 우선 html 파일을 볼 필요가 있다.
스승님께서 구현하신 index.html 파일에 들어가면 상단 Head에 css 외에 js 등 웹 페이지를 꾸미는데 필요한 파일 경로가 있다.
클라이언트가 /index.html을 호출하면 html 파일에 지정된 파일들의 개수만큼 n번의 쓰레드가 생성된다.
즉 index.html을 호출하는 요청 외에도 index.html을 이루는 파일 n개의 요청이 생성된다는 것이다.
그럼 도대체 왜 지금까지 아래 이미지와 같이 웹 페이지를 봤던 걸까?
그 이유는 바로 Header값에 있는 Content-Type으로 인한 것이다.
코드의 "Content-Type"은 test/html로 지정이 되어있는데 stylesheet 파일은 다른 형태로 지정해줘야 하는데
자세한 내용은 아래 블로그에 들어가면 볼 수 있다.
https://juyoung-1008.tistory.com/4
이제 styleshees를 적용하기 위해 코드를 작성할 것인데, 먼저 response200Header Method에 parameter를 추가했다.
TypeUtil Class로 생성하고, 원하는 stylesheet에 해당하는 파일 형태를 관리할 수 있도록 한 뒤
SplitUtil Class에 stylesheetSplit Method를 생성해 . 기준으로 잘라냈다.
Test code를 작성 후 돌려보니 잘 통과되길래 로컬 서버에 테스트한 결과
특정 파일 일부가 호출이 안 된 것 같은 형태를 볼 수 있었다.
logger를 이용해 stylesheet를 확인해보니 js같은 일부 파일을 불러들이지 못하는 것이 확인되어 코드를 수정하였다.
아래의 사진처럼 /js/scripts.js 형태를 피하고자 split 조건을 추가했다.
/도 추가하여 잘라냈고, 맨 마지막의 표기된 파일 정보만 가져오도록 배열의 맨 마지막 값을 return하도록 하였다.
RequestHandler Class에서 200Header로 split된 값을 보내고 테스트한 결과
아래 이미지처럼 제대로 나온 것을 확인할 수 있었다.
이것으로 Request Handler 구현은 끝났고, 남은 것은 Refactoring만 남았다.
- 회고 -
구현하고 복습한 뒤 블로그 올리는 것까지 약 한 달이 걸렸다.
실제 구현 시간보다 블로그에 글 쓰는데 더 오래 걸렸는데 정리라는 것이 참 어려운 일이었다는걸 오랜만에 느낄 수 있었다.
그래도 확실히 이렇게 복습하고 정리하니 머릿속에 남은 것이 많았고,
이 미션을 하면서 복습 전에 있었던 cookie 초기화가 안 되는 것으로 인해 쓰레드 세이프에 대한 것도 접할 수 있었는데
구현할 때 설계뿐만 아니라 성능적인 부분에서 잘못되면 어떤 일이 생기는지 조금이나마 느낄 수 있는 미션이었던 것 같다.
'읽고 쓰고 씹고 즐기고 > Java' 카테고리의 다른 글
ClassLoader의 특징과 종류 (1) | 2020.04.13 |
---|---|
ClassLoader 구조 (0) | 2020.04.10 |
Request Handler - Login 여부를 cookie를 통해 확인하기. (0) | 2020.04.06 |
Request Hander - 302 Found 적용하기 (0) | 2020.04.03 |
Request handler - 302Found (0) | 2020.04.03 |
- Total
- Today
- Yesterday
- RequestHandler
- homebrew
- 일지
- springboot
- spring-boot
- 개발일지
- header
- web
- 한 입 크기로 잘라먹는 리액트
- JAR
- graphQL
- 모듈
- HTTP
- JavaScript
- @Autowired
- 개발
- Request Handler
- 자바스크립트
- 프로그래머스
- Spring Boot
- 회고
- mapping
- body
- Java
- 멀티모듈
- 스터디 회고
- 인텔리J
- Gradle
- Spring
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |