묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 - 핵심 원리와 활용
코드 소스
[질문 내용]수업 자료 코드 소스는 어디서 받을수있나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
맥 h2 db 실행오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]맥 터미널에서 권한 부여까지 한후 실행을 했는데./bin/h2.sh: line 3: 3667 Trace/BPT trap: 5 java -cp "$dir/h2-2.2.224.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@"이와 같은 메세지가 뜨면서 아예 화면도 안뜨네요ㅜㅜ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HandlerExceptionResolver 안에서 sendError가 호출된 경우 흐름 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예를 들어 클라이언트가 잘못된 형식의 값을 입력하면 클라이언트의 잘못이지만 서버 내에서 발생한 오류이기 때문에 500오류가 나고 이를 400번대 오류로 처리하기 위해서 HandlerExceptionResolver 내에서 sendError(400, 오류 메세지)를 호출하여 400번대 오류로 설정한다고 하셨잖아요 그런데 이러면 와스가 sendError가 호출된 것을 보고 다시 재요청을 하지 않나요? HandlerExceptionResolver가 예외를 해결하면서 정상 처리로 만들어 추가 프로세스가 실행되지 않게 한다고 해서 잘 이해가 가지 않습니다. sendError로 오류 코드를 설정하고 모델앤뷰를 반환하면서 오류 페이지 렌더링이 되고 와스는 재요청을 하지 않는게 HandlerExceptionResolver의 올바른 흐름인가요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러와 서블릿의 차이점?
MVC 패턴을 사용하는 과정에서 @Controller과 서블릿의 차이점이 궁금합니다. 서블릿과 JSP에서는 비즈니스로직을 수행한 뒤 뷰 부분도 같이 실행했지만 MVC패턴을 활용한 부분에서는 비즈니스로직은 비즈니스로직만 뷰 관련 부분은 뷰 관련 부분에서만 실행하던데 그렇다면 @Controller와 서블릿의 차이점이 무엇인지가 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ExceptionHandler와 @ResponseStatus 같이 쓰는 경우 API예외처리과정
https://www.inflearn.com/questions/361278/exceptionhandler-%EC%A7%88%EB%AC%B8이 질문에서" @ResponseStatus는 내부적으로 response.sendError(statusCode, resolvedReason); 를 통해 response 내부에 오류가 발생했었음을 상태로 저장하게 됩니다.(이전 강의에서 알려주셨던 내용) "보고 의문이 들어 아래코드를 디버깅을 하고 정리했습니다.ApiResponse를 제가 니즈에 맞게 만든 JSON 형식이라 가정하시면 됩니다. @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(BindException.class) public ApiResponse<Object> bindException(BindException e) { return ApiResponse.of( HttpStatus.BAD_REQUEST, e.getBindingResult().getAllErrors().get(0).getDefaultMessage(), null ); }@ExceptionHandler을 사용하여 API예외처리 진행과정요청의 Accept 헤더가 "*/*", "application/json"인경우(1) 컨트롤러에서 예외발생(2) 이 응답값을 @ExceptionHandler을 사용하여 프로젝트의 니즈에 맞게 변경예로들어 상품에서 일어나는 오류, 회원가입에 일어나는 오류에 맞게 변경return값을 ResponseEntity로 해주거나 클래스에 @RestControllerAdvice를 이용이 부분이 궁금한점인데(Q1) API 오류 처리 이므로 @ResponseStatus에 의해 에러 코드만 변경 되고(500 -> 400) 반환값인 ApiResponse를 DispatchServlet에서 처리하여 클라이언트에게 전달해준다고 생각이 들었습니다. (Q2) 만약 API 오류 처리가 아닌 오류 화면(HTML 오류 처리)이었더라면 (@ExceptionHandler 사용 안하고)-> 컨트롤러에서 예외발생-> @ResponseStatus를 사용하여 에러 코드만 변경되고 error정보가 WAS(HttpServlet)까지 전달-> 기본 에러 페이지인 "/error"로 재요청-> BasicErrorController.errorHtml() 호출-> response.setStatus(getStatus(request).value())(=response.sendError()) 발생-> ModelAndView 리턴을 하는 게 아닌가요? (Q3) @ResponseStatus가 response.sendError()를 발생하는 게 아니라 에러 코드만 변경해주고 이를 바탕으로 ExceptionHandler나 BasicErrorController가 처리해 준다고 생각이 듭니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
em.persist() 메서드 호출시 id값 얻어오기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.회원 서비스 개발 4분쯤에 영한님께서 em.persist() 메서드로 영속성 컨텍스트에 인스턴스가 들어가게되면, DB에 들어가기 전에 id(key)에 대한 값이 들어가지게 된다고 하셨는데, 제가 이전에 들었던 부분은 insert쿼리가 나갔다가 저장된 엔티티를 통해서 id값을 받아오는 걸로 알고 있습니다.그래서 JPA 기본편 4챕터를 찾아보니, JDBC3에서 추가된 `Statement.getGeneratedKeys()` 이 메서드를 사용하면, 데이터를 저장하면서 동시에 생성된 기본 키 값도 얻어올 수 있다는 것을 제가 정리해놨었는데, getGeneratedKeys() 메서드가 ResultSet을 반환하던데, 구글링 해보니 ResultSet은 DB에서 조회한 정보가 담겨있는 것이더라구요. 그래서 연결지어서 생각해보니 getGeneratedKeys() 메서드를 호출해서 DB에서 마지막 결과의 id를 조회해서 할당하는 이런 방식으로 동작 하는 건가.. 생각하기도 했지만, 잘 모르겠습니다....ㅎㅎ답변 부탁드리겠습니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
톰캣 서버가 안열립니다 그리고 RUN이 비활성화됩니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)아뇨3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요."C:\Program Files\Java\jdk-17\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3.1\lib\idea_rt.jar=54590:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\OWNER\OneDrive\바탕 화면\ton\servlet (2)\servlet\out\production\classes;C:\Users\OWNER\OneDrive\바탕 화면\ton\servlet (2)\servlet\out\production\resources;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\3.2.0\e609f839e7c2ff9c90bc75d7c05dbcbb19315319\spring-boot-starter-web-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\3.2.0\e831483c03433b987cc9c72f8ea67757f9865191\spring-boot-starter-json-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\3.2.0\4d0cc70617a9febbbc6ad81562e930d93f7b2665\spring-boot-starter-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\6.1.1\76c4408b67828aa9656f5955dc2c1c4c0e1b6da3\spring-webmvc-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\6.1.1\4eeb5f2edb9f04d00357edcc56b59d3874b3b453\spring-web-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.15.3\4a20a0e104931bfa72f24ef358c2eb63f1ef2aaf\jackson-datatype-jsr310-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.15.3\8d251b90c5358677e7d8161e0c2488e6f84f49da\jackson-module-parameter-names-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.15.3\80158cb020c7bd4e4ba94d8d752a65729dc943b2\jackson-datatype-jdk8-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.15.3\a734bc2c47a9453c4efa772461a3aeb273c010d9\jackson-databind-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\3.2.0\29b231378146bd6606e75389297f3a7d55476b87\spring-boot-autoconfigure-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\3.2.0\4088ad23df91481bc7415cbfa068c423ccb7e54e\spring-boot-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\3.2.0\54998ab18f16e8d3a6e46c3d326f2de41c0b1ce0\spring-boot-starter-logging-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.1.1\22d73bef97aff8a74a992716fe1aafc8f8a8a68d\spring-core-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\2.2\3af797a25458550a16bf89acc8e4ab2b7f2bfce0\snakeyaml-2.2.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\6.1.1\610d7dd3f62d22d42b993a201e3110649b68e17\spring-context-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\6.1.1\66cb0e08770d4523ae3976b0b791cde767466c61\spring-aop-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\6.1.1\6af88af13193acf2197bc0a42f0ec4e5c481bfe9\spring-beans-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\6.1.1\807700a64cb055ed85af189d1fa0702bc0d2efba\spring-expression-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-observation\1.12.0\4f4981faa7968441d0092107df9b750e057374af\micrometer-observation-1.12.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.15.3\79baf4e605eb3bbb60b1c475d44a7aecceea1d60\jackson-annotations-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.15.3\60d600567c1862840397bf9ff5a92398edc5797b\jackson-core-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.4.11\54450c0c783e896a1a6d88c043bd2f1daba1c382\logback-classic-1.4.11.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.21.1\d77b2ba81711ed596cd797cc2b5b5bd7409d841c\log4j-to-slf4j-2.21.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\2.0.9\9ef7c70b248185845f013f49a33ff9ca65b7975\jul-to-slf4j-2.0.9.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\6.1.1\69ebbf7bad707d34e81d00213c756bc6fcc31dd7\spring-jcl-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-commons\1.12.0\2436654d439bd4ff6aad6419519357be8ba4f0d\micrometer-commons-1.12.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.4.11\2f9f280219a9922a74200eaf7138c4c17fb87c0f\logback-core-1.4.11.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.9\7cf2726fdcfbc8610f9a71fb3ed639871f315340\slf4j-api-2.0.9.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.21.1\74c65e87b9ce1694a01524e192d7be989ba70486\log4j-api-2.21.1.jar" hello.servlet.ServletApplication . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.0)2023-12-20T03:30:48.422+09:00 INFO 16572 --- [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 17.0.9 with PID 16572 (C:\Users\OWNER\OneDrive\바탕 화면\ton\servlet (2)\servlet\out\production\classes started by OWNER in C:\Users\OWNER\OneDrive\바탕 화면\ton\servlet (2)\servlet)2023-12-20T03:30:48.426+09:00 INFO 16572 --- [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default"2023-12-20T03:30:49.081+09:00 WARN 16572 --- [ 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 failed2023-12-20T03:30:49.091+09:00 INFO 16572 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2023-12-20T03:30:49.113+09:00 ERROR 16572 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed 서버가 안열립니다 그리고 run이 HelloServerlet을 실행시킬때 RUN이 비활성화 됩니다..
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
rs.next()의 동작 방식이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ResultSet에서 데이터를 얻어오기 위해 rs.next()를 계속 수행하며 진행하는데 여기에서 궁금한게ResultSet은 첫 쿼리로 모든 데이터를 받아온 뒤에 단순히 메모리에서 커서를 이동하는 건가요?아니면 rs.next()가 호출될때마다 DB에서 새로 데이터를 받아오는건가요?
-
해결됨스프링 핵심 원리 - 기본편
스프링 빈 조회 - 상속 관계 질문있습니다.
안녕하세요!강의에서 부모 타입으로 조회하면, 자식 타입도 함께 조회가 되기 때문에이럴 때, ac.getBean(DiscountPolicy.class) 로 조회하면, 위의 두 개가 조회된다고 설명해주셨는데요.그렇다면, 각각 RateDiscountPolicy와 FixDiscountPolicy 클래스는 DiscountPolicy에 자식 클래스로 보아도 되는 건가요?java에 완전히 익숙하진 않아서 일반적으로 상속한다는 것이 인터페이스의 구현에도 적용할 수 있는 개념인가 해서요..!인터페이스를 implements해서 구현하는 것도 상속하는 것이고, 그래서 부모 자식간의 관계가 성립하는 것으로 보면 될까요??또 질문은 현재 위의 config만 보면, bean으로 올라간 객체는 RateDiscountPolicy와 FixDiscountPolicy밖에 없는거죠?? DiscountPolicy 인터페이스 자체는 빈으로 등록되지 않는건가요..?원래 부모타입으로 조회하였을 때 자기 자신과 자식 타입들이 조회된다고 해서.. 3이라고 생각했는데,여기서는 빈으로 등록된 객체가 RateDiscountPolicy와 FixDiscountPolicy로 2개니까 해서요..그리고 이건 따로 궁금한 점인데, 인터페이스는 원래 빈으로 등록이 안되나요..??질문이 번잡스러워서 죄송합니다..ㅜㅜ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문내역관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]홈화면에서 상품주문을 여러개 한후 주문내역을 누르면 이렇게 뜨는데 여기서 지금까지 주문한 모든 상품이 뜨는 원리가 궁금합니다. @GetMapping("/orders") public String orderList(@ModelAttribute("orderSearch") OrderSearch orderSearch, Model model) { List<Order> orders = orderService.findOrders(orderSearch); model.addAttribute("orders", orders); return "order/orderList"; }이코드로 볼때 메인 화면에서 주문 내역을 누르면 orderSearch에 필드 값들은 모두 null아닌가요? 그런데 어떻게 order/orderList에는 모든 주문내역이 출력되는지 궁금합니다...!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바버전 다 동일하게 맞춰야 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. Gradle JVM 과 build.gradle 또 프로젝트 자바 버전들이 다 동일해야 하나요?달라도 딱히 오류 안나지만 나중에 프로젝트 만들 시 오류가 생길까 싶어서 동일하게 맞춰야하나 질문드려요!저는 자바 19버전을 갖고 있습니다!
-
미해결스프링 핵심 원리 - 기본편
이런 설계에 대한 공부는 어떻게 해야 할까요...
강의에서 주문, 회원.... createrOdrer 하셔서 머리속에 있는 개발을 코드로 타타타탁 굉장히 쉽게 구현하시는것 같은데강의 보며 따라 치면 아 그렇구나 이해는 되지만막상 제가 뭘 개발하고자 하니 어떤 필드가 필요하고 어떤 매게변수가 필요하고... 감이 전혀 잡히질 않습니다. SI에서 개발자로 일을 하고 있는데 VO개발 방식이 아닌 Map으로 진행중이라 객체의 필드값이 아닌 ,화면에서 필요로 하는 값을 주고 받으니 점점 개발과 설계에 대해 자신감도 잃어가고 있습니다...
-
해결됨스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException 관한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [F:\study\spring-boot-study2\core\out\production\classes\springbootstudy2\core\member\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'springbootstudy2.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1442) at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:552) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) ... 17 moreCaused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'springbootstudy2.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1418) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) ... 41 more 현재 [옵션 처리] 수업까지 들으면서 'CoreApplicationTests'에서 에러가 발생하고 있습니다. 커뮤니티 및 인터넷에서 해당 문제에 대해서 파악을 하는데... MemberRepository와 DiscountPolicy의 스프링 빈 등록이 중복되어 나온다고 설정이 되어 있는 것 같습니다 그래서 MemoryMemberRepository 파일과 RateDiscountPolicy 파일에 @Primary 애노테이션을 넣어서 당장 정상적으로 돌아가는 것을 확인 후 문제는 없앴지만 근본적인 문제 해결로는 이해가 되지 않아서 도움을 요청하고자 글 남겼습니다.
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
이벤트 루프와 요청핸들러 관련해서 질문있습니다.
안녕하세요 이벤트 루프와 요청 핸들러 관련해서 질문이 있습니다.netty의 이벤트는 channel에서 발생한다고 들었는데 그림의 요청핸들러가 channel인가요? 만약 channel이 맞다면 그림에선 핸들러가 한개지만 실제는 클라이언트 요청수 만큼 channel이 생성되는게 맞나요? 다른 질문의 답변을 보니 이벤트루프가 cpu 코어 개수만큼 생성된다고 하셨는데 여러 요청들은 이벤트루프를 무작위로 선택하나요?만약 클라이언트의 요청이 DB io 를 사용하는데 비동기방식을 지원하지않는 jdbc라면 해당 스레드는 이벤트 루프 없이 blocking으로 DB 작업을 처리하는게 맞나요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
시큐리티 프로젝트..
부트말고 스프링프레임워크에서 시큐리티 기능을 이용한 회원별 권한 부여된 게시판 기능을 만들려고 하는데 SPRING MVC02와 03, 04 를 한 프로젝트 안에 다 작업해도될까요??필요한 기능이 관리자 - 글쓰기(사진 멀티업로드) 이용자 - 조회, 찜기능 비회원- 조회이런것들입니다.시큐리티 기능을 활용해서 사이트를 만들어보려고 하는데 어떤 챕터를 활용하면 좋을지 의견 부탁드립니다..!기존 세팅은 되어 있어서 MVC01 은 제외하고 작업하면 될 것 같은데이렇게 되면 MVC02부터 실행해도 괜찮은지도 말씀 부탁드립니다..!감사합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
intellij 콩모양 질문
따로 마우스를 올려도 콩모양은 보지지 않는데, ultimate 버전에서 지원되는 기능일까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
화이트 리스트 경우 인증체크 메서드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.requestURI와 whitelist에 있는 값이 매칭이 된다면 인증체크를 하고, 매칭되는 값이 없다면 인증체크를 하지않는 함수인거는 이해했습니다.리턴값 코드 이해가 잘 안되는거같아서 질문 남깁니다.위 아래 코드가 같은건가요 ? 강사님이 알려주신 코드는 이해가 잘 안가서 다시한번 짜봤습니다 ㅠㅠprivate boolean isLoginCheckPath(String requestURI){ if(PatternMatchUtils.simpleMatch(whitelist,requestURI)){ return false; } return true; }private boolean isLoginCheckPath(String requestURI){ return !PatternMatchUtils.simpleMatch(whitelist,requestURI);
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Response DTO VS HTTP Response
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 강의 잘 듣고 있습니다.강의 도중 궁금한 점이 생겨 질문드립니다. 강의에서는 POST나 PUT요청에서도 Response DTO 객체를 생성해서 전달하셨는데, 실제 실무에서도 이렇게 하는지 궁금합니다. 질문드린 이유는 HTTP Response code상 201이나 204 등의 응답코드가 있는 것으로 알고있는데, Response를 매번 생성하는게 실질적으로 좋은 설계이기 때문인지, 아니면 변경이 완료된 것을 실제로 조회하면서 이해를 돕기 위함인지 궁금했습니다. 감사합니다.
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
org.springframework.beans.factory.UnsatisfiedDependencyException
MVC06 소스 톰캣 실행 시 아래 오류가 발생합니다. ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failedorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController': Unsatisfied dependency expressed through field 'memberUserDetailsService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'kr.ody.apps.security.MemberUserDetailsService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:586) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) 구글링으로 파악이 안되네요.원인이 무엇일까요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
[섹션5: Spring & JPA 기반 테스트] 에서 진행한 테스트는 단위테스트인가요? 통합테스트인가요?
안녕하세요. 현재 섹션 5까지 수강을 하고 헷갈리는 것이 있어 질문 남기게 되었습니다. 섹션 5에서 3개의 레이어에 대한 테스트를 진행하는 데 이 테스트들은 단위 테스트인지 통합 테스트인지 헷갈립니다. @SpringBootTest 어노테이션을 사용하는 것으로 봐서는 스프링 빈을 전부 로드하는 통합테스트 같기도 하면서, @WebMvcTest 어노테이션을 사용하는 것을 봤을 때는 다른 레이어와 독립적인 테스트를 진행하는 것 같아 단위테스트 같은 것 같다고 생각했습니다. 이번 섹션에서 진행한 테스트는 어떤 종류의 테스트인가요? 만약 단위(혹은 통합)테스트라면 다른 종류에 있는 테스트는 어떻게 진행해야 하는지, 아니면 이 테스트만으로 충분하지 궁금합니다.