inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

콘솔 한글 깨짐

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 현재 인프런에 나와있는 글깨짐 커뮤니티 글들과 인터넷을 찾아봐도 해결이 안되네요...ㅠㅠ 위 과정을 모두 해보았는데.....ㅜㅜ 또 다른 방법이 없을까요.....

  • spring
  • mvc
새싹 댓글 3 좋아요 0 조회수 668

무엇을 jar 해야하나요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 필자는 2분 57초까지 했을 때, 여기서 사진 마지막 부분에 ls로 무엇이 있는지 확인을 했는데 jar 파일이 두개가 떠서 저 경우에는 무엇을 jar 해야하는지 여쭙고 싶어요 + 강의에서 보면 ll 명령어를 사용하는데 저 명령어가 저는 없는 명령어라고 뜨는 것 같아서요, 뭐라쳐야하나요? 저 또한 MAC OS 입니다.

  • java
  • spring
  • mvc
  • spring-boot
yenn_l0 댓글 1 좋아요 0 조회수 407

실무에서 주로 사용하는 DB툴이 궁금합니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의에서는 주로 H2 데이터베이스를 활용해 강의를 진행해주시는데, 실무에서는 데이터베이스를 다룰 때 보통 어떤 툴을 사용하는 지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
이도현 댓글 1 좋아요 0 조회수 699

Cannot resolve regions

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. [add-form.html] 그대로 따라했는데 th:field=*{regions}에 에러가 생겼습니다. 원인이랑 해결 방법이 무엇일까요?

  • spring
  • mvc
아가미 댓글 1 좋아요 0 조회수 271

jdk , 인텔리제이의 버전을 맞췄는데도 오류가 뜹니다

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1&unitId=71216&tab=community&category=questionDetail&q=1133756 ㄴ 위의 질문 올린 분과 같은 오류가 떠서 Gradle Projects를 Gradle로 바꿨더니 아래와 같은 오류가 뜨네요 ,, 구글링 했더니 Build and Run을 인텔리제이로 바꾸라는 내용이 나오는데, 그렇게 하면 강의를 따라갈 수가 없어서요 ㅠㅠ 자바 버전을 맞추라는 내용도 있었지만 이미 다 맞춘 상태입니다 ,, 어디가 문제일까요 ?? 아래는 저의 환경설정 입니다

  • spring
  • mvc
dmsgpfhdns 댓글 2 좋아요 0 조회수 395

섹션7의 PRG Post/Redirect/Get 질문입니다.

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

섹션 7의 PRG Post/Redirect/Get에서요, 7:30에 retrun "basic/item"; 이 부분을 리다이렉트로 수정하시는데요, 혹시 basic/item 뷰페이지로 이동되지 않고 그대로 남는 이유가, 포스트요청이라서 리턴값을 뷰페이지로 취급하지 않는 것 아닌가해서요. 겟요청이였으면 저렇게 리턴을 했어도 뷰페이지로 자동 리다이렉트까지 되었지 않았을까요...? 그대로 남는 이유를 새로고침으로 인한 중복 오류를 중심으로 말씀해주시지만 리턴값과 연결해서 설명해주시지 않으셔서 헷갈리네요.

  • spring
  • mvc
오르골 댓글 1 좋아요 1 조회수 257

pip로 패키지를 설치했음에도 import 오류가 납니다. 어떻게 해야 할까요?

해결됨

실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)

