묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
강의안 그림 안보여요!
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.mysql_basic 강의안 노트북에서 https://www.fun-coding.org/00_Images 여기서 가져오는 이미지들이 다 안보이는데 저만 그런걸까요..?
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
인덱스 생성시점
선생님, 안녕하세요! 좋은 강의 정말로 감사드립니다!이번 강의를 보면서, 궁금한 게 생겼는데요.이번강의에서 인덱스를 생성하면서, 탐색속도가 훨씬 빨라진다는 걸 알게되었습니다. 기존에 생성되어있는 (인덱스가 걸려있지 않은)데이터들에도 인덱스를 걸어주면 더 빨라지는 걸로 보이는데요. 그런데, 이번 강의에서 인덱스를 걸고 데이터를 생성하면, 인덱스를 걸지않았을 때보다 생성시간이 오래걸리는 부분이 있었습니다. 그렇다면 기존에 인덱스가 걸려있지않은 데이터들에 새로 인덱스를 걸 때는 기존 데이터들에 인덱스를 새로 걸어주는 건가요?
-
해결됨데이터 분석 SQL Fundamentals
그룹핑 후 상태?
-- max, min 함수는 숫자열 뿐만 아니라, 문자열,날짜/시간 타입에도 적용가능.select deptno, max(job), min(ename), max(hiredate), min(hiredate) --, sum(ename) --, avg(ename)from hr.empgroup by deptno;deptno 컬럼으로 그룹핑한 후 max(job)을 해서 나오는 컬럼값은 그룹에서 어떤 기준으로 나오는 건가요?
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
$pull 문법에 대한 질문
선생님, 안녕하세요. 좋은 강의 너무 감사드립니다. 답변도 잘해주셔서 너무 감사드려요!이번 강의를 들으면서,Blog.updateMany( { "comments.user": userId }, { $pull: { comments: { user: userId } } } )이 구문이 나왔는데요. 여기서 updateMany의 첫번째 변수인{ "comments.user": userId },는 comments배열의 user가 userId인 객체를 찾는거고,{ $pull: { comments: { user: userId } } }여기서도 comments배열안의 user가 userId인 객체를 찾는 거라서, 사실상 같은거를 두번 써준 게 아닌가요??그래서 const [user] = await Promise.all([ User.findOneAndDelete({ _id: userId }), Blog.deleteMany({ "user._id": userId }), Blog.updateMany( { "comments.user": userId } // { $pull: { comments: { user: userId } } } ), Comment.deleteMany({ user: userId }), ]);이런식으로 updateMany의 두번째 변수만 Blog.updateMany( { "comments.user": userId } // { $pull: { comments: { user: userId } } } ),이런식으로 주석처리를 해줬습니다. 그러자 { "err": "Cast to ObjectId failed for value \"2023-07-03T10:17:04.313Z\" (type Date) at path \"user\" because of \"BSONError\"" }이런 에러가 나왔어요. 그래서 확인해보니, User.findOneAndDelete({ _id: userId }), Blog.deleteMany({ "user._id": userId }), Comment.deleteMany({ user: userId }),updateMany말고 다른 구문들은 다 실행이 됬더라구요. 그래서 user도 삭제되고 블로그도 삭제되고, comment도 삭제되었지만 blog안의 user가 작성한 comment는 pull되지 않아서 그대로 남아있었습니다. 그런데 여기서 궁금한게, promise.all로 묶어서 같이 실행하면, 하나라도 에러가 나면 바로 실행을 중단하고 에러를 배출한다고 배운 것 같은데, Blog.updateMany의 아래 구문인, Comment.deleteMany가 실행됬더라구요. 트랜잭션까지는 아니더라도 updateMany에서 에러가 나면 Comment.deleteMany는 실행이 안될 줄 알았는데, 이거까지 실행된 거를 보면, Promise.all에서는 전부 순서없이 비동기로 동시에?실행되는 걸까요?
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
강의 연장이 가능한지 궁금합니다.
안녕하세요.강의 연장이 가능한지 궁금하여 질문 남깁니다.중간에 현재 수강하는 기기로 동영상 재생이 안되는 이슈와 더불어 개인 사정으로 인해 수강을 마치지 못하였습니다.ㅠㅠ "SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법"을 수강중이며, 혹시 강의 연장을 해주실 수 있는지 궁금합니다.번거롭게 해드려서 죄송합니다.감사합니다.
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
죄송하지만 강의 연장 가능할까요?
안녕하세요좋은 강의 만들어주셔서 감사합니다.최근 개인 사정으로 인해 바쁘게 지내다 보니 강의 종료일이 금방 도래하게 되었습니다.급하게 듣다 보니 놓치는 부분이 많은 거 같아혹시 강의 연장이 가능하다면 연장 부탁드리겠습니다.감사합니다.
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
comment의 id가 생성되는 시점
선생님 안녕하세요. 강의 정말 잘듣고 있습니다. 감사드립니다.강의를 보다가 궁금한 점이 생겼는데요. 블로그에 코멘트를 넣을 때, 이렇게 했는데,const comment = new Comment({ content, user, blog }); await Promise.all([ comment.save(), Blog.updateOne({ _id: blogId }, { $push: { comments: comment } }), ]);저는 처음에 이걸 보고 comment 콜렉션에 들어가는 다큐먼트와 blog에 들어가는 comment의 Id 가 다를 거라고 생각했어요. comment의 id는 디비에 직접 삽입 된 후에 반환될 거라고 생각했습니다. 그래서 promise.all을 이용해 한번에 처리하는 게 아니라, 순차적으로 await을 붙여서 해줘야 한다고 생각했었는데요. 그런데 결과를 보니 comment의 id와 블로그에 들어가 있는 comment의 id가 같더라구요. 정말 신기했습니다. 그래서 궁금한게, comment의 id는const comment = new Comment({ content, user, blog });이 시점에서 생성되는 건가요? 아니면 다른 뭔가가 있을까요?? 궁금합니다~
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
리팩토링 강의에서 라우터 리팩토링 전개연산자(...)
선생님 안녕하세요. 좋은강의 정말로 감사드립니다.리팩토링 강의에서 라우터들을 Index.js로 통합시켜줄 때 module.exports = { ...require("./userRouter"), ...require("./blogRouter"), ...require("./commentRouter"), }; 이렇게 전개연산자(...)를 작성해주셨는데요. 이유가 뭘까요? 이렇게 안하고 그냥 module.exports = { require("./userRouter"), require("./blogRouter"), require("./commentRouter"), }; 이렇게 해주려고 하니 에러가 발생하더라구요. 이유가 뭘까요??
-
미해결[리뉴얼] SQL 베이스캠프
call to undefined function 오류
Uncaught Error: Call to undefined function mysqli_connect() 에러가 발생하며 작성한 코드가 작동하지 않아요php.ini 파일의 정보를 수정하라고 하는데, 파일 경로가 /etc/php/...이런 식이라 어디에 있는지 모르겠어요
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
sql 강의 관련 질문
강사님, 영상 잘 보고 있습니다!지금 데이터베이스 쪽 강의를 듣고 있는데, 강의에서 데이터베이스의 기능들을 쭉 설명해 주시고, 대충 어떤 기능을 하는지는 잘 알았는데요, 이것을 가지고 실제로 게임에서 실습을 할때 DB를 어떻게 사용하고, 어떤 방식으로 사용하는지에 대해서 알고 싶은데, 혹시 강사님 강의 중에 그런 강의가 있는지, 만약 없으시다면 추천해주시는 공부법, 실습법 등이 있는지 궁금합니다!
-
해결됨데이터 분석 SQL Fundamentals
후속강의 관련하여 질문드립니다.
안녕하세요.강의 잘 듣고 있습니다.데이터 분석쪽으로 취업예정은 아니지만 개발자로써 sql작성 능력 향상 면에서 후속강의를 들어도 괜찮을까요?
-
해결됨데이터 분석 SQL Fundamentals
having 절과 where 절에서 상관서브쿼리 질문있습니다.
강사님 , 항상 답변 감사합니다 (__)having 절, group by 절에 상관 서브쿼리를 사용하지 않는게 좋다고 하셨습니다. 다시 생각을 해보니WHERE 절에 상관 서브쿼리가 있다면메인 쿼리에 로우 하나씩 상관 서브쿼리로 전달을 해서상관 서브쿼리가 연산을 하는 것과 HAVING 절도 GROUP BY로 만들어진 결과를 로우 하나씩 상관 서브쿼리로 연산을 하는 것은 제가 생각하기에는 동일한 방식인거 같은데having, group by 절에는 사용을 하지 말라고 하신지 궁금합니다.
-
미해결데이터 분석 SQL Fundamentals
Outer 조인 1:n 관계 방향이 궁금합니다
안녕하세요 강사님의 강의에 큰 도움을 받고 있는 초보 SQL 유저입니다 문제를 풀다 궁금한 점이 생겼습니다해당 문제의 경우 왼쪽이 customers (부모) 오른쪽 orders(자식) 관계인데 요구 조건 마다 다르겠지만 outer 조인 할 때, Null 쪽이 M 쪽을 넣는 것이 더 자주 사용될거 같은데 혹시 저의 생각이 맞을까요?과거에 조인절이 많아져 행과 열이 늘어나면 쿼리 처리속도가 늘어난다는 얘기를 들었습니다 그래서 서브쿼리로만 풀 수 있는 쿼리는 조인문을 안 쓰는 것이 더 낫지 않나라 생각 드는데 혹시 맞을까요? -- 주문이 단 한번도 없는 고객 정보 구하기.select *from customers cleft join orders o on (o.customer_id = c.customer_id)where o.customer_id is null select *from customers cwhere customer_id not in (select customer_idfrom orders)
-
미해결[2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
강의가 사라졌네요ㅠㅠ잘 듣고 있었는데..;;
크롤링과 데이터베이스 - 크롤링 코드 작성 시작 (업데이트)맨 마짐가 부분 참고용으로 있던강의들이 사라졌는데, 복구가 안될까요? 부탁드릴게요ㅠ
-
해결됨데이터 분석 SQL Fundamentals
강사님 with 와 서브쿼리에 대해 질문이 있습니다.
with temp_01 as ( select avg(sal) as emp_avg from emp ) select deptno ,avg(sal) from emp group by deptno having avg(sal) > (select emp_avg from temp_01); -- 전체 평균 급여보다 부서평균 급여가 높은 부서 번호를 출력하세요 having에서 조건을 비교하는 방식을 사용한다고 한다면강사님께서는 having에 서브쿼리를 사용하게 되면 ,그 서브쿼리를 매번 실행하다보니 추천을 하지 않는다고 하셨는데 여기서 with로 임시 테이블을 지정하면이미 재사용하기 편하기 위해서 temp_01로 만들어서 사용하면임시 서브쿼리 테이블을 사용하니까 비상관 서브쿼리를 날리는 거보다 좀 더 나은 걸까요?
-
미해결갖고노는 MySQL 데이터베이스 by 얄코
강의내용
강의에서 나온 내용들 혹시 수시로 참고하기 위해 개인 블로그에 따로 작성해도 괜찮을까요 ?
-
미해결처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
재귀적 크롤링을 위한 링크 가져오기 8:20
재귀적 크롤링을 위한 링크 가져오기 8:20copy select한것을 안쓰고 한번 확인해본다음 직접작성하시는 이유가 뭔가요? 그리고 어떤 태크와 어떤 클래스를 가져오는게 좋을지 판단하는 기준?도 궁금합니다
-
해결됨데이터 분석 SQL Fundamentals
강사님 조건에 하나일때와 두개 일때가 차이가 있더라구요
제가 작성한 SQLselect * from nw.orders o where o.order_id in ( select max(order_id) from nw.orders a group by a.customer_id );강사님이 작성한 SQLselect * from nw.orders where (customer_id, order_date) in (select customer_id, max(order_date) from nw.orders group by customer_id);강사님 서브쿼리 강의 추가해주셔서 감사합니다.제 기억에는 강사님께서 IN 연산자로 사용할 경우 세미 조인처럼 연결된다고 하셨던거 같은데 실행을 해보니까 조건이 하나 일때에는 세미 조인이지만 조건이 2개가 되니까 해쉬 조인으로 바뀌더라구요 그 이유가 궁금합니다.
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
강의 연장이 가능할런지요?
안녕하세요.개인 사정으로 강좌를 듣지 못하다가, 다시 들으려니, 도저히 기한네 (6/29) 마칠 자신이 없어 부득불 1달 정 도 연장을 부탁드렸으면 합니다."SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법""SQL Server 컨설턴트가 알려주는, 쿼리 능력 레벨업(고급 T-SQL 쿼리)"번거롭게 해드려서 죄송하다는 말씀과 함께, 부탁을 드립니다. 감사합니다.
-
해결됨데이터 분석 SQL Fundamentals
강사님 group by에서 궁금한게 있습니다.
with temp_01 as ( select b.category_id, b.category_name as category_name , percentile_disc(0.25) within group (order by unit_price) as qt_1 , percentile_disc(0.5) within group (order by unit_price) as qt_2 , percentile_disc(0.75) within group (order by unit_price) as qt_3 , percentile_disc(1.0) within group (order by unit_price) as qt_4 from nw.products a join nw.categories b on a.category_id = b.category_id group by b.category_id ) select * from temp_01;2번with temp_01 as ( select a.category_id, max(b.category_name) as category_name , percentile_disc(0.25) within group (order by unit_price) as qt_1 , percentile_disc(0.5) within group (order by unit_price) as qt_2 , percentile_disc(0.75) within group (order by unit_price) as qt_3 , percentile_disc(1.0) within group (order by unit_price) as qt_4 from nw.products a join nw.categories b on a.category_id = b.category_id group by a.category_id ) select * from temp_01;2번은 강사님이 작성하신 코드입니다.1번처럼 작성하지 않으시고 2번으로 작성하신 이유가 따로 있으신가요 ?인덱스가 중복되는게 있으면 효율이 안좋아서fk인 a.category를 사용하는게 더 좋아서 선택하신건지 아니면 1번이나 2번이나 둘다 큰 의미가 없는건지 궁금합니다.