inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

RetrunValueHandler 정리 질문입니다.

미해결

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

다른분 질문을 참고했습니다. (1) 메세지 바디로 응답하는 경우 (메서드 레벨에 @ResponseBody가 붙어있는 경우) RetrunValueHandler가 HttpMessengerConverter를 이용해서 반환값을 응답 메세지 바디부에 실어서 ViewResolver등을 거치지 않고 즉시 요청 송신자에 반환 (2) 메세지 바디로 응답하지 않는는 경우 ReturnValueHandler는 반환 값의 타입에 따라 적절한 HttpMessengerConverter를 통해 응답 메세지를 생성(예로들어 ModelAndView를 반환한다면 Dispatcher Servlet으로 넘기고) Dispatcher Servle이 ViewResolver를 사용하여 View 객체를 반환받고 render()하여 최종적으로 클라이언트에게 반환. 이렇게 정리한게 맞는지 궁금합니다.

  • spring
  • mvc
코딩먹는하마 댓글 1 좋아요 0 조회수 406

MessageSource가 Locale 정보를 가져오는 코드 위치가 궁금합니다.

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요, 지금 스프링 코드를 보면서 MessageSource와 LocaleResolver의 흐름을 파악하고 있었습니다. LocaleResolver가 어떻게 resolve하고 set하는지는 코드가 명확해서 파악은 되고 있습니다. 그런데, Thymeleaf에서 #{label.ex}와 같은 메세지 코드가 있을 때, MessageSource가 어디서 호출되고, Locale정보를 어떻게 가져오는지 확인이 어려운 상태입니다. 저의 추측으로는 LocaleContextHolder에서 Locale 정보를 가져오는 거 같은데 눈으로 직접 확인을 해보고 싶어서요. Spring 코드에서 이 부분이 어디서 호출되는지 알려주시면 감사하겠습니다.

  • spring
  • mvc
nswooho 댓글 1 좋아요 1 조회수 421

@Autowired 에러 납니다

미해결

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

1:57초 강의 보면 Autowired를 달아주는데 똑같이 해보니까 이런 에러가 뜹니다

  • java
  • spring
  • mvc
  • spring-boot
dasom kwon 댓글 2 좋아요 0 조회수 837

윈도우 cmd 에서의 실행(질문 수정)

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 이번에 기본적으로 필요한 자바와 db를 독학한 후 스프링을 시작하였습니다. 이번 빌드를 실행할 때, 저는 자바 17버전과 스프링부트 3.0 이상 버전을 다운했기에 교안에 나와있는 '자주하는 질문'에 나와있는 [Querydsl 부트 3.x 설정] 의 gradle 버전에 맞게 코드를 옮겨붙인 후 실행하였습니다. gradle의 코드를 처음 그대로의 상태(gradle 수정 전)에서 실행할 때는 intellij 와 윈도우 모두 잘 실행되었으나, gradle 부분을 Querydsl 부트 3.x 설정로서 실행하니 intellij에선 이상이 없었지만, 윈도우 cmd에서 실행할 시 /hello 는 연결이 안되었습니다. gradle 수정으로 인한 에노테이션 연결이 달라져 라이브러리를 가져오지 못한 건가 라는 생각은 들지만, 이게 확실치 않고 어떻게 수정을 해야할지 찾아봐도 해결책을 찾지 못해 질문드립니다. (빌드를 하는데는 오류가 발생하지 않았습니다.) 1.수정 전의 gradle 수정 후의 gradle - ( '자주하는 질문'에 나와있는 [Querydsl 부트 3.x 설정] ) plugins { id 'java' id 'org.springframework.boot' version '3.1.1' id 'io.spring.dependency-management' version '1.1.0' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } jar { enabled = false } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') } cmd에서의 실행순서 1. 저장해놓은 hello-spring 디렉토리로 이동 2. gradlew.bat build -x check 으로 빌드 ( -x check 없이 빌드 시 에러가 발생하여 구글링을 통해 찾아낸 방법입니다.) 3. java -jar (빌드한 jar 파일) 결과 수정 전 gradle 에서는 이상이 없으나. 수정 후 gradle로 실행 시, intellij에서는 이상없이 잘 작동하지만, cmd로 실행 시 localhost:8080/hello 에서 whitelable error page가 발생 저의 오류원인 추측 1.애노테이션이 제대로 되지 않아 라이브러리를 불러오지 못했다. 2. 지정된 파일 경로가 잘못되어 에러가 발생했다.

  • java
  • spring
  • mvc
  • spring-boot
kmhwaa08 댓글 1 좋아요 1 조회수 1869