기존 질문이 삭제되어 헷갈리실 다른 분들을 위해 자문자답 형태로 남겨둡니다. Python의 경우 어느 곳에서 다운로드 받느냐에 따라 다양한 경로에 다양한 버전이 생길 수 있습니다. 첨부해주신 사진을 봤을 때, /usr/bin/python3 를 통해 boto3를 import 하시려면, /usr/bin/pip3 를 통해 boto3를 다운로드 해주셔야 될 것 같습니다.( /usr/bin/python3 를 입력해서 실행했을 때와 python3 를 입력했을 때 버전을 비교해보시면 좋습니다.) 간단한 해결 방법으로는 /usr/bin/python3 가 아닌 그냥 python3 로 실행해주시면 될 것 같습니다. 만약 해결되지 않는다면, 현재 boto3가 설치된 경로에 있는 Python 실행 파일을 통해 파일을 실행해주시면 됩니다. 이런 번거로운 절차가 귀찮으시면, 1.3. Python 실행 단축키 설정 을 참고하셔서 실행 설정을 해주시고, vscode에서 cmd + shift + p 입력 후, Python: Select Interpreter 를 입력해주신 후에 실행하고 싶은 Python3 경로를 선택해주시면 됩니다. 또는, 우측 하단에 아래 그림과 같이 나오는 부분에서 버전을 클릭하시면 위 그림이 나오게 됩니다. 이후에는 cmd + enter 를 통해 쉽게 실행 가능합니다! 해보시고 안되시면 다시 말씀 부탁드리겠습니다.

  • python
  • aws
  • Terraform
  • devsecops
천강민 댓글 1 좋아요 0 조회수 700

@Transactional 롤백,,?

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

