묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 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을 실행해보면 초록색 로고가 안 뜨고 인터넷 표시만 뜹니다. 무엇이 문제일까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
코드 상으로 빨간줄 에러 질문드립니다.
위와 같이 컴파일 에러가 표시되긴 합니다만, 애플리케이션 실행 시에는 정상 동작하고 요청 시에도 에러 없이 정상 동작합니다. 원래 이렇게 경고 문구가 코드 상에 나타나는 게 정상인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
롬복 오류인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]getInstance 메서드를 테스트코드에서 가져오지 못합니다. getInstance 메서드에는 노란색 줄이 그여있구요, 롬복의 getter 를 대신 쓰라고 권하는데 여튼 강의대로 안되어요. 어떻게 해결하죠?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberController 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]3분40초부터 말씀하시기를, 컨트롤러는 어쩔 수 없다고 하시면서 MemberService나 MemberRepository 같이 SpringConfig에 따로 빼주지를 않는데, 그냥 MemberController에서 @Controller와 @Autowired를 뺀 뒤, 아래와 같이 설정해주지 않는 이유가 궁금합니다. 이렇게 설정하면 어떤 점에서 문제가 발생하나요??public MemberController memberController() { return new MemberController(memberService());}
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
query dsl 간헐적으로 작동 안 하는경우
안녕하세요 강사님 강의 덕분에 잘 배우고 졸업을 앞두고 있는 학생입니다.jpa domain을 nexus에 올려 실제 프로젝트에 dependency를 추가하여 사용하고 있었는데도메인이 수정될 때마다 nexus에 배포하고 dependency 버전을 변경해야하는 번거로움 때문에 하나로 합치는 작업을 했습니다.실제 프로젝트로 합쳐진 entity들이 잘 import 될 수 있도록 경로도 다 수정해주고 qclass도 정상적으로 생성되었으나 프로젝트 재구동시 간헐적으로 querydsl이 작동하지 않는 오류가 있습니다...qclass도 잘 import 됐고 정상 작동될 때는 잘 되다가 재구동 2~3번에 한번꼴로 qclass를 참조하는 api는 작동하지 않습니다...qclass 사용하지 않는 api들은 정상 작동합니다.. 간헐적으로 오류가 나니 컴파일시점에 메모리가 부족하여 qclass 생성을 제대로 못 해주나 싶어서 heap 사이즈도 늘려보았으나 똑같은 상황입니다. 디버그 모드로 확인하니 QMember a = new QMember(); 이 코드 까지는 오는데 다음 프로세스로 넘어가지도 않고 에러 로그또한 찍히지 않으며 그냥 끝나버리는 것 같습니다. 혹시 왜 이런 현상이 나는지 알려주실 수 있나요 ㅠㅠ spring boot 2.1.62java 1.8querydsl 4.4.0 사용중입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd 창에 gradlew.bat를 입력하면 실행할 수 있는 프로그램, 또는 배치 파일이 아니라고 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.다음과 같은 말이 나와요. 환경변수 설정하는 방법도 해봤는데 뭐가 문제일까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
defaultexceptionhandler와 myhandlerexception
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]defaultexceptionhandler에 대한 내용을 학습 중에 실행해보니 이전에 학습한 myhandlerexception에서 처리한 IllegalArgumentException 의 에러라서 myhandlerexception이 실행되고 was에서response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage()); 에 대한 코드 실행이 작용되는 것이 맞나요?? 강의 중간에 myhandlerexception을 무효화하는 장면이 없었던거 같은데 어느 부분에서 차이가 발생한 것인지 궁금합니다-> url 쿼리로 ?data=10 을 적고 포스트맨을 실행해도 400 에러가 뜨기에 위와 같은 생각을 했습니다.(defaultexceptionhandler가 작동을 안한다고 판단)