개발자/Spring 15

서버 재시작 없이 HTML 변경사항 실시간 반영하기: Spring Boot 개발자를 위한 가이드

많은 개발자들이 Spring을 사용하여 웹 개발을 진행하면서, HTML 파일을 수정할 때마다 서버를 재시작해야 하는 번거로움에 직면했을 것입니다. 특히, HTML 파일에 소소한 변경을 적용할 때마다 서버를 다시 올리는 과정은 상당히 시간이 소요되며, 이는 개발 효율성을 크게 저하시킵니다. 비록 Spring Boot의 등장으로 컴파일 시간이 단축되었다고는 하지만, VS Code와 같은 도구에서 제공하는 실시간 수정 및 미리보기 기능과 비교했을 때 여전히 개발 작업의 흐름을 방해하는 요소로 남아 있습니다. 이러한 문제를 해결하기 위해, 서버를 재시작하지 않고도 HTML 파일의 변경사항을 실시간으로 렌더링하여 반영하는 방법이 필요합니다. 이는 개발자가 더욱 신속하게 작업을 진행하고, 즉각적인 피드백을 받을 수..

개발자/Spring 2024.02.19

url 유효기간 설정_세션동작방식

@GetMapping("/file/downloadURL") public ResponseEntity downloadURL(@RequestParam String fileId, HttpServletRequest request) throws MalformedURLException { // fileId를 통해 파일 정보 조회 FileManageVO fileManageVO = fileManageService.selectFile(fileId); String orgnFileNm = fileManageVO.getOrgnFileNm(); // 원본 파일 이름 String strgFileNm = fileManageVO.getStrgFileNm(); // 저장된 파일 이름 String strgFilePth = fileMana..

개발자/Spring 2023.07.13

[SPRING] Interceptor의 의미와 구현 및 실습

1. 인터셉터 컨트롤러의 '핸들러'를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 일종의 필터를 뜻한다. interceptor란 단어는 '낚아채다'라는 의미이다. 해당 단어의 의미와 같이 사용자 요청에 의해 서버에 들어온 Request 객체를 컨트롤러의 핸들러(사용자가 요청한 url에 따라 실행되어야 할 메서드, 이하 핸들러)로 도달하기전에 낚아채서 개발자가 원하는 추가적인 작업을 한 후 핸들러로 보낼 수 있도록 해주는 것이 인터셉터이다. 2. 사용하는 이유 개발자는 특정 Controller의 핸들러가 실행되기 전이나 후에 추가적인 작업을 원할때 Interceptor를 사용한다. (추가적인 작업에는 로그엔체크, 권한 체크 등이 있다.) 권한 체크 예를 통해서 개발자가 인터셉터의 어떠한 이..

개발자/Spring 2023.01.10

[SPRING] 다중 파일 업로드(중첩 커맨드객체)

중첩 커맨드객체란? 커맨드 객체 안에 커맨드 객체가 있는 형식 사용자가 HTTP로 사용자 데이터를 보내올 때 커맨드 객체를 여러 번 중첩시켜서 보낼 수 있다. 이 중첩 커맨드 객체는 VO에 List 형태로 데이터를 받을 수 있다. HTML 파일에서 데이터를 전송할 때 데이터의 name 속성은 아래처럼 커맨드 객체의 속성명과 인덱스 그리고 속성을 명시해야한다. JSP 헤더 부분 ------------------------------------ DTO를 이용한 여러 파일 업로드 빨강 초록 파랑 NAME AGE FILENAME 이미지태그 ${dto.name } ${dto.age } ${dto.fileName } 새로운 개념 1. c:choose java의 switch case와 유사함. when(~~일 경우)..

개발자/Spring 2023.01.04

[SPRING] 도서 CRUD 구현 + 검색기능까지

도서 CRUD를 간략하게 스프링을 통해 구현해보았다. 1. 전체적인 구성 2. CRUD 구현 전 환경설정 pom.xml(의존성 주입만) java version 1.8 springframework-version : 4.3.30.RELEASE xerces xercesImpl 2.12.2 com.oracle.database.jdbc ojdbc8 21.8.0.0 org.springframework spring-jdbc ${org.springframework-version} org.springframework spring-orm ${org.springframework-version} org.mybatis mybatis-spring 2.1.0 org.mybatis mybatis 3.5.11 com.zaxxer Hi..

개발자/Spring 2022.12.30

[SPRING] CRUD 구현 전 전체적인 구상방법

crud를 구현하기 전 전체적인 틀을 머릿속에 넣을 필요가 있다. 전체적인 틀을 엑셀로 정리해보았다. 어떤 방식으로 요청할 것인지 요청받아서 가공된 데이터를 어떻게 응답시킬 것인지 전체적인 구상을 한 후 구현작업을 한다면 매우 효율적일 것이다. ++ 위 RequsetMappings를 바라보면 전체적인 구상을 확인하며 진행할 수 있다.

개발자/Spring 2022.12.29

[Spring] 간단한 UpDown 게임 구현

updown 게임.jsp 당신의 답은 : ${param.user }이며, ${status } 해야 합니다. 답은 : ${answer } updown 게임 Controller package com.itbank.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.an..

개발자/Spring 2022.12.27