전체 글 (1205) 썸네일형 리스트형 DBMS core architecture 2 Buffer manager - 버퍼 캐시를 관리하는 메인 메모리 영역, - Replacement algorithm ( victim frame selection을 위한 dirty bits를 유지 관리 ) == 페이징 교체 알고리즘 1. 페이징 교체 알고리즘 1.1 victim frame selection - 메모리는 프레임(frame) 단위 - 디스크의 페이지가 메모리에 올라오면 free frame에 할당하는데 만일 모든 프레임이 사용 중이라면 비어 있는 프레임 확보 필요. 이 작업을 victim frame selection이라 한다. - 프레임에 있는 페이지가 dirty 상태라면 디스크에 변경된 내역을 저장 - dirty 상태가 아니라면 프레임 clear() Oracle, mysql(innodb) : L.. DBMS core architecture 1 1. MVCC (Multi Version Concurrency Control) DBMS에서 Lock을 사용하지 않고, 데이터의 일기 일관성을 보장해 주는 내부 기법. (Lock은 서버의 동시성을 크게 떨어트린다. ) 객체의 변경사항을 모두 버전을 나누어 저장하고, 데이터 객체는 이 버전을 모두 연속체로서 정의, 관리하게 하여 락을 사용하지 않고 일관된 읽기를 보장. 1.1. MGA - Multi Generation Architecture (PostgreSQL) 데이터를 변경할때 해당 데이터를 변경하는것이 아닌, 새로운 데이터를 추가 후 새로운 데이터를 링크를 연결하는 방식 1.2 Undo 방식 (Oracle, mysql/innodb) Undo 영역을 따로 두고 최신 데이터는 데이터 영역에 두고, 올드 데.. postgreSQL 튜닝 이 글은 postgreSQL의 내부 구조를 어느 정도 안다고 가정하에 진행합니다. 1. shared buffer 튜닝 - DISK I/O를 최소화 함으로써 I/O의 성능을 향상하기 위한 버퍼 - 많은 사용자의 동시 접근할때의 경합 최소화가 목표 - 자주 사용되는 블록은 최대한 버퍼 내에 있어야 한다. 1.1 pg_prewarm() - 해당 테이블을 강제로 buffer로 올린다. (캐시처럼 사용하기 위해 미리 로드) - 테이블의 크기에 따라 buffer가 더 느려질 수도 있다. creste extension pg_prewarm; select pg_prewarm('t1') 1.2 HOT (heap only tuple) - MGA에 의한 단점으로 해당 테이블의 변경이 빈번할 경우 테이블 크기 상승과 해당 데이.. [Django rest framework] 2. token / authentication 이번 포스팅의 소스는 여기에 있습니다. - python3.6, django 2.1, django-rest-framework 3.8 을 사용합니다. rest fremework는 기본적으로 템플릿 방식이 아닌, api 호출을 기반을 위주로 합니다. 또한 같은 도메인 호출도 있겠지만, 다른 도메인에서 호출하는 경우도 있습니다. 이때 해당 회원(권한)인지를 인식해야 되는 과정이 필요한데, 이를 위해 헤더에 해당 회원의 token을 포함하여 전송함으로써 서버에서는 해당 token값으로 회원을 인식합니다. 이번 포스팅에서는 DRF token 설정과 각 api에서의 auth 설정에 관한 내용이며, API 서버에 자주 사용되는 JWT(Json Web Token) 인증을 장고(django)를 사용하여 구현하려고 합니다 .. [Django rest framework] 1. 기존 셋팅 + CRUD 이번 포스팅의 소스는 여기에 있습니다. - python3.6, django 2.1, django-rest-framework 3.8 을 사용합니다. 이번 포스팅에서는 기본 셋팅 및 간단한 모델을 생성하여, CRUD URL을 만드는것을 목표로 합니다. 1. 프로젝트 생성 및 DRF 기본 셋팅 패키지 설정을 위해 virtualenv로 관리 합니다. python 3.6 버전으로 django-env이라는 env를 생성합니다. $ sudo pip install virtualenv $ virtualenv -p python3.6 django-env $ source django-env/bin/activate env생성 및 활성화 함으로써, 전역 설치가 아닌 django-env에 패키지들이 설치되게 되어 패키지들의 버전 .. ERROR: cannot change sequence "*****" DB postgresql에서 PK의 다음번 순서를 변경해야 하는 상황이였습니다. (참고로 MySQL 은 컬럼에 AUTO_INCREMENT 속성을 사용 합니다. sequence는 오라클과 postgresql에만 있습니다.) 테이블의 구성은 아래와 같습니다. 즉 auth_user_id_seq를 변경해야 하는 상황에서 기존 쿼리문과 같이 update으로 실행하면 아래와 같이 에러가 발생합니다. sequence는 기존 테이블 방식이 아닌 Function형태로 작동하며, 변경 또한 다르게 표현됩니다. alter sequence 시퀀시이름 restart with 변경할값; DDL 형태로 변경하면 값을 변경할수 있습니다. 단지 last_value의 값이 현재의 값이며, 해당 값을 변경하기 위해서는 "restart w.. [Django rest framework] 튜토리얼을 시작하며. 기존에 작성했던 Django rest framework의 포스팅이 너무 낮은 버전에서 구현한거라 문제가 심각하게 있었다. (물론 4년전에 한거니까 당연한 거다.) 그리고 Django REST Framework (DRF) 3.0의 tutorial만 읽고 그 동안 개발을 했었는데, DRF에서 제공하는 기능은 커녕, tutorial의 기능조차 제대로 사용하지 않고, 하나하나 모든 기능을 만들면서 시간을 낭비하고, 보기 싫은 코드를 작성하고 있었다. 그래서 이전에 작성한 포스팅은 모두 삭제 하고, 다시 글을 써 보기로 했다. 앞으로 연재할 포스팅에서는 1. 최대한 DRF의 최신 기능 및 서드 파티들을 사용하는것을 목표 2. view의 모든 기능은 viewset.modelView 를 기반하여 상속이나 재사용이 가.. fatal error: 'X11/Xlib.h' file not found /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/tk.h:78:11: fatal error: 'X11/Xlib.h' file not found # include ^~~~~~~~~~~~ 1 error generated. xcode를 재설치 했거나, 업데이트 했다면 Xlib의 링크파일이 깨졌을수도 있습니다. 이럴 경우 다시 링크파일을 생성해 줍니다. ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Hea.. 이전 1 ··· 22 23 24 25 26 27 28 ··· 151 다음