6강 스프링 DB 접근 기술.pdf 내용을 보면 MemberServiceIntegrationTest 에서는 MemberService로 join하고 Id를 찾는 내용은 Repository 를 통해 수행하는데요. service에 대한 테스트 코드기때문에 이전에 작성한 MemberServiceTest에서처럼 Service로 일관되게 사용하는게 맞지않나요? MemberServiceIntegrationTest .java //When Long saveId = memberService. join (member); //Then Member findMember = memberRepository. findById (saveId). get (); assertEquals (member. getName (), findMember. getName ()); MemberServiceTest.java Long saveId = memberService.join(member); Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName());
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. validation/v3/editForm.html 여기에서 form action="item.html" 이게 잘 이해가안됩니다 validation/v3/editForm.html 여기에서 검증한걸 @PostMapping("/{itemId}/edit") 여기로 보내야하는거 아닌가요? 근데 이렇게하면 어떻게 가죠?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 아니오 [질문 내용] 여기에 질문 내용을 남겨주세요. http 프로토콜의 로컬 환경에서는 별도의 설정 없이 클라이언트에서 jsessionid를 헤더에 넣어서 서버에 전송하는 반면, 프론트엔드 서버와 분리된 배포 환경에서는 cors 설정 뿐만 아니라 https 프로토콜로 변경, yml 파일에 server: servlet: session: cookie: same-site: none secure: true 와 같은 별도의 설정을 완료함으로써 쿠키가 서버로 전달되었습니다. (same-site가 none이면 secure은 꼭 true여야 해서요) 비교적 쿠키-세션 방식이 간단한 것 같지만, 이러한 별도의 설정 그리고 stateful한 쿠키-세션 방식 때문에 배포 환경에서 jwt를 쓰는 것이 좋은지, 아니면 쿠키-세션 방식을 쓰는 것이 좋을 지 잘 모르겠습니다.
"Only instances of keras.Layer can be " 97 f"added to a Sequential model. Received: {layer} " ValueError: Only instances of keras.Layer can be added to a Sequential model. Received: <tensorflow_hub.keras_layer.KerasLayer object at 0x791605217610> (of type <class 'tensorflow_hub.keras_layer.KerasLayer'>) 위와 같은 오류가 나서 한참 찾았는데요. 원인은 tensorflow_hub와 tensorflow 간의 keras 필요 버전 차이에 있다고 합니다. 아래와 같이 keras를 별도 설치하여 임포트하여 사용하시면 정상 작동됩니다. 같은 에러로 고민이신 분에게 도움이 됐으면 좋겠네요. 수정 소스 코드 !pip install tf_keras import tf_keras as tfk Trained_MobileNet_url = "https://tfhub.dev/google/tf2-preview/mobilenet_v2/classification/2" Trained_MobileNet = tfk.Sequential([ hub.KerasLayer(Trained_MobileNet_url, input_shape=(224, 224, 3)) ]) Trained_MobileNet.input, Trained_MobileNet.output
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기서 Gradle JVM에서 Project SDK(openjdk-21)로 할까요? 아니면 다른 선택지인 21 (Oracle OPenJDK 21.0.2)로 해야 하나요? 감사합니다.
우선 강사님께서 풀어주신 top-down 코드는 다음과 같습니다. class Solution(object): def uniquePaths(self, m, n): memo = {} def dfs(r, c): if (r, c) == (0, 0): # 출발점에 도달한 경우 return 1 if (r, c) not in memo: # 메모이제이션에 값이 없는 경우 계산 paths = 0 if r - 1 >= 0: # 위쪽 셀에서 오는 경우 paths += dfs(r - 1, c) if c - 1 >= 0: # 왼쪽 셀에서 오는 경우 paths += dfs(r, c - 1) memo[(r, c)] = paths # 결과 저장 return memo[(r, c)] # 결과 반환 return dfs(m - 1, n - 1) 이 코드는 grid에 해당하는 함수만 호출하고, 중복되는 호출은 memo에 저장하기 때문에 총 O(M*N)이 됩니다. 다음은, 디스코드의 다른 사람이 올려주신 코드를 참고해서 조합론을 적용한 코드입니다. class Solution(object): def uniquePaths(self, m, n): memo = {} def fact(x): if x <= 1: return 1 if x not in memo: memo[x] = fact(x - 1) * x # factorial의 결과값을 메모리에 저장 return memo[x] return fact(m + n - 2) / (fact(m - 1) * fact(n - 1)) # fact(m + n - 2) 부분만 호출하고, 분모는 캐싱하므로 시간복잡도는 O(M+N) 분자에 해당하는 부분만 함수를 호출하기 때문에 시간복잡도는 O(M+N)이 됩니다. 우선 제가 궁금한 것은 2가지입니다. 1) 위의 두 코드를 비교했을 때, 수학적으로 접근한 코드가 시간복잡도가 더 낮은데요 항상 dfs, bfs를 먼저 쓰는게 좋은 것은 아닌가요? 2) 강의에서는 조합론을 이용한 방법이 198C99 = 약 2*10^58이여서 완전탐색은 안된다고 하셨는데, 실제로 제출했을 때는 제출이 됬습니다. 왜 이런 차이가 발생한건가요?
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다) - 이외의 문의등은 평생강의이므로 양해를 부탁드립니다 - 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다 - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 서버에 피해가 가지않도록 크롤링할 수 있는 방법은 없을까요?
항상 startIndex가 endIndex보다 작다라는 게 보장되지 않나요? endIndex = r.text.find("};", startIndex + 1) if 0 <= startIndex else 0 여기 구문에서 endIndex는 항상 startIndex보다 큰 값을 가지는 게 보장되는데, 왜 if startIndex < endIndex: 이 조건을 추가해주나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. was 에 예외가 던져지면 BasicErrorController 를 호출해서 적절한 뷰를 찾아 주는건 알았습니다 근데 was 에 정상 요청이 도착하는데 그 안에 4xx 이나 5xx같은 에러 상태코드가 있는경우 response에 아무런 내용을 채우지도 않고 모델앤뷰도 아무것도 없는걸 리턴할경우를 보내보았는데 이런 뷰는 어디서 생기는걸까요 ? 기본 브라우저에서 제공하는 화면인걸까요 ?
안녕하세요 ! 동일한 코드로 선생님의 채점기에 돌렸을 때는 100점이 나왔는데 백준에서는 recursion 에러가 납니다. 종료조건도 잘 설정해준 것 같은데 어디서 그렇게 호출이 많이 일어나는지 이해가 되지않아서요 ㅠㅠ 강의 잘 듣고 있습니다. 감사합니다!! # 1. 재귀 (근데 백준에서는 recursion 에러 뜸..) n = int(input()) meetings = [] for _ in range(n): meetings.append(list(map(int, input().split()))) meetings.sort(key=lambda x: (x[1], x[0])) # 끝나는 시간을 기준으로 정렬 # x[1]이 같을 경우 x[0]을 기준으로 정렬 def find(i, cnt): for j in range(i+1, n): if meetings[i][1] <= meetings[j][0]: # 회의 끝나는 시간보다 시작하는 시간이 더 크거나 같은 것 찾기 cnt += 1 return find(j, cnt) # 또 찾기 return cnt print(find(0, 1))
자바 공부를 마치고 스프링공부를 하려고 강의를 듣는도중 뭔가 한두단계를 건너뛰고 스프링 공부를 시작하는 느낌이 들었습니다.. 지금 쓰고 있는 annotation, 라이브러리들이 뭔지 하나도 감이 잡히지 않았네요 저런 지식들은 스프링 공부하면서 외우거나 익히는 건가요? 아니면 선행 학습이 필요한 과목이 있나요?
안녕하세요, next-auth 5 베타를 사용하다가 "r is not a function"이라는 에러 메시지 때문에 next-auth 버전을 "^4.24.5"로 낮추었더니 해결되었습니다. 그런데 vercel에 배포하려하니 자꾸 아래의 사진과 같은 에러 때문에 어려움을 겪고 있습니다...ㅜ 해당 에러 구글에 찾아봐도 해결방법을 모르겠던데 도와주실 수 있으실까요ㅠㅠㅠ