분류 전체보기 1175

[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

virtualenv - Python 버전 지정

virtualenv를 새로 생성할 때 아무 옵션을 지정하지 않으면, PATH 등으로 설정된 기본 파이썬 버전으로 가상 환경이 생성된다. 하지만 종종 기본값이 아니라 다른 버전의 파이썬을 사용해야 할 때가 있다. 이런 경우에는 -p 옵션을 이용해 사용할 파이썬을 지정할 수 있다. 방법 virtualenv -p # -p : --python. 파이썬 버전 지정 # 예시 virtualenv venv -p python3.8 + global로 설치된 패키지 접근 필요시 virtaulenv venv--system-site-packages 추가로 보통 virtualenv 환경은 홈 디렉터리에서 관리하는 게 편하다고 한다. ~/.venv/

Python 2021.09.10

THP(Transparent Huge Pages) 비활성화

THP 리눅스는 Page 단위로 메모리를 관리하고 사용하는데, 기본적으로 페이지 크기는 4096 Bytes (4K)이다. THP는 페이지 크기를 MB, GB 등으로 할당하여 사용하는 기능 RHEL 6 이후 기본적으로 활성화되어 있다. 성능 이슈로 인해 리눅스 서버의 THP 설정을 변경하고자 한다. THP 설정 확인 cat /sys/kernel/mm/transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/defrag 대괄호로 표시된 값이 현재 설정된 값이다. THP 설정 변경 (비활성화) echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/..

Linux 2021.09.09