묻고 답해요
137만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
M1 mac 에서 gradle로 빌드하시려는 분들께 공유 하고싶어 글을 남겨요!
Requirementsstatic/node_module로 package.json에 선언된 의존성을 다운로드 받아야한다gradle build 시 package.json에 선언된 의존성을 확인하고 다시 다운로드 받아야 한다.뭔가 간단하게 끝내고 싶다 !!!Actionhttps://github.com/node-gradle/gradle-node-plugin/blob/master/docs/usage.md다양한 관련 플러그인 들이 있지만, 위의 플러그인을 설치 했습니다.2번의 요구사항은 gradle의 증분 컴파일(?)이 해주는 것 같습니다. (정확하지 않음 추측이에요)3번은 관련 자료를 찾던 도중 processResources 를 발견했고, Copies production resources into the production resources directory. 라고 설명 되어 있습니다.(공식 홈페이지)따라서, npm install 시 node_module 파일을 static 이하로 떨어 뜨리면 되겠구나!그리고 processResources를 "npm install 동작을하는 " Task를 의존하게 하면 되겠구나!-- 주석이 많아 가독성이 떨어지지만, 한번 읽어보시면 더 도움이 될거라 생각해서 위의 깃헙에 있는 주석 그대로 복사 붙여넣기 합니다. 수정한 부분은 nodeProjectDir 부분과processResources.dependsOn 부분 입니다.추가로 package.json 도 아래분이 잘 정리 해주셔서 함께 복사 붙여넣기 합니다.(고맙습니다!!)-인텔리제이 빌드시(gradle로 설정안했을 경우 동작안해요!)-gradle 탭 누르셔서 npm Task 들어오는지 확인해주세요!{ "name": "static", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "@yaireo/tagify": "^3.5.1", "bootstrap": "^4.4.1", "cropper": "^4.1.0", "font-awesome": "^4.7.0", "jdenticon": "^2.2.0", "jquery": "^3.4.1", "jquery-cropper": "^1.0.1", "mark.js": "^8.11.1", "moment": "^2.24.0", "summernote": "^0.8.16" } }plugins { id "com.github.node-gradle.node" version "3.5.0" id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java' } group = 'me.studyOlle' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } node { // Whether to download and install a specific Node.js version or not // If false, it will use the globally installed Node.js // If true, it will download node using above parameters // Note that npm is bundled with Node.js download = true // Version of node to download and install (only used if download is true) // It will be unpacked in the workDir version = "16.14.0" // Version of npm to use // If specified, installs it in the npmWorkDir // If empty, the plugin will use the npm command bundled with Node.js npmVersion = "" // Version of Yarn to use // Any Yarn task first installs Yarn in the yarnWorkDir // It uses the specified version if defined and the latest version otherwise (by default) yarnVersion = "" // Base URL for fetching node distributions // Only used if download is true // Change it if you want to use a mirror // Or set to null if you want to add the repository on your own. distBaseUrl = "https://nodejs.org/dist" // Specifies whether it is acceptable to communicate with the Node.js repository over an insecure HTTP connection. // Only used if download is true // Change it to true if you use a mirror that uses HTTP rather than HTTPS // Or set to null if you want to use Gradle's default behaviour. allowInsecureProtocol = null // The npm command executed by the npmInstall task // By default it is install but it can be changed to ci npmInstallCommand = "install" // The directory where Node.js is unpacked (when download is true) workDir = file("${project.projectDir}/.gradle/nodejs") // The directory where npm is installed (when a specific version is defined) npmWorkDir = file("${project.projectDir}/.gradle/npm") // The directory where yarn is installed (when a Yarn task is used) yarnWorkDir = file("${project.projectDir}/.gradle/yarn") // The Node.js project directory location // This is where the package.json file and node_modules directory are located // By default it is at the root of the current project nodeProjectDir = file("${project.projectDir}/src/main/resources/static") // Whether the plugin automatically should add the proxy configuration to npm and yarn commands // according the proxy configuration defined for Gradle // Disable this option if you want to configure the proxy for npm or yarn on your own // (in the .npmrc file for instance) nodeProxySettings = ProxySettings.SMART } dependencies { // View Template Engine implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // Security implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' //Web implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-web' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.7.5' //Persistence implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' runtimeOnly 'com.mysql:mysql-connector-j' // LomBok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' // Dev developmentOnly 'org.springframework.boot:spring-boot-devtools' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' //Test Implementation testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' } tasks.named('test') { useJUnitPlatform() } processResources.dependsOn('npmInstall')
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
태그를 입력할때 insertBefore 에러
저런 에러가 발생하고, 하단에 단어가 추가되지 않습니다. 원인이 무엇인지 모르겠습니다.. (tags.html의 구성은 강사님과 똑같이 하였습니다.) 단어를 추가하려고 할때마다 박스 아래에 단어는 추가되지않고, 같은 에러가 계속 추가됩니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
thymeleaf에서 자바스크립트 인라인을 사용할 때 질문있습니다.
html 내에서 <script th:inline="javascript"></script> 태그를 이용하는 것이 아니라, 자바스크립트 파일을 static 에 있는 외부로 분리하는 경우에 어떻게 하면 변수를 사용할 수 있나요? 예를 들어 static에 js라는 경로를 만들고 그 안에 test.js라는 외부 자바스크립트 파일을 html 내에서 사용하는 경우에 <script th:inline="javascript" th:src="@{/js/test.js}"></script>와 같이 할 수 있습니다. 그런데 이 경우에 앞에서 사용한 변수인 var username = [[${user.username}]]; var age = [[${user.age}]]; 등등을 사용할 수가 없습니다. 어떻게 하면 이 문제를 해결할 수 있나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
웹 계층 개발 fragments 파일들
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) ================================================== (수정)깃헙링크를 안올렸네요. 죄송합니다ㅠ https://github.com/young0264/jpashop 코드 참고 부탁드립니다..! 웹 계층개발 첫강의에서 원하는 view가 안나옵니다.. spring boot 2.7 에서 2.4.1버전으로 다운그레이드도 하였는데 안되네요.. 커뮤니티 게시글에 올라온 버전문제, 강의를 다시 한번씩 살피면서 코드를 전체적으로 한번 다 봤는데 어떻게 손을봐야할지를 모르겠습니다.. 현재 home.html을 열어보면 fragments파일의 footer, bodyHeader , header 파일들이 개별적으로는 실행이 되는데 fragments 의 파일들이 적용이 안되어 있는거보면 이 연결이 안되는게 문제인 것 같아요.. 어디를 수정하면 되는지 한말씀만 주시면 감사하겠습니다 ..!ㅠ (스프링부트는 2.4.1 , bootstrap은 강의와 같은버전입니다) ================================================================ 부트스트랩이 적용안될시 게시판에 올라온 해결책중 두가지를 적용해봤습니다. 1. css폴더에 jumbotron.css 코드를 추가한것(지우고 넣고 두방법 해봣지만 모두 다 안됩니다) 2. 부트스트랩의 버전이 맞지않은경우에 header.html 의 css쪽의 stylesheet 주소를 바꿔줘야 하는경우입니다. 버전이 현재 4.3.1(강의와 같음) 이지만 해상페이지에 들어가서 확인해보고 (같았습니다)수업과 같지만 바꿔주었습니다. https://getbootstrap.com/docs/4.3/getting-started/introduction/ 일단 이 두방법을 시도했기에 참고 부탁드립니다..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
[공유] 인텔리제이 유료버전 인데 타임리프 이동 또는 빨간줄 뜨시는분
인텔리제이 얼티메이트 버전인데 컨트롤러에서 타임리프 링크 안되는 현상 또는 타임리프 리소스에서 빨간불 뜨시는분들 ! 별짓 다해보았지만 Spring boot 버전문제로 보입니다. (강의소스 그대로 버전만 2.7.0 해보니 링크안되고 빨간불 동일하네요) 2022.06.11 기준 2.7.0 버전에서는 안되고, 2.6.8 버전에서는 잘동작합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
intellij 의 thymeleaf 인식오류 인가요?
일단 상품등록하는데 문제는 없습니다. 위와 연결된 Controller에 매핑과 BookForm 설정 똑같이 했는데 강의에 영한님이 한것처럼 html에서 th:object="${form}" 나 th:field="*{name}" 을 command+click 으로 연결된곳으로 갈수도 없고 Cannot resolve 'form' 오류 뜨면서 빨간줄 그어지는데 해결할수 있는 방법있을까요? 저도 그 편한 기능 쓰고 싶습니다 진짜루 ..ㅠㅠ 인텔리제이는 IntelliJ IDEA 2022.1.2 (Ultimate Edition) 쓰고 있습니다.
-
해결됨스프링과 JPA 기반 웹 애플리케이션 개발
지원중단
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. public class SecurityConfig extends WebSecurityConfigurerAdapter 에서 WebSecurityConfigurerAdapter 이게 지원중단이라떠서 더이상 진행이 불가능한데 어떻게 해결할 수 있나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
${#fields.Error()}
안녕하세요 선생님. 구글링을 해도 정보를 찾을수 없어 질문드립니다. 제가 하고싶은건 bindingResult를 통해 등록한 에러 메세지를 자바 스크립트에서 쓰고싶습니다. 아래와 같이 코드를 작성해봤고 여러가지 시도를 해보았으나 작동하지않습니다. controller (등록) bindingResult.reject("loginFail","아이디 또는 비밀번호가 맞지 않습니다."); html (작동하지 않는 코드) <script th:inline="javascript"> alert([[${#fields.errors('*')}]]);</script> 다음과 같은 경우는 잘 작동합니다. controller model.addAttribute("loginFail","아이디 또는 비밀번호가 맞지 않습니다."); html <script th:inline="javascript"> alert([[${loginFail}]]);</script> alert 정상출력. --------------- ${#fields.grobalErrors()} 관련 변수는 자바 스크립트에서 사용이 불가능한가요? 사실 model을 통하여 등록하면 된다지만 코드한줄 줄이고싶은 욕심에 몇시간 알아보다가 해결하지 못하여 이렇게 질문드립니다 ㅠㅠ..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
똑같은 뷰를 반환하는데도 url에 따라 css가 다르게 적용 되는 이유
<div th:replace="/fragments/header.html :: fragment-header"></div> 이렇게 헤더, nav, 사이드바를 대체하고 있는데요 도메인/edit 에서는 잘 적용되던 html,css 들이 도메인/edit/1 등등 이렇게 구체적으로 들어가면 100% 똑같은 뷰를 반환해도 절대 적용이 안됩니다.. 5시간째 이유를 못찾고 있습니다 @GetMapping("/project/edit/1")public String Edit1(Model model){ //1번 return "editProject";}@GetMapping("/edit")public String Edit2(Model model){ //2번 return "editProject"; } 1번과 2번의 뷰가 각각 1. 2. 이렇게 나타납니다. 똑같은 뷰를 써도 저렇게 나오는 이유가 무엇인가요? Edit1(), Edit2()는 필수부분만 캡처한겁니다 똑같은 뷰를 반환하는데도 url에 따라 css가 다르게 적용 되는 이유가 무엇일까요?? 혼자서해보려했는데 너무 안되서 질문드립니다. --헤더 내부-- <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> http://localhost:8080/project/edit/bootstrap/css/bootstrap.min.css 잘못된 css 경로 -< 이렇게 가네요 http://localhost:8080/bootstrap/css/bootstrap.min.css 가야하는 css 경로 빨간색 경로가 안붙게 하려면 어떻게 하나요?
-
해결됨스프링과 JPA 기반 웹 애플리케이션 개발
(응용) 프로젝트 진행 전 상수-Constants 구성 에 관한 질문입니다.
자주 쓰이고, 오타가 날법한 String 을 모아 아래 처럼 상수화 했습니다. 상수패키지 com.studyolle.core.constant.* 이후 Controller , Test 등에서 아래와 같이 사용중입니다. 질문입니다 Enum 으로 관리 하려고 했지만, 컨트롤러-핸들러 의 @GetMapping( Enum.URI.name() ) 과같은 선언도 불가능 하고, 단순 값 참조를 Enum .name() 이라던지, Enum .custom() 과 같이 덕지덕지 메서드가 붙게되어, 심플하게 하고자, Enum 은 사용하지 않았습니다. 그러나 이렇게 static final 필드로 관리하다보면, 언젠가 양이 많아 질탠데, 이럴 경우는 또다시 나누어야 될거라 생각이 듭니다만.. 이런 일반적인 방식 보다 효과적으로 관리하는 ( Map 을 쓴다던지, 특정 패턴이라던지) 방법이 있을까요? 상수 관리는 이런 방향이 괜찮았다.. 라는 사례가 궁금합니다. 읽어주셔서 감사합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
thymeleaf th:each 테이블에 새로운 object 넣고싶습니다.
테이블을 동적으로 만들고 싶어서 이것저것 하다가 질문드립니다... <html> each로 테이블을 구성하였고요 비동기 통신을 통해서 아래와 같은 object를 새로 받아왔습니다. 테이블 그리기 위해 넣는 orderGroupList > orderList가 있고요 페이징처리와 통신결과를 가져오는 paginVO, resultVO가 있습니다. 이러한 object를 현재 html에 구성된 each에 넣을 수 있는 어떤 방법이 있나요?
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
여태껏 들었던 강의 중 가장 불친절 한 강의
이 분은 진짜 글을 남겨야겠네요. 기본 적으로 강의 할 때 목소리 톤이 최소한의 겸손이 안되어 있는 느낌. "이건 당연히 아셔야 해요", "찾아보셔야 해요" <-- 이런 말투들도 최대한 이해하려고 노력 했음. 근데 가관은 bootstrap 코드를 자기가 copy&paste 해서 옮기는데 화면에 보여주지도 않음. 그거 하나하나 보면서 sign-up.html 파일 내용 기입하고 있어서 힘들었는데... 질문 게시판 답변 보니...그제서야 거기서 자기 git의 commit check out해서 옮기라네...참... 아니 강의를 하면서 그 때 그 때 말을 해주든가.. 불친절하고, 내용도 그냥 다 알아야 하는 것들 혼자 한 번 적용해보는 느낌. 새로운 내용이 나오면 그 내용을 친절하게 알려주면서 강의 노트에 있는 것도 아니고.... 그냥 말로 대충 지나가듯이 설명.... 좀 겸손하지 않으신 듯 해요. 강사 자체가...
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문 목록 뷰에서 사용한 코드 관련 질문입니다.
강의를 다시 복습하면서 코드를 다시 유심히 보다가 발견하지 못한 부분을 발견해서 질문드립니다 주문 목록을 타임리프를 이용해서 뿌리는 코드는 다음과 같은데요 <tr th:each="item : ${orders}"> <td th:text="${item.id}"></td> <td th:text="${item.member.name}"></td> <td th:text="${item.orderItems[0].item.name}"></td> <td th:text="${item.orderItems[0].orderPrice}"></td> <td th:text="${item.orderItems[0].count}"></td> <td th:text="${item.status}"></td> <td th:text="${item.orderDate}"></td> <td> <a th:if="${item.status.name() == 'ORDER'}" href="#" th:href="'javascript:cancel('+${item.id}+')'" class="btn btn-danger">CANCEL</a> </td> </tr> 여기서 의문점이 Order와 Member는 다대일 관계이기 때문에 Order 리스트에 대해서 Order id와 Member 정보는 저렇게 출력하는게 가능한데 Order와 OrderItem은 1대다 관계인데 orderItems[0] 형태로 0 인덱스만 주었는데 출력이 되어있는데요 orderItems는 리스트인데 인덱스는 0만 주어서 출력하는 부분에서 타임리프 가이드를 보긴 했는데 이런 케이스에 대해서는 왜 이런식으로 코드가 나오는지 이해 안돼서 질문드립니다. 왜냐하면 저렇게 하면 하나의 Order에 대해서 Orderitem이 하나 밖에 나오지 않아서요 검증쿼리는 다음과 같이 던져서 검증 했구요 SELECT M.NAME, O.ORDER_ID, I.ORDER_PRICE, I.COUNT, IT.NAME FROM ORDERS O , ORDER_ITEM I , MEMBER M , ITEM IT WHERE 1=1 AND O.ORDER_ID = I.ORDER_ID AND M.MEMBER_ID = O.MEMBER_ID AND IT.ITEM_ID = I.ITEM_ID ORDER BY M.NAME ASC, O.ORDER_ID ASC, IT.NAME ASC, I.COUNT ASC 출력결과는 다음과 같습니다. 저런 상황이 발생하지 않도록 알맞게 처리하기 위해서는 view에 뿌려줄 수 있도록 적절한 DTO로 변환해서 뿌려줘야하는 것이 맞는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
thymeleaf를 사용할때 Controller와 RestController의 차이 질문이요
thymeleaf 템플릿을 사용할 때 @Controller 사용하면 String으로 반환해서 페이지로 이동하는데 @RestController를 사용하면 String으로 반환할 때페이지로 이동을 못합니다... 그 이유가 무엇이고 어떻게 해결하면 좋을까요? 참고로 hello.html은 templates에 있습니다.. @Controller public class PostController { @GetMapping("/test") public String Test(Model model){ model.addAttribute("data","테스트입니다."); return "hello"; } } 여기서 아래처럼 RestController를 사용하면 페이지를 이동못하고 hello만 반환한다. @RestController public class PostController { @GetMapping("/test") public String Test(Model model){ model.addAttribute("data","테스트입니다."); return "hello"; } } 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요 영한님 질문이있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니요2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요 강의잘보고있습니다 다름이 아니라 제가 취업준비하려는 회사가 jsp를 사용하는데 jpa활용2편 까지의 기능을 타임리프 대신 jsp로 적용하여 구현할수있는지 궁금합니다 구현하려면 코드수정이 컨트롤러 에서도 일어나야하는지 궁금합니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리 질문
타임리프를 이용해서 홈화면 html 헤더랑 푸터를 분리 시켜놨는데 그이후부터 로그인 사용자 이름 받아오는 model 값을 못 가져오는데 이경우에는 어떻게 해결해야하는지 알고싶습니다. <html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{fragments/layout}"> <head> <meta charset="UTF-8"> <title>Hi-End</title></head><body layout:fragment="content"> <h4 class="mb-3" th:text="|로그인: ${member.name}|">로그인 사용자 이름</h4>${member.name}이부분이 에러가 뜨면서 값을 가져오지 못합니다.헤더랑 푸터를 분리시킨걸 다시 합치면 model에 담긴 값을 잘 가져옵니다.분리 시킨 상태에서 model에 담은 값은 가져올수있는 방법이 없는건가요?
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
조금 더 안전한 방법과 조금 더 개선한 방법의 차이
안녕하십니까 강사님 ! 질문있습니다 :) 조금 더 개선한 방법의 원리는 만약 인증이 들어왔을 때, Username 과 시리즈는 일치하지만 토큰이 일치하지 않으면 토큰이 해커에 의해 탈취되었다고 간주해서 모든 토큰을 삭제하는 원리인데, 조금 더 안전한 방법도 Username 은 일치하지만 토큰이 다르면 똑같이 탈취되었다고 간주하고 모든 토큰을 삭제하면 동일하게 동작하지 않을까 하는 궁금증이 생겼습니다. 전자랑 후자 방법 둘다 해싱에 패스워드는 사용되지 않아서 복호화 된다고해도 계정이 탈취당하는 일이 없는데 굳이 시리즈를 이용하는 이유가 있을까요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
thymeleaf message 사용 시 Cannot resolve property key 에러
안녕하세요 ! 강의에서는 Intellij thymeleaf message 사용 시 properties 파일과 연동 및 자동완성이 잘 되는데 저는 Cannot resolve property key 에러가 뜨고 message 파일과 연동이 잘 되지 않는 것 같습니다. 프로젝트 실행에는 이상이 없지만 강사님처럼 동작하게 하려면 따로 설정해야 하는 부분이 있을까요? 구글링해도 해결방법을 찾지 못 해 질문 남깁니다..! 감사합니다 !!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
thymeleaf 이미지 업로드시 재로딩 하지 않는 이상 이미지 출력이 안됩니다.
안녕하세요? 김영한 강사님! 질문이 있습니다. thymeleaf 로 페이지를 작성하고 파일을 업로드 하여 이미지 출력까지 해보려는데요 태그 <img th:src="@{${image}}"> 이런식으로 출력되게 했는데요. 이게 톰켓 재시작시는 업로드한 파일이 보이는데요 재시작 하지 않고 뷰페이지를 봤을때 엑박이 뜨는 상황입니다. 페이지를 리프레시 하여도 마찬가지로 엑박이 뜨고요.. 핫 리로드라는 것을 적용해 봤는데 마찬가지로 톰캣 재시작을 하지 않는 이상 엑박이 뜨는 상황입니다. 강사님!!! 도와주세요!!!! ^^;;; 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:inline은 왜 필요한건가요?
안녕하세요 항상 감사드립니다. unescaped 설명하실 때, span 태그 안에 th:inline를 넣는 이유가 궁금합니다. 구글링해보니 컨트롤러에서 입력된 데이터를 출력할 때 쓰는 것 같던데, 그동안 딱히 th:inline을 쓰지 않아도 잘 출력됐었고, 실제로 코드에서 th:inline="none"을 빼도 Hello Spring!이 문제없이 뜨는 것을 확인할 수 있었습니다. th:inline은 왜 쓰는건지 궁금합니다!