inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

Session 사용 시 RESTful api users/{userid}에서 userid 가져오기에서

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] spring에서 지원하는 서블렛 세션을 사용하면 클라이언트에 JSESSIONID가 쿠키로 전달된다고 알고 있습니다. 질문 1. RESTful API 설계 시 유저의 마이페이지 관련 정보를 가져오는 백엔드 api path는 '/users/{userid}'가 올바른가요, '/profile'이 올바른가요? 혹은 각기 다른 api path를 통해 뷰에 해당하는 프론트엔드에서 조립해야 하나요? 질문 2. 위의 질문 대답이 전자라면, 클라이언트가 마이페이지 버튼을 눌렀을 때 클라이언트에게 userid가 없고 JSESSIONID만 있는 상태인데, userid를 가져오는 과정을 거친 후에 '/users/{userid}'를 실행해야 하나요? 혹은 로그인 시 userid를 쿠키 등으로 클라이언트에게 전달하여 클라이언트가 갖고 있도록 해야 하나요? 실무에서는 어떤 방식을 사용하는지 궁금합니다. 질문 3. 같은 맥락으로 회원탈퇴 기능의 api를 '/users/{userid}'라고 할 때, JSESSIONID만 가지고 있는 클라이언트가 해당 api를 사용하기 위해서는 userid를 가져오는 작업을 수행해야 하나요, 아니면 다른 방법이나 접근방식이 있을까요?

  • spring
  • mvc
  • session
  • restful
김민규 댓글 1 좋아요 0 조회수 1315

??page.addItem_ko_KR??

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 메시지 부분 실습하는데 한글이 계속 깨집니다.. 커뮤니티에서 같은 오류 나신 분 해결방안보고 따라해봤는데도 계속 이 상태더라고요.. 혹시 다른 문제 있는 부분 알려주실 수 있으실까요

  • spring
  • mvc
최보현 댓글 2 좋아요 1 조회수 708

