묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그아웃 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.회원가입을 했는데 로그인에서 널포인트가 터지는데 회원저장소의 문제인거같은데 뭐가 문제인지 잘 모르겠습니다https://drive.google.com/file/d/1gjPbYTN4X-ozjYDISGWff1BvvFdNOfen/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost8080이 연결이 안됩니다.
영상처럼 포트번호가 떠야하는데 사진 처럼 WARNING이 출력되면서 연결이 안 되는 것 같습니다. localhost:8080으로 사이트에 접속해도 연결이 안 되었음을 확인했습니다. 어쩌면 좋을까요? 다음은 스프링 부트 설정입니다.인텔리제이는 ultimate버전입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
터미널에서 포트도 같이 죽이면서 빌드 종료하는 법이 있나요?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]mac에서 현재 강의를 따라하고 있는데 빌드를 종료하면서 다시 한번 실행해보려고 했더니 포트가 이미 사용중이라고 합니다.그래서 죽이고 다시 실행해서 켰는데 혹시 빌드를 종료하면서 포트번호도 같이 죽이는 명령어(단축키)가 있을까요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
43강 age 0오류
0오류는 Memeber 를 정의할때 Int age; 말고 null타입이 들어갈 수 있는 Integer 타입으로 정의하면 되지않을까 제안드리는데 , 굳이 0으로 할 필요가 있을까요 ? Integer age ; 시 기본값이 null 이니깐 문제없지 않을까요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
BindException이 아니라 MethodArgumentNotValidException이 뜨는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@ResponseBody @RequestMapping("/model-attribute-v1") public String modelAttributeV1(@ModelAttribute HelloData helloData) { log.info("username = {}, age = {}", helloData.getUsername(), helloData.getAge()); return "ok"; }강의 내용대로 작성했고 HelloData도 마찬가지로 똑같이 작성했습니다. 그리고 웹 브라우저로http://localhost:8080/model-attribute-v1?username=a&age=abc이렇게 의도적으로 age에 문자열을 넣었는데요 저도 당연히 BindException이 나올 줄 알았는데MethodArgumentNotValidException가 뜹니다. 구글링해 보니 BindException이랑 MethodArgumentNotValidException이 생기는 원인은 좀 다른 것 같은데 왜 전 코드가 강의랑 비슷한데도 예외가 다르게 나올까요? +) 오류 메시지입니다. 2024-02-10T17:28:59.250+09:00 WARN 17376 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public java.lang.String hello.springmvc.basic.request.RequestParamController.modelAttributeV1(hello.springmvc.basic.HelloData): [Field error in object 'helloData' on field 'age': rejected value [abc]; codes [typeMismatch.helloData.age,typeMismatch.age,typeMismatch.int,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [helloData.age,age]; arguments []; default message [age]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'age'; For input string: "abc"]] ]
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
바로 jpa가도될까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 꾸준하게 강의 들어온 학생입니다. 개강이 얼마 안남아서 jpa로 실제 웹서비스 구현하는 것까지 해보고싶은데 db커리큘럼을 잠깐 건너뛰고 수강해도될까요? 물론 나증에 추가로 들을 예정입니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestParam Map<String, Object> paramMap에서 Object로 써야만 하는 경우
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]request.getParameter()의 결과는 항상 String이라고 이해하고 있습니다. 즉, request.getParameter("age")도 String이기 때문에 int로 변환하려면 다음처럼 Integer.parseInt()를 사용했었습니다.int age = Integer.parseInt(request.getParameter("age")); 그런데 이번 시간에 작성한 다음 코드에서@ResponseBody @RequestMapping("/request-param-map") public String requestParamMap(@RequestParam Map<String, Object> paramMap) { log.info("username = {}, age = {}", paramMap.get("username"), paramMap.get("age")); return "ok"; } @RequestParam Map<String, Object> paramMap여기선 Object로 써져 있는데, 실무에서 Object로 써야만 하는 경우도 있나요? 제가 생각한 게 맞다면 파라미터의 값이 코드에서 String로 쓰이든 int로 쓰이든 간에, Map에선 모두 String 값으로 존재할 것 같았는데(age의 경우도 20이 아닌 "20"인 상태로 이해했습니다.) <String, String>이 아닌 <String, Object>로 써야만 하는 경우도 실제로 있는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080/hello에러 발생
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강사님하고 동일한 방식으로 진행했는데 localhost:8080/hello에서 에러가 발생하네요;;; 이유와 함께 해결방안에 대해서 알고 싶습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName() 구현 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]findByName() 메서드를 다음과 같이 구현해도 되나요?중복 이름의 회원이 없다고 했기 때문에 굳이 List로 받을 필요가 있나 싶어서요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
createQuery() 메서드 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@Override public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class).getResultList(); }createQuery() 메서드의 첫 번째 매개변수의 쿼리만 봐도 select로 반환되는 객체가 Member 객체인 것을 알 수 있는데 왜 굳이 두 번째 매개변수로 Member.class를 넣어주는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@GeneratedValue 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]이미 id가 자동 생성되도록 테이블을 정의한 시점에서 Member 클래스의 기본키 필드에 해당하는 id에도 @GeneratedValue(strategy = GenerationType.IDENTITY) 이와 같은 애노테이션을 붙여줘야 하는 이유가 뭔지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
println 하였는데 주소가 출력됩니다.
8:34 초에 println으로 spring!이 출력 되었는데 저는 출력하면 저장된 주소(members = hello.hellospring.domain.Member@27e93bd6)가 출력 되는데 혹시 어떻게 해야 글자가 나오게 바꿀 수 있을 까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:action th:object 순서
영한님께서는th:action th:object="${item}" method="post"로 적어주셨는데,th:action과 method="post"는 붙어 있는 게 더 자연스럽다고 생각이 되서요. th:object="${item}" th:action method="post"라고 적어도 문법적으로는 괜찮은 걸까요? 애플리케이션 실행 시에, 페이지 소스 확인해보니 동일하게 동작하는 것은 확인했지만, 뭔가 일반화된 사용 순서인지 궁금해서 여쭤봅니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Around() 문법에 대한 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Around("execution(* hello.hellospring..*(..))") 문법의 의미를 "hello.hellospring 패키지 포함 그 하위에 있는 모든 패키지의 모든 메서드에 대하여 해당 Advice를 적용하라"는 뜻인 거 같은데요. 예를 들어, 만약 아래와 같은 조건이라면 해당 @Around 문법이 어떻게 수정되는 지 궁금합니다."hello / hellospring / service 패키지 하위에 있는 MemberService 클래스의 findMember() 메서드에 대하여 해당 Advice를 적용하라. findMember() 메서드의 return type은 List<Member>이다."
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
[프로젝트 실행하는 법] for 스프링 부트 3.2 이상 자바 버전 17 이상
start.spring.io 가서 새로 만드시는 게 더 편합니다. Group : helloartifact item-servicepackage name : hello.itemservicepackaging : JarDependencies- Spring Web- Thymeleaf- Lombok그리고 form-start에서 main하고 test 폴더 그대로 복붙하시면 유일하게 한곳에서 에러 뜹니다. 아마 TestDataInit 에서 에러뜨는데 import javax.annotation.PostConstruct;-> import jakarta.annotation.PostConstruct;이렇게 변경하세요 그럼 끝
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
4:40초에 하시는 말씀(findMember 호출한 곳)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]영한쌤께서 4분40초쯤에 하시는 말씀 중 findMember 호출한 데가 없다고 말씀하시는데, 그게 무슨 말인가요..? join은 예제에서 잘 호출됐는데... 하신 말씀이 잘 이해가 안 가서 질문드립니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
multipartfile 리스트
안녕하세요. 스프링 개발할 때 질문이 있어서 글을 쓰게 되었습니다. 프론트에서 게시글관련 정보와 multipartfile 리스트를 넘겨주는 api를 만들고 있습니다. 만약 multipartfile 리스트를 안넘겨줘도 문제가 없는 요구사항이라면 multipartfile 리스트가 null이나 빈파일을 포함하고 있는지 확인하는 로직은 어디다가 놓는 것이 좋을까요?(빈파일은 size가 0인 multipartfile) 현재는 requestDto 생성자에서 검사하고 있습니다.null이면 빈리스트를 넣도록하고그 다음에 빈파일을 포함하고 있으면 빈파일들을 필터링하게 만들었습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
result를 Optional<Member>로 선언하지 않는 이유
[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. MemoryMemberRepositoryTest 파일에 대한 질문이 있습니다.public void findAll() {} 에서 보시면 result를 List<Member>로 선언해줬는데,public void findByName(){} 에서는 result를 Optional<Member>로 선언하지 않는 이유가 궁금합니다...MemoryMemberRepository 파일의 메소드와 동일하게 가려면 맞춰줘야 하는 줄 알았는데 Member result로만 선언이 되길래 여쭤봅니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
직접등록과 자동등록에서 이해되지 않는 점이 있습니다.
수업에서 @Controller 사용시 자동으로 스프링빈 등록이 되고 SpringMemberFormControllerV1 클래스의 클래스 레벨에 @Controller, 메서드 레벨에 @RequestMapping을 사용하여 자동등록을 한다는 점은 이해를 했습니다. 이후 ServletApplication에 @Bean을 사용하여 직접 등록을 하는 경우,ServletApplication에 @Bean 애노테이션으로 직접 등록을 한 상태에서SpringMemberFormControllerV1 클래스의 @Controller, @RequestMapping을 각각 없애고(둘다 없애도 보고 하나씩만 남겨보기도 했습니다.)url에 /springmvc/v1/members/new-form 을 요청했더니404 에러가 뜨는데 ServletApplication에 @Bean을 사용해 직접 등록을 하는 경우에도 SpringMemberFormControllerV1 클래스의 @Controller, @RequestMapping 애노테이션은 유지를 해야하는건가요?만약 그렇다면 자동등록이 되어있는 상태에서 왜 굳이 수동등록을 또 하는지,그게 아니라면 수동등록을 할 경우 SpringMemberFormControllerV1 클래스는 어떻게 수정을 해야하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080 실행 코드 process running
localhost:8080 실행하려고 하는데 실행코드를 보면 아래와 같이 process가 안 끝나고 process running for 10.302로 멈춰있는 상태에서 움직이질 않습니다. 그리고 localhost:8080을 실행해보면 초록색 로고가 안 뜨고 인터넷 표시만 뜹니다. 무엇이 문제일까요?