목록전체 글 (31)
영우

오늘의 목표는 간단합니다. 대용량 데이터를 mysql에 삽입하고, 인덱스를 걸어 실제로 인덱스가 적용이 되면 얼마나 빠른지 알아보려합니다. 목표 테이블에 천만개의 데이터 넣기 다양한 스캔방법에 대해 결과를 확인해보자. 테이블에 천만개의 데이터 넣기 mysql공식문서에 innodb 대량 데이터 로딩 팁이 있습니다. insert로 데이터를 넣는것보다 load data로 삽입하는것의 속도가 약 20배 빠르다고 합니다. load data는 텍스트 파일의 행을 읽어와 테이블로 삽입하는 명령어입니다. 다음과 같은 명령어로 데이터를 불러올 수 있습니다. 데이터를 불러오기 위해서는 우선 데이터 파일이 필요합니다. 데이터파일의 데이터는 행간 구분자, 열간 구분자를 지정하고, 이를 명령어를 통해 파싱할 수 있습니다. 저는..

글을 작성하는 이유 Real MySQL 8.0의 InnoDB 격리수준에 대한 부분에서 각 격리수준을 설명하면서, MVCC에 대한 이야기를 주로다루고 LOCK에 대한 이야기는 거의 다루지 않아 설명이 매우 헷갈렸습니다. 예를 들면 SERIALIZABLE에서 읽기 작업도 공유잠금을 획득한다(183p) 라고 나와있는데 공유잠금에 대한 설명이 없어 이해하기 어려웠습니다. 잠금과 MVCC를 모두 이해하면 더 쉽게 InnoDB의 격리수준에 대해 이해할 수 있을것같아 글을 작성하게 되었습니다. 잠금이란? 잠금은 동시성을 제어하기 위한 기능입니다. DB에서 여러 커넥션들이 동시에 하나의 데이터를 업데이트 하고자 하면 일관성 없는 결과가 나오게 됩니다. 이런 동시 엑세스를 막기 위해, 한번에 하나의 커넥션만 데이터에 접..

버퍼풀 디스크에 접근해 데이터를 가져오는것은 메모리에 접근해 데이터를 가져오는것보다 비용이 큰 작업입니다. 버퍼풀은 InnoDB를 사용했을때 디스크가 아닌 메모리에서 데이터를 가져올 수 있도록, 데이터를 보관하고 있는 메모리 공간입니다. LRU 항상 메모리에서 데이터를 가져올 수 있다면 좋겠지만, 메모리공간은 디스크보다 비용이 높고, 용량이 제한적이라 모든 데이터를 메모리에 가지고 있기 어렵습니다. 따라서 DB는 전체 데이터의 일부분만 캐시해 관리합니다. 이때 어떤 데이터를 메모리에 유지할지 결정하기 위해 다양한 캐시 알고리즘이 사용됩니다. Least Recently Used(LRU)는 그러한 알고리즘 중 하나로, 가장 오래 사용되지 않은 데이터가 가까운 미래에도 사용될 가능성이 낮다는 가정을 해, 이러..

프레임워크는 무엇인지 ? A framework is a structure that you can build software on. 프레임워크는 소프트웨어를 구축할 수 있는 구조임 왜 프레임워크를 사용해야하는가 ? 처음부터 작업할 필요가 없으므로 시간이 절약됨 충분히 테스트 된 프레임워크를 사용할 경우 오류위험이 줄어듬 구조화가 잘 되어있어 코드의 유지보수가 용이함 웹 프레임워크 종류 Django, Rails, Angular, Nest, React 등등 프레임워크 vs 라이브러리 공통점 우리의 프로젝트를 위해 누군가가 작성한 코드를 사용함 어플리케이션을 만드는데 도움을 받을 수 있음 라이브러리 자신만의 코드를 작성하는데 사용할 수 있는 이전에 작성된 코드세트 내가만드는 프로그램에 필요한 부품들을 잘 정리한..

백준 1890 문제 해결 경로의 개수를 세는 문제이다. 여러가지 접근 방법이 있을 수는 있겠지만 가장 먼저 든 생각은 역시 DFS나 BFS를 이용한 완전탐색이었다. 아래그림을 보자 완전탐색의 문제점 모든 칸의 값이 1일 경우에 각 행이나 열의 마지막 칸을 제외한 모든 칸에서 2개의 경우가 발생한다. 이 의미는 한칸 전진할때마다 2개의 가능성이 생기는 것이고 행과 열의 길이가 100이므로 100 * 100개의 칸에서 2개의 경우가 생긴다는 의미 이므로 최악의 경우에 약 2의 10000제곱을 계산해야한다. 해결 방안 결국 모든 경로를 계산해 최종적인 위치로 도달할 수 있는지의 방법으로는 불가능하다. 이를 개선하는 아이디어는 중복을 없애는 것이다. 위의 그림에서 1, 1위치에서 2, 2로 가는 방법을 생각해보..

갑자기 회고 ...? 길다면 길고 짧다면 짧은 4주간의 챌린지 과정이 끝나고도 다시 일주일이 지나서야 회고를 쓰게 되었다. 사실 챌린지를 마치고 따로 회고를 쓸 생각은 없었는데, 공부를 하다보니 달라진 나를 보았고 챌린지 과정을 통해 어떤것을 얻을 수 있었는지 나누고 싶은 마음이 생겼다. 좋은 동료들 사실 어디를 가도 좋은 동료, 열심히 하는 동료, 잘하는 동료를 찾을 수 있다. 하지만 부스트캠프 처럼 모두가 좋은 동료였던 경험은 정말 드물다. 여러번 감사를 표했지만 모두에게 배울점이 있었고 훌륭한 사람들이었다. 동료들 덕분에 재미있게, 또 열심히 과정을 진행할 수 있었다. 공부 습관 나는 원래 기록을 정말 안한다. 기록이란 행위를 귀찮아 하기도하고, 누구에게 보여주기 부끄러운 마음도 있었다. 하지만 과..