섹션2 13강 서블릿에서

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. webapp 카테고리에 index.html basic.html 만든 후 ServletApplication 실행하면 ClassNotFoundException 에러가 발생합니다. "C:\Program Files\Java\jdk-20\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 232.7754.73\lib\idea_rt.jar=62663:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 232.7754.73\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\USER\Desktop\servlet\out\production\classes;C:\Users\USER\Desktop\servlet\out\production\resources;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\3.1.2\30b824817e764a5a5a1e9fb46e7ace40bcfa3185\spring-boot-starter-web-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\3.1.2\c48d521879dbbcebe1a99f47257612968e022f5b\spring-boot-starter-json-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\3.1.2\c09a48df6fbc2b07b7aef1256b45260a3478b49f\spring-boot-starter-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\6.0.11\892b4a63b5d930c2c43058c6db0c2c65401fb078\spring-webmvc-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\6.0.11\c32a7bf6b88b83bac6aa63866fcf208892640446\spring-web-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.15.2\30d16ec2aef6d8094c5e2dce1d95034ca8b6cb42\jackson-datatype-jsr310-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.15.2\75f8d2788db20f6c587c7a19e94fb6248c314241\jackson-module-parameter-names-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.15.2\66a50e089cfd2f93896b9b6f7a734cea7bcf2f31\jackson-datatype-jdk8-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.15.2\9353b021f10c307c00328f52090de2bdb4b6ff9c\jackson-databind-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\3.1.2\ea294976f925441fc1d5a5414d5d31717f06aa3c\spring-boot-autoconfigure-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\3.1.2\3cf070561716277ec91ebadc07362dd0b4a9f63f\spring-boot-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\3.1.2\4e47bd132fdd0d60ad57d70bdc99198b182166ee\spring-boot-starter-logging-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.0.11\87834b5cf95c6fa28f5bdf8a85e0daf0bff918a8\spring-core-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.33\2cd0a87ff7df953f810c344bdf2fe3340b954c69\snakeyaml-1.33.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\6.0.11\a7b10f3d3c1492bfc4e6d7c966cd2e21f4d441f5\spring-context-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\6.0.11\15b85c825558fadb85e3c77779d7225ce7e4a7bc\spring-aop-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\6.0.11\8513efc6e94b407b5cd85f69eeec511f1ef34164\spring-beans-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\6.0.11\1d0940120a275719c3988c592068f4acf807fe59\spring-expression-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-observation\1.11.2\704e145c4801320b4c7abf6c1a5b000155b069db\micrometer-observation-1.11.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.15.2\4724a65ac8e8d156a24898d50fd5dbd3642870b8\jackson-annotations-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.15.2\a6fe1836469a69b3ff66037c324d75fc66ef137c\jackson-core-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.4.8\f00ba91d993e4d14301b11968d3cacc3be7ef3e1\logback-classic-1.4.8.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.20.0\d37f81f8978e2672bc32c82712ab4b3f66624adc\log4j-to-slf4j-2.20.0.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\2.0.7\a48f44aeaa8a5ddc347007298a28173ac1fbbd8b\jul-to-slf4j-2.0.7.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\6.0.11\c9b16cdb6d4874ba4118fcdd4b0335f6278b378\spring-jcl-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-commons\1.11.2\f03f87bd7eacf79b00aa89907c6e30e0ec86b4\micrometer-commons-1.11.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.4.8\3fba9c105e0efc5ffdcda701379687917d5286f7\logback-core-1.4.8.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.7\41eb7184ea9d556f23e18b5cb99cad1f8581fc00\slf4j-api-2.0.7.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.20.0\1fe6082e660daf07c689a89c94dc0f49c26b44bb\log4j-api-2.20.0.jar hello.servlet.ServletApplication . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.1.2) 2023-08-02T16:17:15.220+09:00 INFO 14084 --- [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 20.0.1 with PID 14084 (C:\Users\USER\Desktop\servlet\out\production\classes started by USER in C:\Users\USER\Desktop\servlet) 2023-08-02T16:17:15.223+09:00 INFO 14084 --- [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default" 2023-08-02T16:17:15.575+09:00 WARN 14084 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed 2023-08-02T16:17:15.590+09:00 INFO 14084 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2023-08-02T16:17:15.608+09:00 ERROR 14084 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.obtainFromSupplier( AbstractAutowireCapableBeanFactory.java:1220 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBeanInstance( AbstractAutowireCapableBeanFactory.java:1158 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:560 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:520 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:326 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:324 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:205 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.context.support .PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors( PostProcessorRegistrationDelegate.java:199 ) ~[spring-context-6.0.11.jar:6.0.11] at org.springframework.context.support .AbstractApplicationContext.invokeBeanFactoryPostProcessors( AbstractApplicationContext.java:771 ) ~[spring-context-6.0.11.jar:6.0.11] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:589 ) ~[spring-context-6.0.11.jar:6.0.11] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:734 ) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:436 ) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:312 ) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:1306 ) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:1295 ) ~[spring-boot-3.1.2.jar:3.1.2] at hello.servlet.ServletApplication.main( ServletApplication.java:12 ) ~[classes/:na] Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServlet at org.springframework.boot.web.servlet.WebServletHandler.<init>( WebServletHandler.java:39 ) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>( ServletComponentRegisteringPostProcessor.java:49 ) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0( ServletComponentScanRegistrar.java:96 ) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier( AbstractAutowireCapableBeanFactory.java:1254 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .DefaultListableBeanFactory.obtainInstanceFromSupplier( DefaultListableBeanFactory.java:949 ) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.obtainFromSupplier( AbstractAutowireCapableBeanFactory.java:1214 ) ~[spring-beans-6.0.11.jar:6.0.11] ... 16 common frames omitted Caused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass( BuiltinClassLoader.java:641 ) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass( ClassLoaders.java:188 ) ~[na:na] at java.base/java.lang.ClassLoader.loadClass( ClassLoader.java:521 ) ~[na:na] ... 22 common frames omitted Process finished with exit code 1

  • spring
  • mvc
goldstar02960 댓글 1 좋아요 0 조회수 821

Junit의 test 클래스의 의존관계에 대한 궁금증

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. Junit 관련 질문입니다. Junit에서 test시 객체가 생성되어야 되는데 따로 컨테이너를 관리하지 않는데 어느범위까지 미리 싱글톤 인스턴스를 만들어서 정상작동되는건가요? 본 강의의 test 클래스에서 싱글톤 객체를 그냥 getInstance()메서드(# 객체 자체 인스턴스를 가져오는 메서드)를 통해서 사용을하는데 언듯 생각하기엔 독립된 test 내에 해당 객체를 사용하기 위해선 선언을 먼저해주거나 컨테이너에서 관리가 되어야 될것 같아서 어떤 로직인지 궁금해 질문드립니다.

  • spring
  • mvc
Gandhi Mahatma 댓글 1 좋아요 0 조회수 253

FrontControllerServletV1 객체는 누가 만들어주나요?

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

FrontControllerServletV1의 생성자를 통해 controllerMap에 넣어주시는 부분은 봤습니다 하지만 해당 생성자가 언제 어디서 누구에게 호출되는지가 궁금합니다 짐작컨대 WAS가 Servlet Container에서 FrontControllerServletV1을 찾아 DI를 하는가합니다

  • spring
  • mvc
IH Oh 댓글 1 좋아요 0 조회수 456

Form 전송 객체 분리에서 상속을 사용하는 것은 어떤가요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] ItemSaveForm과 ItemUpdateForm으로 Form 전송 객체를 분리하였는데 이 두 Form 객체를 Item을 상속받아서 만드는 것은 어떤가요? 이렇게 만들 경우 add, edit할 때 item 객체를 따로 만들지 않고 form을 바로 itemRepository에 전달 할 수 있습니다. 이 방법이 괜찮은 방법인지 아니면 너무 특수한 경우인지 궁금합니다.

  • spring
  • mvc
Arachne 댓글 2 좋아요 0 조회수 481

kotlin closure 는 별도의 메모리 공간에 데이터를 복사해서 가지고 있는게 맞을까요?

미해결

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

Java 에서 Final 만 사용할 수 있는게 외부 변수가 메모리에서 해제 되었을 경우, 가비지를 참조할 수 있는 것을 방지하기 위해서로 알고 있는데 코틀린은 이게 가능한게 아예 메모리를 통째로 떠와서 그런걸까요? ㅎㅎ 강의 영상에서 포획한다 라고 표현하신게 그런 의미 같아요!

  • java
  • kotlin
  • 객체지향
목동 개발자 댓글 1 좋아요 2 조회수 409

트랜잭션 추상화 후 커넥션 풀 관련 질문입니다.

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 트랜잭션 추상화 후 트랜잭션 매니저에서 데이터소스를 통해 커넥션을 생성한다고 강의에서 말씀해 주셨습니다. @Transactional을 사용하면 커넥션 풀을 사용하는지 DriverManger를 통해 신규 커넥션을 생성하는지와 커넥션 풀을 사용한다면 어떤 커넥션 풀을 사용하는지 궁금합니다!

  • spring
  • mvc
  • spring-jdbc
이승민 댓글 1 좋아요 0 조회수 380

스프링 MVC2 입력폼처리

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요 MVC-2 강의중 2. 타임리프 - 스프링 통합과 폼 강의자료 3~4페이지 중에서 질문이 있습니다. 첨부한 사진을 코드를 살펴보시면, 클라이언트가 /add 페이지를 요청할 때마다 new Item()을 생성하게 됩니다. 물론 new를 하는 이유는 타임리프가 제공하는 편리한 기능인 커맨드 객체를 사용하기 위함이라고 말씀하셨습니다. 제가 궁금한 부분은, 실제 서비스에서 클라이언트는 단지 get을 할 뿐인데 이처럼 매번 객체를 생성하면 서버의 메모리가 낭비되지 않을까라는 생각이 들어서 질문을 남깁니다. 실무에서 이같은 코드를 실제로 사용하는지 궁금합니다. 아니라면, 실무에서 적용가능한 개선점도 말씀해주시면 감사하겠습니다.

  • spring
  • mvc
  • 입력폼
  • mvc2
김만재 댓글 1 좋아요 0 조회수 348

application/json;charset=utf-8 부분 질문

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

response.getWriter() 사용하면 나오는 문제라고 하셨는데 그럼 스프링MVC 사용할때는 신경 안써도 되는 문제일까요?

  • spring
  • mvc
  • servlet
Eungi Kim 댓글 1 좋아요 0 조회수 860

멀티쓰레드 싱글톤

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 싱글톤 객체를 멀티쓰레드로 이용할 때, 이럴 때 그냥 멤버로 flag 하나 달아두면 되지 않나요?

  • spring
  • mvc
궁금이 댓글 1 좋아요 0 조회수 396

static final 질문

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

public static final String ERROR_EXCEPTION = "javax.servlet.error.exception"; public static final String ERROR_EXCEPTION_TYPE = "javax.servlet.error.exception_type"; public static final String ERROR_MESSAGE = "javax.servlet.error.message"; public static final String ERROR_REQUEST_URI = "javax.servlet.error.request_uri"; public static final String ERROR_SERVLET_NAME = "javax.servlet.error.servlet_name"; public static final String ERROR_STATUS_CODE = "javax.servlet.error.status_code"; static final로 선언돼있는데 어떻게 다른 예외가 발생할 때 마다 로그 찍어보면 다른 값이 들어가 있나요??

  • spring
  • mvc
jung 댓글 1 좋아요 0 조회수 363

프로젝트 생성 후 RUN -> 에러

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

안녕하세요. 첫 시작부터 막혀서 슬프네요.. 도와주세요 ! 과정 순서대로 올릴게요. (1) 프로젝트 생성 (2) 생성 후 오픈 > RUN 클릭 > 에러 (3) Settings > Gradle > Intellij IDEA로 변경 (에러 메세지는 안뜨나, 톰캣 Start 안됨) (4) 오른쪽 Notifications 에서 'Lombok' 관련 알림 (혹시나 해서 첨부..) (5) Settings > Gradle > Gradle JVM 변경 (11 & 17 둘다 시도해봄 / 여전히 에러 메세지는 안뜨나, 톰캣 Start 안됨) (6) 톰캣 Start 안됨 선생님들 ♥ 도와주세요 무엇을 어떻게 고치면 될까요?

  • spring
  • mvc
배고픈 불가사리 댓글 2 좋아요 0 조회수 501

create() 함수에서 input tag에서의 값을 MemberForm으로 받는 이유가 있나요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

@PostMapping("members/new") public String create(String name){ Member member = new Member(); member.setName(name); MemberService.join(member); return "redirect:/"; } 위 코드처럼 String을 이용해 form에서 데이터를 받아오면 안 되는 건지 궁금합니다

  • java
  • spring
  • mvc
  • spring-boot
han 댓글 2 좋아요 0 조회수 290

결과는 뜨는데 에러가 나옵니다 그냥 무시하면 되나요?

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] java.io .EOFException: null at org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper.fillReadBuffer( NioEndpoint.java:1347 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper.read( NioEndpoint.java:1234 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11InputBuffer.fill( Http11InputBuffer.java:785 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine( Http11InputBuffer.java:348 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:263 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:926 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1791 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na] 2023-08-01 17:56:50.209 DEBUG 21464 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header java.io .EOFException: null at org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper.fillReadBuffer( NioEndpoint.java:1347 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper.read( NioEndpoint.java:1234 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11InputBuffer.fill( Http11InputBuffer.java:785 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine( Http11InputBuffer.java:348 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:263 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:926 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1791 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na] 2023-08-01 17:56:50.213 DEBUG 21464 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing request java.io .EOFException: null at org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper.fillReadBuffer( NioEndpoint.java:1347 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper.read( NioEndpoint.java:1234 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11InputBuffer.fill( Http11InputBuffer.java:785 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine( Http11InputBuffer.java:348 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:263 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:926 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1791 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na] 2023-08-01 17:56:50.213 DEBUG 21464 --- [nio-8080-exec-3] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing request java.io .EOFException: null at org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper.fillReadBuffer( NioEndpoint.java:1347 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper.read( NioEndpoint.java:1234 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11InputBuffer.fill( Http11InputBuffer.java:785 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine( Http11InputBuffer.java:348 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:263 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:926 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1791 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.78.jar:9.0.78] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na] 2023-08-01 17:56:50.215 DEBUG 21464 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Socket: [ org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper@b93f867: org.apache.tomcat.util.net .NioChannel@44fa23bd:java.nio.channels.SocketChannel[connected local=/0:0:0:0:0:0:0:1:8080 remote=/0:0:0:0:0:0:0:1:61117]], Status in: [OPEN_READ], State out: [CLOSED] 2023-08-01 17:56:50.216 DEBUG 21464 --- [nio-8080-exec-3] o.apache.coyote.http11.Http11Processor : Socket: [ org.apache.tomcat.util.net .NioEndpoint$NioSocketWrapper@294549a5: org.apache.tomcat.util.net .NioChannel@38789ba9:java.nio.channels.SocketChannel[connected local=/0:0:0:0:0:0:0:1:8080 remote=/0:0:0:0:0:0:0:1:61116]], Status in: [OPEN_READ], State out: [CLOSED] 이런 에러가 뜹니다.

  • spring
  • mvc
박준형 댓글 2 좋아요 0 조회수 1184

HomeController 클래스 통해서 home.html 렌더링되는 과정이 이게 맞는 건지 궁금해요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 1. 애플리케이션이 실행될 때, @Controller annotation이 있는 HomeController class의 instance가 스프링 컨테이너에 bean으로서 등록 2. 사용자가 localhost:8080 입력하면 tomcat 서버가 받고, 스프링 컨테이너에 @GetMapping("/")이 있는 bean 탐색 3. HomeController class 내부에 있는 home()이 @GetMapping("/")이 있고, 문자열 "home"을 return하므로 templates 폴더에 있는 home.html 렌더링됨, 컨테이너에서 이미 대응되는 bean을 찾았으므로 static 폴더에 있는 index.html는 렌더링 X 이 과정이 맞을까요?

  • java
  • spring
  • mvc
  • spring-boot
han 댓글 1 좋아요 0 조회수 575

MemberServiceTest 똑같이 작성했는데 java: ';' expected 에러가 자꾸 떠요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions. assertThrows ; public class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void afterEach() { memberRepository.clearStore(); //코드가 끝날때마다 clear @Test void 회원가입() { // given Member member = new Member(); member.setName("hello"); // when long saveId = memberService.join(member); // then Member findMember = memberService.findOne(saveId).get(); Assertions. 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); //then IllegalStateException e = assertThrows (IllegalStateException.class, () -> memberService.join(member2)); Assertions. assertThat (e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } // //then // try{ // memberService.join(member2); // fail(); // }catch (IllegalStateException e){ // // assertThat을 통해 두 객체가 같은지 확인한다. // Assertions.assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다.1232131"); // } @Test void findMember() { } @Test void findOne() { } }

  • java
  • spring
  • mvc
  • spring-boot
콜드 댓글 1 좋아요 0 조회수 1377

jpa_pdf 객체 조회 부분에서..

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

memberId를 파라미터로 받고 해당하는 단일 Member 객체를 반환하는 find 메소드와 연관지었을 때 JOIN 뒤에 있어야 할 WHERE M.MEMBER_ID = ? 와 같은 where 절이 없는데.. 생략된 것인가요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
헛핫훗 댓글 1 좋아요 0 조회수 410

messages_en.properties 가 기본 설정값

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 설정 아무것도 안 건들고 소스 코드도 아무것도 안 건드린 상태인데도 서버 열고 localhost:8080 접속하면 messages_en.properties가 인식돼서 나옵니다. 물론 기본 파일인 messages.properties 도 다 존재하는 상태구요. 기본 브라우저도 1순위 한국어로 다 설정해놓은 상태이며 HTTP request를 봐도 ko로 잘 넘어옵니다. 근데 파일 자체는 messages_en이 읽히는 것 같습니다. 어떻게 해결해야 할까요?

  • spring
  • mvc
yeoeol 댓글 2 좋아요 0 조회수 561

인기 태그

인프런 TOP Writers

주간 인기글