소개
8년차 데이터 과학자, 데이터 엔지니어, 머신러닝 엔지니어로 근무했으며, 쏘카와 타다에서 데이터 분석, 데이터 엔지니어링 개발, 머신러닝 알고리즘을 개발했습니다.
카일스쿨 유튜브에 데이터 커리어 관련 영상을 꾸준히 올리고 있으며, 어떻게 해야 강의를 수강하신 분들이 더 좋은 커리어를 경험할 수 있을까?를 고민하며 자료를 만들고 있어요.
카일스쿨 유튜브 : https://www.youtube.com/c/kyleschool
기술 블로그 : https://zzsza.github.io/
인스타그램 : https://www.instagram.com/data.scientist/
대표 컨텐츠 : https://github.com/Team-Neighborhood/I-want-to-study-Data-Science
데이터 과학자가 되기 위해 진행한 다양한 노력들 : https://zzsza.github.io/diary/2019/04/05/how-to-study-datascience/
강의
전체2수강평
게시글
질문&답변
2024.05.26
4-7. 조건문 연습 문제 5번에 관한 질문
안녕하세요! 해당 문제에서 IF문을 통해 2023-01-01 기준으로 recent, old로 만들려고 한 것이고 그 이후에 데이터를 어떻게 사용하는지에 따라 어떻게 접근할지가 달라질 것 같네요. 5번 문제는 IF 문 안에 DATE 함수를 넣을 수 있고, DATE 함수 결과를 받아 조건문을 사용하는 것을 알려주기 위해 문제를 만들었습니다. 만약 문제에서 추가적으로 catch_datetime의 조건에 따른 분기가 존재한다면 변경하는 것도 좋은 선택일 것 같네요. 결론적으로 해당 문제에서는 크게 중요하지 않은 부분이지만, catch_datetime을 사용해서 WHERE 절에서 조건을 건다거나 한다면 DATETIME(catch_datetime, 'Asia/Seoul')로 해서 바꾸는 것이 더 좋을수도 있고 지금 작성해주신 쿼리도 문제가 되지 않습니다. 문제의 의도는 "조건문에 익숙해지는 것"이였다고 생각해주시면 좋을 것 같습니다. 쿼리가 이게 맞을까요? 저게 맞을까요? 라는 질문에 대한 생각을 추가적으로 말씀드리면 목적에 맞고, 논리적으로 타당하다면 다양한 방식의 쿼리가 나올 수 있습니다. 쿼리의 결과 데이터를 어떻게 활용하는가?라는 관점으로 생각해보셔도 좋을 것 같네요
- 0
- 2
- 58
질문&답변
2024.05.25
문제풀어봤어요
DEV Ps님 안녕하세요! 문제 다 푸셨군요!! 그럼 이번엔 왜 이 지표를 선택하게 되었나도 한번 추가해서 작성해보시면 어떨까요? 해당 지표가 오른다면 어떻게 해야할까 또는 왜 이 지표를 선택했는가 등을 같이 작성해주시면 제가 피드백 드려볼게요 🙂 해당 문제는 정답이 있는 것보단 왜 이렇게 생각했는가를 훈련하기 위해 낸 문제라 이렇게 요청드려보아요!
- 0
- 2
- 54
질문&답변
2024.05.25
4-5. 연습 문제 1번의 정답에 관해 질문
안녕하세요! 해당 문제에서 id는 PK라서 고유한 값이 맞습니다. 제가 DISTINCT를 사용했던 것은 제 쿼리 작성 습관이 항상 이런 값이 정말 Unique한가 확인하기 위해 DISTINCT를 쓰고 있어요. 해당 문제에선 복잡한 JOIN이 없기 때문에 DISTINCT를 안해도 괜찮지만, 만약 JOIN이 들어가서 데이터가 증가된다면 이런 경우 실수할 수 있기 때문에 DISTINCT을 항상 하곤 합니다. 해당 쿼리에서는 DISTINCT를 여부와 상관없이 85가 나오게 됩니다. 실험적으로 작성해주신 trainer를 COUNT하는 것은 문제의 의도와 다릅니다. 문제에선 포켓몬의 수를 알고 싶었고, 동일한 포켓몬을 잡았어도 별도로 COUNT하는 것을 의도했습니다. 그렇기 때문에 trainer_pokemon(이 테이블에선 하나의 row가 한번의 포획을 의미하기에)의 id를 사용했습니다. DISTINCT가 없는 경우는 2023년 1월에 포획한 적이 있는 데이터 중 trainer_id가 존재하는 Row 수를 세는 것(해당 데이터는 trainer_id에 NULL이 없기 때문에 동일한 결과가 나옵니다)이고 DISTINCT를 사용한 경우엔 2023년 1월에 포획한 적이 있는 트레이너의 고유한 수를 세게 됩니다. 1월에 여러 번 포획한 횟수가 1회가 되는게 아니라, 1월에 포획한 trainer_pokemon 중에 트레이너의 수가 uniqe해져서 1번이 되게 됩니다.
- 0
- 2
- 56
질문&답변
2024.05.23
as 명명, count 함수 내 변수 선택에 관한 질문
안녕하세요! 좋은 질문 주셔서 감사합니다. as를 이용한 별칭 사용 관련 내용 as를 이용해 별칭을 지정하는 것은 주로 가독성을 높이고 코드를 간결하게 만들기 위해 사용했어요. 별칭을 지정했다고 반드시 써야하는 것은 아닙니다 다만, 일관성 있게 코드를 작성하는 것이 좋은 습관이며, 다른 사람이 코드를 볼 때 혼란을 줄일 수 있습니다. 지금 쿼리는 단순하지만 나중에 쿼리가 엄청 길어진다면 HAVING에 같은 값을 COUNT()로 쓴다면 변경해야 하는 부분이 여러개가 생길거에요. 변경할 포인트를 최소화하는 것이 쿼리를 잘 작성하는 것이라 생각해 SQL 실행 순서에서 HAVING, ORDER BY는 꽤 후순위입니다. 그래서 SELECT의 집계 함수를 한 후의 별칭을 알고 있어서 이 때는 별칭을 사용하는 편입니다 count 함수 내 변수 선택에 대해: count 함수는 선택한 열의 값이 NULL이 아닌 레코드 수를 반환하고, 특정 열에 NULL 값이 있으면 레코드의 수를 반환하지 않습니다 따라서 보통 기본 키(Primary Key)나 NOT NULL 제약 조건이 있는 열을 사용하여 count를 합니다. 많은 경우 id 열이 이에 해당되고, 저도 그래서 id를 사용했습니다. 현재 사용하는 데이터엔 NULL 값이 있는 컬럼이 많이 없어서 같은 결과가 나올 가능성이 큽니다. 그래서 지금 count(type1), count(id), count(kor_name)을 해도 동일한 결과가 나옵니다. 실무에서 쿼리를 이렇게 작성하면 1에 말씀드린 것처럼 추후에 쿼리를 수정할 때 변경할 포인트가 많고 헷갈릴거라서 일관되게 쿼리를 작성하도록 가이드할 것 같네요 추가 질문이 있으시면 언제든 말씀해 주세요!
- 0
- 2
- 53
질문&답변
2024.05.22
쿼리 환경설정 오류
hb981224님 안녕하세요! basic.pokemon에서 '을 사용하셔서 그렇습니다 '은 문자열을 나타낼 때 사용해서 ' 대신 `을 사용해야 합니다. SELECT * FROM `basic.pokemon` 위 쿼리를 실행하면 정상적으로 동작할거에요 `은 backtick 기호고, '은 따옴표입니다. 개발을 처음 공부할 때 저도 헷갈렸던 부분이네요. 아래 글을 보시면 차이점을 이해할 수 있을거에요 https://velog.io/@stay_gold94/%EB%B0%B1%ED%8B%B1%EC%9D%B4%EB%9E%80 혹은 백틱을 쓰지 않아도 쿼리가 실행되니 백틱 없이 실행해보셔요 SELECT * FROM basic.pokemon
- 0
- 1
- 31