자칭 연봉이 얼마네 하는 현직 백엔드 개발자 80%가 인덱스가 뭔지도 몰라서 인덱스 안만들어놓고 서비스 런칭하고 막 느려지면 디도스 공격이 들어왔다는둥 고성능 서버로 업그레이드 해야 한다는둥 함. 이거 진짜 중요한건데 대학이나 학원에서 왜 똑바로 안가르쳐주는지 모르겠음. 암튼 코딩애플님 좋은 내용 올려주셔서 감사.
클러스터드 인덱스(body 자체가 정렬되어 있음) : 옛날 수사물 같은거보면 서류보관실에 가나다순 혹은 연도순으로 물리적 순서 맞춰서 사건기록 진열해놓은 것. 만약 자료가 새로 추가될 경우 중간에 맞는 위치를 찾아서 쏙 끼워넣음. 근데 순서대로 정렬되어 있어도 자료실이 너무 크면 눈알 빠질수 있으니 몇 미터 마다 ㄱ ㄴ ㄷ 이렇게 간판을 붙여놓을수 있는데 이게 클러스터드 인덱스. 논클러스터드 인덱스(body 와 별개로 색인 데이터가 존재) : 옛날 두꺼운 책 시작 부분에 보면 '색인(index)'이라는 섹션이 있는데 거기에 가나다 순으로 키워드들이 정렬되어 있고 각 키워드가 본문(body) 어느 페이지에 등장하는지 써져 있음. body의 물리적 배열을 순서대로 정렬하기 곤란한 경우 사용.
중요한 로직이 빠진듯 합니다. 해당 설명은 결국 메모리에 올라간 인덱스 컬럼의 값을 찾는 과정이고 행단위를 찾기 위해선 결국 하드디스크에서 다시 찾아야 하는데 기본 값으로 찾는 것과 메모리에서 확인되서 찾는 과정이 어떻게 달라서 더욱 빠른지가 빠져있는데 해당 설명이 추가 첨부되면 더더욱 이해하기 좋은 강의가 되지 않을까 합니다. 항상 좋은 영상 만들어 주셔서 감사합니다
인덱스도 기본적으로 디스크에 저장됩니다. 사용되는 과정에서 인덱스의 목적에 맞게 최적화되어 메모리에 로드하고 사용하지만, DB데이터와 인덱스데이터 모두 디스크에서 읽는다고 보아도 영상의 내용이 최적화의 관점에서 크게 벗어나거나 이해하기 어려운 내용이 되는 건 아닙니다. Row수 많이 없는 DB만 다뤄보셨거나 경험이 없다면 그 메모리 로드만 크게 보일 가능성이 크죠
메모리냐 디스크냐는 완전히 별개의 layer에서 작동하는거라 주제를 굳이 섞을 이유가 없는것 같네요. 다만 DB상에서 어떤 명령이 수행되든 OS레벨과 DB엔진레벨에서 적절한 메모리캐싱이 이루어지기 때문에 아주 딥한 니즈가 있지 않는한 그런것까지 굳이 신경써야 하는지 모르겠습니다. 참고로 거대한 레코드수가 누적된 테이블에서 인덱싱 안된 컬럼을 검색하면 순수 메모리에서만 검색하더라도 속도가 절대 빠르지 않습니다.
저도 초보라서 잘 모르지만 제가 이해한 내용대로 말씀드려볼게요. B+ 트리의 하위 노드는 정렬 되어있음 == 배열을 만드는 것 은 맞는 말이죠. 근데 배열을 만드는 방법이 b+트리 구조로 만든 것이라는 것 같아요. b+트리로 만들어져서 가지뻗어 나온 노드들 기준으로 가장 하단, 가장 왼쪽에 있는게 가장 작은 숫자이겠죠. 그걸 그 순서대로 읽으면 정렬된 배열이 나오는거겠구요.
유튜브 인도인 수준의 깔끔하고 이해하기 쉬운 설명입니다.
@@pleasealreadytoldya 잘못 짚었단다
극찬 ㅋㅋ
@@weq-ks4to 개귀여웅ㅁ ㅋㅋㅋ
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
@맥주 ㄹㅇ 이런발음이ㅋㅋ 미국인들 발음보다 일아듣기 쉬움
와 트리관련 본영상중에 이해도+정리 가장 잘된영상임 이건 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
자칭 연봉이 얼마네 하는 현직 백엔드 개발자 80%가 인덱스가 뭔지도 몰라서 인덱스 안만들어놓고 서비스 런칭하고 막 느려지면 디도스 공격이 들어왔다는둥 고성능 서버로 업그레이드 해야 한다는둥 함. 이거 진짜 중요한건데 대학이나 학원에서 왜 똑바로 안가르쳐주는지 모르겠음. 암튼 코딩애플님 좋은 내용 올려주셔서 감사.
과제로 왜 B+트리로 데이터베이스를 구현해야 됐는지 정말 이해 안 됐었는데 선생님 덕에 한 번에 이해했습니다.. 이런 영상 좀 더 만들어주세요 ㅋㅋ
@@심기호-y5u에요->예요
별표를 10개이상 줘도 아깝지 않은 자료검색관련 영상이군요. 개발에서 너무나 중요한 거라 반드시 알고넘어가야 할 부분이죠. 개발들어가면 인덱스는 매일 쉬지도 않고 얘기가 나오니까요.
b트리를 이렇게 쉽게 설명하는 사람은 진짜 몇 없는데... 대단하십니다
스스로 만들어보는게 가장큰 이해아닐까요
@@Handling-3000angle 혼자 이해하는거랑 남을 이해시키는건 다른 영역이죠
😮😅@@yjohd
와 내가 굳이 데이터를 받아드려서 머리속에 잘 정리해줄 필요 없이 그냥 정리된 상태로 박스채 나르는 느낌이다.. 귀에 쏙쏙 박히네요 잘 들었습니다
드려->들여
정말 어려운것을 쉽고 재밌게 설명하시는데는 독보적이신거 같습니다. 항상 재밌게 보고 좋은정보 얻어갑니다. 감사합니다.
@아루로로로롤 듣보라고요?
@@postgres2981돋보ㅋㅋ(이는 강의실력이 대단합니다) 같네요
알고리즘이랑 코딩 공부하면서 시간복잡도 개념을 배우긴 했는데, 실무에 사용하는건지는 제가 알아봐야 이후 알겠지만, 장 단점 나열이 진짜 중요하게 느껴지네요.. 시간복잡도의 해결방법과 각 방법의 장단점, 그리고 이외 차선책들까지.. 정말 좋은 영상입니다.
ㄹㅇ 개꿀 강의 알고있어도 너무 쉽게 설명하니깐 신기해서 계속보게됌
됌->됨
인덱스 강의 너무좋습니다!!
시간되시면 클러스터와 논클러스터 인덱스에 대해서도 정리해주시면 너무 좋을것 같습니다!
클러스터 x -> 클러스터드
클러스터드 x -> 카스타드
@@codingapple 진짜 이분은 드립치는 맛으로 본다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
클러스터드 인덱스(body 자체가 정렬되어 있음) : 옛날 수사물 같은거보면 서류보관실에 가나다순 혹은 연도순으로 물리적 순서 맞춰서 사건기록 진열해놓은 것. 만약 자료가 새로 추가될 경우 중간에 맞는 위치를 찾아서 쏙 끼워넣음. 근데 순서대로 정렬되어 있어도 자료실이 너무 크면 눈알 빠질수 있으니 몇 미터 마다 ㄱ ㄴ ㄷ 이렇게 간판을 붙여놓을수 있는데 이게 클러스터드 인덱스.
논클러스터드 인덱스(body 와 별개로 색인 데이터가 존재) : 옛날 두꺼운 책 시작 부분에 보면 '색인(index)'이라는 섹션이 있는데 거기에 가나다 순으로 키워드들이 정렬되어 있고 각 키워드가 본문(body) 어느 페이지에 등장하는지 써져 있음. body의 물리적 배열을 순서대로 정렬하기 곤란한 경우 사용.
특이점이 오면ㅋㅋㅋㅋ위험ㅋㅋㅋㅋ진짜 너무재밌어요 최고야 짜릿해
정말 이해하기 쉽게 설명해주셔서 감사합니다. 자고 일어나서 설명해주셨던 내용 다시 머릿속에 상기 시키면 더 오래 남습니다 여러분
진짜 최고수준의 설명이네요
와... frame work 짤 때 tree구조에 대해 의문점이 많았는데
감사합니다
맨날 공부하라고 해서 외우기만 하던 것들이 이렇게 재미있을 줄 몰랐습니다. 덕분에 공부에 재미를 들여갑니다. 감사합니다.
이번 영상처럼 cs 면접식으로 영상 올라오면 좋을거같아요…!
재미있는 편집과 핵심적이고 정확한 내용까지 최고십니다
와 진짜 여러 자료 봤는데도 이해가 안됐는데.... 너무 쉽게 잘 설명해주셔서 감사합니다.
중요한 로직이 빠진듯 합니다. 해당 설명은 결국 메모리에 올라간 인덱스 컬럼의 값을 찾는 과정이고 행단위를 찾기 위해선 결국 하드디스크에서 다시 찾아야 하는데 기본 값으로 찾는 것과 메모리에서 확인되서 찾는 과정이 어떻게 달라서 더욱 빠른지가 빠져있는데 해당 설명이 추가 첨부되면 더더욱 이해하기 좋은 강의가 되지 않을까 합니다.
항상 좋은 영상 만들어 주셔서 감사합니다
자료구조 관점에 집중해서 설명하신 것 같습니다.
메모리 캐싱같은 부분까지 얘기하기엔 조금 딥한 내용같기도 하구요😂
이제 애기들한테 두다리서기 가르치고 있는데 중요한 점프가 없다고 아쉽다 ㅋ
딥한 강의 따로만들어주셧음 좋겟네요. 존버
인덱스도 기본적으로 디스크에 저장됩니다. 사용되는 과정에서 인덱스의 목적에 맞게 최적화되어 메모리에 로드하고 사용하지만, DB데이터와 인덱스데이터 모두 디스크에서 읽는다고 보아도 영상의 내용이 최적화의 관점에서 크게 벗어나거나 이해하기 어려운 내용이 되는 건 아닙니다.
Row수 많이 없는 DB만 다뤄보셨거나 경험이 없다면 그 메모리 로드만 크게 보일 가능성이 크죠
메모리냐 디스크냐는 완전히 별개의 layer에서 작동하는거라 주제를 굳이 섞을 이유가 없는것 같네요. 다만 DB상에서 어떤 명령이 수행되든 OS레벨과 DB엔진레벨에서 적절한 메모리캐싱이 이루어지기 때문에 아주 딥한 니즈가 있지 않는한 그런것까지 굳이 신경써야 하는지 모르겠습니다. 참고로 거대한 레코드수가 누적된 테이블에서 인덱싱 안된 컬럼을 검색하면 순수 메모리에서만 검색하더라도 속도가 절대 빠르지 않습니다.
요즘들어 공부하고 있는데 자료구조 쉽게 설명해주시고 인덱스에 대해 정확하게…감사합니다
선생님의 킹받는 개그코드가 하루를 즐겁게 해주네요ㅋㅋㅋㅋㅋㅋ재밌게 들었습니다
오늘도 드립치려고 했는데 드립이 쏙들어갈정도로 명강의네요...ㅎㄷㄷ
”0,1,2,3,4…“
“네 수고하셨습니다“
코딩애플님 영상 항상 잘 보고 있습니다!
특히 개별면접시간 영상들을 재미있게 보고 있는데, 개별면접시간 시리즈 영상들을 채널 재생목록으로 정리해주시면 감사할 것 같아요!
와... 문서 찾아가며 공부했을 때 B트리 B+트리 이해하는데 엄청 힘들었는데 이렇게 쉽게 설명하다니...
전공과정중에 알아서 참 다행이라 생각되는 채널
와 진짜 너무 잘 정리되고 요약된 영상입니다. 영상 끝에 엄지척 올리며 어머 이건 공유해야해! 하고 동기들에게 단톡방에 공유! 좋은 영상 감사합니다!
이해하기 힘들던 내용이 한방에 이해가 됐습니다. 감사합니다
코딩애플님은 영상찍을때 머릿속에 있는 것을 그냥 쭈르르르 말하는건가요? 아님 대본을 써서 읽나요... 이렇게 쉽게 설명하기 까지 얼마나 노력하셨을지... 존경스럽네요
강의할때 들었는데
한편 한편 엄청 공들인다고 하셨음
1.먼저 본인이 정확하게 알아야 하고
2. 그걸 듣는 사람의 입장을 고려해야하고
3. 보다 쉽게 설명하기 위해 방법을 구상해야 하고
4. 그걸 자료로 보기 좋게 표현하는 법을 고안해야하는
아주 어려운 작업이겠네요..
@@실험맨 오 어디에 나와있음? 강의 거의 다 들어가는데 아직 그런 말 못들었는디
@@sions-doe 2번 3번때문에 개발자들 사이에서 오해도 많이 받으시더라고요 ;;
@@실험맨 설명이라는게 많이 어려운 일이죠..ㅜㅜ
별 생각없이 만들어뒀던 내 db가 무려 B+트리였던 건에 대하여...ㅋㅋ
책 정리하던 버릇이 생각보다 도움이 됐네요
알고리즘 타고 우연히 본건데 바로 구독해버리게 만드네....ㄷㄷㄷ
와.. 진짜 b트리 이해가 잘 안가서 블로그랑 유튜브 엄청 뒤졌는데 최고입니다 진짜
바로 구독 세게 눌렀습니다!
개쩌네용. index 를 3년전에 처음 들었고 이해하기까지 그렇게 오래걸렸는데. 이걸보니 확 정리가 되네요
알고리즘에도 도움이 되네요 진짜 트리에 대해 잘 이해 안된상태여서 더 꿀인 강의였습니다. 감사합니다!
면접 시리즈 너무 좋습니다.
잘보고 가요!
근대 이 인덱스 설정한것은 파일내에 있는건가요 아니면 메모리에 올라가서 메모리를 잡아먹나요
b+트리는 몰랐던건데 유용하네요. 근 15년만에 새로운 자료구조 배우고 갑니다.
코딩애센세....오늘도 감사합니다....
오 넘 재밌어 ㅋㅋㅋㅋ 코딩애플 진짜 재밌다 ㅋㅋㅋ
책보다 설명이 잘 되어있다 : 책보고 이미 다 이해 했지만 깔끔하게 정리하지 못했다.
초등학생인데 너무 잘 이해했어요! 감사합니다!
이 사람은 가르치는 데에 천재인 거 같아..
코딩애플은... 짱이다...... 코딩왕 코딩애플......❤️
미국 컴공생임다… 이걸 봤으면 그냥 외우는게 아니라 이해하면서 했을거같네요 이번학기도 mathematical concept in computing 에도 비슷한 개념이 있는데 정확히 알고갑니다 고마워용
미국 컴공과 나오면 구글 취업 하나
@@TV-ul4ek 한국에서 대학 나온다고 전부 삼성 취업하는 건 아니잖아요...
도서관의 책코드랑 비슷한건가요
책코드가 없으면 도서관 전체를 다 뒤져야 하지만 책코드가 있으니 그 책코드만 담겨있는 책장만 뒤지면 끝이니까요 내가 이해한게 맞나?
프론트엔드 지식뿐만 아니라 DB까지 다루는 당신은....사과책
늘 좋은 영상감사합니다. 설명하시는게 완전 취저네요 ㅋㅋ
아조씨 링크드 리스트가 뭐에요? 찾아보니까 포인터 어쩌고 나오는데 빡통인가봐요 ㅠㅠ 근데 빡통이 뭐에요?
이형은 천재가 분명해
쌤새 자료구조 알고리즘 유료강의 올리면 바로산다😮
두리뭉실하게 알고만 있었는데 이해가 완벽히 됨 감사합니다
와 진짜 너무 깔끔하네요 ㄹㅇ 푼수크 왕두선생님이시네
이런거는 이제 어떻게 공부하면 될까요? 이게 웹이든 뭐든 만들때 기본적인 지식이 되어야할 것 같은데
와우 쉬운 설명이네요. b 트리 , b+트리 를 쉽게 이해할 수 있었어요!
전공수업에서 1도 이해언된거 이거보고 이해함
이분 미쳐써
리프노드끼리 연결되어있는거는 처음 알았네요 좋은 영상 감사합니다
와 DB책에서 index 설명 읽는것보다 바로 이해되네
정처기하면서 들이딥다 봤던건데 이걸로 보니까 이해가 훨씬 좋네 ㅋㅋ
5:20 실제 데이터에서도 반 딱 자르는게 가장 효율적이라 할 수 있나요?
데이터테이블에서 인덱스는 그냥 번호표같은 느낌인데 이거랑은 다른건가요 ?? 뭔가 데이터를 정렬한다는 느낌보다 프라이머리 키나 외래키로 이용될때만 쓰는 느낌이라...
한줄요약
깔끔한 정리 및 깔끔한 코딩
초딩도 이해할 수 있는 내용인데, 개발자라고 월급 받는 사람들 중에도 모르는 사람들이 많다는 게 충격인...
와 행님....섹시한데요?!
감사합니다 이제 2년차 웹개발자인데 정리가 됐어요 ㅠ
깔끔한 설명에 감탄을 하여 구독을 누르고 갑니다
6:11 여기 출신대학이 원본테이블의 row데이터랑 안맞는건 출신대학 컬럼만 가나다순으로 정렬이되어서 그런거 맞을까요?
이남자... 대단해...
코딩애플 강의 중 SQL강의 안에 있는 내용인가요?
오. 다음엔 힌트 관련 영상도 기대해 봅니당
와 진짜 대박이네요 오늘도 감탄하고 갑니다
예시에서 B+ 트리의 하위노드는 정렬이 되어있는데 그렇게 되면 배열을 만드는것과 같은거 아닌가요?
저도 초보라서 잘 모르지만 제가 이해한 내용대로 말씀드려볼게요.
B+ 트리의 하위 노드는 정렬 되어있음 == 배열을 만드는 것
은 맞는 말이죠.
근데 배열을 만드는 방법이 b+트리 구조로 만든 것이라는 것 같아요.
b+트리로 만들어져서 가지뻗어 나온 노드들 기준으로
가장 하단, 가장 왼쪽에 있는게 가장 작은 숫자이겠죠.
그걸 그 순서대로 읽으면 정렬된 배열이 나오는거겠구요.
@@김무스-z5k 인덱스 만들때 사용하는 방법이 바이너리 트리 를 사용한다는 게 핵심이고, 데이터들을 어떻게 트리로 구성 방법을 추가로 살펴보면 이해가 될듯합니다. 감사합니다.
해결 하셨을랑가 혹시 다른분들을 위해 제가 알기로는 이런 이유 때문에 보통 맨 밑 하위 노드들은 다 버리는걸로 알고 있습니다
그럼 클러스터드 인덱스도 b트리로 색인하는 건가요?
ㅋㅋㅋ 관계형에 대해서도 설명해 주시면 좋겠네요.
관계형 썻을때 개판되는 이유도 ㅎㅎ
이 집 설명 맛집이네👍🏻
이렇게 쉽게 설명할 수 있다니
울부짖으면서 따봉누름
와 강의 너무 좋습니다 진짜
설명을 정말 잘해주시네요 잘 듣고 갑니다
근데 B+ 트리 맨 아래 숫자 배열은 결국 컴퓨터가 한번 데이터 전체를 정렬해놓고 거기에 이정표를 만들어 놓은 거 아님?
CS계의 이타강사
마지막에 클러스터드라 말씀주시는데 자막에는 맛있는게 나와요
매력있어..
형 코딩테스트 강의는 없어?
B트리..윽..학부때 C언어로 구현해볼라다가 피똥만 싸고 좌절했던 기억이...
1:10 "당신이 생각한 숫자를 알려주세요" 라고 질문하면 O(1)
와.. 정처기때 이해안됐던 트리구조가 한방에 이해됐네요
너무 유익하고..
그래서 인덱스가 뭐에요?
와 진짜 설명 간단 명료하게 잘 하시네요 ㄷㄷ
설명 폼 미쳤다
이씨 박씨 석씨하면 신라 아닌가요 0:27
바로 구독박았다
4:45 여기서 보기 좋아요 라고 한 저는 낙제생입니다
인덱스 설명 굳이네염.. 비트리 까지
INDEX 자체가 DB의 구조네요. ㅇㅅㅇ...
unordered_map hash 테이블보다 저개 더 빠른가요?
진짜 최고네요ㅋㅋ 감사합니다
와 이걸 이렇게 쉽게 설명해주시다니 ㅋㅋㅋ 좋은 영상 감사합니다
쳇 GPT한테 웹사이트 부탁하면 항상 나오던 파일인데 늘 궁금했음
진짜 개지린다❤