묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
no matching variant 오류가 해결되지 않습니다.
아래 링크에서 지시한데로 https://www.inflearn.com/questions/1232895/no-matching-variant-%EC%98%A4%EB%A5%98 6번까지 다 수행했는데 아래와 같은 메세지가 뜹니다. 지원되지 않는 Gradle JVM.빌드가 현재 Java 17.0.10와(과) Gradle 6.8.2을(를) 사용하도록 구성되었습니다.가능한 솔루션:- Java 15을 Gradle JVM으로 사용: Gradle 설정 열기- Gradle 8.5(으)로 업그레이드하고 다시 동기화- Gradle 7.2(으)로 업그레이드하고 다시 동기화] "Gradle 8.5(으)로 업그레이드하고 다시 동기화하"를 클릭하니까 아래와 같은 메세지가 뜨고, 어노테이션도 인식 못하네요???Cannot use connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-8.5-bin.zip' as it has been stopped.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
오류메시지 우선순위
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]오류코드가 구체적=>덜구체적 순으로 우선순위를 가진다는 것은 이해가 됐습니다.근데 만약 전체적으로 required(필수값 입니다.)로 메시지를 설정하고 싶고, 상품관련 화면에서만 required.item.itemName(상품 이름은 필수값입니다.)를 설정하고 싶다고 할 때필수값 입니다. 로 나타내고 싶은 화면도 모두 상품 이름은 필수값입니다. 라고 나타날 텐데 이런 경우에는 어떻게 사용하나요?아에 다른 에러코드명으로 생성 후 소스 수정해야하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 세션 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 로그인을 하면 세션 생성후 session.setAttribute해서 멤버정보를 넣어둘텐데그러면 타임리프에서 유저의 정보를 모델에서가 아닌 세션에서 꺼내는건 혹시 어떻게 생각하시나요?html두개로 로그인한쪽의 html에서 th:text="${member.name}" 이 아닌th:if="{session.loginMember} != null" th:text="${session.loginMember?.userId}" 이렇게 구현하면은 html 파일 하나로도 구현할수있을거같아 강사님의 생각은 어떠하신지 여쭈어보고싶습니다! 또 한가지는 로그인을 한 상태에서 로그인url (/login)로 이동되는건 컨트롤러에서 막아야할지 혹은 인터셉터로 막아야할지 고민이라 이것에 대해서도 여쭙고싶습니다 ㅜㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 프로젝트 초기 세팅을 initializer 웹페이지를 통해 하는 이유가 있나요??
인텔리제이에서 새로운 프로젝트를 열 때, spring initializer를 선택하면 initializer페이지와 같은 항목이 뜨는데 인텔리제이에서 세팅하는 것 보다 사이트를 이용할 때 장점이 있을까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http 메시지 컨버터 호출에 대해 질문드립니다.
안녕하세요.다른 학생분들의 질문 중https://www.inflearn.com/questions/858726/%EC%A0%9C%EA%B0%80-%EC%83%9D%EA%B0%81%ED%95%98%EA%B3%A0-%EC%9E%88%EB%8A%94-%EB%8F%99%EC%9E%91%EA%B3%BC%EC%A0%95-%ED%94%BC%EB%93%9C%EB%B0%B1%EC%9D%84-%EB%B6%80%ED%83%81%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4이 글을 보았습니다. 6-2. 위의 경우가 아니면, ReturnValueHandler는 반환 값의 타입에 따라 적절한 HttpMessengerConverter를 통해 응답 메세지를 생성 후, ... 라고 되어있는데,@ResponseBody가 붙어있지않거나 HttpEntity 객체를 반환하는게 아니라면, ReturnValueHandler가 굳이 HttpMessgeConverter 를 호출하지않아도 되지않나요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
V5 회원등록 404 오류
/front-controller/v5/v3로 바꾸어도 안되어서요.도움 주시면 감사하겠습니다. https://drive.google.com/file/d/1JVYX7_d3zUXJIrh2xICiBdLCFaufUCBR/view?usp=sharing
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Ssr을 이용하면서 csr도 같이 이용할 수 있나요?
Sar은 서버에서 백엔드 개발자가 직접 화면을 보여주기 위해 사용하고Csr은 프론트 개발자가 서버로부터 받은 api를 이용하여 클라이언트에서 직접 화면을 보여주는 기능으로 이해하였습니다.이때 ssr만을 이용하여 프론트엔드 개발자 없이 웹을 개발할. 수 있고 csr을 이용하려면 백엔드 개발자는 ssr을 사용하지 않고 반환되는 api만 프론트 개발자에게 잘 전달해주면 되는건가요? 그렇다면 csr을 이용하는 프론트 개발자와 같이 협업을 한다면 백엔드 개발자는 ssr을 이용할 필요 없이 json만 잘 전달해주면 되는것 이고 굳이 ssr, csr을 같은 프로젝트에서 사용할 이유는 없는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MeberServiceIntegrationTest 회원가입 실행 오류 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 고생많으십니다.MeberServiceIntegrationTest 회원가입 실행 중 오류 발생으로 db에 저장되지 않아 질문드립니다.아래와 같은 오류가 발생하며,WARNING: A Java agent has been loaded dynamically (/Users/jisung/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.14.12/be4984cb6fd1ef1d11f218a648889dfda44b8a15/byte-buddy-agent-1.14.12.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 커뮤니티 질문 목록을 보며 gradle 자버 버젼도 확인하고 인텔리제이 버젼도 확인하여 자바 17로 변경 하였지만 그대로 오류가 발생하였습니다. 로컬 문제인가 생각이 들어 로컬 자바도 17로 변경 하였지만 똑같은 오류가 발생하여 질문 드립니다.아래는 파일 공유 링크입니다.https://drive.google.com/drive/folders/1_Jhjekr157fqxOS2_QQ8wcULOdMo2qVQ?usp=sharing
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프를 이용해 동적으로 html을 생성하기전 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.동영상 7분경에 나오는 localhost:8080/basic/items페이지가 에러가 뜹니다. 강의에 나온 내용을 모두 동일하게 따라갔는데 이유를 모르겠습니다
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
뷰에 대해 질문 있습니다.
안녕하세요.강의교재 6. 스프링 MVC - 기본기능의 38페이지에뷰 템플릿뷰 템플릿을 거쳐서 HTML이 생성되고, 뷰가 응답을 만들어서 전달한다.라고 되어있습니다. 제가 이해하기로는 디스패처 서블릿이 render(model)을 호출함으로써 뷰가 만들어지고 이를 클라이언트로 서블릿이 보내는 것으로 알고 있었어서,'뷰가 응답을 만들어서 전달한다' 라는 말이 이해가 되지 않습니다. 설명해주시면 감사하겠습니다!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
public class MemoryMemberRepository implements MemberRepository 오류
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]public class MemoryMemberRepository implements MemberRepository이 부분을 import 하려고하면 java.lang.reflect.Member member이게 import가 됩니다.그래서 다른 분들의 질문을 보고 import hello.hellospring.domain.Member;로 변경해봤습니다.그래도 계속해서 java: hello.hellospring.repository.MemoryMemberRepository is not abstract and does not override abstract method findAll() in hello.hellospring.repository.MemberRepository 이러한 오류가 발생합니다.전에 파일 경로중에 한글로 된 경로가 있어서 바꿔서 그 이후 잘 되다가 이번에도 이러네요 왜 그런가요? 코드와 오류 메시지 같이 올리겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
현재 index.html이 뜨지 않고, 이전에 실행한 index.html화면이 뜹니다.
밸리데이션 프로젝트 index.html 입니다. 이 상태로 실행했는데 화면에는 폼 프로젝트 화면이 뜹니다. (이 프로젝트 실행전에 폼프로젝트를 실행했었습니다.)새로고침을 해도, 다시 시작해도, 새화면에서 띄워도 마찬가지입니다. index.html 파일을 삭제하고 새로 만들면 정상 화면이 뜨는데 이유가 뭘까요? (다른 프로젝트 실행때도 동일한 현상이 계속 나타났었습니다)
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
8:16초 컨트롤러의 파라미터에 질문이 있습니다.
이전 버전에서는 파라미터로 HttpServletRequest와 Response를 받았는데 V3버전부터 반환을 ModelView로 하는 이유와 그 파라미터로 맵이 사용되는 이유 그리고 맵의 키 벨류가 String 인데 각각이 어떤 값이 매칭되는건지 이해가 안됩니다. 지금 다시 복습하는 부분인데 다시 봐도 모르곘습니다…
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 자료 관련 문의
혹시 위 사진에 있는 이런 페이지(?)들 링크는 없는지 궁금해서 질문 남깁니다!!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 member 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]프로젝트 먼저 첨부합니다.https://drive.google.com/file/d/1xDPF5Zfm4ou2KgjOeroxDoAaXHuuiE9s/view?usp=sharing 중복회원예외와 회원가입 테스트에서 아래와 같은 오류가 발생합니다. org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement [Table "MEMBER" not found (this database is empty); SQL statement:select m1_0.id,m1_0.name from member m1_0 where m1_0.name=? [42104-224]] [select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?]; SQL [select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?] Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement [Table "MEMBER" not found (this database is empty); SQL statement:select m1_0.id,m1_0.name from member m1_0 where m1_0.name=? [42104-224]] [select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found (this database is empty); SQL statement:select m1_0.id,m1_0.name from member m1_0 where m1_0.name=? [42104-224] 이 오류가 뜨기 전에도 실행은 되나, 테이블이 생성이 되지 않았는지 h2에서 select * from member; 했을 때 아무것도 나오지 않는 문제가 있었습니다. 더하여 http://localhost:8080/ 이 연결거부됐다고 나오면서 아예 접속이 되지 않습니다. 어떤 부분에 오류가 있을까요? 계속 다른 오류들이 나오면서 조금씩 수정해봤던 것이라 어디서부터 잘못된지도 잘 모르겠습니다,,
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필드 오류 메세지를 골라 쓸수는 없나요?
메세지를 관리하는 공통 관리팀에서필드에 대한 required 메세지 4가지를 정의해 놨다고 가정할 때required.item.itemName=상품 이름은 필수입니다. required.itemName=이름은 필수입니다. required.java.lang.String = 필수 문자입니다. required = 필수 값 입니다.아래 명령어는bindingResult.rejectValue("itemName","required");required.item.itemName으로 정의된 에러 메세지(상품 이름은 필수입니다.)만 불러 올 수 있는거죠?개발자가 네가지 오류 메세지 중에서 선택해서 사용할 수 있는 방법은 없나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
쿼리파라미터 타임리프 param에 대해 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]<h2 th:if="${param.status}" th:text="'저장 완료'"></h2>이거와 같이 status를 모델에 안담고 바로 사용하는 것을 볼 수 있는데 그럼 item객체 모델도 model.addattribute 사용 안하고 바로 html에서 ${param.item.id}로 사용 할 수 있나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
redirect 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품등록과 상품수정코드에서 redirect부분코드를 보면@PostMapping("/add") public String addItemV5(Item item) { itemRepository.save(item); return "redirect:/basic/items/" + item.getId(); } @PostMapping("/{itemId}/edit") public String edit(@PathVariable Long itemId, @ModelAttribute Item item) { itemRepository.update(itemId, item); return "redirect:/basic/items/{itemId}"; }이렇게 배웠는데 상품등록폼에서 리다이렉트로 상품 수정처럼 @PathVariable 해주고 리다리렉트를 시키니 오류가 납니다. 이런식으로는 못하는건가요? @PostMapping("/add") public String addItemV5(@PathVariable Long itemId, Item item) { itemRepository.save(item); return "redirect:/basic/items/{itemId}"; } 안되는이유가 혹시 addForm.html에서 itemid로 넘겨주는 요청이 없어서 인가요? 더 자세하게 알려주시면 감사하겠습니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
데이터베이스 테이블에서 해당 컬럼을 찾을 수 없음이 뜹니다.
JPA 코드를 다 작성하고 실행하려고 할 때 DB에서 해당 컬럼을 찾을 수 없다고 뜨네요아래는 에러코드입니다.org.hibernate.exception.SQLGrammarException: could not prepare statement [Column "M1_0.USERNAME" not found; SQL statement: select m1_0.id,m1_0.username from member m1_0 where m1_0.username=? [42122-224]] [select m1_0.id,m1_0.username from member m1_0 where m1_0.username=?]package hello.hellospring.repository; import hello.hellospring.domain.Member; import jakarta.persistence.EntityManager; import jakarta.persistence.*; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository { private final EntityManager em; public JpaMemberRepository(EntityManager em) { this.em = em; } public Member save(Member member) { em.persist(member); return member; } public Optional<Member> findById(Long id) { Member member = em.find(Member.class, id); return Optional.ofNullable(member); } public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } public Optional<Member> findByName(String name) { List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream().findAny(); } } 위에는 JpaMemberRepository 코드이고아래는 테스트 코드입니다.테스트 코드에서 오류가 발생 할 때 memberService.join에 빨간 밑줄이 생깁니다.그리고 디버그 해보면 JpaMemberRepository 코드에서 findByName에 쿼리문 쪽에 문제가 발생했다고 뜹니다.. 코드는 다 똑같이 작성했는데 뭐가 문제일까요 ㅠㅠpackage hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test void 회원가입() { //given Member member = new Member(); member.setName("spring"); //when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() { //given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
build.gradle을 변경하면 오류가 납니다. 이유가 뭘까요?
validation 프로젝트 진행 중 build.gradle을 아래와 같이 변경하면 그래들 빌드 오류가 납니다.다른 프로젝트들을 진행할 때는 문제가 없었는데 이유가 뭘까요? A problem occurred configuring root project 'validation'.> Could not resolve all artifacts for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.4. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.4 plugins { id 'java' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4' } group = 'test' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }