묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
영상 화면이랑 UI가 조금 다릅니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요영상에서 나오는 UI랑제 화면에서 띄운 UI랑 틀이 조금 달라보여서 질문 드립니다.문제 없는 건가요?왜 다르게 구현이 되었는지 이유가 있을까요?코드 문제 일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트를 실행해보았는데요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]h2 데이터베이스에 테스트한 spring이 올라가지 않습니다. 약 6분 58초 강의 내용인데 따로 테스트 앞에 transaction을 하지도 않았는데 되지 않네요 ㅜ. 빨간색 글자가 뜨긴했는데 이 경고 때문일까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
layout fragment 사용시 이름이 동일한 태그가 두개가 매개변수로 들어가면 어떻게 사용되는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]<!DOCTYPE html> <html th:replace="~{template/layoutExtend/layoutFile :: layout(~{::title}, ~{::section})}" xmlns:th="http://www.thymeleaf.org"> <head> <title>메인 페이지 타이틀</title> </head> <body> <section> <p>메인 페이지 컨텐츠1</p> <div>메인 페이지 포함 내용1</div> </section> <section> <p>메인 페이지 컨텐츠2</p> <div>메인 페이지 포함 내용2</div> </section> </body> </html>html 태그안에 layout fragment에 title과 section을 넣었는데 만약에 section태그가 두개면 어떻게 꺼내서 사용 되는건가요?<section> <p>메인 페이지 컨텐츠1</p> <div>메인 페이지 포함 내용1</div> </section> <section> <p>메인 페이지 컨텐츠2</p> <div>메인 페이지 포함 내용2</div> </section> <!DOCTYPE html> <html th:fragment="layout (title, content)" xmlns:th="http://www.thymeleaf.org"> <head> <title th:replace="${title}">레이아웃 타이틀</title> </head> <body> <h1>레이아웃 H1</h1> <div th:replace="${content}"> <p>레이아웃 컨텐츠</p> </div> <footer> 레이아웃 푸터 </footer> </body> </html>어떻게 꺼내서 사용을 하게 되는건지? 변수처럼 사용을 하면되는건가요? 만약에 section 두개중에 하나만 꺼내서 쓰고싶으면 어떻게 꺼내는지?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberserviceIntergration 회원가입 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용 그대로 했는데 에러가 나옵니다. ㅠ16:54:35.080 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [hello.hello_spring.service.MemberServiceIntegrationTest]: MemberServiceIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.16:54:35.185 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration hello.hello_spring.HelloSpringApplication for test class hello.hello_spring.service.MemberServiceIntegrationTest . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.3.0)2024-06-03T16:54:35.496+09:00 INFO 6290 --- [hello-spring] [ main] h.h.s.MemberServiceIntegrationTest : Starting MemberServiceIntegrationTest using Java 17.0.11 with PID 6290 (started by pearlinezero in /Users/pearlinezero/Spring_study/hello-spring)2024-06-03T16:54:35.497+09:00 INFO 6290 --- [hello-spring] [ main] h.h.s.MemberServiceIntegrationTest : No active profile set, falling back to 1 default profile: "default"2024-06-03T16:54:35.966+09:00 INFO 6290 --- [hello-spring] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2024-06-03T16:54:35.981+09:00 INFO 6290 --- [hello-spring] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 10 ms. Found 0 JPA repository interfaces.2024-06-03T16:54:36.277+09:00 INFO 6290 --- [hello-spring] [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2024-06-03T16:54:36.309+09:00 INFO 6290 --- [hello-spring] [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.2.Final2024-06-03T16:54:36.329+09:00 INFO 6290 --- [hello-spring] [ main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled2024-06-03T16:54:36.531+09:00 INFO 6290 --- [hello-spring] [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer2024-06-03T16:54:36.549+09:00 INFO 6290 --- [hello-spring] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2024-06-03T16:54:36.605+09:00 INFO 6290 --- [hello-spring] [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:tcp://localhost/~/test user=SA2024-06-03T16:54:36.606+09:00 INFO 6290 --- [hello-spring] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2024-06-03T16:54:37.187+09:00 INFO 6290 --- [hello-spring] [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)2024-06-03T16:54:37.188+09:00 INFO 6290 --- [hello-spring] [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2024-06-03T16:54:37.315+09:00 WARN 6290 --- [hello-spring] [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2024-06-03T16:54:37.330+09:00 INFO 6290 --- [hello-spring] [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2024-06-03T16:54:37.609+09:00 INFO 6290 --- [hello-spring] [ main] h.h.s.MemberServiceIntegrationTest : Started MemberServiceIntegrationTest in 2.299 seconds (process running for 3.18)Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appendedjava.lang.IllegalArgumentException: id to load is required for loading
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
CertificationService의 테스트에서 FakerMailSender를 이용하는 부분에서 질문이 있습니다.
해당 방식은 FakerMailSender에 결국 테스트 의존성이생기게 된다고 생각하는데요.현재 코드는 단순해서 개발자가 테스트 코드 수정시 확인할 부분이 없지만, 추후 객체의 구조가 변경되거나, 규칙이 추가 - 변경된다면 모든 테스트 코드의 요구사항에 맞도록 Faker객체의 구현 내용도 함께 변경되어야 할것같습니다. 하지만 항상 모든 테스트의 요구사항을 알기는 쉽지만은 않을것같은데요.이러한 불편함을 극복하기 위한 방법이 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증 실패 로직시 반환에 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]검증 실패시 고객에게 다시 입력폼으로 돌아가게 해야한다 하셔서 저는 리다이렉트를 한다고 생각하였는데 강의에서는 바로 입력폼 뷰로 이동을 하셨습니다.리다이렉트로 변경하여 실행하니까 모든 값들이 초기화 되고 오류 메시지도 발생이 안되는데 리다이렉트를 해도 모델에 담긴 에러메시지들과 아이템 객체에 사용자가 잘못입력한 값들도 같이 넘어가야 하는거 아닌가요?
-
미해결스프링 부트 - 핵심 원리와 활용
--spring.profiles.active=prod 가 실행이 안됩니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]"C:\Program Files\Java\jdk-17\bin\java.exe" --spring.profiles.active=prod -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.2\lib\idea_rt.jar=58809:C:\Program Files\JetBrains\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath C:\study\spring-boot\external\build\classes\java\main;C:\study\spring-boot\external\build\resources\main;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.projectlombok\lombok\1.18.24\13a394eed5c4f9efb2a6d956e2086f1d81e857d9\lombok-1.18.24.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\3.0.2\a9426629b5a83ad64fbe4e1d24081cccf4cdab14\spring-boot-starter-3.0.2.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\3.0.2\42ad589ec930e05a2ed702a4940955ff97b16a8c\spring-boot-autoconfigure-3.0.2.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\3.0.2\69d2e0a07f7df180a4aacdc47c47a3db656857dc\spring-boot-3.0.2.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\3.0.2\1c5c71058a0297534d5c5f33a5d125bbbdb6a390\spring-boot-starter-logging-3.0.2.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\2.1.1\48b9bda22b091b1f48b13af03fe36db3be6e1ae3\jakarta.annotation-api-2.1.1.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.0.4\8e24ad493887023cf5fac93541c72516f8ed9f6a\spring-core-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.33\2cd0a87ff7df953f810c344bdf2fe3340b954c69\snakeyaml-1.33.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\6.0.4\4fffcbb7eb4f1e9f1a4c9d3ca60098f7c063fc05\spring-context-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.4.5\28e7dc0b208d6c3f15beefd73976e064b4ecfa9b\logback-classic-1.4.5.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.19.0\30f4812e43172ecca5041da2cb6b965cc4777c19\log4j-to-slf4j-2.19.0.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\2.0.6\c4d348977a83a0bfcf42fd6fd1fee6e7904f1a0c\jul-to-slf4j-2.0.6.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\6.0.4\2d6523d00fc40cdb2c2f409113447940d2c872b5\spring-jcl-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\6.0.4\c47b65c09a5a6fc41293b6aa981fcbe24a3adcd0\spring-aop-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\6.0.4\7d903607ecfcdefccd0d48aea8724632479b3e83\spring-beans-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\6.0.4\a908e6d3c46fcd6b58221d8427bbaf284bbbee0c\spring-expression-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.4.5\e9bb2ea70f84401314da4300343b0a246c8954da\logback-core-1.4.5.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.6\88c40d8b4f33326f19a7d3c0aaf2c7e8721d4953\slf4j-api-2.0.6.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.19.0\ea1b37f38c327596b216542bc636cfdc0b8036fa\log4j-api-2.19.0.jar hello.ExternalApplicationUnrecognized option: --spring.profiles.active=prodError: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.Process finished with exit code 1다음과 같은 에러가 뜨는데 Chat GPT로 해도 이해가 안돼서 질문 남깁니다.
-
미해결견고한 결제 시스템 구축
Confluent Cloud Kafka 클러스터 생성시 카드 정보 입력해야 진행이 가능 하네요 ㅠ,ㅠ
카드 입력 안하면 더 이상 진행이 안되네요... 제가 혹시 잘못 알고 있는걸까요?...
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
context의 read, write의 실행 순서
안녕하세요, context의 read와 write 부분을 듣다 궁금한 점이 생겨 질문을 남깁니다.Context는 체인이 맨 아래에서부터 위로 전파된다는 내용은 이해했습니다.궁금한 점은 'Context read 읽는 동작이 Context write 동작 밑에 있을 경우에는 write된 값을 read할 수 없'는 동작을 컴퓨터는 어떻게 이해하고 실행하는지를 모르겠습니다. 위에서부터 아래로 코드를 읽어나가면 contextWrite()는 마지막에 읽히게 되니까요.컴파일하면서 write의 위치가 바뀌어 write가 먼저 진행되는지 혹은 subscribe()를 만나기 전까지는 실제 stream이 동작하지 않아 write된 값이 저장돼 있는지..코드 작동 순서/원리가 궁금합니다. 감사합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
5강 중, 생성자 class 만들어 진행하면 parameter 인식이 안됩니다.
[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.] with root cause계속 위와 같은 에러가 떠서gpt랑 구글링을 하니까 생성자 클래스에 @ConstructorProperties({"number1", "number2"}) 어노테이션을 추가하라고 해서 추가했더니 값이 출력되는데 이 어노테이션을 작성하는게 맞나요?또 다른 글에는 java compiler를 수정하라고 하는데 맞는지 궁금합니다 !저는 sts4로 진행중입니다 !
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
수동 빈 등록과 자동 빈 등록 질문
[질문 내용] 강의에서는 이렇게 수동 빈 등록으로 서비스와 레포지토리를 등록했는데 이렇게 자동 빈 등록을 하면 위와 같이 수동 빈 등록했던 인터페이스들을 모두 그냥 @Component 처리 해버리면 굳이 config 클래스를 만들지 않고도 알아서 빈 등록 및 인터페이스와 구현체 연결이 되는게 맞나요? 맞다면 번거롭게 config클래스를 만들면서 수동 빈 등록을 하는 이유가 궁금해요
-
미해결견고한 결제 시스템 구축
강의를 듣고 문득 궁금한 점이 생겼습니다.
현재 강의는 핵사고날 아키텍처를 사용하여 결제 시스템을 구축하고 있습니다. 어니언 아키텍처로도 충분히 의존성을 안쪽으로 향하게 하여 entity와 usecase를 외부 변경으로 부터 보호가 가능하지 않나 생각이 들었습니다. (결정적으로 핵사고날은 구조가 좀 복잡했습니다.)webflux를 쓰신 이유가 궁금합니다. 강의에서 내세운 견고한 시스템을 만들기위한 요구사항을 읽어봤을 때 반응성이 아니더라도 충분히 무리가는 상황이 아니기도 했고 성능보단 견고함이 중요한 상황인데 webflux를 쓰신 이유가 궁금합니다! 제 역량이 모자라 이해 못하는 부분이 있을 수 있어 배우고자 질문드립니다. 감사합니다!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
"폼 데이터 전달에 Item 도메인 객체 사용" 이 부분에서 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2분대에서"폼 데이터 전달에 Item 도메인 객체 사용"이 부분에서 질문 있습니다.HTML Form -> Item -> Controller -> Item -> Repository이런식으로 데이터가 간다고 되어 있는데HTML Form -> Controller -> Item -> Repository이렇게 넘어가지 않나요?Controller에서 @ModelAttribute로 바로 Item으로 넘어가는 걸로 알고 있는데 @Validated 에노테이션으로 Item에서 검증이 일어나서 HTML Form -> Item -> Controller -> Item -> Repository이렇게 넘어가는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Assertions.assertEquals의 첫 칸 String 내용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.assertEquals 첫 칸에 들어가는 "" message 내용은 어디에 출력되는 메시지 내용 인가요?밑에 실행 결과창에서 Ctrl + F로 찾아봐도 안 나오는데 단순히 주석의 역할을 하는 메시지로 적는 것 인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품주문() 테스트 내용 질문 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.book.setPrice(10000) 에서 궁금증이 생겼는데요,int bookPrice = 10000; 처럼 변수를 만들어서book.setPrice(bookPrice)를 하면밑에 assertEquals에서expected 값에 10000 * orderCount가 아닌expected : bookPrice * orderCount로 할 수 있지 않나요?왜 Price값만 10000로 해서 직접 기입하는 방법을 사용하신건가요?
-
미해결스프링 핵심 원리 - 고급편
선생님 작성한 정적 팩토리 메서드에 대해 의견 주실 수 있으실까요??
안녕하세요! 프로젝트와 관련해 코드를 작성하다 궁금한 점이 생겨 질문 드립니다..! 혹 선생님께서는 정적 팩토리 메소드의 역할이 어디까지라고 생각하실까요? 저는 팩토리 메소드이기 때문에 1. 단순히 파라미터를 받아 생성자를 통해 인스턴스를 생성하는 것 뿐만 아니라, 인스턴스를 생성하기 위해 2. 파라미터 valiation을 확인하고, 인스턴스 생성을 위한 데이터들을 가공하는 과정 또한 포함해도 괜찮은 것이 아닌가 하였는데,저와 다른 의견 중에서는 팩토리 메소드는 가공이 전부 완료된 값을 단순히 받아서 인스턴스를 new 하기만 해야 한다는 의견이 있더라구요. 가공은 서비스 클래스에서 수행하구요! 예를 들면 아래와 같은 메소드가 validation과 데이터 가공을 처리하는 팩토리 메소드의 예시입니다 ::public static SearchRequest from( AnotherRequest request) { 55 //AnotherRequest 클래스로부터 SearchRequest 클래스를 생성함. if(request.get고객리스트().size() > 9) { 56 //validation? 혹은 비즈니스 로직? throw new Exception(); 57 } 58 //아래부터 데이터 가공 List<Passenger> 새로운 고객리스트 = request.get고객리스트().stream() 59 .map(p -> new Passenger(p.get생일(), p.get성별()) ) 60 .collect(Collectors.toList()); 61 62 //인스턴스 생성 후 return return new SearchRequest(새로운 고객리스트); 63 } 또한 webClient를 이용해 외부로 API 요청을 보내고자 할 때, path 값을 관리하는 과정에서,해당 path 값 ( ex. /a/b/xxx ) 을 반드시 webClient를 변수로 주입받아 실제 통신을 하는 class에서 가지고 있는 것과 혹은 통신 시 사용되는 request 데이터 dto 에서 그 변수 값을 가지고, 실제 통신을 하는 class에서는 request dto에서 getPath()를 통해 가져와 사용하는 것 어느 부분이 더 적절하다고 생각하실까요?저는 2번의 경우 webClient를 사용하는 클래스에서 추가적으로 여러 개의 path에 대한 상수 변수를 가지고 있을 필요가 없고 getPath()라는 메소드를 통해서 request dto의 종류를 신경쓰지 않고 일관되게 가져올 수 있다는 점에서 2번이 더 괜찮다고 생각을 하였는데, 다른 의견에서는 패스 값은 통신에 사용되는 값이기 때문에 dto가 아닌 통신을 하는 클래스가 가져야 하는게 더 자연스럽다. 그래서 새 기능이 추가되었을 때 통신을 하는 클래스 ( webClient를 변수로 가진 ) 에 패스에 대한 상수변수를 추가하고 패스에 따른 통신 메서드를 추가하는 것이 더 낫다. 라는 의견이 있었습니다. 코드 스타일에 따라 정답은 없겠지만, OOP의 입장에서 선생님의 의견을 여쭙고자 합니다! 답변 해주시면 정말 감사하겠습니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Error parsing HTTP request header 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]logging.level.org.apache.coyote.http11=trace 를 했을때, 아래 콘솔창에 2024-06-02T14:13:17.992+09:00 DEBUG 54987 --- [servlet] [nio-8080-exec-3] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request headerjava.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1293) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1181) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:789) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:348) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:262) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]2024-06-02T14:13:17.992+09:00 DEBUG 54987 --- [servlet] [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request headerjava.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1293) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1181) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:789) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:348) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:262) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]2024-06-02T14:13:18.002+09:00 DEBUG 54987 --- [servlet] [nio-8080-exec-3] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing requestjava.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1293) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1181) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:789) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:348) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:262) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]2024-06-02T14:13:18.002+09:00 DEBUG 54987 --- [servlet] [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing requestjava.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1293) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1181) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:789) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:348) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:262) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.24.jar:10.1.24] at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] 이런 에러가 뜨는데 이유가 뭘까요??
-
미해결스프링 핵심 원리 - 기본편
XML작성 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.XML 이런 오류가 나옵니다 제가 오타가있는거같아서 자료를 복사 붙여넣기 했는데도 이런 오류가 나옵니다
-
해결됨스프링 핵심 원리 - 기본편
섹션 4. BeanDefinition
(1)스프링 컨테이너는 BeanDefinition만 알면 된다.(2)BeanDefinition을 빈 설정 메타정보라 한다.(3)@Bean, <Bean> 당 하나씩 메타정보가 생성된다.(4)이 메타정보를 기반으로 스프링 빈을 생성한다. 교재에 써있는 내용입니다!헷갈리는 부분이 있어서 질문드립니다ㅠㅠ 첫 번째 질문: 우선 (2)에서 BeanDefinition을 빈 설정 메타정보라고 되어있는데, 빈 설정 메타정보가 모든 메타정보를 담는 하나의 바구니고 @Bean 으로 생성된 메타정보들이 이곳에 담기는 건가요?아니면, (3)에서 나온 메타정보가 (2)에서 나와있는 빈 설정 메타정보랑 동치인 건가요? 두 번째 질문: 스프링 컨테이너는 BeanDefinition(추상화)을(를) 알고있다고 하셨는데, reader로 구성 설정 정보를 읽고 BeanDefinition을 생성하는 게 BeanDefinition을 상속받은 각각의 객체가 생성되는 건가요? 세 번째 질문: @Bean의 갯수만큼 BeanDefinition이 생성되는 건지 궁금합니다...!
-
미해결스프링 핵심 원리 - 고급편
어드바이스 추가 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]어드바이스가 하나 더 추가돼서 Service에선 log 관련 프록시랑 트랜젝션 관련 프록시가 두개가 생기면joinPoint.proceed(); 메서드가 두번 호출되어'[orderService] 실행' 메세지가 두번 찍혀야되는거 아닌가요?두 어드바이스가 체인 형식으로 묶이는 건가요?