2022 3회 1:50 result[i]++ 의 결과값이 왜 2,4, 이런식으로 나오는지 궁금합니다. 전체적인 문제 풀이 과정은 이해했습니다. if(arr[i]<arr[j]) 이 부분 까지 다 이해했습니다. i가 0일 경우 true가 한개인것도 알겠는데 출력하는 마지막 부분이 이해가 안됩니다. ++ 일 경우 값에 1을 더해주는 것도 이해가 갑니다. 문제에서 어디 부분 때문에 2,4 이런식으로 출력해주는지 궁금합니다.
fruits=["apple","banana","cherry"] for i in range(len(fruits)) 이 부분에서 range의 개념은 어느정도 이해했는데 왜 문자열 길이가 아닌 개수처럼 3으로 세는지 궁금합니다. 영상에서도 헷갈릴거라고 언급하셨는데 저는 보자마자 아예 count 개념이랑 충돌이 와버렸네요...
안녕하세요. 강의를 잘 듣고 있습니다. 다름이 아니라, 연습문제를 모두 풀고 나서 윈도우함수 강의를 듣는 과정에서, default에 대해 궁금한 점이 생겼습니다. 정확히, 계산을 해야할 경우, 중복된 데이터가 있는 경우를 고려해서, ROWS BETWEEN UNBOUNDED PRECEDINIG AND CURRENT ROW 라고 프레임의 범위를 정확하게 명시를 하는 것이 좋을 것 같다. 라는 생각이 들었습니다. 그 이유는 다음과 같습니다. 강의에서 말씀해주신대로, 구글 빅쿼리는 default 값이 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 라고 되어있는데요, -- 4) -- 누적 쿼리: 과거의 시간(UNBOUNDED PRECEDING)부터 current row까지 SELECT *, SUM(query_cnt) OVER(PARTITION BY user ORDER BY query_date) AS cumulative_sum SUM(query_cnt) OVER(PARTITION BY user ORDER BY query_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_sum2 FROM ( SELECT query_date, team, user, COUNT(user) AS query_cnt FROM advanced.query_logs GROUP BY ALL ) -- QUALIFY cumulative_sum != cumulative_sum2 ORDER BY user, query_date 문득, default값이 RANGE BETWEEN UNBOUND PRECEDING AND CURRENT ROW 라면, 왜 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 와 같은 값을 가질까? 다른 값을 가지는 경우도 있지 않을까? 하는 의문이 들었습니다. 예제에서는, GROUP BY ALL을 했기 때문에, 중복 데이터가 있어도, query_cnt로 집계가 된 상태에서, 윈도우 함수를 실행하다보니, QUALIFY로 조건절 검증을 수행해도, != 를 만족하는 데이터가 없었던 것 같았습니다. 그래서, 1번 예제와 4번 예제를 결합해서, 다음과 같이 검증을 수행해보았습니다. -- INSERT INTO my_sess.query_logs (user, team, query_date) -- VALUES ('샘', 'Data Science', '2024-04-24'); SELECT *, -- 시간의 흐름에 따라, 일자별 유저가 실행한 누적 총 쿼리 수 SUM(total_query_cnt) OVER(PARTITION BY user ORDER BY query_date) AS cumulative_total_sum, SUM(total_query_cnt) OVER(PARTITION BY user ORDER BY query_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_total_sum2 FROM ( SELECT *, -- 사용자별 시간의 흐름에 따라 쿼리를 실행한 총 횟수: total_query_cnt COUNT(query_date) OVER(PARTITION BY user) AS total_query_cnt FROM my_sess.query_logs ) -- QUALIFY cumulative_total_sum != cumulative_total_sum2 ORDER BY user, query_date 결과는 다음과 같습니다. 중복데이터가 있을 경우, RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW는 다 합쳐서 하나로 집계해서 결과값을 내놓는 것으로 보입니다. QUALIFY 함수를 적용했을 때 cumulative_total_sum = cumulative_total_sum2 인 경우 데이터 중복이 없을 경우에는, 같은 값이 나옵니다.
React Query가 사실 데이터를 불러오고 캐싱하는 이유가 가장 큰 것으로 알고있습니다. 하지만, Next14부터는 fatch에 store 기능이 생기면서 캐싱이 되는걸로 알고 있는데, 그러면 데이터 캐싱만을 사용하며 굳이 React Query를 사용하지 않아도 되는건가요?
안녕하세요 파이썬은 자바와 달리 동적 프로그래밍이라 타입을 지정하지 않고 지정해줘도 강제성은 없다는 정도만 알고 있었는데요. 강의처럼 import해서 type을 지정해주는게 가독성이나 유지보수, 테스트같은 부분에서 유용하기 때문에 해주는건가요? 강의 예시로 volume create, delete, describe처럼 하나의 메서드마다 type을 지정해주는게... 뭔가 개인적으론 더 가독성이 떨어진다고 느껴집니다. (아직 파이썬을 깊게 다루지 않아서 그런거 같긴 하지만) 실무에서 파이썬으로 프로그래밍을 할 때, type을 명시해주는 특정 경우나 범위가 있을까요? ex) 여러 타입을 리턴하는 함수만 type 지정
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
선생님 안녕하세요 좋은 강의 감사합니다. async await 등의 문법 관련해서 질문이 있습니다. 코루틴을 만들때 언제 async 나 await을 써야하는지 잘 이해가 되지 않고, 인터넷을 찾아봐도 이해가 잘 되지 않습니다. 이것을 설명하는 자료나 공식문서가 따로 있나요? 예를 들어, 4-2 코드 파일에서 # (a) 부분 async def fetcher(session, url): async with session.get(url) as response: # (b) 부분 return await response.text() # (c) 부분 async def main(): urls = ["https://naver.com", "https://google.com", "https://instagram.com"] * 10 async with aiohttp.ClientSession() as session: # (d) 부분 # (e) 부분 result = await asyncio.gather(*[fetcher(session, url) for url in urls]) "비동기 함수를 만들때 def 앞에 async 라는 것을 쓰는 것이다" 는 이해를 하겠는데, 예를 들어 (b) 부분에서 with 앞에 왜 async를 써야 하는지 (함수를 정의할때 async를 썼는데 왜 함수 안의 with 절 앞에 또 async를 써줘야 하나요?) , (c)에서 response.text() 앞에 왜 await을 써줘야 하는지 (async로 정의된 함수안에는 await을 무조건 써줘야 하나요? 그럼 모든 줄에 await을 써줘야 하나요? 아니라면 await을 써주는 줄과 안써주는 줄은 어떻게 구분하죠?) (d) 에서도 왜 async를 써주는지, (e) 에서는 await을 정의해주면서 왜 그 위에 urls 를 정의할때는 안 쓴것인지 이런 문법 자체가 궁금합니다. 혹시 이런것을 설명해주는 자료나 링크도 제공이 가능할까요?
java 에서 this 와 super 키워드 9분에 있는 문제 질문드립니다. 해당 문제에서 출력값이 parent constructor child constructor라고 하셨는데 child가 태어날때 부모의 parent()를 먼저 호출하고 그다음 super()를 호출해서 출력값이 parent constructor parent constructor child constructor가 되야하는거 아닌가요?? 궁금합니다
1) index 열에 조건으로 로컬변수를 사용하면 안되는데 매개 변수는 된다는게 좀 희한하네요 혹시 이 부분 관련해서 참조할 수 있는 사이트가 있을까요? 2) 그리고 12분부터 테이블 변수 사용 예를 들어주셨는데 일반 테이블을 사용했을떄는 Order Detais 테이블 검색 후 Orders 테이블하고 결합한다고 설명해주셨는데 ==================================== SELECT TOP(5) * FROM dbo.Orders AS o INNER JOIN dbo.[Order Details] AS d ON o.OrderID = d.OrderID WHERE d.ProductID < 2 ==================================== 테이블 변수(@Orders)를 사용했을때는 @Orders를 먼저 처리하고 Order Details을 처리한다고 해주셨는데 이게 문제인 이유는 @Orders 를 먼저 검색하게 되면 where 조건이 쓸모 없게 되어 인건가요? ==================================== SELECT TOP(5) * FROM [Order Details] AS d INNER JOIN @Orders AS o ON o.OrderID = d.OrderID WHERE d.ProductID < 2 ====================================
안녕하세요. 강의를 구매하고 재밋게 보고 있는데요 지금 재귀함수 이해하기 시리즈 3편을 다 보았는데요 질문은 제가 지금 학습하고 공부하는 방법이 맞나요? 엇나가고 있는거라면 조언 해주시면 감사드려요 ㅠㅠ 강의를 보기전 직접 문제를 풀어보기 내 코드랑 강의를 보면서 코드 이해하기 강의와 노션을 완독 한 후에 풀이 코드 방식을 학습하고 해당 방식을 풀이 1번 2번 3번 대로 직접 푸는 연습하기 아무래도 파이썬 처음이다보니 익숙하지 않아서 문법을 조금 찾아보면서 하고 있긴 합니다. 예를들어 arr = [-1] * (n +2) 아래와 같은 코드가 살짝 이해가 안되었는데 출력 해보니까 js로 작성해보자면 const n = 10; const array = Array.from({ length: n + 2 }).fill(-1); 이런 코드인것 같더라요. 결론적으로는 1,2,3번 방식으로 공부하고 있으면서 파이썬 문법은 중간중간 제공해주신 파이썬 Notion이나 구글링을 통해서 학습 하면서 문제 풀이 방식들을 안보고도 풀 수 있을때까지 반복 숙달하고 있는데 이렇게 학습 하면 될까요?