본문 바로가기

웹 개발

(97)
웹/Frontend) 브라우저 동작 방식 브라우저의 주요 기능 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시 자원은 주로 html 문서 또는 정적 파일 URI : Uniform Resource Identifier - 자원의 주소 브라우저의 기본 구조 사용자 인터페이스 : 주소 표시줄, 이전/다음 버튼 등 브라우저 상단의 툴바같은 부분 브라우저 엔진 : 사용자 인터페이스 - 렌더링 엔진 사이의 동작을 제어 렌더링 엔진 : 요청한 콘텐츠를 화면에 표시 ex) 파이어폭스 : Gecko / 사파리,크롬 : 웹킷 동작 과정 HTML 문서 파싱 콘텐츠 트리 내부에서 HTML 태그를 DOM 노드로 변환 외부 CSS 파일의 스타일 파싱 이 정보들로 랜더트리 생성 랜더트리 순서대로 화면에 표시 후 각 노드를 화면의 정확한 위치에 표시 UI 백엔드에서 ..
SpringBoot) 스프링부트에서 Resource를 읽는 방법 https://calgaryhomeless.tistory.com/27 (개념) Spring이 Resource를 가져오는 방법 웹 페이지를 만들다보면 Resource 를 사용할 일이 정말 많아진다. 여기서 주로 사용하는 Resource는 HTML, Javascript, Css, png 등이 있다. 이 Resource를 또 동적인 리소스 (dynamic resource)와 정적인 리소.. calgaryhomeless.tistory.com 핵심내용 컨트롤러에서 스프링부트 프로젝트의 resource 폴더 안의 정적 리소스 파일을 불러올때 다음과 같이 읽는다. 1. URLResource : URL을 기준으로 2. ClasspathResource : classpath를 기준으로 3. FileSystemResourc..
Spring Boot) 여러 포트 사용하기 (멀티 커넥트, 다중 포트) 8080에서도 접근 가능하고 https 적용했을때의 포트인 8443에서도 접근하고 싶다. 이때 멀티 커넥트를 해야 한다고 한다. package com.kpmg.lighthouse.tpplatform.tpplatform; import java.util.Collections; import org.apache.catalina.connector.Connector; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.servlet.server.Serv..
Spring Boot) pfx 인증서로 https 적용하기 처음에 cer 파일을 줘서 삽질 엄청하다가 pfx받아서 바로 해결! 내가 pfx로 변경하면 좋을텐데 회사에서 pfx를 받기 위한 절차가 너무 많았다. 삽질한 내용도 같이 남겨야지 cer파일과 crt 파일 .cer 파일 거의 대부분 PEM 포맷이며, 주로 Windows 기반에서 인증서 파일임을 구분하기 위해서 사용되는 확장자 이다. crt 확장자와 거의 동일한 의미이며, cer 이나 crt 확장자 모두 윈도우에서는 기본 인식되는 확장자이다. 저장할때 어떤 포맷으로 했는지에 따라 다르며, 이름 붙이기 나름이다. .crt 거의 대부분 PEM 포맷이며, 주로 유닉스/리눅스 기반 시스템에서 인증서 파일임을 구분하기 위해서 사용되는 확장자 이다. 다른 확장자로 .cer 도 사용된다. 파일을 노트패드 등으로 바로 열..
Spring Boot) BCryptPasswordEncoder 사용해서 사용자 비밀번호 암호화하기 1. 의존성 추가 build.gradle 파일에 의존성을 추가해준다. spring-boot-starter-security dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-security' ... } 2. SpringSecurity.java 이걸 추가하면 웹 처음 화면에 기본적으로 제공해주는 로그인 창이 뜨는데 이건 사용하지 않을 것이므로 컨피그를 아래와 같이 추가해준다. package com.kpmg.lighthouse.tpplatform.tpplatform; import org.springframework.context.annotation.Bean; import org.springframework.contex..
Spring Boot) resources 폴더 내 파일 다운로드 FileService.java @Service("fileService") public class FileService { ... /** * resources/{폴더 이름} 에 저장되어 있는 파일 다운로드 * @param fileName,dirName * @return ResponseEntity */ public ResponseEntity downloadResourceFile(String fileName, String dirName) throws IOException{ Path filePath = Paths.get(File.separatorChar + dirName, File.separatorChar + fileName); Resource resource = new InputStreamResource(ge..
Spring Boot) MaxUploadSizeExceededException 서버 업로드 파일 최대 용량 설정 에러 메시지 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field file exceeds its m..
Spring Boot) resource에 저장된 파일 다운로드 (JAR 파일에서도 접근 가능) jar 파일로 말면 기존 프로젝트 디렉토리랑 구조가 달라져서 resource 폴더 내에 저장된 파일 경로가 꼬이더라 그래서 사용한 방법 핵심은 이 부분!! Path filePath = Paths.get(File.separatorChar + "directory_name", File.separatorChar + fileName); Resource resource = new InputStreamResource(getClass().getResourceAsStream(filePath.toString())); Controller @GetMapping(value = "input-template-download/{fileName}") public ResponseEntity downloadResourceFile(@Pat..