묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
안녕하세요 오류 질문입니다.
선생님 강의를 현재까지 그대로 따라했는데 @WebServlet("/memberInsert.do") 으로 줬는데 제 경우에 계속 왜 404 뜨면서 없는 jsp 로 갈까요.. (콘솔창에 에러는 안나옵니다..)그리고 선생님이 실행하는 방식이 아닌 저렇게 run as로 하면 안되나요? 오히려 선생님이 하시는 대로 127.0.0.1 로컬호스트 들어가니까 안되더라구요.. 마지막으로 혹시 소스코드 pdf 파일 말고 zip파일이나 이런거로 올려주실수 있을 까요.. 에러 났을때 비교해보고 확인해보고 싶은데 pdf에서 복사하면 ㅁㅁㅁ 이런식으로 복사가 제대로 안되네요..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2실행오류
Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: NET_Bind" [90061-200] 포트 pid 찾아서 taskkill 돌리고 다시 h2.bat 실행해도 계속 뜹니다.... 사용자폴더에 .h2.~~.properties파일도 없어서 포트도 못바꾸고 있는데 무엇을 잘못했을까요 ㅠㅜ "8082" (port may be in use), cause: "java.net.BindException: Address already in use: NET_Bind" [90061-200] 포트 pid 찾아서 taskkill 돌리고 다시 h2.bat 실행해도 계속 뜹니다.... 사용자폴더에 .h2.~~.properties파일도 없어서 포트도 못바꾸고 있는데 무엇을 잘못했을까요 ㅠㅜ 윈도우OS고, java SE 1.8과 java SE 11 둘다 설치돼있으며 환경변수는 11로 바꿨습니다 혹시 해결하기가 어렵다면 H2를 건너뛰거나 다른 DB로 대체할 수 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
요청 파라미터를 조회하는기능과 http 메시지 바디를 직접 조회하는 기능
안녕하세요 혹시 요청 파라미터를 조회하는기능과 http 메시지 바디를 직접 조회하는 기능이란게 뭔지 잘 이해가 안가는데 어떤걸 공부해야할까요.. 요청파라미터는 url에 입력되는 사용자의 입력값 즉jsp를 통해서 주입되는 값인거같은데 http 메시지 바디기능은 전혀 모르겠네요 ㅠ
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
BeanCreationException 에러 문의입니다!
MemberFormServlet을 만들고 메인 애플리케이션 실행 도중 발생한 오류입니다. 저번 챕터까지 강의를 듣고 잠시 나갔다 와서 그런지 갑자기 javax.servlet.annotation.WebServlet을 찾아내지 못하고 컴포넌트 스캔을 하지 못하는 것 같은데 해결 방법이 있을까요...?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
CRUD 구현 질문
안녕하세요 영한님 스프링 핵심 원리와 MVC 1편 강의 너무 잘 들었습니다! 스프링 MVC 1편을 완강했는데 CRUD중 D의 구현이 없더라구요. 강의에서도 D의 구현은 한번 해보라고 하셔서 조금 응용해서 구현을 해보았는데 이런식으로 하면되는건가요? 그리고 강의에서 D를 다루지 않은 이유가 혹시 있는지 궁금합니다..! Repository Controller view template
-
미해결스프링 핵심 원리 - 기본편
MVC 2편 ,DB접근기술편 질문
전단계 강의들 듣고있는데 너무 이해가 쏙쏙되서 기다려지네요.. 예정일자 알수있을까요..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
공통처리의 어려움
안녕하세요 영한님 항상잘듣고있습니다.! 공통처리가 어려운이유중 "아무데나 다 호출이되기때문에"라고 말씀하시는 (2:11) 부분이 클라이언트의 요청을 new-form컨트롤러, save 컨트롤러, list컨트롤러세개중 아무데서나 받을수 있기 떄문에라고 이해했는데 맞을까요?!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
rs.next()가 지칭하는바가 무엇인지 여쭤봐도 될까요...?
안녕하세요 ㅎㅎㅎ 항상 강의 잘 듣고 있습니다. 감사합니다. HTTP 강의 수강 이후에 RFC문서도 좀 보면서 웹에 빠져들고 있어서 Spring 공부도 하고 있습니다....! 다름이 아니라 순수 JDBC강좌 10분 20초경에 나오는 rs.next()의 의미가 무엇인지 잘 모르겠습니다 ㅠㅠ conn으로 연결을 실행하고 pstmt로 sql문을 전송 Generated ID KEY를 받아옴 rs로 Generated된 key값을 받아옴 까진 이해가 되는데 rs.next()가 의미하는 바가 무엇인지 모르겠습니다. 그래서 뒤에부터 값을 설정한다는게 어떻게 flow가 흘러가는건지 잘 이해가 안가는데 부가 설명을 부탁드려도 될까요 ㅠㅠ 추가로) getLong, getString, setLong ---- 등등의 메소드 이름에서 뒤에 붙는것들은 (Long, String...) DB에서 생성된 Column의 Attribute라고 봐도 될까요? 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ReturnValueHandler
안녕하세요 영한님 강의를 듣던 도중 궁금한것이 생겨 질문드립니다. 강의 노트 179페이지에 보면 "String으로 뷰 이름을 반환해도, 동작하는 이유가 바로 ReturnValueHandler 덕분이다." 라고 나와있는데 String으로 뷰이름을 반환해도 동작하는 이유는 ViewResolver 때문이 아닌가요? ReturnValueHandler 안에 ViewResolver 가 포함되는것인가요? 좋은 강의 너무 감사드립닌다. 답변기다리겠습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
탈락되면 어떻게 되나요?
마지막에 들어주신 예시 content type : text/html@RequestBody HelloData data 의 경우는 3개의 컨버터를 모두 지나쳐서 탈락하게 된다고 하셨는데요. 그러면 어떻게 되나요? 객체일 때는 null이 넘어오고 primitive 타입일 때는 기본값이 넘어오는 건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
view를 사용하지 않는다?
안녕하세요 강사님, 질문 드리겠습니다. HttpEntity나 @ResponseBody를 통해 응답 처리를 할 때는 view를 사용하지 않는다는 말이 이해가 잘 안 되는데요. 이전처럼 view의 논리적 이름을 반환한 후 렌더링 해주는 식의 처리를 하는 것이 아니라, 그냥 http body에 필요한 데이터만 담아서 전달해주고 뷰에 대한 부분은 클라이언트 측에서 알아서 하도록 일임한다는 식의 흐름이 맞나요?? 위 내용이 맞다면 여기에서 뷰 리졸버는 아예 사용되지 않는 것인가요? 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
template, webapp
안녕하세요 강사님, 말씀하셨던대로 이번 강의에서 대부분의 의문이 해결되었습니다. 그런데 이번 강의에서도 뷰 파일의 저장 위치가(template or webapp) 달라지는 부분에 대해서는 별다른 언급이 없더라구요. 이 부분도 뒷부분을 듣다보면 알게 되나요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
콘솔창 색깔 바꾸는 방법
콘솔창 글씨가 다 흰색이니까 구분이 잘안가서 강사님처럼 바꾸고 싶어서 찾아봤습니다 프로젝트에 application.properties 파일을 사용하시면 이렇게 입력해주시고 서버를 재시작하면 적용됩니다 복붙-> spring.output.ansi.enabled=ALWAYS 프로젝트에 application.yml 파일을 사용하시면 (yml 파일은 띄어쓰기 주의) 이렇게 입력해주시고 서버를 재시작하면 이렇게 글자색이 바뀐채로 출력됩니다 프로젝트마다 application 파일에 코드 복붙하는게 귀찮을거 같아서 찾아본 결과 VM Options에서 -Dspring.output.ansi.enabled=ALWAYS 를 추가해주면 인텔리제이를 실행 했을 때 전체 프로젝트에 적용이 된다고 하는데 전 아무리 해도 적용이 안돼서 포기했습니다 혹시 전체 프로젝트에 적용하는 방법을 아시는분이 계시면 댓글로 알려주시면 감사하겠습니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Json 매핑
Json 객체 매핑 시 setter가 없어도 되는데 http 요청 데이터 - API 메시지 바디 - JSON에서는 setter가 있어야 한다고 하셨는데 어떤게 맞는 걸까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
PrintWriter writer = response.getWriter();
이 코드가, response 객체 안에 Writer를 담당하는 객체가 또 있고 그 객체를 writer라는 변수로 따로 저장해서 writer를 이용하는 방식인가요? 생소한 패턴이라서 헷갈리네요.. 혹시 response 객체가 어떻게 구성돼 있는지 확인할 수 있는 방법이 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서버가 계속해서 작동되지않습니다
위에 사진과 같이 톰캣서버가 계속해서 작동을하여야하는데 종료가되는거같습니다 ㅠㅠ 해결방법이있을까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
static root 실제 저장 위치
안녕하세요. start.spring.io 를 통해 생성한 프로젝트에는 resources/static 폴더가 존재하는데, 강의에서는 따로 webapp 폴더를 만들어 그곳에 html 파일을 담는데요. resources/static/index.html과 webapp/index.html 을 2 개 모두 만들어 두고, URL=/ 로 접근해 보면 후자가 뜨는 것은 테스트를 통해 확인할 수 있었습니다. webapp/index.html 이 없으면 URL=/ 에 대응해 전자의 페이지가 뜹니다. 즉, webapp이 더 우선하는 것으로 생각됩니다. 질문은 : resources/static 영역이 있는데 강의에서는 왜 굳이 이와 같이 webapp을 따로 만들어 그곳에 html 파일들을 구성하신 것인지요? 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
new-form.jsp 요청시 jsp파일 자체가 다운로드 되어버립니다
이 전까지의 강의는 아무런 문제가 없다가 이번 편에서 아래처럼 URL을 요청했더니 /jsp/members/save.jsp 화면으로 넘어가지 않고 스크린샷 하단에 보시다시피 jsp파일 자체가 다운로드되어버립니다.. 구글링을 해봤는데도 마땅히 해결방법을 모르겠어서 질문남깁니다. 혹시 해결책을 아신다면 답변 부탁드리겠습니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨텍스트 스위칭 질문
요청 마다 매번 쓰레드를 생성하는 방식의 단점 중 하나로 컨텍스트 스위칭 비용을 말씀하셨는데요. 컨텍스트 스위칭은 쓰레드 풀을 사용하더라도 똑같이 발생하는 비용 아닌가요? 쓰레드를 미리 만들어 놓는다고 cpu가 다른 스레드로 갈아탈(?) 때 컨텍스트 스위칭이 일어나지 않는 것은 아틸 텐데요. 답변 부탁드립니다. 감사합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요.
안녕하세요, 먼저 정말 기다리던 강의를 드디어 볼 수 있게돼서 감사하다는 말씀을 드립니다! 강의를 따라가던 중 문제가 발생하여 조언을 구하고자 질문을 드립니다. 김영한 팀장님의 기존 인강에서는 [Settings] -> [Build Tools] -> [Gradle] 에서 Build and run using / Run tests using 모두 'IntelliJ IDEA'로 설정 후 강의를 진행하셔서 저도 그렇게 강의를 모두 수강했고 현재 혼자 개발 중인 서비스도 'IntelliJ IDEA' 로 설정해서 진행 중입니다. 이번 스프링 MVC 1편 인강에서는 섹션2 - 프로젝트 생성에서부터 Build and run using 을 'IntelliJ IDEA' 로 설정하면 다음과 같은 에러가 발생하고, Run tests Using 을 'GRADLE'로 설정하면 또 다음과 같은 에러가 발생합니다. [Build and run using - 'IntelliJ IDEA' 설정 후 Application Run 한 상황 ] 2021-03-15 11:16:43.740 INFO 12576 --- [ main] travelbeeee.sec02.Sec02Application : Starting Sec02Application using Java 14.0.2 on DESKTOP-SJ3E1UQ with PID 12576 (C:\Users\HyunSeok\Desktop\studyWithMe\gitHub\studyWithMe\스프링MVC1편\sec02\out\production\classes started by HyunSeok in C:\Users\HyunSeok\Desktop\studyWithMe\gitHub\studyWithMe\스프링MVC1편\sec02) 2021-03-15 11:16:43.744 INFO 12576 --- [ main] travelbeeee.sec02.Sec02Application : No active profile set, falling back to default profiles: default 2021-03-15 11:16:44.376 WARN 12576 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet 2021-03-15 11:16:44.385 INFO 12576 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2021-03-15 11:16:44.406 ERROR 12576 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:537) ~[spring-beans-5.3.4.jar:5.3.4] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.4.jar:5.3.4] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.4.jar:5.3.4] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.4.jar:5.3.4] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.4.jar:5.3.4] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:196) ~[spring-context-5.3.4.jar:5.3.4] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:745) ~[spring-context-5.3.4.jar:5.3.4] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:563) ~[spring-context-5.3.4.jar:5.3.4] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767) ~[spring-boot-2.4.3.jar:2.4.3] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) ~[spring-boot-2.4.3.jar:2.4.3] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426) ~[spring-boot-2.4.3.jar:2.4.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:326) ~[spring-boot-2.4.3.jar:2.4.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1311) ~[spring-boot-2.4.3.jar:2.4.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300) ~[spring-boot-2.4.3.jar:2.4.3] at travelbeeee.sec02.Sec02Application.main(Sec02Application.java:13) ~[classes/:na] Caused by: java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet at org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-2.4.3.jar:2.4.3] at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:49) ~[spring-boot-2.4.3.jar:2.4.3] at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-2.4.3.jar:2.4.3] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1231) ~[spring-beans-5.3.4.jar:5.3.4] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1173) ~[spring-beans-5.3.4.jar:5.3.4] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) ~[spring-beans-5.3.4.jar:5.3.4] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.4.jar:5.3.4] ... 14 common frames omitted Caused by: java.lang.ClassNotFoundException: javax.servlet.annotation.WebServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na] ... 21 common frames omitted Process finished with exit code 1 [ Run tests Using 을 Gradle로 설정 후 Test 를 빌드한 상황 ] > Task :compileJava UP-TO-DATE > Task :processResources UP-TO-DATE > Task :classes UP-TO-DATE > Task :compileTestJava UP-TO-DATE > Task :processTestResources NO-SOURCE > Task :testClasses UP-TO-DATE > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/HyunSeok/Desktop/studyWithMe/gitHub/studyWithMe/스프링MVC1편/sec02/build/reports/tests/test/index.html * 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. * Get more help at https://help.gradle.org BUILD FAILED in 1s 4 actionable tasks: 1 executed, 3 up-to-date 설정을 아래 사진과 같이 바꿔주면 문제가 없어서 당장 수업을 듣는데는 지장이 없지만, 구글링을 해봐도 이유를 알아내기 어려워 조언을 구하고자 질문을 남깁니다.