안녕하세요 강사님. 프로젝트 진행중에 간단한 테스트 작업 중 이상한 결과가 나와서 질문드립니다..! @Transactional @SpringBootTest @ActiveProfiles("test") class ProductListResponseDtoTest { @Autowired ProductRepository productRepository; @Test @DisplayName("주문 상세가 주어졌을 때 ProductListResponseDto 변환") public void ofWithOrderDetail() { Product product = Product.builder() .price(1000L) .name("빵빵이") .productNo("123") .build(); productRepository.save(product); OrderDetail orderDetail = OrderDetail.builder() .product(product) .price(product.getPrice()) .quantity(2L) .build(); // when ProductListResponseDto result = ProductListResponseDto.of(orderDetail); // then assertThat(result).extracting("productId", "productNo", "name", "price", "quantity") .contains(1L, "123", "빵빵이", 1000L, 2L); } @Test @DisplayName("상품과 수량이 주어졌을 때 ProductListResponseDto 변환") public void ofWithProductAndQuantity() { Long quantity = 2L; Product product = Product.builder() .price(1000L) .name("빵빵이") .productNo("123") .build(); productRepository.save(product); // when ProductListResponseDto result = ProductListResponseDto.of(product, quantity); // then assertThat(result).extracting("productId", "productNo", "name", "price", "quantity") .contains(1L, "123", "빵빵이", 1000L, 2L); } } @Transactional를 통해 각 테스트가 롤백되어 productId가 모두 1L 될 것으로 예상하였습니다. 그런데 기대와 달리 실패를 하였는데요. 첫번째 테스트(ofWithOrderDetail)의 productId의 값이 2L 되었습니다. insert문과 에러 메세지입니다. Hibernate: insert into product (category_id, created_at, deleted_at, discount_rate, is_own, is_subs, name, price, product_no, stock, thumb_img, updated_at, product_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, default) 2024-01-29T22:28:07.219+09:00 INFO 3636 --- [ main] p6spy : #1706534887219 | took 4ms | statement | connection 3| url jdbc:h2:mem:~/Marketbridge insert into product (category_id,created_at,deleted_at,discount_rate,is_own,is_subs,name,price,product_no,stock,thumb_img,updated_at,product_id) values (?,?,?,?,?,?,?,?,?,?,?,?,default) insert into product (category_id,created_at,deleted_at,discount_rate,is_own,is_subs,name,price,product_no,stock,thumb_img,updated_at,product_id) values (NULL,NULL,NULL,NULL,NULL,NULL,'빵빵이',1000,'123',NULL,NULL,NULL,default); 2024-01-29T22:28:07.299+09:00 INFO 3636 --- [ main] p6spy : #1706534887299 | took 0ms | rollback | connection 3| url jdbc:h2:mem:~/Marketbridge ; Hibernate: insert into product (category_id, created_at, deleted_at, discount_rate, is_own, is_subs, name, price, product_no, stock, thumb_img, updated_at, product_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, default) 2024-01-29T22:28:07.309+09:00 INFO 3636 --- [ main] p6spy : #1706534887309 | took 0ms | statement | connection 4| url jdbc:h2:mem:~/Marketbridge insert into product (category_id,created_at,deleted_at,discount_rate,is_own,is_subs,name,price,product_no,stock,thumb_img,updated_at,product_id) values (?,?,?,?,?,?,?,?,?,?,?,?,default) insert into product (category_id,created_at,deleted_at,discount_rate,is_own,is_subs,name,price,product_no,stock,thumb_img,updated_at,product_id) values (NULL,NULL,NULL,NULL,NULL,NULL,'빵빵이',1000,'123',NULL,NULL,NULL,default); 2024-01-29T22:28:07.317+09:00 INFO 3636 --- [ main] p6spy : #1706534887317 | took 0ms | rollback | connection 4| url jdbc:h2:mem:~/Marketbridge ; java.lang.AssertionError: [Extracted: productId, productNo, name, price, quantity] Expecting ArrayList: [2L, "123", "빵빵이", 1000L, 2L] to contain: [1L, "123", "빵빵이", 1000L, 2L] but could not find the following element(s): [1L] at com.objects.marketbridge.order.service.dto.ProductListResponseDtoTest.ofWithOrderDetail(ProductListResponseDtoTest.java:44) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) of 메서드 입니다. @Getter public class ProductListResponseDto { private Long productId; private String productNo; private String name; private Long price; private Long quantity; @Builder private ProductListResponseDto(Long productId, String productNo, String name, Long price,Long quantity) { this.productId = productId; this.productNo = productNo; this.name = name; this.price = price; this.quantity = quantity; } public static ProductListResponseDto of(Product product, Long quantity) { return ProductListResponseDto.builder() .productId(product.getId()) .productNo(product.getProductNo()) .name(product.getName()) .price(product.getPrice()) .quantity(quantity) .build(); } public static ProductListResponseDto of(OrderDetail orderDetail) { return ProductListResponseDto.builder() .productId(orderDetail.getProduct().getId()) .productNo(orderDetail.getProduct().getProductNo()) .name(orderDetail.getProduct().getName()) .price(orderDetail.getProduct().getPrice()) .quantity(orderDetail.getQuantity()) .build(); } } 현재 Product 엔티티의 Id는 @GeneratedValue(strategy = GenerationType.IDENTITY) 로 이루어져 있습니다. 추가적으로 @ActiveProfiles("test")에 해당하는 yml의 일부는 아래와 같습니다. datasource: url: jdbc:h2:mem:~/Marketbridge driver-class-name: org.h2.Driver username: sa password: jpa: hibernate: ddl-auto: none show-sql: true properties: hibernate: format_sql: true default_batch_fetch_size: 100 defer-datasource-initialization: true h2: console: enabled: true 이런 경우는 처음이라 어디가 잘못됐는지 찾지 못하겠네요 ㅠㅠ

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
모깅 댓글 1 좋아요 0 조회수 438

한글 파일명 첨부파일 다운

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.안녕하세요영어로된 첨부파일 다운받는 과정까지 잘됩니다. 그런데 첨부파일명이 한글인 것을 다운클릭하면 안되고 화면에 다깨진 글씨만 보여줘서 마치 content_disposition추가하기 전처럼 뜨네요.... 방법이 없나요

  • spring
  • mvc
댓글 1 좋아요 0 조회수 428

섹션7. 상품상세

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

<div class="col"> <button class="w-100 btn btn-primary btn-lg" onclick="location.href='editForm.html'" th:onclick="|location.href='@{/basic/items/{itemId}/edit(itemId=${item.id})}'|" type="button">상품 수정</button> </div> 여기서 타임리프 문법에서 th:|location.href='@{/basic/itesm/${ item.id }/edit 로 하면 http://localhost:8080/basic/items/$%7Bitem.id%7D/edit 이런식으로 url이 생기는데, 왜 그런건가요? 이전에 상품목록-타임리프 강의에서는 <td><a href="item.html" th:href="@{/basic/items/{itemId}(itemId=${item.id})}" th:text="${item.id}">회원 아이디</a></td> <td><a href="item.html" th:href="@{|/basic/items/${item.id}|}" th:text="${item.itemName}">상품명</a></td> 이렇게 URL 표현식으로 쓸 수 있다고 배웠어서요! 감사합니다!

  • spring
  • mvc
euneun 댓글 2 좋아요 0 조회수 290

세션 질문

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이전 강의에서 세션을 직접 만들 때는 세션저장소에는(sessionId, Member 객체) 쿠키에는 (session_cookie_name, sessionId) 이런 식으로 mapping이 되었는데, 이번 강의에서 보면 session.setAttribute에서 (session_name, Member객체)와 같이 mapping이 되는 것을 볼 수 있습니다. 세션 id를 별도로 저장을 하는 과정이 없는데 자동으로 (session_name, sessionID)를 세션저장소에 저장해준다 라고 이해해도 괜찮을까요?

  • spring
  • mvc
sde101573 댓글 1 좋아요 1 조회수 280

jsp를 사용하면 왜 war 파일을 사용하나요?

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 김영한 선생님의 스프링 mvc 1편 - 6강을 듣다가 궁금한 점이 있어서 질문 올립니다. jsp를 사용하면 왜 war 파일을 사용해야하나요? 서블릿 컨테이너가 필요한거면 springboot안에 내장 서버가 있으니깐 그것을 이용하면 되는 거 아닌가요? jar와 war 배포 차이점에 대한 자세한 설명 부탁드립니다

  • spring
  • mvc
올빼미 댓글 1 좋아요 1 조회수 801

Spring boot 3 gradle에 jstl 수정해도 에러 발생하네요

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

members.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>member list</title> <meta charset="UTF-8"> </head> <body> <a href="/index.html">메인</a> <table> <thead> <tr> <th>id</th> <th>username</th> <th>age</th> </tr> </thead> <tbody> <c:forEach var="item" items="${members}"> <tr> <td>${item.id}</td> <td>${item.username}</td> <td>${item.age}</td> </tr> </c:forEach> </tbody> </table> </body> </head> </html> build.gradle plugins { id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'war' } configurations { compileOnly { extendsFrom annotationProcessor } } group = 'org.example' version = '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { testImplementation platform('org.junit:junit-bom:5.9.1') testImplementation 'org.junit.jupiter:junit-jupiter' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok:1.18.28' annotationProcessor 'org.projectlombok:lombok:1.18.28' //providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' //JSP 추가 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0' //스프링부트 3.0 이상 implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0' //스프링부트 3.0 이상 implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl:3.0.1' //Error 스프링부트 3.0 이상 } test { useJUnitPlatform() } 안녕하세요. spring boot 3 에서 jstl 사용을 위해 gradle에 위 내용처럼 추가하였는데 NoClassDef Err 발생합니다. 2024-01-29 15:07:48.054 ERROR 9200 --- [nio-8080-exec-4] a.c.c.C.[.[.[.[frontControllerServletV1] : Servlet.service() for servlet [frontControllerServletV1] in context with path [] threw exception [java.lang.NoClassDefFoundError: jakarta/servlet/jsp/tagext/TagLibraryValidator] with root cause java.lang.ClassNotFoundException: jakarta.servlet.jsp.tagext.TagLibraryValidator at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na] at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na] at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[na:na] at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[na:na] 프로젝트 클린, gradle refresh 다해봤는데 안되네요

  • spring
  • mvc
developer_BackEnd 댓글 4 좋아요 2 조회수 1934

에러 발생

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 조건에 맞지 않게 입력해도 상품에 등록되는 에러가 발생하였습니다. 해결시도 1.에러 프로퍼티의 문제였나 2.맵핑의 문제였나 3.validate의 오류인가 3가지를 시도하였는데 해결하지 못하였습니다. https://drive.google.com/file/d/1bMqOTrLsq7HF0NjU8I6er9jHgW9NvEBW/view?usp=drive_link 코드입니다

  • spring
  • mvc
봉준 댓글 1 좋아요 0 조회수 499

FrontControllerServletV5 null 오류

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] java.lang.NullPointerException: Cannot invoke "hello.servlet.web.frontcontroller.ModelView.getViewName()" because "mv" is null at hello.servlet.web.frontcontroller.v5.FrontControllerServletV5.service (FrontControllerServletV5.java:5 7) ~[classes/:na] at jakarta.servlet.http.HttpServlet.service (HttpServlet.java:61 4) ~[jakarta.servlet-api-6.0.0.jar:6.0.0] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:20 5) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:14 9) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:5 1) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:17 4) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:14 9) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:10 0) ~[spring-web-6.1.1.jar:6.1.1] at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:11 6) ~[spring-web-6.1.1.jar:6.1.1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:17 4) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:14 9) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.springframework.web.filter.FormContentFilter.doFilterInternal (FormContentFilter.java:9 3) ~[spring-web-6.1.1.jar:6.1.1] at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:11 6) ~[spring-web-6.1.1.jar:6.1.1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:17 4) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:14 9) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:20 1) ~[spring-web-6.1.1.jar:6.1.1] at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:11 6) ~[spring-web-6.1.1.jar:6.1.1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:17 4) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:14 9) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:16 7) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:9 0) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:48 2) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:11 5) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:9 3) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:7 4) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:34 0) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:39 1) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:6 3) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process (AbstractProtocol.java:89 6) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.tomcat.util.ne t.NioEndpoint$SocketProcessor.doRun (NioEndpoint.java:174 4) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.tomcat.util.net.SocketProcessorBase.ru n (SocketProcessorBase.java:5 2) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:119 1) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.tomcat.util.threads.ThreadPoolExecutor $Worker.ru n (ThreadPoolExecutor.java:65 9) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at org.apache.tomcat.util.threads.TaskThread $WrappingRunnable.ru n (TaskThread.java:6 1) ~[tomcat-embed-core-10.1.16.jar:10.1.16] at java.base /java.lang.Thread.ru n (Thread.java:83 3) ~[na:na] --- package hello.servlet.web.frontcontroller.v5; import hello.servlet.web.frontcontroller.ModelView; import hello.servlet.web.frontcontroller.MyView; import hello.servlet.web.frontcontroller.v3.ControllerV3; import hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3; import hello.servlet.web.frontcontroller.v3.controller.MemberListControllerV3; import hello.servlet.web.frontcontroller.v3.controller.MemberSaveControllerV3; import hello.servlet.web.frontcontroller.v5.adapter.ControllerV3HandlerAdapter; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @WebServlet(name = "frontControllerServletV5" , urlPatterns = "/front-controller/v5/*") public class FrontControllerServletV5 extends HttpServlet { private final Map<String,Object> handlerMappingMap = new HashMap<>(); private final List<MyHandlerAdapter> handlerAdapters = new ArrayList<>(); public FrontControllerServletV5() { initHandlerMappingMap(); initHandlerAdapters(); } private void initHandlerMappingMap() { handlerMappingMap.put("/front-controller/v5/v3/members/new-form", new MemberFormControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members/save", new MemberSaveControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members", new MemberListControllerV3()); } private void initHandlerAdapters() { handlerAdapters.add(new ControllerV3HandlerAdapter()); } @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Object handler = getHandler(request); if (handler == null) { response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } MyHandlerAdapter adapter = getHandlerAdapter(handler); ModelView mv = adapter.handle(request, response, handler); MyView view = viewResolver(mv.getViewName()); view.render(mv.getModel(),request,response); } private Object getHandler(HttpServletRequest request) { String requestURI = request.getRequestURI(); return handlerMappingMap.get(requestURI); } private MyHandlerAdapter getHandlerAdapter(Object handler) { MyHandlerAdapter a; for (MyHandlerAdapter adapter : handlerAdapters) { if(adapter.supports(handler)){ return adapter; } } throw new IllegalArgumentException("handler adapter를 찾을 수 없습니다. handler = "+handler); } private static MyView viewResolver(String viewName) { return new MyView("/WEB-INF/views/" + viewName + ".jsp"); } } --- 이런 오류가 발생하는데 어디가 문제인제 잘 모르겠습니다..왜 이런걸까요?ㅠㅠㅠ

  • spring
  • mvc
