묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
<p>태그 관련 질문
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.프론트 p태그 관련 질문입니다.데이터를 집어 넣지 않고 단순하게 쓰는 p태그의 경우<p>인프런</p> 코드를 실행하면 인프런이 출력되는걸로 알고 있습니다. 강의를 듣다 호기심에 나이스 문자열을 추가해봤는데요나이스1은 타임리프 문법이 적용된 문장이고나이스는 단순한 p태그입니다.하지만 나이스1도 타임리프 관련 코드가 끝나고 괄호를 닫고 추가된 문자인데 왜 출력이 안 되는지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 gradlew.bat build 에러 발생
Microsoft Windows [Version 10.0.22621.2861] (c) Microsoft Corporation. All rights reserved. C:\Users\Yoon\Desktop\CS\SpringStudy\hello-spring>gradlew build FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'hello-spring'. > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.1. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.1 > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.1 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.5' but: - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.1 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.1 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 5s 안녕하세요 어제 동일한 질문을 올렸었는데 파일의 권한을 수정하고 다시 올렸습니다.우선 저는 윈도우 사용자이고, java --version으로 확인해봐도 Java 17버전이고, 설정 가능한 모든 부분에서 17버전으로 바꿨는데도 에러가 발생합니다. 모든 방법을 시도해봐도 cmd에서 "gradlew build" 명령어를 치면 build failed라는 메시지가 출력됩니다. plugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } 파일 링크: https://drive.google.com/file/d/1hnY1DJJ-9loR_mcQBum97NDgOErGgoMO/view?usp=sharing며칠째 이부분에서 막혀서 진도를 못 나가고 있습니다.. 도와주세요..ㅠㅠ------------------------------------------------------------------------------------------------java 17버전으로 설정해도 오류가 나시는 분들이 계시다면 아래 방법을 따라해보세요. 저는 이렇게 하니 해결되었습니다.인텔리제이 최신버전으로 재설치기존 JDK 삭제 후 최신버전으로 재설치 및 환경변수 등록 (재부팅 필수) 설치한 JDK를 프로젝트에 적용
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ItemType 같이 enum 으로 관리되는게 변경의 여지가 있다면 코드테이블로 관리하는게 좋을까요?
ItemType 같이 enum 으로 관리되는게 변경의 여지가 있다면 어떻게 관리하는게 좋을지 생각해 봤는데요,상수를 따로 관리하는 테이블을 생성해서세션이나 캐시로 관리하는게 어떨까 싶은데 현업에선어떻게 관리되는지 궁금합니다.아무래도 세션보단 캐시가 더 효율적이겠죠?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ModelAttribute와 html/text에 대하여 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.컨버전 서비스는 @RequestParam, @ModelAttribute, @PathVariable, 뷰 템플릿에 적용된다는 내용에 궁금증이 생겨 질문을 드립니다. @ModelAttribute는 @RequestParam의 기능에서 객체를 생성하고 model에 담는 기능이 추가되었다고 생각했었습니다. 이렇게 객체가 생성될 때 컨버전 서비스가 작용되는 걸까요? 하지만, String을 다른 타입으로 바꾸어 받을 수 있는 @PathVariable이나 @RequestParam과는 달리 객체를 생성하거나 set하는 @ModelAttribute는 컨버전과 관계가 없게 느껴집니다. 어떤 경우 @ModelAttribute에도 컨버전 서비스가 적용되는 것인가요?html/form형식에서 post방식을 통해 http요청의 바디에 데이터가 들어온다고 학습하였습니다. 이때 데이터가 바디에있지만 @ResponseBody가 아닌 마치 get방식처럼 @RequestParam, @ModelAttribute을 이용해야 하는 것은 스프링의 api때문으로 이해하면 될까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestMapping 질문드립니다.
@RequestMapping만 붙인 기존 상태에서 postman으로 같은 url로 GET, POST 요청을 보내도 동일하게 성공하는 것을 확인했습니다. 근데 GET, POST만 되고, PUT, PATCH, DELETE는 안되더라구요. 혹시 GET, POST만 되는 다른 이유가 있을까요? 7:10 부터 관련 내용입니다!(밑에 AI 답변이 있긴하지만, 다른 질문에 대한 답변을 추천해준 것 같습니다)
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
물리적인 트랜잭션을 처리하는 부분에 대해 헷갈리는 점이 있습니다.
안녕하세요.항상 강의잘 듣고있습니다!강의를 완강하고 복기하던 중에 궁금한 점이 있습니다. 강의에서는 커밋 또는 롤백을 하는 경우 트랜잭션 메니저로 요청을 보내 물리적인 부분을 처리한다 라고 학습했는데요, 가끔씩 강의를 듣다보면 트랜잭션 매니저 -> 트랜잭션 동기화 매니저 를 통해 물리적인 트랜잭션을 처리한다고 말씀하셔서 (스프링 트랜잭션 전파5 - 외부 롤백 6분 20초경)마지막 물리적으로 처리하는 부분이 트랜잭션 매니저단에서 끝나는지, 트랜잭션 매니저에서 트랜잭션 동기화 매니저를 통해 끝나는지 헷갈려서 질문남깁니다.! 감사합니다!!
-
미해결Kotlin으로 개발하는 Spring Boot Web MVC
@JsonNaming 과 @field:Pattern 이 함께 동작하지 않는 것 같습니다.
... @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class) data class UserRequest( ... @field:Pattern(regexp = "^\\\\d{2,3}-\\\\d{3,4}-\\\\d{4}\\\$") var phoneNumber:String?=null, )위와 같이 UserRequest 데이터클래스에서 @JsonNaming 과 @field:Pattern 을 동시에 사용하면 @JsonNaming 의 snake case 적용이 작동하지 않아 PUT 요청의 body 에 phoneNumber 로 요청해야만 정상 작동하고 phone_number 로 요청하면 400 에러가 나지만, 해당 필드에 @field:Pattern 대신 @field:Size 를 사용하면 @JsonNaming 에 기대하는대로 phone_number 로 요청해도 200 응답으로 정상작동 하는 현상을 겪고 있습니다. 왜 Validation 어노테이션을 바꾸었을 뿐인데 그와 상관없어보이는 @JsonNaming 의 작동 여부에 영향을 끼치는지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:class 부분 th:if /th: classappend
위 코드에서 th: class= ${errors?.containsKey('itemName')} ? ~~~ 를 if 조건식으로 참 거짓 구분하여 참이면 클래스 뒤에 append를 해주는 방식으로 해주었는데 이방식으로 하면 아예 상품명 공간이 사라지네요 ㅜ 다른방식으로도 해보고 싶은데 강사님이 알려주신 th:class 밖에 없는것일까요?타임리프 기본 문법을 다시 보면서 변형해보고있는데 잘 안되서요 😅 th:if="${errors?.containsKey('itemName')}" th:classappend="field error"
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 자료 오타 제보합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]3. 회원 관리 예제 - 백엔드 개발.pdf5번째 페이지MemoryMemberRepositoryTest 클래스의 save() 메서드 부분이 이렇게 되어 있습니다. 마지막 줄이 수정이 필요해 보입니다.@Test public void save() { //given Member member = new Member(); member.setName("spring"); //when repository.save(member); //then Member result = repository.findById(member.getId()).get(); (result).isEqualTo(member); }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 gradlew.bat build 에러 발생
C:\Users\Yoon>cd C:\Users\Yoon\Desktop\CS\SpringStudy\hello-spring C:\Users\Yoon\Desktop\CS\SpringStudy\hello-spring>gradlew.bat build FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'hello-spring'. > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.1. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.1 > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.1 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.5' but: - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.1 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.1 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 5s"빌드하고 실행하기" 강의에서 위 에러가 발생하였습니다.우선 저는 윈도우 사용자입니다.java --version으로 확인해봐도 Java 17버전이고, 설정 가능한 모든 부분에서 17버전으로 바꿨는데도 에러가 발생합니다. 파일 링크 : https://drive.google.com/file/d/1hnY1DJJ-9loR_mcQBum97NDgOErGgoMO/view?usp=drive_link
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 오늘도 어김없이 강의구매후 잘보고있습니다 ㅎ다름이 아니라 강의를 아직 보고있는데 궁금한게 생겨서요ㅎㅎ 스프링부트 내장 톰캣 을 사용하고 정적 , 동적 파일이 있잖아요 중 정적파일 처리 과정이 궁금해서Ex) 스프링부트에 내장 톰캣에 타임리프 사용시 localhost/index.html 을 호출하면 html의 경우 정적파일인데 jsp처럼 html 정적파일도 뮤조건 톰캣 서블릿을 타서 스프링에서 뷰리졸브(view)를 통해 응답을 해주는걸까요 아니면 톰캣에서 정적파일이내 를 분류해서 바로 뿌려주게되나요 ?? 이게궁금해서요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2db에 입력후 localhost 조회시 안나옴
https://drive.google.com/file/d/1bWQeZq1FfiqL2cIEU7zJu-_Td0NSqGwF/view?usp=drive_link
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller 질문있습니다.
@Controller가 붙으면 로직을 수행하는 컨트롤러가 되고 이 컨트롤러에서 수행되는 로직은 요청과 동일한 @RequestMapping이 붙은 메소드가 실행된다 라고 생각하면 되는건가요? @Controller가 붙은 클래스가 컨트롤러가되서 HandlerMapping에 등록된 후 내부적으로 @RequestMapping으로 구분을 하는건지 아니면 각각의 메소드가 컨트롤러가 되서 HandlerMapping에 등록되는건지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
http://localhost:8080/ 접속 웹페이지 오류
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 따라서 코드를 작성했습니다.http://localhost:8080/ 으로 접속하면 home.html 이 아니라 static 폴더의 index.html 이 열립니다. 어떻게 해결하면 될까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
기본 디렉토리 구조 설정이 궁금해요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]localhost:8080/jsp/members/new-form.jsp경로에서 webapp 밑에 있다는건 어디서 알 수 있는 정보인지 궁금합니다.또한, 그 설정을 개인적으로 설정할 수 있다면 그 방법이 궁금합니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@CookieValue Long memberId
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)Long type 자동 변환된 memberId를memberRepository.findById(memberId)하니 Integer 이하 생략 그림참조에러떠서 진행이 안됩니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
하이버네이트 빈 밸리데이션 언어 관련 질문
@NotEmpty 어노테이션 사용하면 기본메세지가 한국어로 되어있던데이게 어떤 걸 영향받아서 한국어로 기본메세지를 출력하는 것인지 궁금합니다. 영어로 설정하면 영어가 나올까 싶어서 구글 브라우저 언어순위에 영어를 상단으로 올려보고, 크롬 언어자체를 영어로 바꿔봐도 한국어로비어 있을 수 없습니다라고 출력이되는데 이 어노테이션이 어디에 영향을 받아서 한국어로 출력하는 것인지 궁금합니다. 따로 errors.properties 에 설정되어있지도 않아서 더 궁금합니다. ++@NotEmpty 어노테이션 타고들어가니까 기본메세지가 여러가지 언어로 국제화되어있었어요이상해서 다시 크롬 언어설정에서 영어 최상단하고 해보니까 영어로바뀌네요 아까는 안되었는데 왜 지금은 되는건지 의문;;
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
사소하지만 다음과 같이 되는게 맞을까요?
예외를 통해 에러코드 500이 만들어 진것을수정하여 400으로 고치는 로직이므로error/400페이지를 보여주는게 맞는 흐름일 것 같은데아닐까요? // TEXT/HTML return new ModelAndView("error/400");
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Model객체가 url에 쿼리스트링으로 보여지는게 아니였나요?
이 매핑 컨트롤러 테스트 할때 url에localhost:8080/..?param1=data1¶m2=data2이렇게 나올 줄 알았는데 쿼리스트링엔 생략되서 나오더라고요?..그래서 아래와 같이 테스트하니 url에 파라미터 가 추가 되는걸 확인할 수 있었습니다. 원래 Model 객체는 url에 쿼리스트링 추가해주는것이 아니였나요? 지금까지 그렇게 알고 있었는데 막상 테스트해보니RedirectAttributes객체만 되는것 같네요
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
스프링 시큐리티 질문
package kr.bit.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.crypto.factory.PasswordEncoderFactories; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; @Configuration //스프링 컨테이너 설정파일이라고 메모리에 올림 @EnableWebSecurity public class SecurityConfiguration { @Autowired private UserDetailsServiceImpl userDetailsService; //패스워드 인코딩 객체를 스프링 컨테이너에 등록 @Bean public PasswordEncoder PasswordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf(csrfConfig -> csrfConfig.disable() ) .authorizeHttpRequests(authorizeRequests -> authorizeRequests .anyRequest().permitAll() ) .formLogin(login -> login .loginPage("/member/login") .defaultSuccessUrl("/board/list") ) .logout(logout -> logout .logoutUrl("/member/logout") .logoutSuccessUrl("/") ) .userDetailsService(userDetailsService); return http.build(); } } 모든 접근에 대해 permitAll()을 하면 http://localhost:8080/m15/http://localhost:8080/m15/member/login둘다 잘 접속 되지만package kr.bit.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.crypto.factory.PasswordEncoderFactories; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; @Configuration //스프링 컨테이너 설정파일이라고 메모리에 올림 @EnableWebSecurity public class SecurityConfiguration { @Autowired private UserDetailsServiceImpl userDetailsService; //패스워드 인코딩 객체를 스프링 컨테이너에 등록 @Bean public PasswordEncoder PasswordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf(csrfConfig -> csrfConfig.disable() ) .authorizeHttpRequests(authorizeRequests -> authorizeRequests .requestMatchers("/", "/member/**").permitAll() .requestMatchers("/board/**").authenticated() ) .formLogin(login -> login .loginPage("/member/login") .defaultSuccessUrl("/board/list") ) .logout(logout -> logout .logoutUrl("/member/logout") .logoutSuccessUrl("/") ) .userDetailsService(userDetailsService); return http.build(); } } requestMatchers 로 permitAll()하면http://localhost:8080/m15/로 접속하면http://localhost:8080/m15/member/login로 이동하면서 에러가 발생합니다. 스프링 부트 버전은 3.2.1입니다.