codingkorea
@codingkorea
受講生
412
受講レビュー
48
講義評価
4.9
여러분들을 도와드릴 튜터입니다.
20년 넘는 현업 경험과 강의 경력의 데이터 분석가 과정 튜터
SQL200제 책의 저자 - 정보문화사
예제가 가득한 파이썬 길라잡이의 저자 - 정보문화사
유튜브 코딩 대한민국 판다스 100제 유튜버
사랑하는 19기 데이터 분석반 학생들의 밝은 미래를 진심으로 응원합니다.
講義
受講レビュー
- 実務ですぐに使えるSQLチューニング45選
- 実務ですぐに使えるSQLチューニング45選
- 実務ですぐに使えるSQL [SQL200題著者直講]
- [2026年ビッグデータ分析技士実技準備] ビッグデータ分析技士実技試験100%合格!過去問のパターンが見える!
投稿
Q&A
그 EXISTS의 힌트절에 NESTED LOOP를 쓰는이유 질문
네, 맞습니다. 질문하신 논리적인 접근이 정확합니다.기본적으로 EXISTS는 메인 쿼리의 건별로 값을 확인하는 상호연관(Correlated) 특성이 있어 NL 조인의 매커니즘과 유사하고, IN은 독립적인 집합을 먼저 구성하는 성격이라 HASH 조인과 잘 어울리는 것이 사실입니다.다만 실무 튜닝 관점에서 조금 더 덧붙이자면, 옵티마이저가 서브쿼리를 일반 조인으로 변환(Unnesting)하고 나면 문법보다는 '데이터의 양'과 '인덱스 유무'가 더 중요해집니다. 따라서 EXISTS라도 대용량 처리가 필요하면 HASH_SJ가 유리할 수 있으며, 제가 NL_SJ를 쓴 이유는 문법 때문이라기보다 인덱스를 타고 빠르게 응답을 줘야 하는 상황을 가정했기 때문입니다.
- 0
- 2
- 21
Q&A
안녕하세요 NESTED LOOP 문제에서
안녕하세요. 신승호님 ! 올려주신 쿼리와 힌트 사용을 보니 인덱스와 실행 계획의 작동 원리를 아주 정확하게 이해하고 계신 것 같네요. 결론부터 말씀드리면 현재 문제의 테이블 구조와 데이터 분포상에서는 아주 훌륭한 튜닝이며, 논리적으로도 흠잡을 데 없는 풀이입니다. 버퍼수가 획기적으로 줄어든 가장 큰 이유는 쿼리 처리에 필요한 모든 컬럼이 인덱스 안에 다 포함되어 있어서, 실제 테이블 블록을 읽으러 가는 랜덤 액세스 과정이 완전히 생략되었기 때문입니다. 굳이 무거운 테이블을 뒤질 필요 없이 가벼운 인덱스만 읽고 처리를 끝내는 소위 커버링 인덱스 효과를 제대로 활용하신 거죠. 또한 선두 컬럼인 DEPTNO가 조건절에 없는데도 INDEX_SS가 효율적이었던 건, DEPTNO의 종류가 몇 개 되지 않기 때문입니다. 오라클이 몇 번의 점프만으로도 원하는 데이터를 찾을 수 있는 상황이라 굳이 새로운 인덱스를 만들지 않고 기존 인덱스를 재활용하는 방식도 전략적으로 아주 좋은 선택이었습니다. 다만 실무에서 만약 부서의 개수가 수천, 수만 개로 늘어난다면 그때는 스킵 스캔의 효율이 떨어질 수 있다는 점만 참고로 알아두시면 완벽하겠습니다. 데이터의 특성까지 고려한 아주 센스 있는 풀이입니다. 감사합니다.
- 0
- 2
- 27
Q&A
수강 기한 연장 문의
마리오님! 제가 다시 시스템을 확인해보니 연장 버튼이 있더라구요. 연장되셨습니다. ^^제가 잘못알고 바로 연장해드리지 못해 죄송합니다.그럼 열심히 공부하시고 꼭 합격하세요~제가 최선을 다해 도와드리겠습니다.감사합니다.
- 0
- 4
- 28
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; 이렇게 하면 실제 단어가 존재하는 데이터만 뷰에 담기므로 속도가 훨씬 빨라질 겁니다. 감사합니다.
- 0
- 2
- 21
Q&A
수강 기한 연장 문의
안녕하세요, 마리오님.문의하신 수강 기한 연장의 경우, 시스템상 강사가 직접 처리해 드릴 수 있는 권한이 없습니다. 번거로우시겠지만, 해당 플랫폼 고객센터(우측 하단 문의하기 등)를 통해 사정을 말씀하시고 조치를 받으셔야 할 것 같습니다.바로 도움을 드리지 못해 죄송하며, 행정적인 부분이 잘 해결되어 강의에서 뵙기를 바랍니다.
- 0
- 4
- 28
Q&A
Buffers와 TotalCost / cpu_cost / io_cost 의 차이점?
네 ~ 질문 정말 감사합니다. 답변드립니다.cpu_cost를 줄인다고 해서 Buffers가 반드시 줄어드는 것은 아닙니다.예를 들어, 힌트를 써서 억지로 인덱스를 타게 만들면 계산상 cpu_cost 수치는 낮아질 수 있습니다. 하지만 그 과정에서 오히려 Random I/O가 폭증해 불필요하게 많은 블록을 읽게 된다면, 실제 성능은 더 느려지게 됩니다. 수치상의 비용과 실제 일의 양이 역전되는 경우죠.그래서 올바른 튜닝의 제1 목표는 항상 Buffers(Logical I/O, Consistent Gets)를 줄이는 것이어야 합니다.이유는 간단합니다. DB 성능의 핵심은 결국 "얼마나 적은 블록(Block)을 읽어서 원하는 결과를 만들어내느냐"에 달려 있기 때문입니다. Buffers를 줄이는 데 성공하면 물리적인 디스크 I/O(io_cost)와 CPU 사용량(cpu_cost)은 자연스럽게 따라서 줄어듭니다.Buffers가 실제 발생한 일의 양(원인)이라면, Cost는 그에 따른 예측치(결과)일 뿐이라는 점을 명확히 구분해서 보셔야 합니다.감사합니다.
- 0
- 2
- 45
Q&A
오라클18c로 진행해도 괜찮을까요?
네 ~ 18c로 실습하셔도 전혀 문제 없습니다. 감사합니다.
- 0
- 1
- 32
Q&A
책이 필요한가요??
네 ~ 안녕하세요. 책이 있으면 좋고 없어도 강의만 들어도 됩니다. 다만 책이 있으면 나중에 공부를 다 마치고 필요한 부분을 빨리 찾아볼때 아무래도 책이 빠를수 있습니다. 그런데 공부를 할때는 강의로 따라하시는게 책을 읽지 않아도 되어서 편합니다.그냥 처음부터 쭉 강의로 들으시고 나중에 필요한 부분이 생기시면 책을 보시는게 좋습니다.감사합니다.
- 0
- 1
- 29
Q&A
맥북 설치
안녕하세요. 질문 감사합니다.맥북 유져는 다음과 같은 방법으로 설치하시면 됩니다. 아래의 내용을 참고해주시고 안되시면 또 말씀해주세요. [Mac 수강생용] 오라클 21c XE 설치 가이드맥북에서는 오라클을 직접 설치할 수 없으므로, 가상 컨테이너(Docker)를 띄워서 사용해야 합니다. 과정이 조금 다르지만, 결과물은 윈도우와 똑같습니다.1. 도커(Docker) 설치하기가상 서버를 돌리기 위한 프로그램입니다.다운로드:Docker Desktop for Mac주의: 본인의 맥북 칩셋에 맞는 버전을 받으세요.Mac with Intel chip (인텔 맥)Mac with Apple silicon (M1, M2, M3 등)2. 터미널(Terminal)에서 설치 명령어 입력도커 설치 및 실행이 완료되었다면, Terminal 앱을 켜고 아래 명령어를 한 줄씩 복사해서 붙여넣고 엔터(Enter)를 치세요.Step 1. 오라클 이미지 다운로드 (gvenzl 이미지 추천) 가장 널리 쓰이는 가벼운 오라클 이미지를 사용합니다.Bashdocker pull gvenzl/oracle-xe:21-slim Step 2. 오라클 컨테이너 실행암호는 oracle로 설정됩니다. (원하면 변경 가능)M1/M2/M3 사용자 필독: 오라클 21c는 인텔 칩 기반이라 애플 실리콘 맥에서는 속도가 느릴 수 있습니다. (설치에 시간이 좀 걸립니다)Bashdocker run -d -p 1521:1521 -e ORACLE_PASSWORD=oracle --name oracle21c gvenzl/oracle-xe:21-slim Step 3. 실행 확인Bashdocker ps 위 명령어를 쳤을 때 리스트에 oracle21c가 보이면 성공입니다.
- 0
- 3
- 177
Q&A
코랩 기본 사용법 문의
안녕하세요! 질문 감사합니다. 코랩을 처음 다루실 때는 파일 경로가 조금 헷갈리실 수 있습니다. ^^..을 눌러서 상위로 이동하다 보면 말씀하신 것처럼 bin, boot 등이 있는 리눅스 시스템의 가장 최상위 경로(루트)로 가게 됩니다.원래 작업하시던 공간으로 돌아오시려면, 현재 보고 계신 폴더 목록 중에서 content라는 이름의 폴더를 찾아 더블 클릭해 보세요. 코랩의 기본 작업 공간이 /content 안쪽이기 때문에, 거기로 들어가시면 아까 보셨던 파일들을 다시 만나실 수 있습니다.혹시 또 궁금한 점 있으시면 언제든 질문 남겨주세요! 화이팅입니다.
- 0
- 1
- 36






![Thumbnail image of the 実務ですぐに使えるSQL [SQL200題著者直講]](https://cdn.inflearn.com/public/courses/335513/cover/e2411bc7-040f-4c60-bbe9-2c254f0f8b18/335513.png?w=148)
![Thumbnail image of the [2026年ビッグデータ分析技士実技準備] ビッグデータ分析技士実技試験100%合格!過去問のパターンが見える!](https://cdn.inflearn.com/public/courses/335192/cover/99e36628-6e8d-4403-bfe3-7f5d5844aa9a/335192.jpg?w=148)