김나무 댓글 1 좋아요 0 조회수 377

JPA 17분 오류 발생

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

강의 17분에서 통합테스트 돌렸는데 이런 오류가 뜹니다. 어딜 하나 건드려서 지금 오류가 전부 뜨는 것 같은데 클래스가 너무 많아서 어디가 오류인지도 잘 모르겠습니다.. 답변 기다리겠습니다. Hibernate: select m1_0.id,m1_0.name from member m1_0 where m1_ 0.name =? 2024-01-28T22:17:30.817+09:00 WARN 11685 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 42104, SQLState: 42S04 2024-01-28T22:17:30.817+09:00 ERROR 11685 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : 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-214] 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-214]] [select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?] at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:64) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:56) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:187) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:76) at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.lambda$list$0(JdbcSelectExecutorStandardImpl.java:102) at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:226) at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet(DeferredResultSetAccess.java:163) at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:254) at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:134) at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:19) at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:66) at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:198) at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33) at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:361) at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:168) at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.list(JdbcSelectExecutorStandardImpl.java:93) at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:31) at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$0(ConcreteSqmSelectQueryPlan.java:110) at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:303) at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:244) at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:518) at org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:367) at org.hibernate.query.Query.getResultList(Query.java:119) at hello.hellospring.repository.JpaMemberRepository.findByName(JpaMemberRepository.java:34) at hello.hellospring.service.MemberService.validateDuplicateMember(MemberService.java:33) at hello.hellospring.service.MemberService.join(MemberService.java:27) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:756) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:756) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) at hello.hellospring.service.MemberService$$SpringCGLIB$$0.join(<generated>) at hello.hellospring.service.MemberServiceIntegrationTest.join(MemberServiceIntegrationTest.java:30) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)

  • java
  • spring
  • mvc
  • spring-boot