윈도우 빌드 Task :test FAILED

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] gradlew.bat 는 BUILD SUCCESSFUL 이 떴는데 gradlew build 는 아래와 같은 오류가 발생합니다. 자바 버전은 20이고, 스프링 버전은 3 입니다. > Task :test FAILED Error: Could not find or load main class worker.org .gradle.process.internal.worker.GradleWorkerMain Caused by: java.lang.ClassNotFoundException: worker.org .gradle.process.internal.worker.GradleWorkerMain

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

gradle 사용하시는 분 도움

미해결

더 자바, 코드를 조작하는 다양한 방법

일단 새로운 프로젝트 만들고 premain 추가해주는 것 까진 강의를 그대로 따라하시면 됩니다. manifest plugin 부터 조금 차이가 있어서 거기부터 설명하면, build gradle 에 다음과 같이 추가한다. tasks.named('jar') { manifest { attributes( 'Implementation-Title': project.name, 'Implementation-Version': project.version, 'Premain-Class' : "com.java.magicianAgent.MagicianAgent", 'Can-Redefine-Classes' : true, 'Can-Retransform-Classes' : true) } } 터미널에서 다음 명령어를 통해 build 한다 ./gradlew clean build build.libs file 안에 있는 jar file 을 확인한다. (옵션) 강의에서와 마찬가지로 zip file 로 변경하면 확인가능합니다. 저같은 경우 SNAPSHOT.jar 과 SNAPSHOT -plain.jar 이렇게 2개가 생겼는데 SNAPSHOT.jar 은 제가 spring boot 로 실행서 그런지 관련 설정들이 보이고 SNAPSHOT -plain.jar 이 맞는거 같더라구요. jar file 의 절대 경로를 복사해 VM option 에 추가한다. 여기서부터는 다시 강의와 같습니다. VM option 이 안보이시면 오른쪽에 Modify options 클릭하면 add vm options 라고 보이실 겁니다. 이상한거나 궁금한거 있으시면 말씀해주세요. gradle 을 쓰시는 모든 분들도 마술을 성공시킵시다 하하

  • java
  • spring
안호성 댓글 1 좋아요 4 조회수 788

강의 9:37 질문 있습니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 9:37에서 @RequestBody를 생략하는 경우 @ModelAttribute가 자동으로 입력이 되지만 setAge함수가 없기 때문에 age 설정이 되지 않는다고 설명해주셨습니다. 근데 Lombok의 @Data를 설정하면 getter와 setter를 자동으로 만들어 주는 것으로 배웠는데 왜 호출이 되지 않는 건가요??

  • spring
  • mvc
김민석 댓글 2 좋아요 0 조회수 265

hikari config 에러

미해결

스프링 프레임워크는 내 손에 [스프1탄]

현재 hikariconfig 에러가 나고 있습니다. 어떤 해결책이 있을까요? 현재 roo-context.xml 과 pom.xml 은 작성한 것을 지우고 깃헙에서 코드를 그대로 복사해왔습니다. - Class 'com.zaxxer.hikari.HikariConfig' not found [config set: SpringMVC01/web-context] - Class 'com.zaxxer.hikari.HikariConfig' not found

  • jsp
  • spring
  • mvc
  • spring-security
Peter Yu 댓글 2 좋아요 0 조회수 729

