묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MVC와 템플릿 엔진 강의에서 질문이 있습니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 해당 강의 내용중에@GetMapping("hello-mvc")public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template";} 이와같이 HelloController에 새로운 메서드를 추가하고 @RequestParam 어노테이션을 사용해서 요청 url에서 ?를 사용해서 파라미터를 받게 되는데요. 1)@RequestParam에 command+B를 이용해서 인텔리제이로 소스코드를 보면, RequestParam이 인터페이스로 되어있는데 그렇다면 구현체는 어디에 있다고 보면 될까요? 구현체를 확인할 수 있는 건가요? 2)HelloController에서 @RequestParam("name") 이렇게만 코드를 입력했을 때, RequestParam 인터페이스에서 String name() 값이 "name"이 되었다고 보면 되는 걸까요? 그렇다면 그걸 어떻게 알 수 있는 건가요? 왜냐면 RequestParam 인터페이스에는 모든 메서드가 default값을 가지고 있더라구요. 3)이렇게 @RequestParam을 사용한 파라미터가 "쿼리 파라미터"이고 ?을 사용한다고 생각하면 될까요? 이거말고 path 파라미터 이렇게 2가지라고 알고 있습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
소스코드 어디서 가지고 오나요?? 저는 안보던데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]소스코드 메뉴얼??이라는곳에서 복사붙여넣기 하시는거같은데 저는 강의 옆부분에 구름모양도 없는데 방법이 있을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew 빌드 시 환경변수 에러 해결
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]저 뿐만 아니라 많은 분들이 gradlew 빌드 시 환경 변수 관련 에러가 발생하여 삽질하다가 해결하여 공유드립니다.저의 경우 gitBash로 ./gradlew 명령어를 입력했을 때 환경 변수 설정 관련 에러가 발생했는데 아래와 같이 해결했습니다. 해결 과정환경 변수 설정에서 JAVA_HOME 변수의 값과 Path에 추가해야 하는 %JAVA_HOME%\bin 확인했으나 정상적으로 설정되어 있는 상태예전에 사용한 zulu jdk과 충돌이 의심되어 모두 제거 했으나 해결되지 않음InteliJ - File - Project Structure - Platform Settings - SDKs 목록에서 직접 설치한 Oracle JDK만 남기고 zulu jdk 등 제거 후 적용했으나 해결되지 않음InteliJ - File - Settings - Build, Execution, Deployment - Build Tools - Gradle에서 Gradle JVM을 직접 설치한 Java 버전으로 설정했으나 해결되지 않음gitBash를 열고 홈 디렉토리에서 .bashrc에 접근하여 환경 변수를 아래와 같이 수정 및 적용하여 문제 해결export JAVA_HOME="/c/Program Files/Java/jdk-17" export PATH="$JAVA_HOME/bin:$PATH" 결론내 OS(Windows)의 시스템 환경 변수에서는 JAVA_HOME과 PATH 환경 변수를 정상적으로 설정했으나 gitBash는 Windows의 시스템 환경 변수와는 별개로 자체적인 환경 변수를 관리하기 때문에 gitBash 내부에서 JAVA_HOME과 PATH 환경 변수를 별도로 설정해줘야 했음 저와 같은 문제로 헤매시는 분이 계시다면 도움이 됐으면 좋겠습니다. 혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
예외 500과 400번대
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이번 강의 초반에 강사님께서 말씀해주셨던 것에서,서블릿 컨테이너는 예외가 들어왔을 때 기본적으로 500 에러를 내뱉도록 시스템화되어 있다고 말씀하신는 것처럼 들리는데,그럼, 서버에서 400번대 에러코드를 내뱉는 것은,예외처리 리졸버나 그외 다른 예외 처리 로직 등에서 400번대로 변환했기 때문이라고 이해하면 될까요?즉, Default는 500이고, 처리 여부에 따라 400번대 가능
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ServletApplication 관련 오류
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.ServletApplication을 Run을 하고 Stop버튼을 누르게 되면 이런 화면의 오류가 나옵니다. 그런데 프로그램에 동작에 문제는 있지 않습니다. 혹시 정지를 누르게 되면 왜 이런 오류가 나는 걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 빈 자동주입 질문
안녕하세요. 제가 알기론 자동주입은 스프링 빈 클래스에서만 되는걸로 알고 있습니다.근데 아래 소스를 보시면 ExtendsController 클래스에는 @Component 어노테이션이 붙지않아서스프링 빈으로 관리되지않습니다. 근데 HomeController 에서 이를 상속받으면 ExtendsController 클래스에 CommonLoginc 이 자동주입이 됩니다. 그리고 home api 의 this.say 메서드가 NullpointException 오류가 나지않고 정상 호출됩니다.이건 무슨 원리로 되는건지 알 수 있을까요? package com.info.springboot.controller; import com.info.springboot.model.ExtendsController; import com.info.springboot.model.Sample; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HomeController extends ExtendsController { @GetMapping("/home") public String home(){ this.say(); return "home"; } } package com.info.springboot.component; import org.springframework.stereotype.Component; @Component public class CommonLogic { public void logging(){ System.out.println("logging 입니다."); } }package com.info.springboot.model; import com.info.springboot.component.CommonLogic; import org.springframework.beans.factory.annotation.Autowired; public class ExtendsController { @Autowired private CommonLogic common; public void say(){ common.logging(); System.out.println("ExtendsController 입니다."); } }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링부트 재기동 이후에도 세션이 유지되는 이유
안녕하세요, 개인 프로젝트를 하는데,로그인 상태에서 서버를 재기동해도 로그인이 풀리지 않습니다. 이것이 문제라기 보다는 이 현상이 발생한 이유를 알고 싶습니다.세션 관련해서 아무 설정을 한 것이 없어서 왜 이런 현상이 나타나는지 질문드립니다.서버가 세션 저장소를 기본 저장소인 톰캣 메모리가 아니고, 다른 곳을 사용하는 건 아닌가 추측을 하는데요.이 외에 의심해 볼 만한 부분이나, 현재 서버가 세션 저장소를 어디를 쓰고 있는지 알 수 있는 방법 알려주시면 감사하겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 whitelabel error page 500
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]관련 질문 찾아보고 코드를 변경해봐도 똑같이 에러가 떠서 진행을 못하고 있습니다.. 회원 가입을 누르고 이름을 등록하면 아래와 같은 에러가 발생합니다. 버전도 확인을 했는데 뭐가 문제일까요..코드 첨부하겠습니다.. 도와주세요https://drive.google.com/file/d/1EJGRw6FzdUtj0AZh5mVd7DNqwo_HFhx_/view?usp=drive_link
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
강의자료
- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.)- 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 제공하신 강의자료는 다운받아서 코드로 있는데섹션9 FastAPI 리퀘스트(Request) 와 예외처리 FastAPI 예외처리와 HTTPException 클래스 4초에 보시면 왼쪽 화면에 08_exceptionhandling.md 와 같이 설명하는 파일은 강의자료에 없는데 어떻게 보는건가요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
bin폴더가 존재하지않아요
전자정부 프레임워크 3.9의 경우 종료되었다고해서 3.10을 다운 받았는데요, eGovFrame-3.10.0-Win-64bit.exe (3,641,056,401 Byte) 해당 파일을 다운로드 받았는데, jdk와 mysql등이 포함되어있는 bin폴더가 없는데 어떻게 해야하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MemberRepository 질문있습니다!
MemberRepository 는 싱글톤으로 관리가 될 텐데 static으로 store, sequence 선언하는 이유가 있나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
return ModelAndView
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. return new ModelAndView()를 할때 그대로 정상 리턴된다는 말씀을 제가 제대로 이해한게 맞는지 여쭤보고 싶습니다.response.sendError를 가지고 return new ModelAndView()를 하게 되면 view랜더링 없이 was로 돌아가게 되서 다시 error를 확인하고 그에러에맞는 컨트롤러로 보내는걸로 알고있습니다. 그러면 원래 스프링이 정상작동할때도 뷰랜더링 한다음에 was로 돌아가는건가요?
-
해결됨ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
CS0618 SqlConnection
11강 따라하다가 상단에 using System.Data.SqlClient; 설치도 잘 돼서 선언도 됐는데using (SqlConnection sqlConnection = new SqlConnection(connectionString)) 이부분에 경고 CS0618 'SqlConnection'은(는) 사용되지 않습니다. 'Use the Microsoft.Data.SqlClient package instead.' 이런 경고가 나옵니다.이것을 어떻게 수정해야 하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프로젝트 실행 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]강의와 달리 디버깅이 되지 않습니다 무엇이 잘못된 점인지 설명해주셨으면 좋겠습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
통합테스트가 안되면 실행이 안된다는 뜻인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]CONDITIONS EVALUATION REPORT 라고 에러메시지가 뜨면서 서비스통합테스트가 뜨는데 그럴땐 어디를 봐야 하나요? 서비스테스트랑 코드문은 똑같습니다. plugins { id 'java' id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.7' } group = 'hhdplus' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' testImplementation 'org.springframework.boot:spring-boot-starter-test' runtimeOnly 'com.mysql:mysql-connector-j' testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' } tasks.named('test') { useJUnitPlatform() }package hhdplus.hhplus_tdd2.service; import hhdplus.hhplus_tdd2.domain.reserve.Reserve; import hhdplus.hhplus_tdd2.domain.reserve.ReserveCommand; import hhdplus.hhplus_tdd2.domain.reserve.ReserveInfo; import hhdplus.hhplus_tdd2.domain.reserve.ReserveService; import hhdplus.hhplus_tdd2.infra.reserve.ReserveRepository; import hhdplus.hhplus_tdd2.interfaces.controller.ReserveRequest; import hhdplus.hhplus_tdd2.interfaces.controller.ReserveResponse; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.transaction.annotation.Transactional; import java.util.List; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @SpringBootTest //@ExtendWith(MockitoExtension.class) public class ReserveServiceIntergrationTest { @Autowired ReserveService reserveService; @Autowired ReserveRepository reserveRepository; ReserveRequest reserveRequest = new ReserveRequest(); ReserveResponse reserveResponse = new ReserveResponse(); Reserve reserve = new Reserve(); //동작하기 전에 넣어준다 BeforeEach // @BeforeEach // public void beforeEach() { // MockitoAnnotations.openMocks(this); // Mock 객체 초기화 // } // // @AfterEach //테스트 돌때마다 초기화 // public void afterEach() { // Mockito.reset(reserveRepository); // Mock 상태 초기화 // } @Test void 아이디별_예약_내역() { //given 뭔가가 주어졌는데 int userId = 1; ReserveInfo mockReserveInfo = new ReserveInfo(); mockReserveInfo.setId(1); mockReserveInfo.setUserId(userId); mockReserveInfo.setName("테스트 예약 정보"); List<ReserveInfo> mockReserveList = List.of(mockReserveInfo); // Mock 동작 설정 when(reserveService.findReservation(1)).thenReturn(mockReserveList); //when 이거를 실행했을 떄 List<ReserveInfo> result = reserveService.findReservation(userId); //then 결과가 이게 나와야 돼 if(result != null){ System.out.println("이름 : " + mockReserveInfo.getName()); } assertThat(result).isNotNull(); assertThat(result.size()).isEqualTo(1); assertThat(result.get(0).getUserId()).isEqualTo(userId); } @Test void 예약하기() {//40명이 예약 한다 쳐보면 30명만 예약이 되게끔 해보기 //given 뭔가가 주어졌는데 ReserveResponse reserveResponse = new ReserveResponse(); reserveResponse.setId(1); reserveResponse.setUserId(1); reserveResponse.setLectureId(1); //when 이거를 실행했을 떄 ReserveRequest findOne = reserveService.findOne(reserveResponse.getUserId()); findOne.setUserId(1); findOne.setLectureId(1); // Mock 동작 설정 when(reserveService.insertReservation(reserveResponse)).thenReturn(findOne); ReserveRequest result = reserveService.insertReservation(reserveResponse); //then 결과가 이게 나와야 돼 if(findOne != null){ System.out.println("findOne : " + reserveResponse.getLectureId()); } assertThat(reserveResponse.getLectureId()).isEqualTo(1); assertThat(result.getLectureId()).isEqualTo(1); } @Test void 예약수정() { //given 뭔가가 주어졌는데 ReserveCommand reserveCommand = new ReserveCommand(); reserveCommand.setLectureId(1); reserveCommand.setId(1); reserveCommand.setId(1); //when 이거를 실행했을 때 when(reserveService.modifyReservation(reserveCommand.getUserId())).thenReturn(reserveCommand); ReserveRequest findOne = reserveService.findOne(reserveCommand.getUserId()); //then 결과가 이게 나와야 돼 assertThat(findOne).isNotNull(); if(findOne != null){ System.out.println("findOne : " + reserveResponse.getLectureId()); } } @Test void 예약삭제() { //given 뭔가가 주어졌는데 ReserveResponse reserveResponse = new ReserveResponse(); reserveResponse.setId(1); reserveResponse.setUserId(1); reserveService.deleteReservation(reserveResponse.getId()); //when 이거를 실행했을 때 List<ReserveInfo> list = reserveService.findReservation(reserveResponse.getUserId()); //then 결과가 이게 나와야 돼 if(list.isEmpty()){ System.out.println("삭제 완료"); } assertThat(list.size()).isEqualTo(0); } }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
오류발생 NoClassDefFoundError: jakarta/servlet/annotation/WebServlet
[질문 내용]아래와 같은 오류가 발생합니다. Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-12-26T08:17:35.759+09:00 ERROR 30104 --- [servlet] [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1239) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1176) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:288) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:202) ~[spring-context-6.2.0.jar:6.2.0] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:791) ~[spring-context-6.2.0.jar:6.2.0] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:609) ~[spring-context-6.2.0.jar:6.2.0] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.4.0.jar:3.4.0] at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[classes/:na]Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServlet at org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:60) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1273) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:981) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1233) ~[spring-beans-6.2.0.jar:6.2.0] ... 16 common frames omittedCaused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na] ... 22 common frames omittedProcess finished with exit code 1
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@Valid api 예외처리 관련해서 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.회원가입을 할 때 요청하는 정보를 @Valid를 사용해 검증 이후 @ExceptionHandler를 사용해서 원하는 오류의 형식을 응답하는 방식으로 코드를 짜보려고 합니다. @Valid로 발생하는 BindException 혹은 MethodArgumentNotValidException을 @ExceptionHandler로 잡아서 처리를 해야 하는 점은 이해했는데 의도적으로 예외를 발생시킨 뒤 postman을 통해 오류가 발생했는지 확인해보면 null값이 그대로 저장이 되어있습니다. 아직 예외를 처리하지 않았기 때문에 BindException 혹은 MethodArgumentNotValidException 예외가 발생해야하는 것 아닌가요? 어느 부분에서 문제가 있는지 궁금합니다.
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
EF로 만든 프로젝트를 개발서버에 올리니, 처음 로딩속도가 많이 느리네요.
EF로 생성해서 개발서버에 올려놓았는데, 첫 로딩속도가 많이 느리네요. 개발사이트에 출근해서 접속하거나, IIS의 응용프로그램풀을 재시작후에 접근하면 5~6초 정도 걸립니다.하지만 일단 연결이 되고 나면, 이후에는 1초 이내에 응답이 바로바로 옵니다. 접근도메인이 문제인가 싶어서, IP로 바꾸어도 동일하네요.이런 현상이 나타나는 이유와, 해결 방법을 알고 싶습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
errors.properties에 파라미터로 넘겨주는 매개변수 타입
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. errors.properties에 궁금한 점이 있어 문의드립니다. 파라미터가 존재하는 메시지에 new Object[]{1000, 1000000}로 매개변수를 전달하였을 때, 자동으로 1,000 / 1,000,000와 같이 쉼표가 포함되는 숫자로 표시되는데 숫자인 경우엔 쉼표를 자동으로 넣어주는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
버전으로 인한 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 스프링 입문 강의 수강 중 문의드리고 싶어 글을 남깁니다. 강사님 말씀대로 hellospringapplication을 실행하니 붉은 색 글씨로 아래 문구처럼 출력됩니다. Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#0.3WARNING: A Java agent has been loaded dynamically (/Users/user/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.15.11/a38b16385e867f59a641330f0362ebe742788ed8/byte-buddy-agent-1.15.11.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 자바는 openjdk oracle 23.0.1을 사용 중이고, gradle jvm도 oracle openjdk 23 버전을 사용 중입니다. 제공해주신 다른 답변들을 확인하여 자바 버전을 17로 다운그레이드 하려 했는데 project structure에서 17 버전을 선택하니 amazon corretto가 선택되었습니다. 오라클 17 버전은 따로 뜨지가 않더라고요.. 오라클 버전 외 다른 17 버전을 선택하고 gradle jvm도 조정하면 해결될까요, 아니면 다른 방법이 있을까요 ?양질의 컨텐츠 제공해주셔서 항상 감사드립니다.