묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결FastAPI 완벽 가이드
Update(수정)용 모델 질문 드립니다.
안녕하세요 교수님강의를 통해 많은 도움을 받고 있는 수강생입니다.수정 기능 구현 시, 전체 데이터를 Body에 담아 보내는 방식은 대용량 파일이나 멀티파트 폼 데이터 처리 시 효율성이 떨어지는 경험을 했습니다. 그래서 모든 필드를 Optional로 설정하여 부분 수정을 허용하게 하면 벨리데이션(Validation) 로직이 복잡해지는 문제가 발생했습니다. 현업에서는 어떤 식으로 업데이트 코드 스타일을 관리하는 것이 표준인지 교수님의 조언을 듣고 싶습니다.감사합니다.
-
미해결데이터베이스 MSSQL
SQL server 설치 오류
안녕하세요. Windows PowerShell 2.0이 서비스 종료하여 설치 오류가 떴는데 어떻게 해야하나요?
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.
실무에서 등록일,수정일, 등록자, 수정자 4개 컬럼을 테이블 별로 만들어서 쓰라고 하셨는데1) 모든 테이블에 4개 컬럼은 만든다 생각해도 되는지?2) 유지보수 상 운영 테이블을 직접 수정하는 경우가 있었는데 이때 MySQL 워크벤치 에서 직접 수정하는 경우는 일일히 의식해서 set에 updated_by 를 넣어주는게 최선인지??궁금합니다.
-
해결됨초보자를 위한 BigQuery(SQL) 입문
안녕하세요! 11번 문제 query문에 관해 질문드립니다
저 같은 경우 가장 많은 type1이 뭐냐는 질문에 max함수를 이용했는데, 선생님은 count랑 order by로 사용하셨더라고요. max함수를 사용하지 않은 이유가 있으신가요? 아래는 제가 작성한 query입니다SELECT MAX(type1) FROM `basic.pokemon` WHERE type2 is not null
-
미해결FastAPI 완벽 가이드
API 라우트 설계 시 중첩 구조 분리 기준 질문
안녕하세요 교수님items나 users처럼 딱 떨어지는 리소스는 분리가 쉽지만, 실제로는 모델끼리 얽혀 있는 경우가 많아 라우팅이 모호해지곤 합니다.예를 들어, /products라는 경로가 있음에도 불구하고 특정 맥락에 따라 /users/{user_id}/products와 같이 nested 방식 으로 접근해야 하는 상황이 자주 발생하는데요. (반대인 경우도 발생)이렇게 데이터가 연결되어 있을 때 어디까지 경로를 중첩시킬지, 혹은 어느 시점에 라우트를 완전히 분리해야 할지 교수님만의 노하우나 팁이 있으실까요? 실무적인 관점에서 라우트 설계의 명확한 기준을 잡고 싶어 질문 드립니다.추가로 데이터 모델과 라우트 이름을 보통 같게 하나요?나중에 리팩토링 할 때 문제가 없을까요?감사합니다!
-
미해결실무에서 바로 쓰는 SQL [SQL200제 저자 직강]
오라클18c로 진행해도 괜찮을까요?
안녕하세요 혹시 오라클18c로 진행하더라도 문제 없을까요?
-
미해결BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[과제] 퍼널 PIVOT 테이블 작성하기
안녕하세요 카일님!강의 너무 잘 듣고 있습니다! 온오프라인에서 SQL실무와 관련된 강의가 없어 많이고민했는데 카일님 강의 덕분에 입문 강의 부터 정말 많이 배웠습니다 ㅜㅜ! 아래 일자별 퍼널을 PIVOT 해보는 쿼리를 짜봤는데 피드백 주시면 너무 감사하겠습니다!더불어서 PIVOT을 할 때 제가 아래 주석처리한 것들도 디버깅 했을때는 동일하게 나왔는데혹시나 실무단에서 어떻게 하는건 조심해야한다! 라는 부분이 있을지도 궁금합니다..! 항상 감사합니다 :) #일자별 퍼널 PIVOT WITH base AS ( SELECT event_date, event_timestamp, event_name, user_id, user_pseudo_id, platform, MAX(IF(param.key = "firebase_screen", param.value.string_value, NULL )) AS firebase_screen, -- MAX(IF(param.key = "food_id", param.value.int_value, NULL )) AS food_id, MAX(IF(param.key = "session_id", param.value.string_value, NULL )) AS session_id, -- param.key AS screen, -- param.value.string_value AS string_value, -- param.value.int_value AS int_value, FROM `advanced.app_logs` CROSS JOIN UNNEST(event_params) AS param WHERE -- event_date = "2022-08-01" #적은 데이터로 쿼리를 작성하기 위해 만들어둔 조건 event_date BETWEEN "2022-08-01" AND "2022-08-18" GROUP BY ALL ), filter_event_and_concat_event_and_screen AS ( SELECT * EXCEPT(event_name,firebase_screen), CONCAT(event_name, "-", firebase_screen) AS event_name_with_screen, DATETIME(TIMESTAMP_MICROS(event_timestamp), "Asia/Seoul") AS event_datetime FROM base WHERE event_name IN ("screen_view", "click_payment") ), event_by_user_cnt_by_date AS ( --event_name + screen (필요한 이벤트만 WHERE 조건에 걸어서 사용) --step_number + COUNT --step_number : CASE WHEN 사용해 숫자 지정 1~6 (welcome, home, food_category, restaurant, cart ) SELECT -- DISTINCT event_name_with_screen, #해당 열 Unique값 확인 가능 event_date, #일자별로 퍼널별 유저수 쿼리 event_name_with_screen, -- event_datetime, user_pseudo_id, CASE WHEN event_name_with_screen = "screen_view-welcome" THEN 1 WHEN event_name_with_screen = "screen_view-home" THEN 2 WHEN event_name_with_screen = "screen_view-food_category" THEN 3 WHEN event_name_with_screen = "screen_view-restaurarnt" THEN 4 WHEN event_name_with_screen = "screen_view-cart" THEN 5 WHEN event_name_with_screen = "click_payment-cart" THEN 6 ELSE NULL END AS step_number, # 퍼널 단계 표시 COUNT(DISTINCT user_pseudo_id) AS cnt FROM filter_event_and_concat_event_and_screen GROUP BY ALL --screen_view-restaurant/screen_view-food_detail/screen_view-search/screen_view-search_result 도 퍼널 정의에 어떻게 넣을지 생각해보고 단계에 넣어보기 > 고객이 어떤 흐름으로 움직이는지 확인해보기 HAVING step_number IS NOT NULL ORDER BY event_date ) SELECT event_date, SUM(IF(event_name_with_screen = 'screen_view-welcome', cnt, NULL)) AS screen_view_welcome, SUM(IF(event_name_with_screen = 'screen_view-home', cnt, NULL)) AS screen_view_home, SUM(IF(event_name_with_screen = 'screen_view-food_category', cnt, NULL )) AS screen_view_food_category, SUM(IF(event_name_with_screen = 'screen_view-restaurarnt', cnt, NULL)) AS screen_view_restaurarnt, SUM(IF(event_name_with_screen = 'screen_view-cart', cnt, NULL)) AS screen_view_cart, SUM(IF(event_name_with_screen = 'click_payment-cart', cnt, NULL)) AS click_payment_cart, -- MAX(IF(event_name_with_screen = 'screen_view-welcome', cnt, NULL)) AS screen_view_welcome, -- MAX(IF(event_name_with_screen = 'screen_view-home', cnt, NULL)) AS screen_view_home, -- MAX(IF(event_name_with_screen = 'screen_view-food_category', cnt, NULL )) AS screen_view_food_category, -- MAX(IF(event_name_with_screen = 'screen_view-restaurarnt', cnt, NULL)) AS screen_view_restaurarnt, -- MAX(IF(event_name_with_screen = 'screen_view-cart', cnt, NULL)) AS screen_view_cart, -- MAX(IF(event_name_with_screen = 'click_payment-cart', cnt, NULL)) AS click_payment_cart, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-welcome' THEN cnt END) AS screen_view_welcome, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-home' THEN cnt END) AS screen_view_home, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-food_category'THEN cnt END) AS screen_view_food_category, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-restaurarnt'THEN cnt END) AS screen_view_restaurarnt, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-cart'THEN cnt END) AS screen_view_cart, -- MAX(CASE WHEN event_name_with_screen = 'click_payment-cart'THEN cnt END) AS click_payment_cart FROM event_by_user_cnt_by_date GROUP BY event_date ORDER BY event_date ;
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
구글이 이메일 변경을 허용하는 이유
이번에 설계 1편에서 자연 키와 대리 키 부분을 학습하면서,최근 구글이 이메일 변경을 부분적으로 검토하고 있다는 뉴스가 떠올랐습니다.예전에는 이메일 변경이 거의 불가능했던 이유가이메일을 자연 키처럼 사용해왔기 때문이라고 이해해도 될까요?그리고 지금에 와서는 어떤 구조적 변화나 트레이드오프를 통해이메일 변경이 가능해졌는지도 궁금합니다.
-
미해결김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
INSERT INTO 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]insert into 할때 괄호로 열을 지정하지않고 생략한다면 table을 생성할때 작성한 열 순서대로만 넣어야하는건가요?? 강의에 열의 순서라는게 그걸 뜻하는게 궁금해요
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
수강기간 변경 요청
안녕하세요. 앱으로 수강을 해서 수강 도중에 기간이 무제한으로 바뀐 줄 모르고 들었는데요. 12월 29일자로 만료가 되긴했는데 혹시 수강기한 변경이 가능하다면 변경해주시면 감사하겠습니다!
-
미해결실무에서 바로 쓰는 SQL [SQL200제 저자 직강]
책이 필요한가요??
안녕하세요,1. 책만 있어도되는건지, 2. 강의만 들어도되는건지,3. 책이랑 강의를 둘다 보는게 맞는건지궁금합니다!
-
해결됨김영한의 실전 데이터베이스 - 기본편
GROUP BY 기준 컬럼
SELECTu.name AS user_name, SUM(o.quantity * p.price) AS total_purchase_amountFROM orders oJOIN users u ON o.user_id = u.user_idJOIN products p ON o.product_id = p.product_idGROUP BYu.nameORDER BY total_purchase_amount DESC;이구문에서 GROUP BY를 user_id로 묶는게 더 안전하지 않나 생각이 들어서 질문드립니다.name은 동명이인이 있다면 문제가 되지 않을까 궁금합니다 선생님혹시 name으로 GROUP BY를 사용해야하는 이유가 있는지 궁금합니다!
-
미해결김영한의 실전 데이터베이스 - 기본편
질문이 있습니다
Primary key 및 Foreign Key현업에서 외래키 관계를 지정하면 연관된 테이블 지우기가 어렵고 복잡해져서 외래키 관계를 지정안한다고 했는데 이 부분에 대해 궁금합니다현업에서는 삭제 및 수정 관련이 복잡해서 외래키 관련을 지정을 안하는건가요?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
2-6 #2 WHERE vs. HAVING절 사용 여부 차이
제 쿼리문 작성 결과입니다. 멘토님이 작성해주신 것과의 차이를 보았을 때 조건이 HAVING절로 표현되었는지 WHERE절로 표현되었는지에 대한 차이, GROUP BY에 type2에 대한 출력값도 요구한다는 점이 차이로 보입니다. 강의 내용 중에 HAVING은 'GROUP BY 후 조건 설정할 때' 사용된다는 표현이 있어서 헷갈림이 있었던 것 같습니다. 이 문제를 HAVING절을 사용하여서 푸는 방법도 있을지요? 그렇지 않다면 이유는 무엇이 되는지요? 감사합니다.
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
실습을 따라하는데 데이터베이스가 보이지 않아요
강의 내용에 실습 영역을 따라 스크립트를 작성하였는데 데이터베이스가 보여지지 않습니다.맥, 윈도우 모두 동일한 상태라 별도로 db를 다운받아 워크벤치 넣어야되는 것인지 문의 드립니다. - 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.)- 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 24시간 내에 재검토하겠습니다.- 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
자료 다운로드 하면 링크가 모두 클릭이 안됨
자료 다운로드 하면 링크가 모두 클릭이 안됩니다.모든 강의 자료 PDF로 다운로드되며, 하이퍼링크처럼 표시만 되고 클릭 불가합니다. 링크는 다른곳에 따로 올리시는 걸까요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
Revising the Select Query 1 문제에서 질문입니다.
문제에서 populations larger than 100000 <- 여기서 larger than 이 10만 보다 큰 그러니까 10만을 초과하는게 아니라 10만을 포함한 10만 이상되는 도시 출력하는게 맞는건가요?? 10만보다 큰 으로 해석해서 where절에서 where population > 100000 으로 썼었거든요
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
48강 강의 여전히 49강과 같은 강의가 나옵니다
48. Postgres 테이블 읽어오기 강의가 여전히 49 49. Postgres 테이블 읽어오기와 같은 강의가 나옵니다. 이론 강의가 아닌 실습강의가 나오고 있습니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 SQL 실전편 (무료 미니 코스)
A/B 테스트 강의 동영상 재생이 안됩니다.
안녕하세요!해당 강의가 비공개 동영상이라서 수강이 불가능해서요. 확인 부탁드립니다!
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
cross join 문의
cross join 쿼리에서는 on을 사용할 수 없다고 나와서요.어떤게 맞는건가요?[쿼리작성]SELECT *FROM Customers cCROSS JOIN Orders oon c.customerid = o.custeomerid; [에러메세지]Error: SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near the keyword 'on'.