전체 글 1157

[MySQL/MariaDB] Partition Table 생성 및 확인

개요 2021.09.18 - [Partition] 개념 및 장단점에서 파티션의 개념과 특징, 파티셔닝의 종류와 분할 기준 등을 정리해보았다. 이번 글에서는 DB에서 파티션 테이블을 생성/수정/삭제하는 SQL 쿼리를 정리해둔다. 파티션 지원 여부 확인 일단 MySQL 서버에서 파티션을 사용할 수 있는지 확인해야 한다. SHOW VARIABLES LIKE '%partition%'; have_partitioning 항목이 YES이므로 파티션을 지원한다는 것을 알 수 있다. MySQL 5.6.29부터는 아래 명령으로 확인한다. SHOW PLUGINS; partition 항목이 ACTIVE이므로 파티션을 지원하는 버전임을 알 수 있다. 파티션 테이블 생성 일반 테이블 생성 후 파티셔닝 예시는 날짜를 기준으로 수평..

Database 2021.09.20

[maven] 디렉터리 구조

maven 프로젝트의 디렉터리 구조에 대해 정리해둔다. 디렉터리 구조 Project/[Project Name] ├ src │ ├ main │ │ ├─ java │ │ └─ resources │ │ │ └ test │ ├─ java │ └─ resources │ ├ target └ pom.xml 설명 src/main/java : java 소스 파일이 저장된 경로 src/test/java : java 테스트 파일이 저장된 경로 src/*/resources : properties, xml 등과 같은 설정 파일이 저장된 경로 target : war, jar와 같은 컴파일 결과 파일이 저장된 경로 pom.xml : maven 기본 설정 파일. 프로젝트 파일이라고도 하며, 프로젝트 root 경로에 위치하고 있다. ..

Java 2021.09.19

[Partition] 개념 및 장단점

Partition 논리적인 데이터 element를 다수의 entity로 쪼개는 행위 큰 테이블이나 인덱스를 파티션 단위로 분할하는 것 애플리케이션 입장에서는 물리적 데이터 분할을 인식하지 못할 수 있다. 배경 서비스의 크기 ⬆️, 데이터의 규모 ⬆️ → DBMS의 용량의 한계와 성능 저하 ⇒ 테이블을 파티션이라는 단위로 나뉘어 관리하는 파티셔닝 기법 등장 소프트웨어적인 데이터베이스 분산 처리 가능해짐 목적 성능 특정 DML과 쿼리 성능 향상, 대용량 WRITE 환경에서 효율적이다. full scan에서 데이터 접근 범위 감소 → 성능 향상 가용성 물리적인 파티셔닝 → 전체 데이터 훼손 가능성 ⬇️ 파티션 별로 독립적인 백업 및 복구가 가능하다. 관리용이성 큰 테이블을 줄일 수 있다. 장점 파티션 단위 백..

Database 2021.09.18

[MySQL] View

View 일종의 가상 테이블 행과 열을 가지고 있지만, 데이터를 실제로 저장하고 있지는 않다. View는 다른 테이블이나 다른 뷰에 저장된 데이터를 보여준다. 여러 테이블이나 뷰를 하나의 테이블처럼 볼 수 있다. 장단점 장점 특정 사용자에게 테이블 전체가 아닌 필요한 필드만을 보여준다. 쿼리 단순화 및 재사용 단점 이미 정의된 뷰 변경 불가 삽입, 삭제, 갱신 작업에 제한 사항이 있다. 생성 / 수정 /삭제 생성 CREATE VIEW 뷰이름 AS SELECT 필드이름1, 필드이름2, ... FROM 테이블이름 WHERE 조건 수정 ALTER VIEW 뷰이름 AS SELECT 필드이름1, 필드이름2, ... FROM 테이블이름 삭제 DROP VIEW 뷰이름

Database 2021.09.17

Procedure

프로시저; Procedure 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합 Stored Procedure라고도 불린다. MySQL의 경우, 5.0 이후 표준 규격 지원 장점 하나의 요청으로 여러 SQL 실행 가능 → 네트워크 부하 ⬇️ 응용 프로그램 로직 없이 데이터베이스의 참조 무결성 유지 가능 처리 시간 ⬇️, 보수성 ⬆️ 쿼리문 보호, SQL Injection 보호, 권한 제어(특정 프로시저에만 접근 가능한 권한 부여) 일괄 작업에 유용, 절차적 기능 및 동적 쿼리 가능 단점 재사용성 ⬇️, 디버깅 및 유지보수에 어려움 형식 실질적으로 프로시저를 정의하는 부분은 create부터 end까지의 부분이다. DROP PROCEDURE IF EXISTS procedure_name; -- 이미..

Database 2021.09.16

[Selenium] Element 텍스트 읽기

selenium에서 특정 Element의 텍스트 값을 읽는 방법을 적어둔다. 크롬 드라이버 기준이다. text 기본적으로 특정 Element의 텍스트 값을 읽을 때는 text 함수를 호출한다. text 함수는 엘리먼트의 text property를 읽는다. text = driver.find_element_by_xpath('').text ## 구현부 def text(self): """The text of the element.""" return self._execute(Command.GET_ELEMENT_TEXT)['value'] 하지만 엘리먼트 내에 문자가 존재함에도 불구하고 빈 문자열을 반환하는 경우도 존재한다. 요소에 text property가 없어서 다른 속성에 값이 설정되어 있기 때문인 듯하다. g..

Python 2021.09.15

[maven] 개념

빌드 소스 코드를 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물 java 파일, .xml, .jpg, .properties 등을 JVM이나 WAS가 인식할 수 있는 구조로 패키징 하는 과정 또는 결과물 빌드 도구 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 프로그램으로, Maven, Gradle이 많이 사용된다. 라이브러리 추가, 라이브러리 버전 동기화 등 라이브러리 관리가 가능하다. Maven Java 프로젝트 관리 도구. 프로젝트의 전체적인 생명주기를 관리한다. pom.xml에 필요한 라이브러리를 정의하여 해당 라이브러리 뿐만 아니라 라이브러리 동작에 필요한, 즉 라이브러리가 의존하는 다른 라이브러리까지 관리한다. 공식 Maven 중앙 저장소 또는 ..

Java 2021.09.14

ulimit 설정

ulimit 접속하는 쉘이나 프로세스가 사용할 수 있는 자원을 조절한다. 즉, 실행시킨 프로세스가 동시에 사용할 수 있는 파일 수 등을 조절할 수 있다. Hard Limit : -H. 한 번 설정되면 root 권한으로만 값을 증가시킬 수 있다. Soft Limit : -S. hard limit까지 조절될 수 있다. 옵션을 명시하지 않으면, 두 값이 동시에 설정된다. 설정 확인 ulimit -a # -a : 모든 값 출력 # -n : open file descriptor의 최대 수 # hard 설정 확인 ulimit -a -H # soft 설정 확인 ulimit -a -S 설정 ulimit # 예시 : max user process 값을 2048로 설정 ulimt -u 2048 명령어를 이용한 설정은 휘발..

Linux 2021.09.13

[Shell Script] 반복문

매번 구글링 해서 찾기 때문에 적어둔다. FOR 문 1. 리스트 내 요소에 대해 반복적으로 작업을 실행한다. for var in val1 val2 val3 do # CMD done var는 변수 이름이며, 값은 공백을 구분된다. foreach 문과 유사하다고 생각하면 된다. 예시) #! /bin/bash for var in 1 2 3 4 5 do echo $var done 2. 리스트가 숫자인 경우에는 중괄호를 이용하여 시작 값과 종료 값을 지정할 수 있다. # start값부터 end값까지 반복. 1 씩 증가. for var in {start..end} do # CMD done # start값부터 end값까지 반복. gap값 씩 증가. for var in {start..end..gap} do # CMD ..

Linux/Shell Script 2021.09.12

vm.overcommit 허용 설정

리눅스 서버의 vm.overcommit 허용 설정 확인과 설정 방법을 정리해둔다. 설정 확인 cat /proc/sys/vm/overcommit_memory 값 의미 0 기본값. 적당히(hueristic) overcommit 허용 1 항상 overcommit. 항상 메모리 할당에 성공한다. 2 제한적으로 overcommit 허용. 가용 메모리 내에서만 할당 가능 설정 변경 echo 1 > /proc/sys/vm/overcommit_memory echo 명령으로 값을 설정할 수 있다. 시스템 설정을 변경하는 작업이기 때문에 root 권한이 필요하다. memory commit 프로세스는 시스템 콜을 사용해 커널에 메모리를 요청한다. 커널을 시스템 콜을 받고 해당하는 메모리 영역의 주소를 전달자로 반환하는데, ..

Linux 2021.09.11