묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
43강 jackson 메이븐
안녕하세요. 메이븐에 jackson-mapper를 추가하신 이유는 스프링 버전이 낮아서 인가요? 다른 블로그를 찾아보니 jackson.core만 추가해도 되는 것 같더라구요. 감사합니다!!
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
getRequestDispatcher(경로) 메서드 질문입니다.
안녕하세요. getRequestDispatcher() 메서드의 매개변수 경로는 기본으로 WebContent로 되어 있는건가요? 감사합니다.
-
해결됨[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
전자정부 프레임워크를 굳이 사용 안 해도 괜찮을까요?
안녕하세요. Spring Framework와 JSP를 공부하고자 이 강의를 구매했는데요.전자정부 프레임워크는 쓰고 싶지 않은데, 실습 시 필수로 해야되는 건 아니죠?즉, Spring Framework 환경에서 해도 괜찮은지 여쭙고 싶습니다. 비슷한 질문이 있는 것 같은데 조금 헷갈려서 다시 질문드립니다~ 여담으로, 박매일 선생님 강의 Java TPC부터 잘 보고 있습니다~ 감사합니다~
-
해결됨실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
혹시 강의 중에 나오는 플러그인 좀 알 수 있을까요
강의 중에 나오는 "Complexity is 3 Everything is cool!" 이라는 코멘트가 나오는건 어떤 플러그인을 사용하시는 건지 궁금하니다!!
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
MySQL table 만들기중
"member" 테이블은 안만들어지고"members" 테이블은 만들어지는데둘다 쿼리는 똑같습니다 왜 그런건지 알려주실수있나요..?
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
ApiTest에서 MockMvc를 사용한 테스트가 아닌
ApiTest에서 MockMvc를 사용한 테스트가 아닌 RestAssured를 사용하여 테스트하는 이유를 알 수 있을까요??
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
port와 adapter에 대해
만들때 쓰셨던 port와 adapter 패턴에 대해 좀 설명해주실수 있을까요?
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
속도감..
조금.. 빠른감이 있네여.. ㅠㅠㅎ
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
API전환하기 테스트에서
자바 1.8만 설치되어 있어 해당 버전으로 실습중에 있는데요ProductApiTest > 상품등록() > API 요청final AddProductRequest request = 상품등록요청_생성(); // API 요청 final ExtractableResponse<Response> response = RestAssured.given().log().all() .contentType(MediaType.APPLICATION_JSON_VALUE) .body(request) .when() .post("/products") .then() .log().all().extract();위 코드에서 request는 java class object인데 json으로 type변환 없이 전송이 잘 되네요.저 같은 경우 serialize exception이 발생하면서 테스트가 진행되지 않습니다. ㅠ버전에 따른 차이일까요?com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.example.productorderservice.product.AddProductRequest and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1300) at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400) at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:46) at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:29) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:3160) at com.fasterxml.jackson.databind.ObjectMapper$writeValue.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148) at io.restassured.internal.mapping.Jackson2Mapper.serialize(Jackson2Mapper.groovy:53) at io.restassured.internal.mapping.Jackson2Mapper.serialize(Jackson2Mapper.groovy) at io.restassured.mapper.ObjectMapper$serialize.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139) at io.restassured.internal.mapping.ObjectMapping.serializeWithJackson2(ObjectMapping.groovy:209) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:149) at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:100) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:240) at io.restassured.internal.mapping.ObjectMapping.serialize(ObjectMapping.groovy:150) at io.restassured.internal.mapping.ObjectMapping$serialize.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at io.restassured.internal.RequestSpecificationImpl.body(RequestSpecificationImpl.groovy:753) at com.example.productorderservice.product.ProductApiTest.상품등록(ProductApiTest.java:25) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1259) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1259) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:84) at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:98) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
.ast
안녕하세요 강사님테스트하실 때 .ast를 활용하여 assertThat()을 활성화하시던데 방법을 알 수 있을까요?postfix 를 활용하시는 것 같은데 어떻게 하는지 정확히 궁금합니다!
-
해결됨실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
API 테스트로 전환하기 영상에서..
4:40에.. extends ApiTest 하면서 SpringBootTest 어노테이션을 지웁니다! 에러를 계속 마주치다가 간신히 찾았군요..
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
재밌게 잘 보고있습니다.
1배속이지만 다른강의 2배속 느낌이네요.. 이게 실무인가 싶기도 하고 ㅎ_ㅎ 특정 메서드를 만들면, throw new 이후 나오는 건 따로 설정을 하신거려나요?
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
테스트 코드 작성할 때 이미 작성했던 코드 어떻게 나오게 해서 선택하시나요?
테스트 코드Assert.isTrue 작성할 때 이미 작성했던 코드가 나와서 선택만 해주시던데 어떻게 나오게 해서 선택하시나요? 플러그인이나 어떤 옵션이 있으신가요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
mvc패턴 외워야 하나요?
강사님은 이게 어떤 방식으로 되는지 다 아시는데 보는 저는 이해가 잘 되지 않습니다. 처음이라 그런거겠지요. 근데 mvc패턴 다 외워야 하나요??
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
다시 질문드립니다.
mvc04 import 한 뒤 memberRegister.do 가 정상적으로 나오는데 이후 가입을 누르면이런 오류가 뜨게 됩니다.보니까 sql 문제인거 같기도 하고 자꾸 가입실패가 뜹니다. 어떤 점을 중점으로 봐야되나요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
선생님 server.xml 컨텍스트 path에 대해서 질문드립니다.
MVC04 를 실행시키려면 이 코드로는 진행이 안됩니다. 여기가 문제인 것 같은데 어떤 게 올바른 코드인지 말씀 부탁드립니다 ㅠㅠ!
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
db properties에서 오류입니다
<property name="locations" value="/WEB-INF/mybatis/db.properties"></property>name에서 이런 오류가 뜹니다 Set locations of properties files to be loaded.Can point to classic properties files or to XML files that follow JDK 1.5's properties XML format.Note: Properties defined in later files will override properties defined earlier files, in case ofoverlapping keys. Hence, make sure that the most specific files are the last ones in the given list oflocations. 이 강의에서 다른 분도 같은 오류 질문 올리셨던데 답변이 되어있지 않네요 ㅠㅠㅠ혹시 이 부분 해결 안되면 나프2탄의 스프링 부분 안듣고 바로 스프1탄으로 넘어가도 되나요?그러면 이해하기 어려울까요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
파일 이름 인코딩 관련해서 질문 드립니다.
MemberFrontController 에서 맨 처음 request.setCharacterEncoding("UTF-8"); 이렇게 넘어오는 데이터를 utf-8로 인코딩 해주는 거는 POJO에서 하는 filename = URLEncoder.encode(filename, "UTF-8"); 이거 랑 별개인 건가요? 궁금해서 질문 드립니다.
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
한글 인코딩 질문 드립니다.
안녕하세요. 맨처음 FrontController에 모든 로직을 다 집어넣는 부분에서 인코딩 설정을 euc-kr로 하셨는데 그 전에꺼는 보니까 UTF-8로 되어 있더라고요. 회원가입 하는 과정에서 강사님께서 memberRegister,html form 태그의 경로를 MVC03으로 그대로 두셔서 UTF-8로 인코딩이 계속 되신거 같은데 저는 경로를 MVC04로 바꿔서 가입을 진행해보니 한글이 깨져서 나옵니다. 혹시 euc-kr로 인코딩 했을 때 왜 한글이 깨져서 나오는지 알 수 있을까요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
질문을 모르고 삭제해버렸는데 혹시 답글을 해주셨을까요??
답글 확인을 못하고 삭제를 눌러서ㅠㅠ,,,