묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
green-fruit-names
name a green fruit Each entry will provide insights into the fruit’s origin, taste profile, and nutritional content, making it a valuable resource for anyone looking to expand their knowledge and palate in the world of fruits. Whether you are a fruit enthusiast, a health-conscious individual, or simply someone looking to add more variety to your diet, this guide offers a fascinating journey through the world of green fruit.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
DB에서 가져온다는 의미는 뭘까요?
간단한 질문일 것 같습니다!지연 로딩, 즉시 로딩이란 결국 DB에 쿼리문을 날려 원하는 데이터를 어느 시점에 가지고 올지 결정하는 거잖아요.그런데 가지고 온다는 의미가 제가 이해하고 있는 것과 맞는지 궁금합니다.DB에서 쿼리문을 통해 데이터를 가지고 오는 것은, 해당 객체(예: Member)의 멤버변수에(name, age, address, Team 타입... 등) 값을 대입한다는 뜻일까요? @Entity public class Member { @Id @GeneratedValue private Long id; private String name; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColum(name = "TEAM_ID") private Team team; ... ) Member member = em.find(Member.class, "1L"); // 실행 코드 위 코드를 예시로 들면, em.find()를 호출했을 때, DB에 저장된 id, name, age 값을 가지고 Member 객체를 만들어 줍니다. 대신, LAZY 로딩이라서 TEAM team 멤버변수엔 프록시 객체를 대신 넣어 주게 됩니다. 나중에 team 멤버변수를 사용할 일이 생기면 그제서야 해당 Member가 가진 Team의 FK를 가지고 조인되는 팀 정보를 조회하는 쿼리를 DB에 보낸다... 제 이해가 맞는지 궁금합니다!추가로,EAGER 로딩인 경우엔 DB에 select * from member; 쿼리문을 한 번만 보냈는데, DB에 저장된 멤버 필드가 10개라면 각각의 멤버의 Team 객체를 조회하는 쿼리문이 +10개가 즉시 DB로 보내지기 때문에 N + 1이 발생한다...이것도 맞는 이해일까요?감사합니다!
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
cnt = 1 과 nums.sort() 의 순서가 바뀌어야하지 않나요?
안녕하세요 강사님. 덕분에 조금씩 강해지는걸 느낍니다. 다 강사님 덕분입니다. 다름이 아니라 문제 정답코드에서 cnt = 1 과 nums.sort() 라인이 바뀌어야 하지않나 의문을 제시해봅니다. 정렬을 해주는 이유가 이미 앞에서 중복검사를 한 값을 뒤에서 또 한번 검사하게 하지 않게하기 위함인데, cnt 를 먼저 1 로 초기화준 다음에 sort() 를 진행하게 되면 nums[0] 이었던 값이 나중에 또 중복검사되는 변수가 생기지 않나요? 해당 문제처럼 개수를 카운트하는 문제는 상관없지만, 만약에 uniq 한 값을 배열을 리턴받아 사용하는 문제가 된다면 문제가 있을 것 같습니다. 혹시 제가 놓치고있는 부분이나 잘못생각하고있는 것일까요?답변부탁드리겠습니다!! uniq 한 배열을 리턴받아 사용하는 경우로 가정하고 테스트를해보면 아래와 같이 나옵니다. nums.sort() 가 나중에 올 경우 nums.sort() 가 먼저 올 경우
-
미해결스프링 핵심 원리 - 기본편
XmlAppContext() 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 오류 로그는 다음과 같습니다. org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [appConfig.xml] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:351) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:319) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:184) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:220) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:191) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:253) at org.springframework.context.support.GenericXmlApplicationContext.load(GenericXmlApplicationContext.java:130) at org.springframework.context.support.GenericXmlApplicationContext.<init>(GenericXmlApplicationContext.java:70) at hello.core.xml.XmlAppContext.XmlAppContext(XmlAppContext.java:14) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.io.FileNotFoundException: class path resource [appConfig.xml] cannot be opened because it does not exist at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:215) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) ... 11 more ```class path resource에서 appConfig.xml을 찾을 수 없다고 하는데, 보시는 바와 같이 있습니다. 참고로 테스트 코드도 다음과 같습니다. package hello.core.xml; import hello.core.member.MemberService; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.GenericXmlApplicationContext; import static org.assertj.core.api.Assertions.assertThat; public class XmlAppContext { @Test void XmlAppContext() { ApplicationContext ac = new GenericXmlApplicationContext("appConfig.xml"); MemberService memberService = ac.getBean("memberService", MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); } } ``` 어떤 부분이 문제일까요...
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
모달이 뜨질않습니다....
모달이 작동하지않아서 혹시 몰라서 카페에 올라와있는 소스코드를 덮어씌어도 모달이 뜨질않습니다.. 분명 데이터는 등록되는데 result값도 제대로 들어오는데도 불구하고 뜨질않더라구요.. 아래코드는 카페에 올라와있는 코드를 제 프로젝트에 인식시켜본 코드입니다. import React, {useState} from 'react'; import ResultModal from "../common/ResultModal"; import {postAdd} from "../../api/todoApi"; import userCustomMove from "../../hooks/userCustomMove"; const initState = { title:'', content: '', dueDate: '' } const AddComponent = () => { const [todo, setTodo] = useState({...initState}) const [result, setResult] = useState(null) //결과 상태 const {moveToList} = userCustomMove() //useCustomMove 활용 const handleChangeTodo = (e) => { todo[e.target.name] = e.target.value setTodo({...todo}) } const handleClickAdd = () => { //console.log(todo) postAdd(todo) .then(result => { console.log(result) setResult(result.TNO) //결과 데이터 변경 setTodo({...initState}) }).catch(e => { console.error(e) }) } const closeModal = () => { setResult(null) moveToList() //moveToList( )호출 } return ( <div className = "border-2 border-sky-200 mt-10 m-2 p-4"> {/* 모달 처리 */} {result ? <ResultModal title={'Add Result'} content={`New ${result} Added`} callbackFn={closeModal}/>: <></>} <div className="flex justify-center"> <div className="relative mb-4 flex w-full flex-wrap items-stretch"> <div className="w-1/5 p-6 text-right font-bold">TITLE</div> <input className="w-4/5 p-6 rounded-r border border-solid border-neutral-500 shadow-md" name="title" type={'text'} value={todo.title} onChange={handleChangeTodo} > </input> </div> </div> <div className="flex justify-center"> <div className="relative mb-4 flex w-full flex-wrap items-stretch"> <div className="w-1/5 p-6 text-right font-bold">CONTENT</div> <input className="w-4/5 p-6 rounded-r border border-solid border-neutral-500 shadow-md" name="content" type={'text'} value={todo.content} onChange={handleChangeTodo} > </input> </div> </div> <div className="flex justify-center"> <div className="relative mb-4 flex w-full flex-wrap items-stretch"> <div className="w-1/5 p-6 text-right font-bold">DUEDATE</div> <input className="w-4/5 p-6 rounded-r border border-solid border-neutral-500 shadow-md" name="dueDate" type={'date'} value={todo.dueDate} onChange={handleChangeTodo} > </input> </div> </div> <div className="flex justify-end"> <div className="relative mb-4 flex p-4 flex-wrap items-stretch"> <button type="button" className="rounded p-4 w-36 bg-blue-500 text-xl text-white " onClick={handleClickAdd} > ADD </button> </div> </div> </div> ); } export default AddComponent;
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 파일업로드에서 오류뜹니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either. v1과 v2에서는 문제가없는데요 /spring/upload에서 제출하면 500에러뜨면서 illegalArgumentexception뜹니다. 어떻게 해결해야할지 모르겠습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
맥환경 빌드 후 실행하기가 안됩니다ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.맥북 환경에서 버전도 바꾸고 빌드하는 데까지는 성공했습니다. 그런데 명령어를 실행하니 실행되지 않고 아래와 같은 오류가 발생합니다. MacBookAir libs % java -jar hellospring-0.0.1-SNAPSHOT.jarException in thread "main" java.lang.UnsupportedClassVersionError: hello/hellospring/HellospringApplication has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 64.0at java.base/java.lang.ClassLoader.defineClass1(Native Method)at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:104)at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)at java.base/java.lang.Class.forName0(Native Method)at java.base/java.lang.Class.forName(Class.java:496)at java.base/java.lang.Class.forName(Class.java:475)at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:88)at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53)at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58)
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
cors 에러 처리
@RestController @Log4j2 @RequiredArgsConstructor @RequestMapping("/api/todo") @CrossOrigin("*") //cors 허용 public class TodoController { ... }http://localhost:3000/todo/read/33 호출시 cors에러@CrossOrigin("*") 로 일단 처리했습니다.
-
해결됨
boardUpdate.do 경로가 잡히지 않습니다
지난번에도 비슷한 문제로 질문을 올렸는데, 강사님이 알려주신 maen clean, maven install을 진행하고 다시 실행하면 새로 생성한 파일의 경로가 잡혔습니다.하지만 이번에는 같은 방법을 여러번 사용하고, maven update와 project clean을 진행해도 계속 경로에서 문제가 생깁니다.수정화면을 클릭해서 수정하는 페이지까지는 정상적으로 나옵니다.하지만 이후에 목록을 누르면 경로 문제가 생깁니다.강의 중 아래와 같이 경로 문제가 생기면 boardUpdate.jsp파일에서 form의 경로를 변경해주셨는데요.동일하게 변경해도 아래와 같은 문제가 생깁니다.controller와 mapper도 함께 올립니다. 아래와 같이 작성했고, mysql은 전자정부에 있는 것을 실행했고 에러없이 작동됩니다.제가 틀린 부분이 있는지 확인 한번만 부탁드립니다ㅠㅠ
-
해결됨요구분석 구현 방법: 시스템 개발 성공을 위한 요구분석 구현 방법
다이어그램 사용여부에 관하여 질문합니다.
강사님의 경험이 많이 접목 되어져 있는 내용들이 강의에 녹아 있어서 재밌게 듣고 있습니다. 강의를 들으면서 가졌던 생각은 "문서로 처리되고 있는 내용이 다이어그램으로 표현이 될 수 있지 않는가?"였습니다. 개인적으로 생각하는 다이어그램의 장점은 "도형으로 구분되어지고 있어, 다른 사람을 이해시키는데 특화되어져 있다"이고 "생각의 흐름이나 시나리오의 흐름을 직관적으로 보여줄 수 있다" 라고 생각합니다. 결론적으로 질문하고자 하는 내용은 강사님이 오랫동안 이벤트 프로세스 모델을 사용하시면서 다이어그램을 활용하는 모델링 방법을 검토를 해보셨을 듯 한데 왜 적용을 하지 않으셨는지 아니면 강의에서 다루지 않은 것인지 궁금합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
java: cannot access java.nio.file.Path 오류
안녕하세요.강의 잘 듣고 있습니다.제 개인 프로젝트에서 multipartfile을 활용한 파일 업로드 기능을 구현하고 있는데 빌드 과정에서 아래와 같은 오류가 발생합니다.jdk버전은 11버전입니다. 진짜 하루종일 이것저것 다해봤는데 원인을 모르겠어요..file.transferTo() 부분에서 에러가 발생하는데 미치겠습니다.
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
정주행 시작했습니다. 강의 PPT 파일은 어디서 다운 받을수있나요?
정주행 시작했습니다. 강의 PPT 파일은 어디서 다운 받을수있나요?
-
해결됨코딩테스트 [ ALL IN ONE ]
DLinked List를 활용한 insert에서 메모리 할당해제관련해서 질문이 있습니다. (BrowserHistory)
class Node { let value: String var prev: Node? var next: Node? init(value: String, prev: Node? = nil, next: Node? = nil) { self.value = value self.prev = prev self.next = next } } class BrowserHistory { var head: Node? var current: Node? init(_ homepage: String) { let newNode = Node(value: homepage) self.head = newNode self.current = newNode } func visit(_ url: String) { self.current?.next = Node(value: url, prev: self.current) self.current = self.current?.next } //..생략 }강의를 듣던중 의문이 생겨서 질문남깁니다. visit시에 참조가 새로운 노드로 변경되기 때문에 그 이전에 current뒤에 존재하는 Node들은 뒤에 몇만개가 있더라도 맨앞에 있던 노드의 참조를 가르키는 곳이 없기 때문에 모두 메모리에서 가비지 컬렉터에 의해 메모리에서 지워진다라고 말씀하셨는데, 뒤에 1개의 Node가 있는 경우는 그렇지만 Doubly Linked List의 경우 그 뒤에 Node들의 prev로 그 이전 Node들을 가르키고 있어 참조하는 곳이 최소 1개 이상은 존재하게 되어 메모리에서 할당해제가 되지 않을 것이라고 생각했습니다. 따라서 visit당시에 뒤에 있는 Node들도 메모리에서 할당해제가 되게끔 리스트의 끝까지 돌면서 Node의 next만 지워주고 테스트해보자고 생각해서 아래와 같이 코드를 수정하였습니다. func visit(_ url: String) { var tmp = self.current while tmp?.next != nil { var before = tmp tmp = tmp?.next before?.next = nil } self.current?.next = Node(value: url, prev: self.current) self.current = self.current?.next }이를 LeetCode의 결과로 확인해보니 물론 속도는 5ms 줄었지만, 메모리 4MB정도 줄일 수 있었습니다.Swift의 경우 가비지 컬렉터가 아닌 ARC가 컴파일 타임에 Reference Count를 확인하기 때문에 그 동작 방식에서의 차이에서 비롯된 차이인지 궁금합니다.가비지 컬렉터에서는 실제로 위의 같은 경우에도 메모리 할당 해제가 되는건가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 주몽 문제 왜 틀렸는지 잘 모르겠어요 ㅠ
안녕하세요 선생님,아래와 같이http://boj.kr/fb635eced5da4486b8668d07bf1d4370a[m-i] = 0; <-- 효율성을 위해 이 코드를 넣었는데 틀렸다고 해요 그런데, 위의 코드를 넣지 않고 마지막 ret / 2 를 통해서 잡아주면 맞았다고 하네요..http://boj.kr/9a9b8fac99914ffdbfe06fcc4d5a8157그냥 넘어가도 될것 같긴 한데.. 너무 궁금하네요,,, 찾는데 오래걸리고 혹여 바쁘시다면 꼭 봐주시지 않으셔도 괜찮습니다!
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
Exception Class 생성문의 추가 질문
안녕하세요. 강사님 답변 감사합니다.답변해 주신 것으로는실무에서도 사용자 정의 예외 클래스를 사용하는 것으로 이해했습니다. 추가로 질문드리고 싶은 것이 있는데첫 번째 질문으로는 사용자 정의 클래스를 사용할 때 상위 예외를 상속할 때 보통 RuntimeException을 상속해서 만드는지 디테일한 Exception을 상속하여 생성하는지 질문드리고 싶습니다! 두 번째 질문으로는 자바의 예외 클래스를 사용할 때보다 사용자 정의 클래스를 생성하여 사용하는 게 답변해 주신 것처럼"직접 예외 클래스를 생성하면 메시지나 처리 제어 등이 가능합니다."라는 장점으로예외 처리를 할 때 사용 빈도가 훨씬 더 많을 것 같다고 개인적으로 생각을 하고 있는데실무에서는 자바의 예외 클래스를 사용하는 것보다는예외 클래스를 직접 생성하여 사용하는 경우가 훨씬 더 많을까요?
-
미해결Next + React Query로 SNS 서비스 만들기
_component 폴더구조에 관한 질문입니다.
제로초님은 항상 _component 폴더를 만드시는데 이런 폴더를 만들지 않고 그냥 컴포넌트를 만드는건 어떻게 생각하시나요??어차피 폴더내에서는 page라는 파일만 페이지로 라우팅이 되기 때문에 별 상관없을 것 같습니다. 단순히 취향차이로 보면 될까요?? ex) as is src/app/search/_component/Tab.tsxto be src/app/search/Tab.tsx
-
해결됨피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
아이콘 자료 링크가 안나옵니다.
강사님 두번째 Apple 아이콘 자료 링크를 들어가 보면The page you're looking for can't be found.이렇게 나와요.찾아봤는데https://developer.apple.com/design/human-interface-guidelines/icons/여기가 맞나요?
-
미해결데이터 분석 SQL Fundamentals
질문있씁니다!!
제가 현장에서 Oracle 과 Tibero 를 돌아가면서 쓰고있는데 본강의에 듣기에 적합할까요?
-
미해결스프링 시큐리티
LogoutFilter MockMVC 테스트 질문
안녕하세요 양질의 강의 감사합니다 ㅎㅎ개인 프로젝트에 LogoutFilter를 적용하고 테스트해보려는데, 404 에러가 발생합니다. 아마 mockMvc에 필터가 적용이 안된 것 같은데, 지금 생각으로는 수동으로 LogoutFilter 객체를 생성해서 mockmvc에 추가해주는 것밖에 방법이 떠오르지 않습니다. 혹시 아래와 같이 테스트하는 방법 말고 더 적절한 방법이 있을지 궁금합니다. 감사합니다 ^^ @BeforeEach void setUp( WebApplicationContext webApplicationContext, RestDocumentationContextProvider restDocumentation) { this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext) .apply(documentationConfiguration(restDocumentation)) .build(); } @Test void signout() throws Exception { mockMvc.perform(RestDocumentationRequestBuilders.post("/v1/logout") .cookie(new Cookie(Constants.ACCESS_TOKEN_KEY, accessToken)) .cookie(new Cookie(Constants.REFRESH_TOKEN_KEY, refreshTokenString))) .andExpect(status().isOk()) .andExpect( result -> { Cookie accessTokenCookie = result.getResponse().getCookie("X-Access-Token"); assertThat(accessTokenCookie.getMaxAge()).isZero(); assertEquals("", accessTokenCookie.getValue()); }); }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자바스크립트 파일을 별도로 만들게되는 경우
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]자바스크립트 파일을 별도로 만들게 되는 경우에는, 자바스크립트 인라인 사용할 수 있는 방법이 없나요? <script type="text/javascript" th:inline="javascript" th:src="@{/javascript.js}"></script>위의 코드처럼, 넣어봤는데 별도의 파일이라 그런지 동적으로 변환되지 않고 그대로 인식되어버리네용😅 자바스크립트 인라인을 사용하기 위해서는, 항상 html파일에 script 태그를 함께 사용해야만하나요?