본문 바로가기

전체 글

(704)
python. shallow/deep copy [1. 개요] python 에서 얕은 복사와 깊은 복사 개념에 대한 내용 정리 [2. 기본 개념] C++ 를 예로들면, 어떤 객체가 있고 이 객체에 대한 포인터가 있다. 이 객체에 대해서 깊은 복사는 객체를 구성하는 모든 멤버 변수 데이터까지 복사하는 것이고, 얕은 복사는 객체를 가리키는 포인터를 복사하는 것이다. 즉, 깊은 복사 후 해당 객체에 대한 값 변경은 복사에 대상이 된 원래 객체의 데이터 변경을 유도하지 않는다. 그러나 얕은 복사 후 해당 객체에 대해서 동일한 작업을 진행하면 원래 객체의 데이터 변경까지 유도한다. [3. 예제] 2차원 배열을 선언한다 했을 때... # shallow copy board1 = [[0, 0, 0]] * 100000 # deep copy board2 = [[0, 0..
df 와 du 와 디스크 용량 차이 발생 및 해결 방법 [1. 개요] 서버 디스크 확보 중, 분명 불필요한 파일을 삭제하였는데, df 로 확인 시 디스크가 충분히 확보되지 않는 문제가 있었다. 그러나, du 로 mount 된 디렉터리의 총 용량 확인 시, 전체 파일 사이즈가 줄어들어 이에 대한 내용을 정리한다. [2. df vs du] df는 파일 시스템의 디스크 블록을 조회하여 총값과 자유 블록의 수를 계산 du 는 입력으로 주어진 파일 혹은 디렉터리가 사용하는 전체 파일 용량을 계산한다. [3. 문제 원인] df 와 du 는 사용중인 용량을 계산하는데 있어서 근본적인 차이가 있다. 따라서 아래와 같은 이유가 원인이 된다. 파일 디스크립터가 열린 상태에서 파일이 삭제된 경우입니다. df는 dirty buffer에 있는 용량을 계산에 포함하지만 du는 계산하..
MySQL. 테이블 용량 관리 [1. 개요] 운영중인 MySQL 서버에서 디스크 용량이 부족할 경우 조치 할 수 있는 방법을 정리한다. 테이블을 DROP 하거나 TRUNCATE 테이블에 파티션이 설정 된 경우, 사용하지 않는 파티션을 TRUNCATE DELETE 쿼리 수행 후 OPTIMIZE 필요한 데이터만을 table dump 후 재복구 [2. DROP / TRUNCATE] 가장 단순한 방법으로 테이블 자체를 삭제하거나 데이터를 테이블에서 전부 제거하면 된다. 단, 모든 데이터가 삭제되므로 앞으로 절대 사용 할 일이 없는 테이블(혹은 백업되있는) 을 대상으로만 진행하도록 한다. DROP TABLE 'any_table' TRUNCATE TABLE 'any_table' [3. PARTITON] 테이블 생성 시 파티션을 같이 설정한 경우..