묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필드 오류와 오브젝트 오류 관련
BindingResult.reject -> 오브젝트 오류BingdingResult.rejectValue -> 필드 오류이렇게 맞나요 ??그리고 파라미터로 넘겨줄 때 field가 @ModelAttribute로 받는 객체의 지역변수명을 뜻 하는 건가요 ? 오브젝트 오류는 종합적인 로직을 검증할 때 사용하고, 필드 오류는 사용자가 입력해서 넘어오는 파라미터(?) 에 문제가 있을 때 사용하는 거 같은데 자세하게 설명해주실 수 있을까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HTTP API 질문
HTTP API를 설명해 주실 때 웹 클라이언트가 WAS에 요청을 하면 WAS에서 데이터를 내려 주고, 그럼 웹 브라우저에서 자바스크립트로 html 파일을 동적으로 만든다고 하셨습니다.그럼 이 형태가 CSR 인건가요? 둘의 흐름이 비슷해 보여서요... 아니라면 어떤 점이 다른지 알려주세요!답변 주시면 감사하겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오타 제보합니다!
ver.23-01-03상품 서비스 개발 부분(48p)에 상품 서비즈 코드 -> 상품 서비스 코드 오타가있습니다!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 코드 오류
12:34 테스트가 통과해야하는데 오류가 나고 못찾겠어요오류 메시지를 보면 <jpabook.jpashop.exception.NotEnoughStockException> 를 기대했지만<org.springframework.dao.InvalidDataAccessApiUsageException>이 나왔는데 디버그를 돌려보니까이 줄에서 멈춥니다. itemId가 null인게 문제일까요??근데 희안한건 상품주문 테스트는 또 통과가 됩니다 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradle build 오류
[질문 내용]gradle이 build 되지 않습니다project와 gradle setting 환경변수 설정 했습니다.idea 폴더를 삭제하고 다시 프로젝트도 열어봤지만 그대로입니다어떻게 해결해야 할까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MessageSource 질문입니다.
자료에서"MessageSource 를 스프링 빈으로 등록하지 않고, 스프링 부트와 관련된 별도의 설정을 하지 않으면 messages 라는 이름으로 기본 등록된다. 따라서 messages_en.properties , messages_ko.properties , messages.properties 파일만 등록하면 자동으로 인식된다" 라는 말은 messages_en.properties , messages_ko.properties , messages.properties 파일등록과 상관없이 application.properties에spring.messages.basename=messages가 기본으로 등록되있고 MessageSource 도 스프링 부트를 사용하면 자동으로 스프링 빈으로 등록되있기 때문에 파일만 등록해서 사용하면 된다.라고 이해하면 될까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
/hello 페이지 Whitelabel Error
안녕하세요? 4강 진행하면서 HelloController 생성 및 hello 메소드까지 작성하여 static/index.html에 연결하였습니다.이후 재기동까지 수행했지만, /hello 페이지 진입 시, 500 오류와 함께 Whitelabel Error가 발생합니다.서버 Console에서 발생하는 오류 메시지는 아래와 같습니다.2023-04-05 15:52:05.474 ERROR 24049 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template [hello], template might not exist or might not be accessible by any of the configured Template Resolvers] with root causeorg.thymeleaf.exceptions.TemplateInputException: Error resolving template [hello], template might not exist or might not be accessible by any of the configured Template Resolversbuild.gradle의 thymeleaf 라이브러리 의존성도 제대로 선언되어 있고, 라이브러리도 정상적으로 참조되고 있는 것 같은데, 원인을 찾기가 쉽지 않네요 ㅠ아래의 구글 드라이브 링크에 해당 프로젝트를 압축하여 첨부하였습니다. 확인 부탁드립니다.https://drive.google.com/file/d/1tdu2p3HdwYLbzWLmVOUBGUsPW3qljb1F/view?usp=share_link
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
invalid source 에러 <빌드하고 실행하기>
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. > Task :compileJava FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':compileJava'.> invalid source release: 11* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.org이렇게 에러가 뜨는데 같은 에러 뜬 분들 블로그와 글들 확인하고 버전도 다 맞췄는데 자꾸 에러 뜹니다... 도와주세요 ㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Model 파라미터
감사합니다! 항상 강의 잘 듣고 있습니다.1. 3:34초에 Model로 넘어왔다고 말씀하시는데 어떤 Model이 넘어온 것인가요?2. Model이 파라미터로 넘어온다면 "member"라는 이름에 member를 넣어서 view에 넘겨줍니다. 그렇다면 파라미터로 받는 것이 아니라 model을 save함수 안에서 선언해서 사용할 수는 없는 건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
M is not mapped
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.코드 확인 다 해봤는데 틀린게 없습니다. 그런데 종합 테스트를 해보니깐 M is not mapped라는 오류가 자꾸 발생합니다. 제가 생각하기에는 List<Member> result = em.createQuery("select m from m where m.name = :name", Member.class) 이부분에서 에러를 던지는거 같은데 어떻게 해결해야 할지 모르겠어서 질문 남깁니다. 밑에는 오류 캡처본입니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
properties 파일 이름은 규칙인가요 >?
messages_##.properties ##에 들어가야 하는 단어는 영어면 en, 한국어면 kr과 같이 이름의 규칙이 정해져 있는 건가요 ? 그리고 ##에 아무것도 넣지 않는 messages.properties가 default로 선택되는 건가요 ?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
type= "button", type="submit"의 차이
addForm.html에서<form action="item.html" th:action th:object="${item}" method="post"> <hr class="my-4"> <div class="row"> <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록</button> </div> <div class="col"> <button class="w-100 btn btn-secondary btn-lg" onclick="location.href='items.html'" th:onclick="|location.href='@{/form/items}'|" type="button">취소</button> </div> </div> </form>상품등록은 type="submit"취소는 type="button" 을 하셨길래 그 차이가 궁금하여 구글링을 해봤더니 버튼은 타입 명시가 없다면 기본적으로 'submit' 처리가 되며 'submit'은 새로고침을 하게 한다. 라는 것을 알게되었습니다.그래도 잘 이해가 안되 상품등록버튼을 type="button"으로 바꿔봤더니 작동이 되지않았습니다...<기존코드><button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록</button><변경 코드><button class="w-100 btn btn-primary btn-lg" type="button">상품 등록</button>그래서 개발자도구를 보니 type="button"을 하면 POST가 아닌 GET으로만 보내고 있는 것을 확인했습니다.<정리>form 속성 중 method가 post인데 상품등록버튼을type="submit"에서 type="button"으로 바꾸면 POST가 GET으로 바뀌는 이유가 궁금합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문, 주문상품 엔티티 개발 중에
cancel 메소드에서 getItem으로 쓰셨는데 그냥 getItem이 아닌 item으로item.addStock(count) 이렇게 쓰면 안되는 건가요?안된다면 이유는 무엇인가요??
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
13강 오류질문
URL문제라고 하는데,,잘 모르겠습니다 도와주세요!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 새 프로젝트 생성시 gradle 없음
[질문 내용]맨 처음 만든 프로젝트에는 gradle 이 잘 뜨는데 새 프로젝트를 만들고는 gradle이 생성이 안됩니다. 캐쉬 삭제도 해봤는데 생기지가 않네요,, 화면처럼만 뜹니다1.gradle 생성 방법을 알려주세요.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
ThreadLocal을 사용하는 이유에 대한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ThreadLocal을 사용하는 이유가 쓰레드는 기본적으로 다른 쓰레드와 리소스를 공유하게 되는데 커넥션을 반환했다가 다시 가져오는 과정에서 혹여나 다른 요청으로 인해 커넥션을 다른 요청이 가져가 버릴까봐 ThreadLocal을 사용하여 하나의 요청에서 계속 사용할 수 있게하기 위해서인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품등록 버튼과 취소버튼의 차이
addForm.html에서<div class="row"> <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록</button> </div> <div class="col"> <button class="w-100 btn btn-secondary btn-lg" onclick="location.href='items.html'" th:onclick="|location.href='@{/form/items}'|" type="button">취소</button> </div> </div>상품등록은<form action="item.ht ml" th:action th:object="${item}" method="post">에 의해 @PostMapping("/add")으로 이동합니다.하지만 취소는th:onclick="|location.href='@{/form/items}'|"onclick을 설정하여 다른 url로 갑니다. 같은 form 속성에 있더라도 onclick을 추가하면독립적인(?) 동작을 하는 것으로 보이는데(1)그러면 실무에서 한 html에(한 화면에) 수많은 버튼이 있다면 사용자의 데이터를 가져가야할 버튼은 form속성을 이용하여 만들고(예로들어 상품 등록, 상품 수정 저장 버튼)사용자의 데이터가 필요없고 url이동만 필요한 경우 onclick을 추가하여 버튼을 만드는 것인가요??(예로들어 취소, 목록 버튼 같은 경우)(2)상품등록은 type="submit"취소는 type="button" 을 하셨길래 그 차이가 궁금하여 구글링을 해봤더니 버튼은 타입 명시가 없다면 기본적으로 'submit' 처리가 되며 'submit'은 새로고침을 하게 한다. 라는 것을 알게되었습니다. 그래도 잘 이해가 안되 상품등록버튼을 type="button"으로 바꿔봤더니 작동이 되지않았습니다...그래서 개발자도구를 보니 type="button"을 하면 POST가 아닌 GET으로만 보내고 있는 것을 확인했습니다. 왜 GET으로만 보내는 지 구글링을 해보았지만 답을 찾을 수 가 없었습니다. 알려주시면 정말 감사하겠습니다.
-
해결됨토비의 스프링 부트 - 이해와 원리
스프링부트가 @EnableConfigurationProperties를 사용하는 이유
안녕하세요! 토비님!강의 정말 잘 듣고 있습니다. 덕분에 공부가 많이 되고 있어요. 강의 내주셔서 정말 감사합니다 :) 해당 강의를 듣고 나서, @Import가 더 간결해보이는데, 스프링 부트는 왜 굳이 @EnableConfigurationProperties()를 사용했을까? 라는 의문이 들어 아래와 같은 작은 고민을 해보았습니다.처음에는 ServerProperties 빈 등록을 자동화 하기 위한 장치라고 생각했는데, 두 애너테이션 모두 클래스명을 일일히 적어주어야 하는걸 보니 자동화를 위한 것은 아닌 것 같다는 생각이 들어, 고민의 방향을 바꿔 보았습니다.결론적으로, 저는 "@EnableConfigurationProperties()를 사용하는 이유가 @Import만으로는 어떠한 추가적인 행위를 할 수 없기 때문에 @EnableConfigurationProperties를 구현해서 사용한 것 아닐까..?"라고 추측이 되는데, 스프링 부트에서 @EnableConfigurationProperties() 라는 애너테이션을 도입한 이유가 무엇일까요..?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
자바 버전 변경/각종 의존성 변경해도 해결되지가 않습니다 ㅜ
plugins { id 'java' id 'org.springframework.boot' version '2.7.1' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'jpabook' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' //추가 implementation 'org.springframework.boot:spring-boot-starter-validation' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } } test { useJUnitPlatform() }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Cannot resolve symbol 'String'
[질문 내용]1.MemoryMemberRepository를 실행하는데 String이 에러가 뜹니다. 구글링을 토대로 캐쉬 삭제, jdk 확인 까지 다해보았는데도 자꾸만 에러가 뜨네요.. 왜이러는 걸까요??? 2.그리고 jdk 설정이 문제라면 어떻게 설정 해야 옳은걸까요??