codingkorea
@codingkorea
Students
529
Reviews
60
Course Rating
4.9
여러분들을 도와드릴 튜터입니다.
20년 넘는 현업 경험과 강의 경력의 데이터 분석가 과정 튜터
SQL200제 책의 저자 - 정보문화사
예제가 가득한 파이썬 길라잡이의 저자 - 정보문화사
유튜브 코딩 대한민국 판다스 100제 유튜버
사랑하는 19기 데이터 분석반 학생들의 밝은 미래를 진심으로 응원합니다.
Courses
Reviews
- SQL Used Directly in Practice [Lecture by the author of '200 SQL Examples']
- 45 SQL Tuning Techniques You Can Use Right Away in Practice
- 45 SQL Tuning Techniques You Can Use Right Away in Practice
- SQL Used Directly in Practice [Lecture by the author of '200 SQL Examples']
- SQL Used Directly in Practice [Lecture by the author of '200 SQL Examples']
Posts
Q&A
정규화 여부
안녕하세요, 파타곤이야님! 질문 주신 7회 작업형 1의 1번 문제는 '데이터를 50:50으로 분할한 후 각 그룹의 결측치를 중앙값과 최댓값으로 채우고 표준편차의 합을 구하는 문제'였습니다. 따라서 이 문제에서는 정규화 과정이 포함되지 않는 것이 맞습니다. 여러 문제를 풀다 보면 다른 회차의 기출문제와 기억이 조금 섞이실 수 있으니 걱정하지 않으셔도 됩니다! 정규화 여부는 문제에 나와 있나요? 라는 핵심 질문에 답을 드리자면, 네, 무조건 문제에 명시됩니다. 빅데이터분석기사 실기 시험은 채점 플러그인을 통해 최종 제출한 '단 하나의 숫자(값)'가 정답과 일치하는지 자동 채점하는 방식입니다. 정규화(Min-Max Scaling)나 표준화(Standard Scaling) 처리를 해야만 하는 문제라면, 발문이나 조건에 반드시 명확한 문구로 제시됩니다. 따라서 시험장에서는 임의로 '이 데이터는 정규화를 해야 할까?' 고민하실 필요가 전혀 없습니다. 문제에 '정규화' 혹은 '변환'이라는 단어가 직접적으로 언급되어 있지 않다면, 정규화를 진행하지 않고 주어진 요구사항(결측치 처리, 통계량 추출 등)만 순서대로 구현하시면 됩니다. 남은 기간 차분하게 준비하셔서 좋은 결과 있으시길 바랍니다.
- Likes
- 0
- Comments
- 1
- Viewcount
- 21
Q&A
코드 자동완성 or 추천 기능
네, 빅데이터분석기사 실기 시험환경은 미리 체험해볼 수 있는 사이트가 있습니다. 구름 기반 체험환경이고, 아래 주소로 접속하시면 됩니다. https://dataq.goorm.io/exam/3/체험하기/quiz/1 접속 후 import pandas as pd를 입력하고 pd.를 직접 쳐보시면 자동완성이 되는지 확인할 수 있습니다. 제가 확인해보니 시험 환경은 Jupyter Notebook이 아닌 구름(Goorm) IDE 기반이며, 빅데이터분석기사 실기에서는 각종 자동완성이 불가능하네요. 라이브러리 이름, 함수명 등을 모두 외워서 입력해야 합니다. 감사합니다
- Likes
- 0
- Comments
- 2
- Viewcount
- 27
Q&A
7회 기출문제 작업형3유형 2번째문제
네 ~ 맞습니다. 코렙에서 만들어지는 아래의 코드는 실행할 때마다 무작위 데이터를 새로 만듭니다. import pandas as pd import numpy as np # 가상의 데이터 생성 및 저장 data = { 'Sales': np.random.uniform(1000, 5000, 100), 'Cost': np.random.uniform(500, 3000, 100), 'Profit': np.random.uniform(200, 1500, 100), 'GrowthRate': np.random.uniform(0.1, 1.5, 100), 'EmployeeCount': np.random.randint(50, 200, 100) } df = pd.DataFrame(data) df.to_csv('financial.csv', index=False) # 데이터 불러오기 및 상관관계 계산 df = pd.read_csv('financial.csv') 그래서 financial.csv 파일의 값이 매번 달라지고, 그 결과로 상관계수도 달라지고, 회귀모델의 결정계수도 달라집니다.즉, 강의자와 수강생이 같은 코드를 실행해도 financial.csv 안의 데이터가 서로 다르면 답도 달라집니다. 그래서 저하고도 결과가 다르고 코랩을 다시 시작하시면 또 달라질겁니다. 만약 고정된 결과값을 보고 싶으시면 랜덤 시드를 고정하는 것입니다.맨 위에 이것을 추가하면 됩니다. np.random.seed(0)시험때는 고정된 데이터가 나오니 걱정하지 마시고 이 방법으로 연습하시면 됩니다. 감사합니다.
- Likes
- 0
- Comments
- 2
- Viewcount
- 28
Q&A
맥북용 자료 부탁드립니다.
안녕하세요! 맥북에서 수업 환경을 구성하고 계시는군요. ^^원본 mksample.sql 파일 내부에 윈도우 경로(C:\sqlt...)가 하드코딩되어 있어, 맥북에서 그대로 실행하면 경로를 찾지 못하는 오류가 발생합니다.맥북(Linux 기반) 환경에 맞춰 경로를 수정한 mksample_mac.sql 파일을 준비했으니, 아래 순서에 따라 차근차근 진행해 보세요.1. 파일 다운로드아래 링크를 클릭하면 코드 내용이 미리보기로 보입니다. 당황하지 마시고 오른쪽 상단의 다운로드 버튼(↓) 을 클릭하여 mksample_mac.sql 파일을 다운로드하세요.https://drive.google.com/file/d/1Y2g4R7RSKcO4eNxYkuRnx8zABqq_SVut/view?usp=sharing다운로드가 완료되면 다운로드 폴더에 mksample_mac.sql 파일이 저장됩니다.2. 컨테이너 이름 확인터미널을 열고 아래 명령어로 현재 실행 중인 Docker 컨테이너 이름을 확인하세요.docker ps NAMES 항목에 보이는 이름이 컨테이너명입니다. 다음 단계에서 사용하니 기억해 두세요.3. 다운받은 파일을 Docker 컨테이너로 복사터미널에서 아래 명령어로 방금 다운받은 mksample_mac.sql 파일을 컨테이너 안으로 복사합니다. (컨테이너명 부분을 2번에서 확인한 이름으로 바꿔주세요.)한글 폴더 경로일 경우:docker cp ~/다운로드/mksample_mac.sql 컨테이너명:/sqlt/db-sample-schemas-21.1/db-sample-schemas-21.1/mksample_mac.sql 위 명령어가 안 되면 아래 명령어로 해보세요.docker cp ~/Downloads/mksample_mac.sql 컨테이너명:/sqlt/db-sample-schemas-21.1/db-sample-schemas-21.1/mksample_mac.sql 오류 없이 명령어가 실행되면 파일이 정상적으로 복사된 것입니다.4. 컨테이너 접속아래 명령어로 컨테이너 안으로 접속합니다.docker exec -it 컨테이너명 bash 5. 작업 디렉토리로 이동컨테이너 안에서 아래 명령어로 스크립트 파일이 있는 디렉토리로 이동합니다.cd /sqlt/db-sample-schemas-21.1/db-sample-schemas-21.1 6. sqlplus 실행아래 명령어로 sqlplus에 관리자 권한으로 접속합니다.sqlplus / as sysdba 7. 스크립트 수행sqlplus 접속 후 아래 명령어를 차례대로 입력하세요.먼저 system 계정의 비밀번호를 설정합니다.alter user system identified by oracle; 그리고 수정된 스크립트를 실행합니다.@mksample_mac.sql 8. 완료 확인스크립트가 모두 실행된 후, 마지막에 아래 메시지가 출력되면 환경 구성이 정상적으로 완료된 것입니다.69행이 선택되었습니다. 진행하시다가 막히는 부분이 생기면, 발생한 오류 메시지를 캡처해서 질문 남겨주세요! 😊
- Likes
- 0
- Comments
- 2
- Viewcount
- 49
Q&A
22번문제 질문있습니다.
네~ 답변드립니다. where ename = '%JACK%' 를where ename like '%JACK%' 로 해보시겠어요? 와일드 카드는 이퀄이 아니라 like를 쓸때 특수문자 퍼센트가 아니라 와일드 카드로 인식합니다.
- Likes
- 0
- Comments
- 2
- Viewcount
- 62
Q&A
그 EXISTS의 힌트절에 NESTED LOOP를 쓰는이유 질문
네, 맞습니다. 질문하신 논리적인 접근이 정확합니다.기본적으로 EXISTS는 메인 쿼리의 건별로 값을 확인하는 상호연관(Correlated) 특성이 있어 NL 조인의 매커니즘과 유사하고, IN은 독립적인 집합을 먼저 구성하는 성격이라 HASH 조인과 잘 어울리는 것이 사실입니다.다만 실무 튜닝 관점에서 조금 더 덧붙이자면, 옵티마이저가 서브쿼리를 일반 조인으로 변환(Unnesting)하고 나면 문법보다는 '데이터의 양'과 '인덱스 유무'가 더 중요해집니다. 따라서 EXISTS라도 대용량 처리가 필요하면 HASH_SJ가 유리할 수 있으며, 제가 NL_SJ를 쓴 이유는 문법 때문이라기보다 인덱스를 타고 빠르게 응답을 줘야 하는 상황을 가정했기 때문입니다.
- Likes
- 0
- Comments
- 2
- Viewcount
- 92
Q&A
안녕하세요 NESTED LOOP 문제에서
안녕하세요. 신승호님 ! 올려주신 쿼리와 힌트 사용을 보니 인덱스와 실행 계획의 작동 원리를 아주 정확하게 이해하고 계신 것 같네요. 결론부터 말씀드리면 현재 문제의 테이블 구조와 데이터 분포상에서는 아주 훌륭한 튜닝이며, 논리적으로도 흠잡을 데 없는 풀이입니다. 버퍼수가 획기적으로 줄어든 가장 큰 이유는 쿼리 처리에 필요한 모든 컬럼이 인덱스 안에 다 포함되어 있어서, 실제 테이블 블록을 읽으러 가는 랜덤 액세스 과정이 완전히 생략되었기 때문입니다. 굳이 무거운 테이블을 뒤질 필요 없이 가벼운 인덱스만 읽고 처리를 끝내는 소위 커버링 인덱스 효과를 제대로 활용하신 거죠. 또한 선두 컬럼인 DEPTNO가 조건절에 없는데도 INDEX_SS가 효율적이었던 건, DEPTNO의 종류가 몇 개 되지 않기 때문입니다. 오라클이 몇 번의 점프만으로도 원하는 데이터를 찾을 수 있는 상황이라 굳이 새로운 인덱스를 만들지 않고 기존 인덱스를 재활용하는 방식도 전략적으로 아주 좋은 선택이었습니다. 다만 실무에서 만약 부서의 개수가 수천, 수만 개로 늘어난다면 그때는 스킵 스캔의 효율이 떨어질 수 있다는 점만 참고로 알아두시면 완벽하겠습니다. 데이터의 특성까지 고려한 아주 센스 있는 풀이입니다. 감사합니다.
- Likes
- 0
- Comments
- 2
- Viewcount
- 75
Q&A
수강 기한 연장 문의
마리오님! 제가 다시 시스템을 확인해보니 연장 버튼이 있더라구요. 연장되셨습니다. ^^제가 잘못알고 바로 연장해드리지 못해 죄송합니다.그럼 열심히 공부하시고 꼭 합격하세요~제가 최선을 다해 도와드리겠습니다.감사합니다.
- Likes
- 0
- Comments
- 4
- Viewcount
- 96
Q&A
음 잘 입력한거 같은데... 세션이 만료가 되버려 조회가 안됩니다.. 질의 결과에서 계속 돌고있습니다.
승호님, 작성하신 쿼리의 로직 자체는 텍스트를 쪼개기 위해 잘 구상했습니다. 문법적인 오류는 없습니다.다만, 성능 문제 때문에 조회가 안 되는 것입니다. 원인은 FROM speech, (SELECT LEVEL... 이 코드는 speech 테이블에 있는 모든 문장마다 무조건 52개씩 데이터를 복제(Cross Join)합니다. 만약 문장이 1,000개만 있어도 52,000개의 행이 메모리에 생성되는데, 그중 대부분은 글자가 없는 NULL 값입니다. 이 불필요한 데이터를 처리하느라 DB가 응답을 못 하고 세션이 끊어지는 것입니다.[해결 방법]뷰를 생성할 때, 글자가 없는(NULL) 행은 아예 생성되지 않도록 WHERE 절에서 미리 걸러주면 해결됩니다. 아래 코드로 수정해주세요. CREATE OR REPLACE VIEW speech_view ASSELECT REGEXP_SUBSTR(lower(speech_text), '[^ ]+', 1, a) AS wordFROM speech, (SELECT LEVEL a FROM dual CONNECT BY LEVEL WHERE REGEXP_SUBSTR(lower(speech_text), '[^ ]+', 1, a) IS NOT NULL; 이렇게 하면 실제 단어가 존재하는 데이터만 뷰에 담기므로 속도가 훨씬 빨라질 겁니다. 감사합니다.
- Likes
- 0
- Comments
- 2
- Viewcount
- 58
Q&A
수강 기한 연장 문의
안녕하세요, 마리오님.문의하신 수강 기한 연장의 경우, 시스템상 강사가 직접 처리해 드릴 수 있는 권한이 없습니다. 번거로우시겠지만, 해당 플랫폼 고객센터(우측 하단 문의하기 등)를 통해 사정을 말씀하시고 조치를 받으셔야 할 것 같습니다.바로 도움을 드리지 못해 죄송하며, 행정적인 부분이 잘 해결되어 강의에서 뵙기를 바랍니다.
- Likes
- 0
- Comments
- 4
- Viewcount
- 96





![Thumbnail image of the SQL Used Directly in Practice [Lecture by the author of '200 SQL Examples']](https://cdn.inflearn.com/public/courses/335513/cover/e2411bc7-040f-4c60-bbe9-2c254f0f8b18/335513.png?w=148)
