providers를 통해 등록된 UsersService는 싱글톤인지 궁금하여 nest.js 공식문서를 찾아보았습니다. UsersModule의 exports를 통해 캡슐화된 공급자들을 내보내고, AppModule에 UsersModule을 imports배열에 추가해서 가져오면 providers에 등록하지 않아도 자동으로 주입을 해주며, 인스턴스를 공유하는 싱글톤으로 주입받는다고 이해했습니다. 반면, UsersService를 필요한 모듈 각각의 providers 배열에 등록하게 된다면 등록된 모듈마다 인스턴스가 생성해서 주입하는 것으로 이해하였습니다. 공식문서에는 싱글톤으로 생성되서 관리된다면 메모리를 아낄 수 있고, 리소스의 관리가 쉬워진다는데 질문 1. 리소스의 관리가 쉬워지는건 같은 변수를 공유하기 때문이라고 이해해도 괜찮을까요? 질문 2. 제가 이해한 내용에서 잘못된 부분이 있는지 궁금합니다. 질문 3. providers 배열에 모듈마다 등록해서 인스턴스를 계속 찍어내야 하는 예시가 궁금합니다. (싱글톤의 장점은 어느정도 이해가 되지만, 그 반대의 경우에는 어떤 상황에서 사용할 때 장점이 있는지 생각이 떠오르지 않습니다) (집에 가면서 생각해봤는데 설정이 서로 다르게 주입되어야 하는 경우가 있다면 사용될 수 있을 것 같습니다.)
안녕하세요. 강의 잘 시청중입니다. 진행 하고있던 도중 궁금한게 생겼습니다. 섹션2 - 로그인 모달에서 발생하는 문제 해결하기(router.replace) 4:06 경에 개발자 도구쪽을 보면 x개수가 빠르게 늘어나는것을 보실 수 있을텐데, 제 기준에서는 저 때 무한 새로고침이 되고있더라구요. next.js콘솔에서는 GET 요청으로 /i/flow/login이 계속 되고있고 제가 직접 새로고침을 하거나 페이지를 벗어나면 멈추는데, 저 뒤로 강의 내용에 맞게 useRouter를 사용하면 문제는 없지만 저런 현상이 벌어진 이유가 궁금합니다. 혼자서 이것저것 바꿔가면서 해봤는데 /login -> redirect -> (인터셉팅 라우트)/i/flow/login 형태만 되면 계속 새로고침 되는 이유를 도무지 모르겠는데 원인이 너무 궁금해요
풀 라우트 캐시가 이루어지는 과정을 잘 이해 했는지에 대한 질문이에요! 서버 컴포넌트 이면서 static page 일 경우, 빌드 타임 에 사전 렌더링 후 결과를 풀 라우트 캐시에 저장한다. 추가 요청시 풀 라우트 캐시에 저장된 페이지를 바로 렌더링한다. 클라이언트 컴포넌트 , dynamic page 일 경우 빌드 타임이 아닌 서버에서 사전 렌더링을 진행한다. 추가 요청 시 다시 사전 렌더링한 후 페이지를 렌더링한다. 추가로 풀 라우트 캐시 2 강의에서 Searchbar 컴포넌트는 useSearchParams 사용하고 있는데, 클라이언트 컴포넌트 이면서 동적함수를 쓰고 있어서 dynamic page 에 해당되는걸로 알고있어요. 근데 빌드 타임에 걸리는 이유가 무엇인가요? useSearchParams 같은 경우는 예외적인 걸로 봐야되는 걸까요? 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 평가지표(이진/다중 분류, 회귀) 3분지점의 설명에 대해 보충 설명을 요청합니다. train데이터는 학습을 하고 test데이터는 예측을 한다고 했으나 train데이터를 분리하여 하나는 학습 다른 하나는 검증이라고 하여 이걸(검증) 예측이라고 설명했어요. 그럼 test의 예측과 train 검증에서의 ‘예측’의 차이는 뭔지 이 둘은 같은건지? train데이터의 레이블로 데이터를 검증한다고 했는데 레이블은 실제값이고 검증하는 데이터는 예측값(pred)라고 하여 이 둘을 비교한다고 했습니다. 검증하는 데이터가 예측값? 여기서도 test데이터(예측값)와 어떤 관계인지 이 개념을 이해 못하겠습니다.
에포크 5에서 오류가 발생합니다. AttributeError Traceback (most recent call last) <ipython-input-19-00485008cd01> in <cell line: 0>() 13 #config.save_freq = eval;config.map_freq = 5 14 # 1 epoch시마다 P100에서 약 3분30초 걸림. 적절한 epochs 수 설정 필요. ---> 15 model.fit( 16 get_dataset(True, config), 17 epochs=15, 5 frames /usr/local/lib/python3.11/dist-packages/numpy/__init__.py in __getattr__(attr) 322 def _sanity_check(): 323 """ --> 324 Quick sanity checks for common bugs caused by environment. 325 There are some cases e.g. with wrong BLAS ABI that cause wrong 326 results under specific runtime conditions that are not necessarily AttributeError: module 'numpy' has no attribute 'float'. `np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here. The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecation s
1. 현재 학습 진도 링크드 리스트를 학습하고 있습니다 2. 어려움을 겪는 부분 보너스 문제인 요세푸스 문제를 '링크드 리스트'를 활용하여 푸는데 어려움을 겪고 있습니다 ㅠ 3. 시도해보신 내용 링크드 리스트의 보너스 문제는 링크드 리스트를 학습하는데 도움이 될만한 문제라고 생각하여 풀이하고 있는데 어려움을 겪고 있습니다. class Node: def __init__(self, data): self.data = data self.next = None class CircularLinkedList: def __init__(self): self.head = None def append(self, data): new_node = Node(data) if not self.head: self.head = new_node self.head.next = self.head else: cur = self.head while cur.next != self.head: cur = cur.next cur.next = new_node new_node.next = self.head def delete(self, prev, cur): if cur == self.head: if cur.next == self.head: # 마지막 노드일 경우 self.head = None else: self.head = cur.next prev.next = cur.next def print_all(self): if not self.head: return [] result = [] cur = self.head while True: result.append(cur.data) cur = cur.next if cur == self.head: break return result def josephus_problem(n, k): circle = CircularLinkedList() for i in range(1, n + 1): circle.append(i) result = [] cur = circle.head prev = None while circle.head: for _ in range(k - 1): prev = cur cur = cur.next result.append(cur.data) circle.delete(prev, cur) cur = prev.next if prev else None return result # 입력 처리 n, k = map(int, input().split()) result = josephus_problem(n, k) print("<" + ", ".join(map(str, result)) + ">") 위와 같이 링크드 리스트의 개념을 활용하여 문제를 풀다가 어려워서 chatGPT의 도움을 받아서 변형하여 풀어봤는데도 지속적으로 런타임에러가 나는 상황입니다. 이 문제를 링크드리스트로 풀 수 없는 문제인지 어떤 부분이 잘못된 것인건지 잘모르겠습니다. 또한 만약 풀기 어려운 문제라면, 이정도 수준의 링크드 리스트를 활용하는 문제는 나오지 않는 것인지 이정도 수준으로 연습하면 좋을 지도 궁금합니다! 감사합니다 🙂
주피터노트북으로 코딩시. hwp.open("파일명.hwp")를 실행해도 화일이 없다고 열리지 안네요.........분명 해당경로에 그 파일이 존재하는데도 불구하구요... 강의 듣다가 느낀점. 코딩프로그램 사용법이 더 어려워요. 파이참으로 했다가 주피터로 하기도 하고.....
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. icopyx@gmail.com 확인 부탁 드립니다.
안녕하세요! 강의 수강 중 헷갈리는 게 있어 질문 드립니다!! 다름이아니라, 강의 초반에 프로필 페이지가 SSR인 것과 prefetchQuery를 사용하는 것에 이해를 했는데, 왜 하위 컴포넌트인 UserInfo에서 다시 userQuery를 통해 데이터를 가져오는지 모르겠습니다! 서버사이드 환경인 page.tsx에서 데이터를 가져오기 위해 PrefetchQuery를 사용하는 것으로 알고있는데, 그렇다면 UserInfo에서 useQuery를 통해 데이터를 가져오는 것이 아닌 데이터를 props로 넘겨줄 수 있는게 아닌가 싶습니다! 혹시 최상위 page에서 prefetchQuery를 통해 데이터를 먼저 가져와야 그 하위 컴포넌트들 내부의 클라이언트 컴포넌트에서 useQuery를 통해 데이터를 가져올 수 있는건가요? 그렇다면 prefetchQuery없이 클라이언트 컴포넌트에서 userQuery만 사용해도 되나요?
메인화면에서 SSR로 데이터를 받아오도록 구현한 상태입니다. (page router) 데이터가 많아서인지 페이지 접속 시 빈 화면이 출력되는데, 스켈레톤 UI를 적용해봐도 스켈레톤 UI가 표시되지 않습니다. 스켈레톤 UI는 CSR 환경에서만 사용할 수 있는 걸까요? 이런 경우에는 데이터를 CSR로 받아오고, 스켈레톤 UI를 적용하는 게 나을까요?
const getEnv = async ()=>{ const response = await axios.get(’/비밀키요청’) return response.data } 강의에서 위 코드를 통해 비밀키를 받아오는 예시를 작성해 주셨는데 ConfigModule.forRoot({isGlobal:true, load: [getEnv]}) 과정에서getEnv와 같은 비동기 함수를 등록한 경우 forRoot 내부적으로 await을 통해 메서드가 동작을 완료할때까지 기다리는지 궁금합니다.(비동기 함수를 등록해도 forRoot의 내부 동작으로 처리되는지?)