전체보기: 525개의 글
Mysql은 기본 isolation이 REPEATABLE-READ으로, Oracle은 COMMIT-READ으로 되어있다. 둘의 차이점은 무엇일까? 그리고 종종 Mysql에서는 Dead lock이 걸리는데 그 이유가 무엇일까? ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction MySQL의 InnoDB에는 lock에는 종류가 있다. - Row -level lock - Record lock - Gap lock 하나씩 알아보자 1) Row-level lock 가장 기본적인 lock으로서 테이블의 row마다 걸리는 단위다. 여기서는 2가지 종류가 있다. - Shared lock (S) - Exclusive l..
redis-cli를 이용해서 간단히 조회할 때 사용할만한 redis 명령어 몇 가지를 정리한다. get string 형식으로 저장된 값 하나를 조회한다. get my-key "my value blah blah" hget hash로 저장된 값의 필드 하나를 조회한다. # my-hkey로 저장된 hash의 my-field에 대한 값을 조회 hget my-hkey my-field "my field value blah blah" lrange list로 저장된 목록을 조회한다. # 전체 목록 조회 lrange my-lkey 0 -1 # 일부 목록 조회, 시작 인덱스와 끝 인덱스를 지정 # 끝 인덱스는 결과에 포함됨 lrange my-lkey 1 4 smembers set으로 저장된 모든 값을 조회한다. smemb..
* Medis란? : 간단하게 값 조회하고 편집하려고 Redis cli 클라이언트와 Redis command cheat sheet를 함께 띄워두고 떠듬떠듬 작업하다보니 더는 안 되겠어서 괜찮은 오픈소스 GUI 툴을 찾아보았습니다. Medis를 발견하고 사용해 봤는데 역시 그래픽이란 혁명적이에요. Medis는 Node.js, React, Electron으로 만들어진 오픈소스 Redis 클라이언트 어플리케이션입니다. 키와 config의 조회 및 수정, SSH 터널링, 커맨드 입력을 위한 터미널 등 기본적인 기능과 많은 고급 기능들을 지원합니다. Windows용 클라이언트의 경우, exe 파일이 배포되고 있습니다. 👉 Medis for Windows 그러나 macOS용 클라이언트는 직접 빌드해서 사용해야 합니..
MySQL 혹은 MariaDB 환경에서 1억개의 Row가 저장되어 있다고 가정하자. 인덱싱이 지정되어 있지 않은 칼럼에서 검색을 수행했을때 데이터베이스는 1억개를 Full Scan을 하게 되어 SELECT 쿼리결과가 나오기까지 오랜시간이 필요로 한다. 이렇게 비교적(?) 대용량의 데이터를 처리하기 위해서는 여러가지 튜닝방법이 존재하는데, 튜닝의 우선순위는 아래와 같다. 1. 가급적 로직을 DB상에서 처리하지 않고 WEB Applicaition 상에서 구현한다. WEB Application 부하는 DB Server에서 발생하는 부하보다 비교적 쉽게 해결이 가능하다. Web 서버는 라운드로빈이든 L4를 활용하든 너무나 쉽게 확장이 가능한 반면, DB Server는 Master-Slave Replication..
이번에 정리할 내용은 MySQL 기준으로 페이징 처리를 할 때 사용하는 키워드인 ORDERS, LIMIT, OFFSET 입니다. 구현을 해 본 경험이 거의 없어서 좀 낯설었네요. 따라서 이번에 확실히 정리하도록 하겠습니다 !! ✔ MySQL - 페이징 처리(orders, limit, offset) 쿼리문을 통해 페이징 처리를 해볼건데요, 예제와 쿼리문을 통해 어떻게 작성하는지 알아보겠습니다. LIMIT과 OFFSET의 의미는 다음과 같습니다. • LIMIT: 행을 얼마나 가져올지 • OFFSET: 어디서 부터 가져올지 SELECT * FROM 테이블명 ORDERS LIMIT 숫자; 위 쿼리는 숫자 만큼의 행을 출력합니다. • SELECT * FROM USER orders LIMIT 10; • SELECT..
안녕하세요, 오늘은 엑셀 기능중에 간단한 기능이지만 써먹기 좋은 걸 알려드디려고 합니다. 바로 가운데 정렬하는 방법인데 우리가 알고 있는 단순 가운데 정렬이 아니라 내가 원하는 범위를 설정하여 '병합되진 않지만 가운데로 정렬'하는 방법입니다. 이 기능을 사용해야하는 이유는 병합을 해버리면 행이 하나로 묶여버린거기 때문에 데이터를 편집할 때 다소 불편할 수 있기 때문입니다. 병합을 해버리면 병합을 다시 풀어서 데이터를 조작하는 일이 생길 수 있습니다. 우선, 내가 엑셀 가운데로 정렬하고 싶은 범위를 설정해야 합니다. 위이 예시를 보시면 아시겠지만 전 각 사업장별로 분기별 매출 데이터를 사용했습니다. 제목에 '사업장 분기별 판매실적'이라고 정하고 싶습니다. 그렇다면 2사분기 6월까 열까지 제목이 포함된 범위..
안녕하세요 오늘은 엑셀 이동옵션을 사용해서 빈칸을 찾아 일괄적으로 내용을 입력하는 방법을 알려드리려고 합니다. 일일이 같은 데이터를 넣는 상황이 있을 때 즉, 여러가지 숫자를 쓰고 100이란 숫자가 그 입력해야 할 숫자 비중의 50%를 차지하는 상황일 때에 나머지 숫자를 쓴 후 100이란 숫자를 쓸 공간을 남겨둔 상태에서 이 방법을 써도 시간이 더욱 단축되지 않나 생각을합니다. 예시로 위와 같이 한 영업팀 각 영업사원에 1월~3월 평균매출을 구하려고 합니다. =Average 함수가 숫자만 입력하기 때문에 빈 공란이 있는 결과값은 "#DIV/0!'이라는 오류값이 출력되는걸 볼 수 있습니다. 그렇다면 저희가 해야할 일은 매출이 없는 곳(빈 공간)을 찾아서 0을 입력하는 방법입니다. 위 예시는 일일이 입력할만..
오늘은 매우 간단하지만 모르는 엑셀 초보들을 위한 꿀팁을 알려드리려고 합니다. 바로 0으로 시작하는 숫자를 입력할 때 문자 텍스트로 인식시켜 결과값을 도출하게 하는 방법입니다. 한번 어떻게 하는지 알아볼까요? 엑셀 강의 관심있는 사람들은 강의도 관심 가져주세요! 전 엑셀에 위에 좌측 사진처럼 결과값을 나타내고 싶습니다. 그래서 0으로 시작하는 숫자 그리고 나누기를 표시했지만 엑셀 마음대로 우측처럼 값을 나타냈습니다. 1로 나타나게 된 이유는 앞에 있는 000이 별로 중요하지 않다고 인식해서 버리고 1로 결과값을 나타낸거구요! 5/3은 자주 쓰이는 날짜로 인식하여 5월 3일로 결과값을 나타낸겁니다. 그렇다면 우리는 이걸 어떻게 해결할까요? 엑셀 0으로 시작하는 숫자를 나타내기 위한 방법은 '작은 따옴표'를..
오늘은 여러 셀에 같은 값을 한번에 입력할 수 있는 방법을 알려드리려고 합니다. 너무나 간단합니다. Ctrl과 Enter만 알면 누구나 할 수 있는 방법입니다. 이 방법을 모른다면은 일일히 엑셀 복사 붙여넣기를 해야하지만! 그렇게하면 번거롭고 시간이 많이 걸리기 때문에 간단하게 알려드리겠습니다. 예시 위에 예시를 보시면은 우측에 초록색 음영이 보이시죠? 전 이곳에 일괄적으로 YES를 입력할겁니다. 그렇다면 엑셀 여러셀에 한번에 입력하는 방법은 어떻게 할까요? 먼저 Ctrl 을 누른 상태에서 일괄적으로 입력하고자하는 셀을 선택을 합니다. Ctrl을 누른상태로 셀 클릭을하면 연속클릭이 가능합니다. 그렇게 클릭을 했다면은 일괄적으로 입력하고자하는 내용 'YES'를 입력한 상태에서 'Ctrl + Enter'를 ..
오늘은 엑셀 기능 중 하나인 그림붙여넣기를 알려드리려고 합니다. 그림 붙여넣기에는 2가지 방법이 있습니다. 그냥 그림 붙여넣기와 연결된 그림 붙여넣기인데 아래 예시를 통해서 설명해보도록 하겠습니다. 전 소모품 구매신청서 타이틀 우측 하단에 결재(담당, 팀장, 부서장) 결재란을 넣을겁니다. 위에 있는 결재란을 만들기 위해 행과 열 조정을 한다면은 아래 있는 데이터들이 틀어져버릴 수 있습니다. 즉, 결재란을 만드는건 다른 데이터가 입력된 행, 열의 크기를 건들지 않는 상태에서 진행을 해야 합니다. 여기서 필요한게 바로 엑셀 그림 붙여넣기 기능입니다. 굉장히 쉬우니깐 아래 설명을 드리겠습니다. 위에 그림처럼 붙여넣기를 한 후 붙여넣기 옵션을 클릭하면 '기타 붙여넣기 옵션'에 '그림, 연결된 그림'을 볼 수 있..