묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JDBC강의 - SpringConfig : 'MemberService()' cannot be applied to '(com.example.demo.repository.MemberRepository)'
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용] 'MemberService()' cannot be applied to '(com.example.demo.repository.MemberRepository)' error: constructor MemberService in class MemberService cannot be applied to given types; return new MemberService(memberRepository()); ^ required: no arguments found: Membe적용할 수 없다는 에러가 나오는데 왜 나오는지 모르겠네요.찾아보니 저만 이런 것 같은데 뭐가 문제일까요 package com.example.demo.config; import com.example.demo.repository.JdbcMemberRepository; import com.example.demo.repository.MemberRepository; import com.example.demo.repository.MemoryMemberRepository; import com.example.demo.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class SpringConfig { @Autowired DataSource dataSource; @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ //return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
FindByName get() 에러
에러가 나서 작동이 안됩니다ㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
<span th:text="@{hello world!}"></span>
<span th:text="@{hello world!}"></span></li> 이렇게 입력해도 오류 없이 나오는데이렇게 사용해도 문제 없을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 및 실행 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제가 이해한 것이 맞는지 확인 차 질문 드립니다.빌드하고 실행하기 영상에서 cmd 창에 ./gradlew build 명령어를 통해 파일을 빌드하고 실행하였습니다 따라서 폴더에 build 파일이 만들어졌고 외부에 배포할 때는 이것을 사용한다고 배웠습니다. 이와 같이 cmd 창에서 빌드하고 실행한 것과 intellij idea 내에서 Application을 실행한 것이 위치만 다르지 같은 의미일까요?말을 좀 이상하게 했는데 둘 다 빌드하고 실행하는 역할을 하는 것이 맞는지 궁금하여 질문 드립니다. 답변 부탁드립니다. 감사합니다
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
34강 조회수 증가가 새로고침을 해야만 되네요
있는 그대로 타이핑 하고 업뎃까지 한다음에 실행을 해주었는데 열고닫고 할때는 조회수가 증가가 안되지만 새로고침을 해야만 증가가 되네요 왜그러는건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ArgumentResolver가 어떻게 사용되는지를 보고싶어요
customArgumentResolvers로 검색을 해보면 customArgumentResolvers을 사용해서 무언가 처리를 하는곳이 없는것같은데.. 어디서 처리를하는걸까요 저는 이 그림에서 1번의 과정을 눈으로 확인하고 싶은거예요RequestMapping핸들러 어댑터는 handle이라는 메서드도 가지고 있지 않아서.. 어떻게 핸들러를 호출하는지도 잘 모르겠네요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
입문강의 안듣고 이 강의 봐도 문제없을까요?
입문강의에만 있는 내용이 있을까해서요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
java file outside of source root 오류 때문에 main 클래스 실행이 안 됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.위와 같이 모두 세팅을 진행했는데, Java file outside of source root라는 문구가 뜨면서 main 클래스를 실행할 수 없는 상황입니다.어떻게 해결해야 할까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
-arlth 가 뭔가요?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용] h2 db 설치 연결 확인 후,home 에 test.mv.db 파일을 확인해야 된다면서llll -arlth 이렇게 들어가시는데 이게 뭔가요?여기서 막혀서 답답하네요.맥 써본 적도 없고 실무도 윈도우로 하는데 어지럽네요.ll 이 dir 이라는건 아는데 -arlth 는 처음 봐요.home이 어딜 말하는건지 모르겠어요.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
이것도 @ModelAttribute 가 생략된 코드인가요?
제가 만들어본 프로젝트인데sendForm 메서드에 들어간 (OrderForm form)이것도 @ModelAttribute 가 생략된 코드라고 볼 수 있나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 cmd창에서 gradlew build 오류
안녕하세요 현재 윈도우 쓰고있는 학생입니다. 빌드하고 실행하기 단계에서 cmd창을 열어서 gradlew.bat과 강의상에 나와있는 clean build 을 입력해도 사진첨부해드린거와 같이 계속 오류가 나는데 무엇이 문제일까요 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew 이후 실행안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.인텔리제이 와 Git Bash 연동을 하고 Alt + F12 눌러서 터미널 실행했습니다../gradlew build 와 cd build/libs 까지 성공했는데java -jar hello-spring-0.0.1-SNAPSHOT.jar 는 엔터를 눌러도 아무일도 일어나지 않네요파일의 권한이 rw 밖에 없어서 그런거 같아서 chmod 777 hello-spring-0.0.1=SNAPSHOT.jar로 실행 권한을 부여하려고 했는데도 실행 권한이 바뀌지가 않네요....어떻게 해야 해당 자바 파일 실행할 수 있을까요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 15분30초 ppt 내용중에서 질문드립니다.
강의를 보다가 15분30초 ppt 내용중에서 제가 이해한 바가 맞는지 확인하고 싶어서 질문드립니다. 웹 애플리케이션 서버의 요청 응답 구조를 보면, 내장톰캣서버 = WAS+서블릿컨테이너 이다.WAS가 HTTP요청 메시지를 기반으로 request 객체, response객체를 생성한다.WAS가 Response 객체정보로 HTTP응답 메시지를 생성한다.이렇게 이해하는게 맞을까요?추가적으로 스프링 부트를 실행하면 스프링 부트가 내장 톰캣서버를 띄워준다고 말씀하셨는데, '띄워준다' 라는 말이 무슨 말씀이실까요? 내장톰캣서버를 생성해준다 라고 이해하면 될까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
외부에서 설정해 주는 방식으로 작성해 봤는데, 어떤 구조가 더 나은 코드인지 궁금합니다!
안녕하세요! 강의 너무 잘 듣고있습니다~~HandlerConfig... public class HandlerConfig { public void configureHandlerMappingMap(Map<String, Object> handlerMappingMap) { 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()); handlerMappingMap.put("/front-controller/v5/v4/members/new-form", new MemberFormControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members/save", new MemberSaveControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members", new MemberListControllerV4()); } public void configureHandlerAdapters(List<MyHandlerAdapter> handlerAdapters) { handlerAdapters.add(new ControllerV3HandlerAdapter()); handlerAdapters.add(new ControllerV4HandlerAdapter()); } }FrontControllerServletV5... @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() { HandlerConfig handlerConfig = new HandlerConfig(); handlerConfig.configureHandlerMappingMap(handlerMappingMap); handlerConfig.configureHandlerAdapters(handlerAdapters); } ... 위와 같이 HandlerConfig 클래스 내부의 메서드에서 handlerMappingMap과 handlerAdapters를 매개변수로 전달받아 값을 세팅해 주도록 코드를 작성해 봤습니다. 이런 방식 보다는 아래의 방식이 더 나을까요??아래가 좀 더 '주입'이라는 느낌에 가까운 것 같아서 어떤 구조가 좋은 구조인지 고민됩니다..!HandlerConfig... public class HandlerConfig { public Map<String, Object> handlerMappingMap() { Map<String, Object> handlerMappingMap = new HashMap<>(); 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()); handlerMappingMap.put("/front-controller/v5/v4/members/new-form", new MemberFormControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members/save", new MemberSaveControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members", new MemberListControllerV4()); return handlerMappingMap; } public List<MyHandlerAdapter> handlerAdapters() { List<MyHandlerAdapter> handlerAdapters = new ArrayList<>(); handlerAdapters.add(new ControllerV3HandlerAdapter()); handlerAdapters.add(new ControllerV4HandlerAdapter()); return handlerAdapters; } }FrontControllerServletV5... @WebServlet(name = "frontControllerServletV5", urlPatterns = "/front-controller/v5/*") public class FrontControllerServletV5 extends HttpServlet { private final Map<String, Object> handlerMappingMap; private final List<MyHandlerAdapter> handlerAdapters; public FrontControllerServletV5() { HandlerConfig handlerConfig = new HandlerConfig(); this.handlerMappingMap = handlerConfig.handlerMappingMap(); this.handlerAdapters = handlerConfig.handlerAdapters(); } ...
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
webapp 연동 문의
localhost 8080에 들어갈 때 시작 페이지가 whitepage로 떠서 다시 문의 들입니다.webapp의 시작 페이지가 적용이 안되는 것 같은데 원인을 잘 모르겠습니다.프로젝트 파일은 구글 드라이브로 링크 남기겠습니다.감사합니다.https://drive.google.com/file/d/1LAeBuz3E_PZGdqTg4bzgw8Ocn7WB2KyV/view?usp=share_link
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 database와 연결이 안 되는 것 같습니다
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]h2 database 설치 하여 console띄우고 jdbc url도 jdbc:h2:tcp://localhost/~/test 로 설정 후 Member 테이블 만들었습니다build.gradle에 필요한 라이브러리 추가 후 코끼리도 눌러주고application.properties에도 강의 내용과 똑같이 작성하였습니다. 그런데 여기가 뭔가 강사님께서 보여주시는 것과 다른 것 같습니다 글씨에 색깔도 다르고 무엇보다 spring이나 datasource 등을 쳤을 때 밑에 뜨는 것이 없습니다 무엇이 문제일까요? 다음은 제 코딩화면과 localhost:8080에서 회원 목록을 눌렀을 때 오류 화면 입니다.답변 부탁드립니다 감사합니다
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ModelAttribute 원리
@ModelAttribute Item item 이런식으로 사용하면Item 객체를 만들고 프로퍼티를 찾아서 setter로 값을 바인딩시킨다고 배웠습니다. (model.addAttribute()는 생략 가능)이 부분이 궁금한데 사용자가 넘긴 데이터를 어떻게 파싱해서 각각 필드에 setter로 값을 바인딩 시켜줄 수 있는건가요?@ModelAttribute 내부에서 @RequetParam을 사용하는건가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HTTP 메시지 컨버터가 작동 과정
HTTP 메시지 컨버터가 작동되었다는 건 HTTP 바디에 요청 혹은 응답이 이루어진다는 것인데@ResponseBody public String hello() { return "ok" }그러면 이런 코드가 있을 때 메시지 컨버터가 사용이 됩니다.MVC구조에 따라 위 코드 수행 과정이 제가 이해한 게 맞나요?HTTP 요청이 들어오면 디스패처 서블릿에서 핸들러 매핑으로 적절한 핸들러를 찾고 그 핸들러를 처리할 핸들러 어댑터를 찾습니다.찾은 핸들러 어댑터를 호출하고 핸들러 어댑터에서 적절한 아규먼트 리졸버를 찾아 호출해 보내줄 파라미터 데이터를 생성합니다. (여기선 파라미터가 없으므로 생성x)이제 핸들러(위 코드)를 호출하고 반환되면서 리턴밸류핸들러가 실행됩니다.@ResponseBody가 있으므로 HTTP 메시지 컨버터를 실행합니다. 여기까지가 제가 이해한게 맞나요? 이제 HTTP 메시지 컨버터가 HTTP 바디에 값을 직접 넣어주어 화면을 띄웠을 때 ok라는 문자가 그대로 보이게 되는 것으로 알고 있습니다. 이 과정을 더 상세하게 알고 싶습니다.HTTP 메시지 컨버터에서 HTTP 바디에 값을 직접 넣어주고 모든 작업이 끝나게 되는건가요?아니면 HTTP 메시지 컨버터에서 또 어떤 값을 리턴해주어 계속 진행이 되는건가요? 후자가 맞다면 HTTP 메시지 컨버터는 어떤 것을 리턴밸류핸들러에 리턴해주는 것이며리턴밸류핸들러는 어떤 것을 핸들러어댑터에 리턴해주는 지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberRepositoryTest / Testcase 작성 질문드립니다.
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 강의 테스트 코드 작성중에 의문사항 있어서 문의 드립니다. 1. MemoryMemberRepository(왼쪽사진)의 save method에서 return member를 해주고 있습니 다. save함수는 Map<Long,Member> store 변수에 값을 저장하는 method로 생각되는데, return을 하는 이유가 궁금합니다. findByName(오른쪽사진) method에서 repository.save(member1)는 Member member3 = repository.save(member1) 와 같이 Member member3을 선언을 안해도 되는것인지 문의드립니다. 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
whitepage 질문
section 1,2 까지 잘 진행 하다가 갑자기 webapp 부분이 적용이 되지 않으면서 whitepage가 계속 뜹니다 어디가 오류 난 부분인지 몰라 계속 해결해 보려다 해결하지 못하고 질문을 올립니다. 구글 드라이브를 통해 올리겠습니다. 감사합니다.https://drive.google.com/file/d/14T7D_uAwO18z7lSwv2TQnvyGOAkNwCx0/view?usp=share_link