묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ScriptAssert 에러 문제
안녕하세요. 강의를 듣던중에 교안에 추가되지 않은 듯한 내용이 있는거 같아서 글 쓰게 되었습니다.< Bean Validation - 오브젝트 오류 > 파트에서맨처음에 @ScriptAssert 애너테이션을 이용하여 자바 스크립트 코드를 실행하는 내용이 있는데,현재 날짜 2023년 2월 23일 기준스프링 부트 버전 3.0.2 + java 버전 17.0.6 을 사용하여 실행시, 아래의 오류가 발생합니다. jakarta.validation.ConstraintDeclarationException: HV000170: No JSR-223 scripting engine could be bootstrapped for language "javascript".] with root cause org.hibernate.validator.spi.scripting.ScriptEvaluatorNotFoundException: HV000232: No JSR 223 script engine found for language "javascript".이유가 궁금해서 조금 찾아보니, JVM 이 지원하는 스크립트 엔진의 차이 때문에 해당 오류가 발생하는 것 같다는 글을 다수 발견했습니다.현재 jdk8 ~ jdk14의 JVM 상에서 사용되는Nashorn 엔진은 javascript를 지원하는데, jdk14 이후 버전부터는 javascript가 지원되지 않는 GraalVM 을 사용한다고 합니다.스프링 부트 3이후에는 java 17 이상을 사용하는 것이 필수조건으로 되어있기 때문에, 더는 스프링 부트 3에서는 @ScriptAssert를 이용한 자바스크립트 표현식을 사용할 수 없는 것 같습니다. 강의 내용중 크게 중요한 부분을 차지하지는 않는 것 같아서, 질문이 없는 것 같은데 확인해주시면 감사할 것 같습니다.reference :https://stackoverflow.com/questions/71481562/use-javascript-scripting-engine-in-java-17https://sinau.tistory.com/60
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
webapp index.html 웰컴페이지와 jsp 404 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 공유해주신 소스코드를 실행시키는 데는 문제가 없었는데 제가 진행하던 프로젝트에서 webapp 하위에 index.html이나 다른 jsp 파일을 폴더 경로에 맞게 넣어놔도 접근이 안되고 404에러가 뜹니다.다음과 같이 경로 모두 일치하게 넣었고, index.html 자체도 웰컴페이지로 나오지 않는걸 봐선 코드 오타 문제는 아닌 것 같습니다. (모든 코드는 혹시나 싶어 제공해주신 소스 코드에서 복붙했었습니다)한 가지 다른 점이 있다면, 저는 아래와 같은 스프링 부트 버전에서 개발했다는 건데요 plugins { id 'java' id 'war' id 'org.springframework.boot' version '2.7.7' id 'io.spring.dependency-management' version '1.0.15.RELEASE' }혹시 버전 때문에 이런 문제가 발생할 수도 있나요?버전 때문에 생기는 문제라면 나중에 혼자 개발할 때도 같은 문제가 생길 수 있을 것 같은데 구글링해보니까 내용이 잘 안나와서.. 검색 키워드나 관련 내용 참고할 수 있는 사이트가 있다면 알고 싶습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 적용후 회원등록 실패
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.우선 제 파일 링크입니다. https://drive.google.com/file/d/1n2XmTBYPylkkCA40URbdx4AEQTIqenvI/view?usp=sharing여태까지 잘따라오고있었는데 순수jdbc 강의 따라하면서 return new JdbcMemberRepository(dataSource);를 적용하고 나서 회원가입페이지에서 원하는 이름을 치고 등록을 누르면 다음과 같은 오류가 뜹니다.@Configuration public class SpringConfig { private DataSource dataSource; @Autowired public SpringConfig(DataSource dataSource){ this.dataSource = dataSource; } @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } 영한님 강의영상을 봐도 SpringConfig나 memberService글자가 회색처리되지않아있는데 제파일에선 unused라면서 회색처리 되어서 코드가 정상적으로 작동이 되지않는건가 싶은데.. 고민해봐도 해결방법을 모르겠어서 올립니다! 가능하다면 unused된 이유도 알고싶습니다.!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원목록 index 이상
안녕하세요.순수 JDBC 부분 듣고 있습니다.첫 번째 사진에 보이는 것과 같이 회원등록을 하고 회원목록을 보게되면 바로 다음 순서로 생성이 되는것이 아니라 36번쨰부터 생성이 됩니다.그래서 직접 h2 db에서 sql 문을 통해서 회원목록을 지우고 새로 등록해보았는데 그럴경우에도 순서가 초기화되지 않고, 36을 지웠으면 다음생성때는 37이 생성되는 것과같이 나타납니다. 1. db에서 직접 sql 문을 작성하여 적용하는 과정에서 문제가 발생한것일까요?2.해결 방법이 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
템플릿엔진의 역할에 관해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]안녕하세요. 질문이 있습니다. 템플릿엔진이 템플릿 양식과 입력자료를 합성하여 결과 문서를 출력하는 소프트웨어라고 하던데그럼 이 강의에서 templates 폴더 내 html 파일이 템플릿 양식이고 입력자료가 html파일로 넘겨주는 model 인걸로 이해해도 될까요? 결과 문서가 렌더링된 html이 되는것이구요.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
한글 깨짐
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]System.out.println으로 출력하는 한글이 깨집니다.기존에 한글 깨짐으로 문제가 되었던 게시글을 참고하여 매니저 분들이 올려주신 링크 모두를 참고하여 수정하였습니다.(file encoding 모두 utf-8로 변경 / vm option utf-8 변경 / file->invalidate cachees -> restart / gradle -> clean -> build ..... )구글링 중에 jdk 버전을 17이하로 낮추면 깨지지 않는다고 하여 jdk도 17버전으로 다운 받아 적용 시켜도 한글이 제대로 보이지 않네요 ㅠㅠ혹시 제가 놓치는 부분이 있을까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
css
[질문 내용]다른 html 파일을 사용해도 css는 bootstrap.min.css 이거 하나만 있으면 되는건가요?
-
해결됨스프링 프레임워크는 내 손에 [스프2탄]
totalCount 마지막 질의입니다 ㅠㅠ
여기서의 totalCount가해당 사진의 boardService.totalCount()를 시작으로 여기서 최종적으로 쿼리로 select되어 값이 나오는걸로 이해를 했습니다.즉, boardController에서 boardService.totalCount()를 시작해서 나오는 값이 해당 사진의 totalCount라는 select쿼리문에서 나온 결과값이 저장되는것이고 이 결과값이 pageMaker.setTotalCount() <-- 여기에 그대로 들어가서 pageMaker의 TotalCount에 저장되는걸로 이해를 했습니다. 흐름이 헷갈려 코드를 순서대로 타면서 확인해보니 이런 프로세스로 보이는데 제가 이해한게 맞는지 약간 혼동이 와서 최종적으로 질의를 드립니다...여러번 질문을 올리는데 늘 답변을 달아주셔서 감사합니다 ㅠㅠ.......
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JdbcMemberRepository, unable to resolve table
안녕하세요.순수 JDBC 부분 듣고 있습니다. 첫 번째 사진에 보이는 것과 같이 어플리케이션을 실행하면 에러 없이 잘 처리 됩니다.localhost:8080에서는 이름 등록 후 db가 아닌 방금 등록한 내용만 리스트로 나옵니다.제 생각에는 db의 연결 문제인데 JdbcMemberRepository, unable to resolve table 'member' 오류 해결을 위해 안 해 본 것이 없을 정도로 3일동안 다 해봤지만 해결이 되지 않아 문의 남깁니다!
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
getRequestDispatcher(경로) 메서드 질문입니다.
안녕하세요. getRequestDispatcher() 메서드의 매개변수 경로는 기본으로 WebContent로 되어 있는건가요? 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
정적컨텐츠를 내보낼땐 viewResolver가 필요없는지 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]동작 과정 이미지에 정적 컨텐츠는 viewResolver 가 없던데 resources:static/~~.html파일을 내보낼땐 viewResolver 가 필요없나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
v3, v4 회원 목록이 뜨지 않습니다.
[질문 내용]여기에 질문 내용을 남겨주세요.https://drive.google.com/file/d/1ojrNCJdVDq3UfLzfVTR1B3IU7A4ATK0L/view?usp=sharinglocalhost:8080에서 v3, v4, v5의 회원 목록으로 들어가면 저장한 회원이 안 뜹니다. v4와 v5는 v3을 바탕으로 수정한 거라 v3에서 오류가 해결되면 어떻게든 될 것 같긴 합니다. v2나 v1으로 회원 목록을 확인하면 제대로 떠서 저장은 제대로 된 것 같습니다. 화면 문젠가 해서 MemberListControllerV3.java나 ModelView.java, MyView.java 는 자료 코드 복붙도 해봤는데 해결이 안 됐습니다. 어디가 잘못된 건지 알려주시면 감사하겠습니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
JSP로 변환시 private MemberRepository
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의에서 JSP로 변환중 <% %>사이에 MemberRepository memberRepository = MemberRepository.getInstance(); 코드에서private을 제외하게 된게 <% %> 사이 코드는 서블릿의 service 메서드 내부로 들어가기 때문인가요? 만약 그렇다면 앞 강의의 서블릿 코드와 같게 설정하고자 한다면이렇게 사용하는게 맞나요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MemberFormServlet에서 MemberRepository
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의의 MemberFormServlet에서 MemberRepository가 사용되지 않은 것 같은데 선언한 이유가 궁금합니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ResponseBody를 붙여주는 이유가 궁금합니다.
@ResponseStatus(HttpStatus.OK) @ResponseBody @GetMapping("/response-body-json-v2") public HelloData responseBodyJsonV2() { HelloData helloData = new HelloData(); helloData.setUsername("userA"); helloData.setAge(20); return helloData; } 위에 코드에서는 객체를 리턴하는데 기본값, String이 아니라 뷰 리졸버가 작동하지 않을거 같습니다. 그런데 @ResponseBody를 붙여주는 이유가 궁금합니다.
-
해결됨[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
전자정부 프레임워크를 굳이 사용 안 해도 괜찮을까요?
안녕하세요. Spring Framework와 JSP를 공부하고자 이 강의를 구매했는데요.전자정부 프레임워크는 쓰고 싶지 않은데, 실습 시 필수로 해야되는 건 아니죠?즉, Spring Framework 환경에서 해도 괜찮은지 여쭙고 싶습니다. 비슷한 질문이 있는 것 같은데 조금 헷갈려서 다시 질문드립니다~ 여담으로, 박매일 선생님 강의 Java TPC부터 잘 보고 있습니다~ 감사합니다~
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestBody의 동작과정이 궁금합니다..!
@RequestBody의 동작과정이 궁금합니다..!HttpEntity를 통해 요청을 받아와서 거기서 .getBody()를 통해 갖고오는게 맞을까요?내부과정을 직접 확인하고 싶은데.. 어떻게 확인해야할지도 알려주시면 감사하겠습니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 무료->유료 버전 변경 시
처음 시작할 때 커뮤니티 무료 버전을 사용했는데요,대학생 계정 인증으로 유료 버전을 사용할 수 있다고 하더라고요만약에 유료 버전을 사용할 수 있게 되면 기존에 있던 인텔리제이 프로그램을 삭제하고유료버전을 새로 설치해서 다시 처음부터 초기설정하고 강의를 다시 따라가야 할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
window bulid설치관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]window이고 여기까지 했는데 libs파일이 없어요ㅠ어떻게 해야하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 서비스 테스트 관련하여 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)yes2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) yes3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)yes[질문 내용]잘배우고있습니다. 2~3년전 강의여서 그런지 혹시 refactoring 된건가요? 강사님 IllegalStateException 확인하는 부분 아래와 같이 refactoring해서 검증했는데 테스트는 완료했고, 강사님께서 알려주시는 대로 코딩했을때는 method자체가 검색되지 않았습니다.@Test public void 중복_회원_예외() { Member member1 = new Member(); member1.setName("hi"); memberService.join(member1); Member member2 = new Member(); member2.setName("hi"); Assertions.assertThatIllegalStateException().isThrownBy(()->memberService.join(member2)); /* try { memberService.join(member2); fail(); } catch (IllegalStateException e) { Assertions.assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); }*/ }