안녕하세요. 커넥션이 처음 생성되는 시점이 언제인지 질문드립니다.. DataSourceUtils.getConnection()을 호출하는 시점에 커넥션이 처음 생성되는것인지, 아니면 TransactionStatus status = transactionManager.getTransaction();을 호출하는 시점에 커넥션이 처음 생성되는것인지 질문드립니다.. 현재 강의에서는 DataSourceUtils.getConnection()의 경우에 트랜잭션 동기화 매니저가 관리하는 커넥션이 없는 경우 새로운 커넥션을 생성해서 반환한다고 되어있는데, 다음강의 에서는 transactionManager.getTransaction()을 호출해서 트랜잭션을 시작하는데 이떄 커넥션을 생성한다고 되어있습니다.. 그래서 두가지 경우중 언제 커넥션이 생성되는것인지 혼란이와서 질문드립니다.. 감사합니다 + 위 내용에 대해서 알아보다가 아래와 같이 정리해 보았는데 이렇게 이해하면 될까요? 1. transactionManager.getTransaction(); 을 통해 트랜잭션 매니저가 트랜잭션을 시작하고, 커넥션을 생성해서 트랜잭션 동기화 매니저에 보관한다. bizLogic()안에 있는 fingById()나 update()를 통해 getConnection() 즉, DataSourceUtil.getConnection(dataSource)를 하게되면, 이때는 트랜잭션 동기화 매니저가 관리하는 커넥션이 있는 경우이므로, 해당 커넥션을 반환한다. 즉, findById()를 할떄의 커넥션과 update()를 할떄의 커넥션이 동일하다. 2. transactionManager.getTransaction(); 을 하지않으면, 이때는 트랜잭션을 시작하지않은것이므로, bizLogic()안에 있는 fingById()나 update()를 통해 getConnection() 즉, DataSourceUtil.getConnection(dataSource)를 하게되면, 이때는 트랜잭션 동기화 매니저도 없고, 트랜잭션 동기화 매니저가 관리하는 커넥션이 없는 경우이므로, 새로운 커넥션을 생성해서 반환한다. 즉, findById()를 할떄의 커넥션과 update()를 할떄의 커넥션이 각각 다르다.
안녕하세요. 나머지 합 구하기 핵심 아이디어 중 첫 번째 (A+B)%C는 ((A%C) + (B%C)) % C와 같다. 는 것은 본 문제를 푸는 데에는 직접적 관련이 없는 것 같은데 어떻게 관련이 되어 있는지 궁금합니다. 문제가 연속된 부분의 합의 나머지를 구하는 것인데, (A[i+1] + ... + A[j])%M = (S[j] - S[i])%M 이 되고, 나머지 연산이 linear 연산이기 때문에 (S[j] - S[i])%M = 0이라면 S[j]%M = S[i]%M 이라고 할 수 있을 것 같아서요. 이 경우에 핵심 아이디어 2번째, 3번째로도 문제 풀이가 가능한 것 같은데, 핵심 아이디어 1번째는 어떤 역할을 하는지 궁금합니다. 감사합니다. 이 되어
pyinstaller 사용시 에러 4900 WARNING: Library not found: could not resolve 'api-ms-win-crt-string-l1-1-0.dll', dependency of 'C:\\Users\\***\\AppData\\Local\\Programs\\Python\\Python312\\DLLs\\tcl86t.dll'. 명령 프로프트에서 실행해도 4524 WARNING: Library not found: could not resolve 'api-ms-win-crt-string-l1-1-0.dll', dependency of 'C:\\Users\\이종익\\AppData\\Local\\Programs\\Python\\Python312\\DLLs\\tcl86t.dll'. 해결 방법을 알고 싶어요
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 실제 웹사이트에서는 response에 sessionId가 담긴 쿠키를 보내주게 되면 다음request부터는 쿠키를 매번 보내게되는것으로 알고있는데, MockHttpServletRequest의 인스턴스인 request에 setCookies를 하는 이유가 일시적으로 만들어진 request요청이라서 그런건가요? 테스트 상황에서만 setCookie를 하는것이 맞나요?
안녕하세요~ localhost:8080 이 사용중인 것 같습니다. 처음 테스트로 실행시키고 초기화까지 된 것 같은데 해당 localhost 로 들어가면 로그인 화면이 뜨네요... 일전에 다른 강의 보다가 다른 프로젝트를 실행시켜서 그런 것 같네요 어떻게 해결해야 할까요?
[질문 내용] 섹션 6 JDBC 연결 과정 h2 DB 연결 과정에서 h2 환경 구축, memebr 테이블 생성까지 에러없이 잘 됐구요. h2 콘솔에서도 테이블 확인 해 보면 잘 보입니다. 근데 이제 강사님이 알려주신 방법대로 DB를 MemoryMemberRepository -> JdbcMemberRepository로 변경하는 과정에서 JdbcMemberRepository 클래스 파일과 SpringConfig 파일 코드 복붙 해왔는데 실행시키면 회원가입과 회원 목록 조회시 자꾸 member라는 테이블을 못찾는 오류가 뜹니다...ㅠ 왜 그런걸까요ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 자바 배치파일이 아니라고 뜨는데 왜이러는걸까요 ㅠㅠ
안녕하세요, 강의를 듣고 있는 학생입니다. 강사님께서 강의 중에 언급해주신 거 같은데 제가 이해를 잘 못해서 다시 질문드립니다. 통합 테스트 시 이전 강의에서 쌓아 둔 데이터를 DELETE query를 통해서 없애고 진행을 했는데, 그렇다면 테스트 코드와 실제 코드가 같은 DB를 공유하고 있다고 봐도 되나요? 만약 같은 DB를 공유하게 된다면, 원래 있던 데이터를 항상 날려야 되는데 문제가 생긴다고 생각이 들어 제가 잘못 이해한 부분을 찾고 싶어 질문을 드렸습니다. 글 읽어주셔서 감사합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 세션 생성 로직은 UUID로 랜덤한 값 만들어서 sessionStore.put(sessionId, value);하고 new Cookie(SESSION_COOKIE_NAME, sessionId);해서 mySessionId인 SESSION_COOKIE_NAME과 sessionId를 응답할 때 담아서 보내는 것까지는 이해했는데 조회와 만료하는 로직, findCookie메서드에서 request로 넘어온 쿠키 이름과 cookieName(SESSION_COOKIE_NAME)이 일치하면 findAny()로 반환된 값이 sessionCookie에 담기고 sessionCookie.getValue()로 값을 꺼내서 sessionStore에서 .get()으로 조회하고 .remove()로 삭제하는 로직이 맞는건지 제가 제대로 이해한게 맞는지 궁긍합니다. 항상 친절하게 답변해주셔서 감사합니다.
Could not autowire. There is more than one bean of 'MemberRepository' type. Beans: memoryMemberRepository (MemoryMemberRepository.java) springDataJpaMemberRepository ( SpringDataJpaMemberRepository.java ) <스프링 데이터 JPA> 강의에서 테스트 코드를 실행 했을때 동일한 에러가 뜨는데 해결 방법을 찾지 못하고 있습니다. 도와주세요 .. 동일한 타입의 빈이 중복 등록되어 발생한 문제임을 알고 있습니다. 어디서 중복 등록이 된 건지 찾지 못하고 있어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] org.h2.Driver에서 오류가 발생하는데 이는 어떻게 수정해야하나요?
@Service @RequiredArgsConstructor @Transactional public class UserService { public void createUser(CreateUserRequest request) { Users users = firebaseUsersRepository.findUsersByFirebaseUid(request.getFirebaseUid()) .orElseThrow(() -> new BusinessException("Not Found User", HttpStatus.INTERNAL_SERVER_ERROR)); User user = User.builder() .name(users.getDisplay_name()) .firebaseUid(request.getFirebaseUid()) .build(); userRepository.save(user); } } @Component @RequiredArgsConstructor @Transactional(propagation = Propagation.REQUIRES_NEW) public class BaseEntityAuditAware implements AuditorAware<User> { private final UserRepository userRepository; @Override public Optional<User> getCurrentAuditor() { try { return userRepository.findById(ApiLogger.getRequestCallerId()); } catch (Exception e) { return Optional.empty(); } } } createUser에서 userRepository.save (user)를 호출할때, JpaAudit기능을 이용하기 위해 구현해놓은 BaseEntityAuditAware에서 유저정보를 가져온 후, 실제 쿼리를 날립니다. 이때, 전파속성이 REQUIRE_NEW이며, 발생한 모든 예외를 catch했으므로 이 함수를 호출한 부모 함수로 해당 예외가 전달되지 않을 것이기때문에 rollback이 되지 않으리라 기대했지만 실제로는 unexpectedrollbackexception이 발생하며 롤백이 되었습니다. null을 반환하는건 문제가 아닌것이, 실제로 예외를 발생시키지 않으려고 위 코드를 아래와같이 변경하였더니 null값으로 정상적으로 insert쿼리가 날라갔습니다. @Override public Optional<User> getCurrentAuditor() { Long callerId = ApiLogger.getRequestCallerId(); if (callerId == null) return Optional.empty(); return userRepository.findById(ApiLogger.getRequestCallerId()); } 어느부분이 잘못된것이며 제가 오개념을 잡고있는 부분이 어디일까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 인터셉터는 필터에 비해 다양한 기능을 제공한다고 하였는데 왜 Spring Security는 필터로 구현되었을까요? Spring Security가 MVC 뿐 아니라 다른 애플리케이션에도 활용되기 때문에 의존성을 줄이기 위함일까요? 그 외에도 인터셉터가 필터에 비해 갖는 이점이 궁금합니다!
<p th:text="'안녕하세요.ddd ' + ${data}" >안녕하세요. 손님</p> 이 부분에서, 정작 p태그의 사이 공간에 들어가는 내용 즉, "안녕하세요. 손님" 이 부분은 아예 화면에는 렌더링이 안 되는 걸로 보이는데 이 부분은 그러면 개발자 입장에서는 주석처럼 사용하는 건가요? 타임리프에서 p 태그의 사이공간은 어떻게 활용되는지 궁금합니다.
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다) - 이외의 문의등은 평생강의이므로 양해를 부탁드립니다 - 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다 - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 섹션1의 6번째 강의(출력 포멧과 입력) 수업 자료를 다운 받았는데 1번째 강의와 같은 예제파일이 들어있습니다(python-question1-web.ipynb) 해당 강의에 맞는 예제 파일로 바꿔주셔야 할 것 같습니다!!