학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 인텔리제이 Ultimate를 구매한 상태로 사용 중인데요. 영한님 강의 내에서는 (cmd + 클릭)으로 해당 html 파일로 바로가기가 되는데, 저는 안되네요. 구글링 해보아도 명확한 답을 얻지는 못해서 별도 설정 방법이 있는건지 여쭤봅니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. save 메소드를 보면 Model을 파라미터로 받고있는데요 앞서 MVC를 직접 구현하는 단계에서는 Map<String,Object> model을 FrontController에 구현해서 받았었는데, 어노테이션 기반에서도 Model이 Dispatcher 서블릿에 구현되어 있는건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] HTTP GET 방식 기능 : 조회 HTTP POST 방식 기능 : 처리 , 저장 , 등록 , ... 와 같이 알고 있습니다. 즉 사진에서 노란색 밑줄 친 코드는 현재 폼에서 입력된 데이터를 /servlet/members/save 경로에서 "처리"할 것을 요구하는 코드로 이해했습니다. /servlet/members/save 경로에 해당되는 MemberSaveServlet 클래스에선 폼에서 발생한 데이터를 "저장"시키는 역할을 하고요. 그런데 다음과 같이 실제 폼에서 username과 age를 입력한 후 submit을 누르면 다음과 같이 /servlet/members/save페이지가 "조회" 되면서 데이터가 "저장" 되는 두 가지 작업이 동시에 일어나는 것을 확인할 수 있었습니다. 저는 POST 방식은 데이터 "조회" 가 아닌 데이터 "처리" 로 알고 있어서 폼에서 데이터를 입력하면 페이지에는 아무런 변화가 없고 그냥 데이터가 "저장" 만 되는 것으로 알고 있었습니다 그래서 /servlet/members/save 페이지를 "조회" 해서 데이터가 잘 "저장" 됐는지 확인하려면 GET 을 통하여 해당 페이지로 넘어가게끔 추가로 로직을 구성해야되는 것으로 생각하였습니다. [핵심 질문] 이에 따라 앞으로 POST 방식을 쓰는 경우 페이지가 "조회" 되면서 데이터 "처리" 가 동시에 순차적으로 일어난다고 봐도 될지 궁금합니다 !
안녕하세요!! 현재 강의를 듣고 있는 수강생입니다!! 다름이 아니라 강의하시면서 이론에 대해 설명해주실 때, 쓰시는 자료들은 어디서 볼 수 있을까요?? 코드에 대해 공부하면서 이론적인 부분도 이해하고 넘어가면 이후의 수업에서 이해하고 직접 실행해볼 때, 더 좋을 것 같아서요!!
MemberRepositoryV0에서 직접 만든 DBConnectionUtil을 getConnection을 통해 Connection정보를 가져오는 것인데, 이를 V1에서는 직접 만든 DBConnectionUtil을 dataSource로 변경하고 실제 테스트에서 BeforeEach를 통해 Connection 정보를 주입하는 것인가요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] WARNING: A Java agent has been loaded dynamically (C:\Users\jkjin\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.10\90ed94ac044ea8953b224304c762316e91fd6b31\byte-buddy-agent-1.14.10.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 아래와 같이 오류가 발생합니다. 테스트는 잘 실행되지만, 영상에서처럼 Hibernate: 쿼리문~ 이 부분이 보이지 않네요.. 설정이 다르다는것처럼 보이는데 뭐가 문제일까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] [선생님 테스트 로직] @Test void save() { Member member = new Member("hello", 20); Member savedMember = memberRepository.save(member); Member findMember = memberRepository.findById(savedMember.getId()); assertThat(findMember).isEqualTo(savedMember); } 다음의 코드와 같이 선생님께서는 save() 테스트를 할 때 findById() 로직도 사용하시는 것을 확인할 수 있었습니다. 하지만 findById() 로직은 아직 테스트를 거쳐서 검증받지 못한 로직이므로 findById()를 쓰는 것이 아닌 순수 save()만 가지고 테스트를 해야하지 않을까 하는 궁금증이 생겼습니다! [제 테스트 로직] @Test void save() { Member member = new Member("hello", 20); Member savedMember = memberRepository.save(member); assertThat(member).isEqualTo(savedMember); } 그래서 이런 식으로 테스트 하는 것이 어떠한지 선생님께 질문 드리고 싶습니다! 들여쓰기가 안 되어서 올라갔네요 ㅠㅠ..!! 수정해서 다시 올렸습니다 !
안녕하세요! 스프링 MVC와 관련하여 궁금한 점이 있습니다. 스스로 만든 프레임워크에서는 다양한 형태의 헨들러를 다루기 위해 핸들러 어댑터 목록과 핸들러 매핑을 도입한 것으로 이해하고 있습니다. 스프링 MVC의 경우 99.9% RequestMappingHandlerMapping 과 RequestMappingHandlerAdapter를 쓴다고 강의자료에 나와 있는데요, 그렇다면 사실상 핸들러(컨트롤러)도 하나의 통일 된 형태를 가지고 있는건가요? 감사합니다.
python-telegram-bot 20 버전부터는 비동기 프로그래밍이 적용되어 강의와는 다른 코드가 필요합니다. https://github.com/python-telegram-bot/python-telegram-bot/wiki/Introduction-to-the-API 위 깃허브 python-telegram-bot 공식 위키 페이지로 가시면 필수적이고 간단한 용례들을 보실 수 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 11:54초에 보면 HandlerAdapter에 의해서 handle 메소드가 실행되고, 우리가 앞서 정의했던 핸들러가 호출이되는데 여기서 핸들러 어댑터 안에 있는 ((HttpRequestHandler) handler).handleRequest(request,response); 이 부분은 우리가 메소드를 스프링 빈에 등록해서 생성된 것인가요? 아니면 우리가 메소드 이름을 일부러 맞춰준건가요?
안녕하세요, 스프링 부트일 경우, BasicErrorController 가 자동적으로 등록되어 사용된다고 하셨는데, 부트가 아닌 일반 스프링 프레임워크일 경우, BasicErrorController 와 비슷한 역할을 해주는 Controller 가 자동적으로 등록되지는 않는 것인지요? 부트가 아닌 스프링 프레임워크에서는 개발자가 예외나 response.sendError(); 에 대해서 아무런 대비/대처 설정 (예와나 sendError 를 처리해주는 코드를 작성하지 않았을 경우) 을 해주지 않았을 경우에는 어떤 default 설정을 따라가는지 궁금합니다. 스프링 부트일 경우, WebServerFactoryCustomizer<ConfigurableWebServerFactory> 를 구현한 클래스를 작성해서 ErrorPage를 지정해주고 있는데, 부트가 아닌 스프링 프레임워크에서는 어떻게 WebServerFactoryCustomizer<ConfigurableWebServerFactory> 를 구현한 것과 동일하게 custom 을 해줄 수 있는지 궁금합니다. 감사합니다.
"회원 리포지토리 테스트 케이스 작성" 강의 중 12분쯤 findByName()을 실행할 때 findAll()에서 만든 member1,member2가 불러와져서 테스트를 통과하지 못하고 하셨는데 이 부분이 이해가 잘 가지 않습니다. findByName()의 assertThat(result).isEqualTo(member1); 부분에서 예외가 발생합니다. 그런데 왜 첫번째 줄 Member member1 = new Member(); 에서 실행을 멈추지 않고 실행이 계속되나요? 이미 같은 변수이름(findAll()에서 만들어진 member1, member2)이 있음에도 불구하고 예외가 발생해야 맞는데 왜 정상적으로 실행되어서 assertThat(result).isEqualTo(member1); 까지 내려가서 예외가 발생하나요? findByName()의 assertThat(result).isEqualTo(member1); 가 각각 어떤 객체인지 헷갈립니다. member1은 findAll()에서 만들어진 것이고, result는 findByName()의 첫번째 줄에서 만들어진건가요? 이것도 이해가 가지 않는게 clear()가 없는 상태에서 member1을 또 만들면 이름이 중복되는데 왜 예외가 발생하지 않나요?? package hello.hellospring.repository; class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @Test public void findByName() { Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); } @Test public void findAll() { Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); List<Member> result = repository.findAll(); assertThat(result.size()).isEqualTo(2); } } 그리고 memberService.join(member1); package hello.hellospring.service; class MemberServiceTest { MemberService memberService = new MemberService(); @Test void 회원가입() { //given Member member = new Member(); member.setName("spring"); //when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() { //given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } } 회원 서비스 테스트 강의에서도 비슷한 질문이 있습니다. 11분 50초 경에 memberService.join(member1);에서 예외가 발생한다고 하셨는데 그 이유를 잘 모르겠습니다. member1, member2의 이름을 spring으로 만들고나서 member1을 join할 때는 레포지토리에 아무런 값이 없으므로 예외가 발생할 이유가 있나요? 오히려 assertThrows(IllegalStateException.class, () -> memberService.join(member2)); 에서 중복으로 인해 예외가 발생해야하지 않나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 회원 가입 페이지와 회원목록은 잘 나오는데 save에서 계속 500 오류가 뜨네요 ㅠㅠ 강의랑 똑같이 따라친거같은데 왜 오류가 발생하는지 모르겠습니다.오류코드는 이렇게 뜹니다. 2024-01-11T19:21:07.392+09:00 ERROR 31571 --- [nio-8080-exec-2] a.c.c.C.[.[.[.[frontControolerServletV5] : Servlet.service() for servlet [frontControolerServletV5] in context with path [] threw exception
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 테스트 코드 실행시 무한 로딩 미해결 3일차 해결 방법이 필요합니다. package hello.jdbc.connection; public abstract class ConnectionConst { public static final String URL = "jdbc:h2:tcp://localhost/~/study/test"; public static final String USERNAME = "sa"; public static final String PASSWORD = "1318!"; }
안녕하세요. 강의 듣기 시작한 수강생 입니다 ㅎㅎ 강의 듣기전에 코드도 한번 살펴보고 검색폼 1강의도 들었는데요 아무리 봐도 View.js 파일에서 class 내부의 constructor의 매개변수로 전달되는 element가 뭔지 잘 모르겠습니다... View 클래스로 인스턴스를 만들때 인수로 전달한 것이 element로 들어가는걸로 알고 있는데 View 클래스로 생성한 인스턴스를 못 찾겠습니다ㅠㅠ 그리고 제가 JS랑 리액트를 다른 강의로 한 번 보고 복습하면서 선생님 강의를 듣고 있는데요 후기글처럼 초반 JS 부분이 어렵긴합니다 내용이나 코드가 이해는 되고 어떤 코드가 어떤 역할을 하고 어떤 코드를 이 스크립트에 작성하는지 이런건 어느정도 파악하면서 듣고 있는데요 막상 제가 이런 모듈을 만들고, 커스텀 이벤트 객체를 생성해서 자바스크립트로 프로젝트를 만들어보려고 했을때는 코드를 어떻게 쳐야 할지 막막할 것 같은데 혹시 강의를 어떤 방법으로 수강하고, 복습은 어떤식으로 하면 좋을지 조언 부탁드릴 수 있을까요?