학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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로 생성해서 개발서버에 올려놓았는데, 첫 로딩속도가 많이 느리네요. 개발사이트에 출근해서 접속하거나, IIS의 응용프로그램풀을 재시작후에 접근하면 5~6초 정도 걸립니다. 하지만 일단 연결이 되고 나면, 이후에는 1초 이내에 응답이 바로바로 옵니다. 접근도메인이 문제인가 싶어서, IP로 바꾸어도 동일하네요. 이런 현상이 나타나는 이유와, 해결 방법을 알고 싶습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. errors.properties에 궁금한 점이 있어 문의드립니다. 파라미터가 존재하는 메시지에 new Object[]{1000, 1000000}로 매개변수를 전달하였을 때, 자동으로 1,000 / 1,000,000와 같이 쉼표가 포함되는 숫자로 표시되는데 숫자인 경우엔 쉼표를 자동으로 넣어주는건가요?
[질문 템플릿] 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.3 WARNING: 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 warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release OpenJDK 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도 조정하면 해결될까요, 아니면 다른 방법이 있을까요 ? 양질의 컨텐츠 제공해주셔서 항상 감사드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 프로젝트 생성 강의 듣고나서 떠오르는 2가지 질문이 있어 글을 올려봅니다! 1) 먼저, 제가 start.spring.io 에선 자바 17버전으로 프로젝트를 시작했는데, 막상 main 메서드를 실행시켜서 스프링부트 애플리케이션을 띄울 때 콘솔에는 2024-12-19T20:15:54.366+09:00 INFO 38362 --- [hello-spring] [ main] h.hello_spring.HelloSpringApplication : Starting HelloSpringApplication using Java 21.0.5 with PID 38362 (/Users/.../Desktop/study/hello-spring/build/classes/java/main started by ... in /Users/.../Desktop/study/hello-spring) 이렇게 왜 자바 21.0.5버전을 사용하고 있다고 나올까요? 이미 제 맥북에 21버전 자바가 설치되어서 그런걸까요?? build.gradle에는 java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } 이렇게 17버전으로 올바르게 되어있긴 합니다! 2) 선생님께서 인텔리제이 Preferences > Gradle에서 Build and run using을 Gradle로 되어있는 걸 인텔리제이로 바꾸면 더 빠르게 실행할 수 있다고 하셨는데, 만약, Gradle (Default)로 설정된 경우 > 인텔리제이 화살표 버튼을 클릭했을 때 자바 소스 코드를 컴파일하고 빌드 과정을 포함해서 빌드를 진행하고 스프링부트 애플리케이션을 실행하고, IntelliJ IDEA로 설정된 경우 > 인텔리제이 화살표 버튼을 클릭했을 때 자바 소스 코드를 컴파일하고 빌드를 진행하지 않고 스프링부트 애플리케이션을 바로 실행하기 때문에 더 빠르게 실행된다고 하신걸까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] @Repository public class ItemQueryRepositoryV2 { private final JPAQueryFactory query; public ItemQueryRepositoryV2(EntityManager em) { this.query = new JPAQueryFactory(em); } ..... @Configuration @RequiredArgsConstructor public class V2Config { private final EntityManager em; private final ItemRepositoryV2 itemRepositoryV2; //SpringDataJPA @Bean public ItemService itemService() { return new ItemServiceV2(itemRepositoryV2, itemQueryRepository()); } @Bean public ItemQueryRepositoryV2 itemQueryRepository() { return new ItemQueryRepositoryV2(em); } @Bean public ItemRepository itemRepository() { return new JpaItemRepositoryV3(em); } } 여기서 ItemQueryRepositoryV2가 에노테이션으로 빈 등록이되어있는데 config에서 새롭게 빈을 등록한 이유가 EntityManager를 새롭게 생성해서 주입받는 것을 위해서인가요? 이 방식 말고 다른 방식 ItemQueryRepositoryV2 자체적으로@RequiredArgsConstructor를 쓰면 오류가 나는 이유가 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 제목그대로요 어떤차이가 있고, 현업에서도 그러는지 궁금합니다.
상황에 따라 검증 조건들이 다를 수 있기 때문에 dto 객체들을 분리하는 것은 잘 이해했습니다. 여기서 하나 궁금한 점이 만약 JPA를 같이 사용할 때에도 똑같이 코드를 작성하면 될까요? entity 클래스에 적용된 조건들이 그대로 테이블 생성에 반영되는 것으로 기억하는데 entity 클래스에는 조건들을 빼고 다른 dto 객체들에만 제약을 걸면 될지, 아니면 테이블 생성 자체와 관련이 있으므로 entity 클래스 내부 필드들에 직접 조건을 걸어야 하는 게 맞는지 질문 드리고 싶습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 지피티에 검사해서 나오는 방법을 모두 다 해보았습니다. Gradle 프로젝트 리로드, 캐시 무효화, 프로젝트 SDK 재설정, 소스 루트 설정 확인, Gradle 빌드 툴 설정 확인 등등 모두 다 해보았지만, 여전히 저 파일들이 주황색 글씨로 뜹니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 제목그대로요 MemoryRepository, MemoryMemberRepository 정도로 만들고 끝내느게 아니라 EntityManger 활용하는 JpaRepsitory까지 만드는 이유가 뭔가요? 프로젝트 마다 다 다르겠지만 어떤 프로젝트는 심지어 서비스 없는 프로젝트까지 있더라고요. 있고 없고의 차이가 뭔지 궁금하네요
위 설명에 대한 의문이 들어서 질문드립니다. @SpringBootApplication(scanBasePackages = "hello.itemservice.web") 위와 같이 하지 않고 @SpringBootApplication 이렇게만 해도 실행되는데는 문제가 없는데 굳이 넣는 이유가 뭔지 궁금합니다. 혹시 성능과도 연관이 있나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 메서드 이름을 보던 중 의문이 생겨 이렇게 질문을 남깁니다. 서비스에서 findOne 메서드의 이름도 findById라고 하면 비록 리포지토리랑 이름이 겹치긴 해도 더 명확하고 좋을 거 같은데, 혹시 findOne이라고 짓는 특별한 이유가 있을까요? 강의에서 말씀하신 '서비스는 비즈니스에 가깝게 이름을 지어야 한다'는 내용과 관련된 것인지 궁금합니다.
프로젝트를 따로 만들면서 강의 들었던 내용을 참고하면서 혼자 해보는중입니다. 근데 컨트롤러 경로 설정할때 /add 는 어디에도 없는데 왜 경로를 그렇게 했는지 궁금해서 작성합니다. 컨트롤러 최상위는 @Controller @RequestMapping("/basic/items") @RequiredArgsConstructor 내부 컨트롤러는 @GetMapping("/add") public String addForm() { return "basic/addForm"; } html 경로는 /resources/templates/basic/addForm.html ` 인데 add 의 의미가 요청/응답 가상의 이름인지 아니면 제가 못찾은 경로의 이름인지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 정말 하다 하다 안돼서 질문 남깁니다.. 공부하고 싶어요 도와주세요 ㅠㅠㅠㅠ 1 ) build 시 jdk 깔았음에도 java installations does not exist 에러 예전에 jdk11썼었는데 학기끝나고 다시 공부하려고 보니 17로 바꾸라고 해서 jdk:17 / springBoot: 3 설정했는데 아래 첨부드린것 과 같은 에러가 나요.. 17로 바꿨음에도 불구하고 gradle 이 11을 찾는 것 같아보이는데(?) 왜 그런걸까요? ( 안쓰는 버전들의 jdk를 좀 지우긴 했어요..) 1-1 )Gradle 사용자 홈 설정에서 path를 설정하는데, gradle파일이 C:\Users\이름\.gradle C:\JavaSpring\hello-spring\gradle 이렇게 두 개 존재하는 것 같은데 어떤걸로 해야 하는 건가요 ? 제일 처음에 Gradle 사용자 홈 설정은 C:\JavaSpring\hello-spring\gradle 으로 되어있어서 이게 문제일까 싶어서 바꿨는데 어떤경로가 맞는건가요..? <에러화면> <각종 설정 화면> templates/index.html - localhost:8080/hello 안뜸.. 2번은 해결했습니다. 1번은 아직이에요 ㅠㅠㅠㅠ