묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestParam 의 메서드 구분이해
@RequestParam 개념을 공부중인데 제가 이해한게 맞는지 여쭤보고 싶어서요 메서드의 파라미터 자리에 작성하는 애노테이션이다.파라미터의 이름과 같읕 메서드를 찾아 값을 바인딩 한다.void String event(@RequestParam (value=“abc”) String abc){ ~ }이라는 코드가 있을 때 abc의 값을 파라미터 abc의 값으로 저장해준다.이름이 같을 경우에는 void String event(@RequestParam String abc){ ~ } 으로 생략 가능하다. 이게 맞을까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
findByItemNameLikeAndPriceLessThanEqual 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]스프링 데이터 JPA 적용1 강의에서findByItemNameLikeAndPriceLessThanEqual 라는 쿼리메서드는'select i from Item where i.price<= ?' 라는 JPQL이 실행된다 라고했는데 'select i from Item i where i.itemName like :itemName and i.price <= :price'가 맞는거 아닌가해서요LikeAnd가 붙었는데 기존과 동일하다고 설명되어있길래 질문드려요
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
ItemMapper.xml 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ItemMapper.xml에 <insert> 코드가 강사님 코드하고 한 자도 안 틀리고 똑같은데 테스트에서 sql syntax 에러가 나서 강사님 코드를 붙여넣었는데 테스트가 정상으로 작동했습니다. 이상해서 코드를 한 줄씩 Ctrl + C, V 해가면서 테스트가 제대로 작동하는지 확인했는데 그래도 계속 syntax 에러가 났습니다. 코드 전체를 복사하고 붙였더니 테스트가 정상 작동했구요. 이런 경우가 가끔식 있는지 이건 어떤 경우인지 궁금해서 질문 남깁니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
BeanPropertyRowMapper 관련해서 질문 있습니다.
안녕하세요. 모든 필드가 final인 클래스에 BeanPropertyRowMapper는 사용 못하는건가요?? 빈 생성자는 생성하지 못해서 각 필드의 기본값으로 초기화 해주는 생성자를 만들었는데모든 필드가 final이라서 값이 변경이 되지 않아서 그런지 기본값으로 나오더라고요 코드는 아래와 같이 작성했습니다 그냥 RowMapper를 직접 만들어서 사용하는게 최선일까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Ajax request url 에러
My페이지를 개발하고 있습니다 (세션있음 id, 가입일 등등)Delete 쿼리만 ajax로 요청한 url이 콘솔창로 보면 제가 넣지않은 uri가 추가되어 나오고 404에러가 뜨는데 어떡하나요eclipse에서는 403에러로 뜹니다분명 컨트롤러 Postmapping 어노테이션 url과 전혀 다른게 없었습니다Delete 쿼리만 안되네요아니면 f12에서 원인 찾는법 알려주시면 감사하겠습니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 git bash로 빌드하고 실행할때 뜨는 에러(자바경로 위치관련에러)
ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation. 라고 뜨는데 따로 인텔리제이 설치하며 자바는 따로 설치 안했어요어떻게 하면 좋을까요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증에 순서를 지정하고 싶습니다 (죄송합니다 ㅜㅜㅜ)
이렇게 @GroupSequence 를 사용해서 검증의 순서를 정하고싶은데 예를 들자면 클라이언트에서 이메일을 작성할때 "ㅇㅇ" 이런 식으로 작성을 하면 @NotBlank 가 통과가 되고 @Email 이 실행이 되어야 하는거 같은데 실행이 되지 않습니다 그리고 실행이 안되는줄 알았지만 아래 아이디 비밀번호를 입력 하게되면 이때 형식에 맞지 않다는 오류 메시지가 나오게 됩니다, 어떻게 해야 할까요..package hello.instar.validation; import jakarta.validation.GroupSequence; import jakarta.validation.groups.Default; @GroupSequence({Default.class,ValidationGroups.NotBlankGroup.class, ValidationGroups.EmailGroup.class,ValidationGroups.SizeGroup.class, }) public interface ValidationSequence { }@NotBlank(groups = ValidationGroups.NotBlankGroup.class) @Email(groups = ValidationGroups.EmailGroup.class) private String email;springmvc
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring java 23설치했습니다.
제가 java기초강의에서 java23으로 공부했었는데이에따라 spring설치시 java23을 설치했습니다괜찮을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
실행문이 다르게 나옵니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]8080도 뜨지않고 메인 코드를 실행한후 사이트에 들어가도 에러메세지가 나오지 않습니다. 아래 다르게 나오는 출력문입니다.오후 7:46:36: 실행 중...> Task :helpWelcome to Gradle 8.10.2.To run a build, run gradle <task> ...To see a list of available tasks, run gradle tasksTo see more detail about a task, run gradle help --task <task>To see a list of command-line options, run gradle --helpFor more detail on using Gradle, see https://docs.gradle.org/8.10.2/userguide/command_line_interface.htmlFor troubleshooting, visit https://help.gradle.orgBUILD SUCCESSFUL in 122ms1 actionable task: 1 executed오후 7:46:37: 실행이 완료되었습니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
테스트 오류 ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] The object is already closed [90007-224]org.h2.jdbc.JdbcSQLNonTransientException: The object is already closed [90007-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:566) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.message.DbException.get(DbException.java:188) at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1422) at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:511) at hello.jdbc.service.MemberServiceV2.accountTransfer(MemberServiceV2.java:34) at hello.jdbc.service.MemberServiceV2Test.accountTransfer(MemberServiceV2Test.java:65) 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)> Task :test FAILEDMemberServiceV2Test > 정상 이체 FAILED org.h2.jdbc.JdbcSQLNonTransientException at MemberServiceV2Test.java:651 test completed, 1 failedFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/Users/user/Desktop/jdbc/jdbc/build/reports/tests/test/index.html* Try:> Run with --scan to get full insights.BUILD FAILED in 1s4 actionable tasks: 1 executed, 3 up-to-date 이런식으로 오류가 나는데 구글링해도 도저히 원인을 못찾겠네요ㅠㅠ 도와주세요 ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 메시지 소스사용 에러
@SpringBootTest public class MessageSourceTest { @Autowired MessageSource ms; @Test void helloMessage(){ String result = ms.getMessage("hello", null, null); Assertions.assertThat(result).isEqualTo("안녕"); } }코드 실행시 에러 발생인텔리제이jdk 11로 빌드 하였습니다 org.opentest4j.AssertionFailedError: Expecting: <"??"> to be equal to: <"안녕"> but was not. at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증의 순서를 지정하고 싶습니다.
이렇게 @GroupSequence 를 사용해서 검증의 순서를 정하고싶은데 예를 들자면 클라이언트에서 이메일을 작성할때 "ㅇㅇ" 이런 식으로 작성을 하면 @NotBlank 가 통과가 되고 @Email 이 실행이 되어야 하는거 같은데 실행이 되지 않습니다 그리고 실행이 안되는줄 알았지만 아래 아이디 비밀번호를 입력 하게되면 이때 형식에 맞지 않다는 오류 메시지가 나오게 됩니다, 어떻게 해야 할까요..package hello.instar.validation; import jakarta.validation.GroupSequence; import jakarta.validation.groups.Default; @GroupSequence({Default.class,ValidationGroups.NotBlankGroup.class, ValidationGroups.EmailGroup.class,ValidationGroups.SizeGroup.class, }) public interface ValidationSequence { }@NotBlank(groups = ValidationGroups.NotBlankGroup.class) @Email(groups = ValidationGroups.EmailGroup.class) private String email;
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증에 실패하면 addForm 으로 다시 보낼때 왜 리다이렉트 안하는가요 ?
@Controller @RequestMapping("/validation/v2/items") @RequiredArgsConstructor @Slf4j public class ValidationItemControllerV2 { private final ItemRepository itemRepository; private final ItemValidator itemValidator; @GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "validation/v2/addForm"; } @PostMapping("/add") public String addItemV6( @Validated @ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { //검증에 실패하면 다시 입력 폼으로 이동 if(bindingResult.hasErrors()) { log.info("errors = {}", bindingResult); return "validation/v2/addForm"; //TODO 이거는 왜 리다이렉트 안하지 ? } //에러에 안 걸려서, 이후는 성공 로직 Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/validation/v2/items/{itemId}"; } }위 코드에서 TODO 부분인데요검증에 실패했을때 addForm 으로 다시 보내는데, 리다이렉트를 안하더라구요그러면 브라우저에서 새로고침하면 POST 를 보내게 될텐데상품 등록 폼으로 다시 보내는게 목적이라면 리다이렉트를 하는게 더 좋아 보이는데요 혹시 리다이렉트 안하는 이유가 있을까요 ?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 DB를 MySql로 마이그레이션
[질문 내용]H2의 Table과 Data를 MySql로 변환해서 쓰고 싶으면 어떻게 해야 할까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
인텔리제이 업데이트 후 문제 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인털레제이를 업데이트 한 후 모든 코드에 에러가 생깁니다...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
17분대 실행시 Member Table을 찾을수 없다는 오류가 나요
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이것 저것 찾아봤는데, 같은 에러가 반복적으로 발생하네요.무엇이 문제인지 모르겠습니다 ㅠㅠ 회원 가입 부분을 Run 할때 발생하고있네요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
환경변수 문제
윈도우 cmd 자바 버전이랑sts 터미널창 자바 버전이 다른데 바라보는 환경변수 경로는 같아서 문제입니다터미널 새로고침도 해보고 환경변수도 다시 바꿔도 동일합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
팝잇콘이 안 뜹니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용 14분 대에서 하신 것처럼 localhost:8080으로 들어갔는데, 에러메시지는 제대로 뜨지만 팝잇콘이 강사님의 말씀처럼 뜨지 않습니다 ㅜㅠㅜㅜ 뭐가 잘못된 걸까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
프록시 내부 호출 해결 방안에 대해 질문이 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예제에서 internal() 메서드를 별도의 클래스로 분리하지 않고, external() 메서드에 @Transactional 어노테이션을 사용하여 미리 트랜잭션을 시작하여 internal()에도 적용되도록 하는 방법은 적절한 해결 방안이 아닐까요?왜 클래스를 별도로 분리하는 것이 더 합리적인 해결 방안인지가 궁금합니다!
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
스프링 부트 3.X 버전으로 바꾸려면
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용대로itemservice-db-start를 이름 수정해서 쓰려고 했는데이 코드는 스프링 부트 2.X 버전이더라고요. 이렇게 강의에서 제공하는 코드가 2.X 버전인 경우, 저는 이전 MVC 2편 강의 들을 땐 제가 스프링 이니셜라이저 사이트에 가서 직접 프로젝트를 3.X 버전으로 하나 만들고, 강의에서 제공하는 코드에서 main 폴더랑 test 폴더만 제가 만든 프로젝트 쪽으로 복사 + 붙여넣기 하는 식으로 해결했었습니다. 이번에도 그런 식으로 했고 실행해서 상품 등록이랑 수정해 보니 오류는 딱히 안 나는데 조금 걱정되는 부분이 있어서 질문드립니다. 강의에서 제공하는 코드를 보면modules 폴더나 sql 폴더가 있습니다. 제가 새로 만든 프로젝트엔 없고요. 그래서 위 폴더들도 그대로 복사 붙여넣기 할까 생각도 했는데.. 위 두 개 폴더 말고도 더 있을지도 모르고, 이런 식으로 없는 폴더를 일일이 복사 붙여넣기 해서 무언가 잘못되어서 나중에 가서 오류가 터질까 봐 조금 걱정이 되네요. 조금 안전한 방법으로 스프링 부트 3.X 코드를 쓰고 싶은데, 제가 그동안 했던 방법으론 조금 불안합니다..ㅎㅎ 관련 질문과 답변이 MVC 2편 커뮤니티엔 많은데, DB 2편 커뮤니티엔 없는 것 같아서 질문드립니다.스프링 부트 3.X로 하려면 어떻게 하는 게 좋을까요?그냥 2.X 버전으로 진행해도 아무 문제 안 생긴다면 2.X로 해도 상관은 없습니다. +)그냥 강의에서 제공하는 스프링 부트 2.X 버전 코드에 추가로 https://www.inflearn.com/community/questions/988208/%EC%9E%90%EB%B0%94-17%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%EC%A7%84%ED%96%89%ED%95%B4%EC%95%BC-%ED%95%98%EB%82%98%EC%9A%94 이 게시글대로 해 보고, 여기에 추가로plugins { id 'org.springframework.boot' version '3.3.2' id 'io.spring.dependency-management' version '1.1.6' id 'java' }이 부분만 3.3.2랑 1.1.6으로 수정해 봤는데요.(스프링 부트 3 이상으로 바꾸기 위해)이렇게 하니깐 다음 메시지가 뜹니다. 강의 코드를 수정해야 할지, 아니면 제가 새로 프로젝트를 만들어서 수정해야 할지, 그러면 복붙을 어디어디 할지 모르겠네요.. A problem occurred configuring root project 'itemservice-db'.> Could not resolve all artifacts for configuration ':classpath'.> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.3.2.Required by:project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.2> No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.3.2 was found. The consumer was configured to find a runtime of a library compatible with Java 17, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.2' but:- Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a library compatible with Java 17, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares an API of a component and the consumer needed a runtime of a component- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '7.2')- Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a runtime of a component, and its dependencies declared externally:- Incompatible because this component declares documentation and the consumer needed a library- Other compatible attributes:- Doesn't say anything about its target Java version (required compatibility with Java 17)- Doesn't say anything about its elements (required them packaged as a jar)- Doesn't say anything about org.gradle.plugin.api-version (required '7.2')- Variant 'modernGradleRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a runtime of a library compatible with Java 17, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component, as well as attribute 'org.gradle.plugin.api-version' with value '8.7' and the consumer needed a component, as well as attribute 'org.gradle.plugin.api-version' with value '7.2'- Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a runtime of a library compatible with Java 17, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component, as well as attribute 'org.gradle.plugin.api-version' with value '7.5' and the consumer needed a component, as well as attribute 'org.gradle.plugin.api-version' with value '7.2'- Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a runtime of a component, and its dependencies declared externally:- Incompatible because this component declares documentation and the consumer needed a library- Other compatible attributes:- Doesn't say anything about its target Java version (required compatibility with Java 17)- Doesn't say anything about its elements (required them packaged as a jar)- Doesn't say anything about org.gradle.plugin.api-version (required '7.2')* 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.