묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
프록시 내부 호출 해결 방안에 대해 질문이 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예제에서 internal() 메서드를 별도의 클래스로 분리하지 않고, external() 메서드에 @Transactional 어노테이션을 사용하여 미리 트랜잭션을 시작하여 internal()에도 적용되도록 하는 방법은 적절한 해결 방안이 아닐까요?왜 클래스를 별도로 분리하는 것이 더 합리적인 해결 방안인지가 궁금합니다!
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
스프링 부트 3.X 버전으로 바꾸려면
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용대로itemservice-db-start를 이름 수정해서 쓰려고 했는데이 코드는 스프링 부트 2.X 버전이더라고요. 이렇게 강의에서 제공하는 코드가 2.X 버전인 경우, 저는 이전 MVC 2편 강의 들을 땐 제가 스프링 이니셜라이저 사이트에 가서 직접 프로젝트를 3.X 버전으로 하나 만들고, 강의에서 제공하는 코드에서 main 폴더랑 test 폴더만 제가 만든 프로젝트 쪽으로 복사 + 붙여넣기 하는 식으로 해결했었습니다. 이번에도 그런 식으로 했고 실행해서 상품 등록이랑 수정해 보니 오류는 딱히 안 나는데 조금 걱정되는 부분이 있어서 질문드립니다. 강의에서 제공하는 코드를 보면modules 폴더나 sql 폴더가 있습니다. 제가 새로 만든 프로젝트엔 없고요. 그래서 위 폴더들도 그대로 복사 붙여넣기 할까 생각도 했는데.. 위 두 개 폴더 말고도 더 있을지도 모르고, 이런 식으로 없는 폴더를 일일이 복사 붙여넣기 해서 무언가 잘못되어서 나중에 가서 오류가 터질까 봐 조금 걱정이 되네요. 조금 안전한 방법으로 스프링 부트 3.X 코드를 쓰고 싶은데, 제가 그동안 했던 방법으론 조금 불안합니다..ㅎㅎ 관련 질문과 답변이 MVC 2편 커뮤니티엔 많은데, DB 2편 커뮤니티엔 없는 것 같아서 질문드립니다.스프링 부트 3.X로 하려면 어떻게 하는 게 좋을까요?그냥 2.X 버전으로 진행해도 아무 문제 안 생긴다면 2.X로 해도 상관은 없습니다. +)그냥 강의에서 제공하는 스프링 부트 2.X 버전 코드에 추가로 https://www.inflearn.com/community/questions/988208/%EC%9E%90%EB%B0%94-17%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-%EC%A7%84%ED%96%89%ED%95%B4%EC%95%BC-%ED%95%98%EB%82%98%EC%9A%94 이 게시글대로 해 보고, 여기에 추가로plugins { id 'org.springframework.boot' version '3.3.2' id 'io.spring.dependency-management' version '1.1.6' id 'java' }이 부분만 3.3.2랑 1.1.6으로 수정해 봤는데요.(스프링 부트 3 이상으로 바꾸기 위해)이렇게 하니깐 다음 메시지가 뜹니다. 강의 코드를 수정해야 할지, 아니면 제가 새로 프로젝트를 만들어서 수정해야 할지, 그러면 복붙을 어디어디 할지 모르겠네요.. A problem occurred configuring root project 'itemservice-db'.> Could not resolve all artifacts for configuration ':classpath'.> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.3.2.Required by:project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.2> No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.3.2 was found. The consumer was configured to find a runtime of a library compatible with Java 17, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.2' but:- Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a library compatible with Java 17, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares an API of a component and the consumer needed a runtime of a component- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '7.2')- Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a runtime of a component, 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 17)- Doesn't say anything about its elements (required them packaged as a jar)- Doesn't say anything about org.gradle.plugin.api-version (required '7.2')- Variant 'modernGradleRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a runtime of a library compatible with Java 17, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component, as well as attribute 'org.gradle.plugin.api-version' with value '8.7' and the consumer needed a component, as well as attribute 'org.gradle.plugin.api-version' with value '7.2'- Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a runtime of a library compatible with Java 17, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component, as well as attribute 'org.gradle.plugin.api-version' with value '7.5' and the consumer needed a component, as well as attribute 'org.gradle.plugin.api-version' with value '7.2'- Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.3.2 declares a runtime of a component, 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 17)- Doesn't say anything about its elements (required them packaged as a jar)- Doesn't say anything about org.gradle.plugin.api-version (required '7.2')* 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.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
순위가 무슨뜻일까요?ㅠ
HandlerMapping0순위 = RequestMappingHandlerMapping애노테이션 기반의 컨트롤러인 @RequestMapping에서 사용.@Controller, @RequestMapping이 있는 것을 인식해서 찾아준다.1순위 = BeanNameUrlHandlerMapping(위에서 못찾으면) 스프링 빈의 이름으로 핸들러를 찾는다. (요청 URL 경로와 똑같은 이름(/springmvc/old-controller)의 스프링 빈을 찾는다.)HandlerAdapter (핸들러 매핑을 통해서 핸들러를 찾게되면 핸들러 어댑터가 동작한다.)0순위 = RequestMappingHandlerAdapter애노테이션 기반의 컨트롤러인 @RequestMapping에서 사용.1순위 = HttpRequestHandlerAdapterHttpRequestHandler 처리.2순위 = SimpleControllerHandlerAdapterController 인터페이스(애노테이션X, 과거에 사용) 처리.이순위가 먼지 개발자가 개발하면서 자주사용되는 순위인가요??
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
빈 등록 및 의존관계 주입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빈 등록 및 의존 관계 주입이 헷갈려서 그러는데 JdbcTemplateItemRepositoryItemService이 두 개는 TemplateConfig에서 직접 빈 등록하고, 등록하면서 의존 관계가 주입되고 DataSource는 properties 파일에서 설정을 통해 스프링이 자동으로 빈으로 등록해주고 web 패키지에 있는 Controller들은 컴포넌트 스캔 + Autowired로 빈을 등록하고 의존 관계가 주입되고 있는 거 맞나요? 이게 맞다면JdbcTemplateItemRepository랑 ItemService에 @Repository, @Service 애노테이션을 사용하지 않고Config로 직접 빈을 등록하고 의존 관계를 주입한 이유가 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
핸드러 매핑,어댑터 정확히 멀까요?
1) 핸들러 매핑으로 핸들러 조회HandlerMapping 을 순서대로 실행해서, 핸들러를 찾는다.이 경우 빈 이름으로 핸들러를 찾아야 하기 때문에 이름 그대로 빈 이름으로 핸들러를 찾아주는 BeanNameUrlHandlerMapping 가 실행에 성공하고 핸들러인 MyHttpRequestHandler 를 반환한다.2) 핸들러 어댑터 조회HandlerAdapter 의 supports() 를 순서대로 호출한다.HttpRequestHandlerAdapter 가 HttpRequestHandler 인터페이스를 지원하므로 대상이 된다.3) 핸들러 어댑터 실행디스패처 서블릿이 조회한 HttpRequestHandlerAdapter 를 실행하면서 핸들러 정보도 함께 넘겨준다.HttpRequestHandlerAdapter 는 핸들러인 MyHttpRequestHandler 를 내부에서 실행하고, 그 결과를 반환한다.정리 - MyHttpRequestHandler 핸들러 매핑, 어댑터MyHttpRequestHandler 를 실행하면서 사용된(적용된) 객체는 다음과 같다.HandlerMapping = BeanNameUrlHandlerMappingHandlerAdapter = HttpRequestHandlerAdapter이설명들에서 핸들러매핑은 머고 ,어댑터는 멀해주는 역할일까요?ㅠ이해가 넘안되요 ㅠ 예시로 설명 될까요?ㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증의 순서를 정하고 싶습니다.
이렇게 @GroupSequence 를 사용해서 검증의 순서를 정하고싶은데 예를 들자면 클라이언트에서 이메일을 작성할때 "ㅇㅇ" 이런 식으로 작성을 하면 @NotBlank 가 통과가 되고 @Email 이 실행이 되어야 하는거 같은데 실행이 되지 않습니다 그리고 실행이 안되는줄 알았지만 아래 아이디 비밀번호를 입력 하게되면 이때 형식에 맞지 않다는 오류 메시지가 나오게 됩니다, 어떻게 해야 할까요..package hello.instar.validation; import jakarta.validation.GroupSequence; import jakarta.validation.groups.Default; @GroupSequence({Default.class,ValidationGroups.NotBlankGroup.class, ValidationGroups.EmailGroup.class,ValidationGroups.SizeGroup.class, }) public interface ValidationSequence { }@NotBlank(groups = ValidationGroups.NotBlankGroup.class) @Email(groups = ValidationGroups.EmailGroup.class) private String email;
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프 문법 출력문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]<p th:text="'Status 값: ' + ${param.status}"></p> <div><h2 th:if="${param.status}" th:text="'저장 완료!'"></h2><h2 th:if="${param.status == 100}" th:text="'수정 완료!'"></h2></div> 스테이터스 값이 true일때 저장완료 100일때 수정완료 출력하려고 하는데 url링크에 스테이터스가 100이고 개발자모드 페이로드에도 100으로 되어있는데 저장 완료라고 나옵니다 <h2 th:if="${param.status}" th:text="'저장 완료!'"></h2> 이 코드를 삭제하고 <p th:text="'Status 값: ' + ${param.status}"></p>값이 100으로 찍혀도 수정 완료가 안떠요 <p th:text="'Status 값: ' + ${param.status}"></p>이 100이어도 저장완료라고 나오는 오류도 있습니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임리프 javascript 오류
[질문 내용]강의를 따라가며 실습을 진행하는 도중 다음과 같은 문제가 발생합니다. 코드는 그대로 복붙했고 intellij ultimate 사용중이며 스프링은 3.3.5버전입니다.혹시 위와 같은 현상을 해결하는 방법을 알 수 있을까요...? 아무리 검색해봐도 나오질 않습니다 ㅠㅠ
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
트랜잭션 동기화 매니저와 커넥션 풀
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]데이터 소스로 HikariDatasource를 사용하면트랜잭션 매니저를 통해 트랜잭션을 시작할 때 커넥션을 획득하게 되는데 이 때 획득하는 커넥션은 커넥션 풀에서 하나 가져와서 트랜잭션 동기화 매니저에 넘겨주는거죠?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
new-form.jsp Whitelabel Error Page오류..
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.관련 질문들 찾아보고 다 따라해봤습니다. 인텔리제이 캐시삭제부터 webapp아래 WEB-INF폴더를 만들고 application.properties에 따로 설정을 하는거까지 정말 다~~~해보았으나 아래 사진들처럼 white label에서 벗어날 수가없습니다.이전 강의들의 index파일들도 전부 resources아래 static에 만들지않으면 whitelabel이 떴습니다. 정말 어떻게 해야할까요 앞으로도 강의 진행을 해야되는데 너무 답답하네요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
콘솔 메시지 질문
저는 왜 이렇게 안나오고 이렇게 나오는 건가요? 그리고 계속 로딩하듯 메인이 돌고 있는데 상관없는건가요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문있습니다(동작과정)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@GetMapping("/add") public String addForm(@ModelAttribute("member")Member member, Model model){ model.addAttribute("member", member); return "members/addMemberForm"; } @PostMapping("/add") public String save(@Validated @ModelAttribute("member")Member member, BindingResult br){ if(br.hasErrors()){ return "members/addMemberForm"; } memberRepository.save(member); return "redirect:/"; } 이렇게 되어있으면 if(br.hasErrors()){ return "members/addMemberForm"; } 이 경우 즉 잘못 입력되어 @Validated에 걸린 경우 해당 틀린 폼을 유지 및 경고 창을 띄운 form을 다시 사용자에게 보여주는 것으로 알고 있는데 이 때 @GetMapping으로 다시 들어가서 폼을 사용자에게 보여주는 것인지 아니면 또 @PostMapping으로 실행되는 것인지 궁금합니다!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기서는 form방식을 바탕으로 로그인 기능을 구현하는 법을 알려주셨는데 api 방식으로 할 때 로그인, 보안 기능을 만들 때도 강의에서 알려주신 내용과 개념 및 구현원리 적으로는 유사하게 코드를 작성하면 될까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
H2 testcase 연결 실패
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]테스트를 위해서 윈도우에서 배치파일로 실행하면주소에 key값이 안 나오고 바로 jsessionid가 나와서key값 앞에 localhost로 변경해서 접속을 할 수가 없는데어떻게 연결하나요?그냥 jdbc:h2:~/testcase로 연결하려고 해도Database "C:/Users/user/testcase" not found, either pre-create it or allow remote database creation여전히 이 오류가 나서 testcase로 접속할 수가 없습니다
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
pdf에 이 코드 수정되는 게 나을 것 같습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]6. 스프링과 문제 해결 - 예외 처리, 반복.pdf(v20231127)11페이지의 MemberServiceV4Test 코드에서 이번 강의에서 throws SQLException이 더 이상 필요 없어져서 지우셨는데강의 자료엔 아직 남아 있어서 제보합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVc 404
안녕하세요, 강의내용을 참고하여 SpringMemberFormControllerV1를 만들던 중 whitelabel 에러가 떠서 질문드립니다. 강의 내용대로 @Controller를 사용하여 실행했을 땐 폼이 정상적으로 리턴되는 것을 확인하였는데, @Controller를 주석처리한 후, @Component와 @RequestMapping을 활용하여 실행하였더니 정상적으로 리턴되지 않습니다.추가로 test를 찍어봤을 때, 서버 로그에 뜨지 않는 것을 확인하였습니다. 컴포넌트 인식이 안되는 것일까요..?(ServletApplication에 Bean으로 등록해봐도 에러 결과는 똑같았습니다..)+ 아래의 질문글 참고하여 인텔리제이 캐시를 비우고 다시 돌려봐도 결과가 같습니다/test로 바꿔봐도 똑같아요 ㅠpackage hello.servlet.mvc1.web.springmvc.v1; import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; // //@Controller @Component @RequestMapping public class SpringMemberFormControllerV1 { @RequestMapping("/springmvc/v1/members/new-form") public ModelAndView process(){ return new ModelAndView("new-form"); } }spring.application.name=mvc1 logging.level.org.apache.coyote.http11=debug spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp plugins { id 'java' id 'war' id 'org.springframework.boot' version '3.3.4' id 'io.spring.dependency-management' version '1.1.6' } group = 'hello.servlet' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' //JSP 추가 시작 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'jakarta.servlet:jakarta.servlet-api'//스프링 부트 3.0이상 implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'//스프링부트3.0이상 implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //JSP 추가 끝 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() }
-
미해결[React 1부] 만들고 비교하며 학습하는 React
Cannot read properties of undefined (reading 'props')
수업 영상대로 따라갔을때 props가 undefined로 나오는데 별도의 설정이 필요할까요? SearchForm에서 다음 코드를 추가했을때도 동일하게 안되네요 constructor(props) { super(props); ... }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
자동완성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. reqeust.getInputStream 입력하니깐 앞에 자동완성 되는건 어떻게 하는거에요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
이체 로직 관련 질문이 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]계좌 이체 로직 중public void accountTransfer(String fromId, String toId, int money) throws SQLException { Member fromMember = memberRepository.findById(fromId); Member toMember = memberRepository.findById(toId); memberRepository.update(fromId, fromMember.getMoney() - money); memberRepository.update(toId, toMember.getMoney() + money); } String sql = "UPDATE member SET money = ? WHERE member_id = ?";이렇게 멤버를 db에서 찾아와서 getMoney 하고 이체할 금액만큼 증감해서 update를 수행하도록 한 이유가 무엇인지 궁금합니다. public void accountTransfer(String fromId, String toId, int money) throws SQLException { memberRepository.update(fromId, -money); memberRepository.update(toId, money); } String sql = "UPDATE member SET money = money + ? WHERE member_id = ?" 이런 식으로 update sql문 내에서 현재 금액에서 이체 금액만큼 증감하도록 하고 update문만 호출하는 것이 더 간편하고 안전한 방법이 아닌가 궁금증이 생겨서 질문 글을 올립니다!
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
프로젝트 배포 질문있습니다
안녕하세요20강의 마지막 부분에서 배포 부분에서 궁금한 점이 있어서 질문드립니다. 강의 중 20강 26:34 에서 "공유기가 아닌 랜선을 바로 여러분들의 컴퓨터하고 연결을 한다면 공인 ip를 통해 외부에서 여러분들이 생성한 사이트에 접속이 가능" 이라는 설명이 있습니다.무선 네트워크 환경(공유기 or 핫스팟 등)에서는 배포가 불가능한가요?