묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 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 접근 기술
강의 자료 관련 문의
혹시 위 사진에 있는 이런 페이지(?)들 링크는 없는지 궁금해서 질문 남깁니다!!
-
미해결
spring Security 구현중 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception 에러 발생
https://github.com/myungkeun02/spring_blog_3공부하고있는 코드입니다.제목 그대로 포스트맨으로 테스트중에Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception라는 에러가 발생합니다.구글링해서 문제가 발생할만한 부분을 모두 찾아 보았지만 해결이 안되어 글 올려봅니다.해결해주시는분께 아메리카노 쏩니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 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로 넘겨주는 요청이 없어서 인가요? 더 자세하게 알려주시면 감사하겠습니다!
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
프로젝트를 처음 시작시에 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 오류가 발생합니다.
spring: jpa: hibernate: ddl-auto: create show-sql: true datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/stock_example username: root password: 1234 # JPA 쿼리가 어떻게 나가는지 logging: level: org: hibernate: SQL: DEBUG type: descriptor: sql: BasicBinder: TRACEyml 설정은 위와 같이 하고 docker 이미지 확인시에 아래와 같이 작동하고 있습니다. igwangmin@igwangmin-ui-MacBookPro ~ % docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 03d3fae9019b mysql "docker-entrypoint.s…" 4 days ago Up 16 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql DB 조회 시에도 아래와 같이 나오는 데 혹시 제가 놓친 부분이 있을까요? mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | stock_example | | sys | +--------------------+ 5 rows in set (0.01 sec)
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
protected 사용 이유
안녕하세요! 해당 강의에서 기본 생성자를 추가해주실 때, public이 아니라 protected를 사용하셨는데, 그 이유가 무엇인가요?혹시라도 다른 곳에서 기본생성자를 사용하지 못하도록 하게 하기 위함인가요? 제가 자바가 안익숙해서 그런지, 이러한 접근 제어자를 쓰는 것이나, static, final 키워드를 언제 쓰거나 안써야 하는지에 대한 감이 별로 없어서 구분을 잘 못하는데, 이러한 실력은 어떤 경험을 더 쌓아야 할지.. 아니면 어떤 키워드를 어떻게 공부해야 더이상 안 헷갈리고 확실하게 알 수 있을지 궁금합니다...! 항상 친절한 강의 감사드립니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
server project import 시 에러 발생
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]server 프로젝트를 gradle import 시 아래와 같은 에러가 발생합니다.The supplied phased action failed with an exception.Could not open cp_init generic class cache for initialization script 'C:\2023-12-JAVA-DEVELOPER\spring-workspace\.metadata\.plugins\org.eclipse.buildship.core\init.d\eclipsePlugin.gradle' (~~\.gradle\caches\7.5\scripts\exvtfib8x4d7xhxmo1dku6nlm).BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65Unsupported class file major version 65 해결 방법이 궁금합니다.(+추가) 프로젝트의 gradle version을 최신 버전으로 높이니 import까진 성공했는데, src 폴더가 생성되질 않았습니다. 그냥 제가 수동으로 생성해서 쓰면 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 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() }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
no matching variant 오류???
인텔리제이를 처음 기동하면 아래 메세지가 뜹니다. 무슨 오류인가요?plugins { id 'java' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4' } group = 'hello' 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() }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
웰컴페이지를 못 찾는 것 같습니다.
최초 실행시에는 index.html 내용이 잘 떴었는데ValidationItemControllerV1 에서 오류를 처리하도록 프로그램을 수정한 후에 실행하니까 안되네요??? index.html 이 존재하고 있는데status 404 오류가 뜹니다.
-
미해결스프링 핵심 원리 - 기본편
servlet/jsp 사전학습
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]servlet/jsp 사전학습 없이 이 강의를 들어도 될까요?
-
미해결스프링 핵심 원리 - 기본편
OrderServiceTest에서의 getDiscountPrice()오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]getDiscountPrice부분에서 자꾸 오류가 납니다 ㅜㅜOrder패키지에 있는 클래스와 인터페이스 모두 학습자료와 동일하게 코드 작성하였습니다.어느 부분이 문제인지, 어떻게 고쳐야 할지 모르겠습니다 ㅜㅜ참고로 alt+enter로 문제해결하려고 해보았으나, getDiscountPrice를 toString으로 바꾸라고 나옵니다 .. ㅜㅜ