mappingMap과 inithandler 외부 주입에 대한 질문 드립니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 강의 후반부에 외부에서 mappingMap과 adapters를 외부에서 주입 하는 방식으로 하는 이야기를 해주셔서 만들어봤는데 말씀하신 외부에서 주입한다는 방식이 맞는지 궁금해서 질문드립니다. public class HandlerMapping implements initMyHandler{ @Override public Map<String, Object> initHandlerMappingMap() { Map<String,Object> handlerMappingMap=new HashMap<>(); handlerMappingMap.put("/front-controller/v5/v3/members/new-form", new MemberFormControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members/save", new MemberSaveControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members", new MemberListControllerV3()); //V4 추가 handlerMappingMap.put("/front-controller/v5/v4/members/new-form", new MemberFormControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members/save", new MemberSaveControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members", new MemberListControllerV4()); return handlerMappingMap; } @Override public List<MyHandlerAdapter> initHandlerAdapters() { List<MyHandlerAdapter> handlerAdapters = new ArrayList<>(); handlerAdapters.add(new ControllerV3HandlerAdapter()); handlerAdapters.add(new ControllerV4HandlerAdapter()); return handlerAdapters; } } 이렇게 인터페이스를 구현하였고 frontControllerServlert 에는 private HandlerMapping handlerMapping=new HandlerMapping(); private Object getHandler(HttpServletRequest request) { String requestURI = request.getRequestURI(); Map<String, Object> handlerMappingMap = handlerMapping.initHandlerMappingMap(); return handlerMappingMap.get(requestURI); } private MyHandlerAdapter getHandlerAdapter(Object handler) { List<MyHandlerAdapter> myHandlerAdapters = handlerMapping.initHandlerAdapters(); for (MyHandlerAdapter adapter : myHandlerAdapters) { //MemberFormControllerV3 (부모가 ControllerV3),MemberFormControllerV4 (부모가 ControllerV4) if (adapter.supports(handler)) { return adapter; } } throw new IllegalArgumentException("handler adapter를 찾을수 없습니다."+handler); } 이렇게 동작하도록 하였는데 이것도 외부주입하는 방식으로 작성 했다고 볼수 있는지 궁금합니다.

  • spring
  • mvc
maurizio 댓글 1 좋아요 0 조회수 411

강의를 따라 갔을 때, sql파일이 생성되지 않는건 왜 그런건가요??

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강사님 강의를 똑같이 따라했는데 ddl.sql 파일을 생성해도 sql 확장자로 생성이 안되고 다른 것으로 생성되는데 왜 그런지 알 수 있을까요??

  • java
  • spring
  • mvc
  • spring-boot
파이팅파이팅 댓글 2 좋아요 0 조회수 780

웹 사이트가 안뜹니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 강사님과 똑같이 따라했는데 home.html 화면이 뜨지 않고 에러가 발생합니다. 이유가 무엇인지 알 수 있을까요?

  • java
  • spring
  • mvc
  • spring-boot
파이팅파이팅 댓글 1 좋아요 0 조회수 635

Unsatisfied dependency 오류 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. [스프링 데이터 JPA] 이전 까지는 테스트 코드를 실행하는데 있어서 오류가 나지 않았습니다. 그러나, 해당 목차 강의를 듣고 아래와 같은 오류가 발생했습니다. Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\Users\Administrator\Desktop\Inflearn\hello-spring\hello-spring\out\production\classes\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'springConfig' defined in file [C:\Users\Administrator\Desktop\Inflearn\hello-spring\hello-spring\out\production\classes\hello\hellospring\SpringConfig.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'springDataJpaMemberRepository' defined in hello.hellospring.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract java.util.List hello.hellospring.repository.MemberRepository.findALL(); Reason: Failed to create query for method public abstract java.util.List hello.hellospring.repository.MemberRepository.findALL(); No property 'findALL' found for type 'Member' 해당 오류를 통해 MemberRepository 인터페이스의 findALL 메서드에 문제가 있는 것 같은데, 도통 원인을 못찾겠습니다.. 아래는 SpringConfig 클래스의 코드와, 강의를 들으며 커밋한 제 깃허브 레포지토리를 첨부했습니다. 감사합니다. [SpringConfig.class] package hello.hellospring; import hello.hellospring.repository.*; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; //직접 Bean에 넣는 방법 @Configuration public class SpringConfig { private final MemberRepository memberRepository; @Autowired public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Bean public MemberService memberService() { return new MemberService(memberRepository); } } https://github.com/beomth/Inflearn-spring

  • java
  • spring
  • mvc
  • spring-boot
버럼 댓글 1 좋아요 0 조회수 3959

세션은 요청 당 하나만 만들어지는건가요?

해결됨

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

SessionManager에서 직접 개발한 세션은 createSession() 메서드로 여러 개의 세션을 만들어서 sessionStore에 저장할 수 있는 것으로 보이는데요 HttpSession을 이용하기 위해 HttpServletRequest의 getSession() 메서드 호출 시 기존 세션이 있다면 생성하지 않고 기존 세션을 가져오는 것으로 이해했습니다. 그러면 2개 이상의 세션을 생성할 수 없고 요청 당 하나의 세션만 만들수 있는 건가요?? 질문 하나 더 드리자면 HttpServletRequest의 getSession() 호출 시 세션 ID는 자동으로 생성되고, 세션 Name과 Value는 setAttribute로 설정해야 하는 것이 맞나요? 그렇다면 세션과 세션 ID는 1개만 생성되지만 세션 Name과 Value를 여러 개 설정하는 것이 맞는 것인지요?? 머리 속이 복잡해서 질문드립니다. 읽어주셔서 감사합니다.

  • spring
  • mvc
피로한 기린 댓글 2 좋아요 0 조회수 1031

validateDuplicateMember 함수에서 NullPointerException

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] validateDuplicateMember 함수에서 member.getName(); 값이 null이 나와서 다음과 같이 계속 nullException이 납니다. 확인 부탁드려요 ㅠㅠ

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

3-D 질문입니다..

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2일째 고민을 해보았는데.. 2%까지만 맞고 틀리다고 합니당..ㅠㅠ 포기하고 싶지 않은 마음에 도움을 요청합니다!! 제가 짠 코드는 이렇습니다! import java.io.*; import java.util.*; // 불이 하나가 아닌 여러개일 수 있다. public class Main { public static int R; public static int C; public static String[][] map; public static int[][] visitedFire; public static int[][] visitedHuman; public static int[] dx; public static int[] dy; public static Node fireLocation; public static Node humanLocation; public static Queue<Node> fireQueue; public static void main(String[] args) throws IOException { // 초기화 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); R = Integer.parseInt(st.nextToken()); C = Integer.parseInt(st.nextToken()); map = new String[R][C]; // 0으로 초기화 visitedFire = new int[R][C]; visitedHuman = new int[R][C]; dx = new int[]{0,1,0,-1}; dy = new int[]{-1,0,1,0}; fireQueue = new LinkedList<>(); // 맵 입력 for (int i = 0; i < R; i++) { String S = br.readLine(); for (int j = 0; j < C; j++) { // 불 좌표, 지훈이 좌표 찾기 map[i][j] = String.valueOf(S.charAt(j)); if(map[i][j].equals("J")){ humanLocation = new Node(j,i); map[i][j] = "."; // .으로 변경 }else if(map[i][j].equals("F")){ // 불이 여러개, 불이 아무것도 없을 수 있다. -> 반레 fireLocation = new Node(j,i); fireQueue.add(fireLocation); visitedFire[i][j] = 1; } } } // (1) 불이 이동할 수 있는 최단경로 fireBfs(); // (2) 사람이 이동할 수 있는 최단경로 + 길 비교해야함 humanBfs(humanLocation.y, humanLocation.x); // 가능한 길 찾아서 int result = Integer.MAX_VALUE; // (3) 가장 짧은 최단거리 찾기 (가장자리 찾기) for (int i = 0; i < visitedHuman.length; i++) { for (int j = 0; j < visitedHuman[i].length; j++) { if((0<i && i<R-1) && 0 < j && j < C-1)continue; // 가장자리가 아닌 경우 pass if(visitedHuman[i][j] > 0) { result = Math.min(result, visitedHuman[i][j]); } } } if(result == Integer.MAX_VALUE){ System.out.println("IMPOSSIBLE"); }else{ System.out.println(result); } } public static void humanBfs(int y, int x){ // tkfk visitedHuman[y][x] = 1; Node node = new Node(x,y); Queue<Node> queue = new LinkedList<>(); queue.add(node); while(queue.size()>0){ Node cur = queue.poll(); for (int i = 0; i < 4; i++) { int nx = cur.x + dx[i]; int ny = cur.y + dy[i]; if(nx < 0 || nx >= C || ny < 0 || ny >= R) continue; if(visitedHuman[ny][nx] == 0 && (map[ny][nx].equals("."))){ if(visitedHuman[ny][nx] < visitedFire[ny][nx] || visitedFire[ny][nx] == 0){ visitedHuman[ny][nx] = visitedHuman[cur.y][cur.x] + 1; Node next = new Node(nx,ny); queue.add(next); } } } } } public static void fireBfs(){ while(fireQueue.size()>0){ Node cur = fireQueue.poll(); for (int i = 0; i < 4; i++) { // 4방향 탐지 int nx = cur.x + dx[i]; int ny = cur.y + dy[i]; if(nx < 0 || nx >= C || ny < 0 || ny >= R) continue; if(visitedFire[ny][nx] == 0 && (map[ny][nx].equals("."))){ visitedFire[ny][nx] = visitedFire[cur.y][cur.x] + 1; // 이동함을 표현 Node next = new Node(nx,ny); fireQueue.add(next); } } } } public static class Node { int x; int y; Node(int x, int y){ this.x = x; this.y = y; } } }

  • 코딩-테스트
  • java
댓글 2 좋아요 0 조회수 363

Member.java 에러가 납니다ㅠㅠ

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 선생님 코드를 따라쳤는데 Member.java 에서 사진과 같이 빨간 밑줄이 뜨면서 에러가 납니다..ㅠ 어디서 나는걸까요..?

  • java
  • spring
  • mvc
  • spring-boot
Jerok Kim 댓글 1 좋아요 0 조회수 555

강의노트 어디서 볼 수 있나요?

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오) [질문 내용] 테이블 생성 스크립트를 받으려고 하는데요. 강사님이 보시는 강의노트는 어디서 확인할 수 있나요?

  • java
  • spring
  • mvc
  • spring-boot
공부벌레 댓글 1 좋아요 0 조회수 699

API인터셉터 경로

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 만약에 API로 개발할경우 인터셉터 경로는 어떻게 설정해야하죠? ex 유저API @RestController("api/user") @postmapping 유저등록api @Deletemapping 유저 삭제 api 이때만 인터셉터 실행 이렇게 있으면 .addPathPatterns("/**") 할시 둘다 등록이 되기 때문에 @Deletemapping 이때만 등록하고 싶은데 방법이 있나요? 유저등록일때만 @postmapping("/join")으로 설정해야 하나요?

  • spring
  • mvc
원종찬 댓글 1 좋아요 0 조회수 361

FrontControllerservletV3 의 render 매서드 질문입니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. Save 나 list를 조회할때 아래의 코드가 어떻게 돌아가는지 이해할 수 있었습니다. 이때는 해당 기능을 하는 컨트롤러가 model Map에 데이터를 주입하는 과정이 있기때문인데요, new-form같은경우는 위와같이 model 객체를 따로 만드는 것이 없는데, 그렇다면 이럴땐 그값에 Null값이 들어가게 되는 건가요? new-form 컨트롤러가 실행되었을때는 어떻게 되는지 알고 싶습니다. 만약 Map<String, Object> model 에 null 값이 들어간다고 하면 당연히 setAttribute 또한 제대로 작동이 되지 않을 것 같은데 그렇게 된다면 RequestDispatcher 부분도 제대로 작동하지 않으면서 jsp로 넘어가지 않을 것 같다는 생각이 듭니다. public void render(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { modelToRequestAttribute(model, request); RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response);} private static void modelToRequestAttribute(Map<String, Object> model, HttpServletRequest request) { model.forEach((key, value) -> request.setAttribute(key,value));}

  • spring
  • mvc
노동준 댓글 1 좋아요 0 조회수 621

@ModelAttribute에 "item"이 없는경우 질문드립니다!!

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @ModelAttribute("item")을 안한다면? bindingResult에 에러정보가 있을경우 addForm으로 돌아갈때 th:object="item"이기 때문에 itemSaveForm이 모델의 키값으로 넘어가서 렌더링이 안되는것은 이해했습니다. addItem에서 ModelAttribute name에 "item"을 넣지 않고 addItem()메서드에 Model 객체를 추가해서 model.addAttribute("item",form)으로 데이터를 전송했다면 렌더링은 됩니다. 하지만 bindingResult에 object name은 ModelAttribute name과 매핑이 되기 때문에 "itemSaveForm"이 object 값으로 들어갑니다. @PostMapping("/add") public String addItem(Model model,@Validated @ModelAttribute ItemSaveForm form, BindingResult bindingResult, RedirectAttributes redirectAttributes) { //log.info("bindingResult codes = {}",bindingResult.getFieldError()); log.info("form = {}" , form); if (form.getPrice() != null && form.getQuantity() != null) { int resultPrice = form.getPrice() * form.getQuantity(); if (resultPrice < 10000) { bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null); } } //검즘 실패시 입력 폼 if(bindingResult.hasErrors()){ log.info("errors ={}",bindingResult); model.addAttribute("item",form); return "validation/v4/addForm"; } 여기서 궁금한점입니다. 2번과 같은 상황에서 #fields.hasGlobalErrors() 과 th:errors로 아무런 에러정보를 조회할 수 없게 되는거 같은데, th:object="${item}"는 모델을 통해 itemServiceForm 객체 를 넘겻는데, 오류정보를 조회 할 때 bindingResult에 담긴 object name 과 th:object="${item}" 에서 ${item}은 itemSaveForm이지만, ${}안에 item 문자열 자체 가 bindingResult의 object name과 일치 해야지 오류 정보를 조회할수 있는 건가요?? 입력폼 로그 질문하려다보니까 글이 길어졌네요 ㅠㅠ 결론은 bindingResult 에러정보를 추가할때 object name(@ModelAttribute의 name)과 th:object="${}"안에 들어가는 문자열이 일치해야 bindingResult의 오류정보를 조회할수 있는건가요?? 제가 어떤 부분을 놓치고있는 있는건가요..ㅠㅠ!?

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

인기 태그

인프런 TOP Writers

주간 인기글