이성현 댓글 1 좋아요 0 조회수 466

api응답을 어떤 식으로 하면 좋을까요?

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

강의를 보고 혼자서 api를 만들어보고 있습니다. 강의 회원 가입 예제api는 void로 별도의 응답을 하지 않았는데 보통은 어떤 식으로 하나요? [ { "success" : "true" } ] 이런 식으로 나마 응답 값을 주는게 맞을까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
dev 댓글 1 좋아요 1 조회수 212

요약 정리 파일

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

혹시 선생님이 코드 치시는 부분 말고 요약 정리 하신 부분은 따로 파일이 없는 건가요? ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • spring
  • mvc
  • spring-boot
김학준 댓글 1 좋아요 0 조회수 470

ResponseBody 문자 반환은 JSON 형식으로 반환하는게 아닌건가요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

API가 객체를 JSON 형태로 바꿔서 반환하는 방식인데 ResponseBody 문자 반환의 경우 HTTP 바디에 문자 그대로 반환. ResponseBody 객체 반환의 경우 컨버터를 이용해 JSON 형태로 바꿔 반환 결국 두 경우 다 API 방식이지만 JSON 형태로 바꾸는건 객체 반환의 경우만 이렇게 이해하면 될까요? 아니면 후자만 API 방식인걸까요 ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • spring
  • mvc
  • spring-boot
Banksy 댓글 1 좋아요 0 조회수 414

persist 수행시 덮어 씌워져 버리는 문제

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] 영한님 강의에서는 위와 같이 두 행의 데이터가 잘 조회되는데, 2024 버전으로 설치한게 잘못인건지 두번 쿼리를 날렸는데 이전 행에 덮어 씌워져 버리는 현상이 있습니다... 이유가 뭔지 모르겠네요 혹시 아시는분 답변 부탁드려요

  • java
  • jpa
개발하는쿼카 댓글 5 좋아요 6 조회수 852

인기 태그

인프런 TOP Writers

주간 인기글