본문 바로가기

전체 글

(133)
CentOS7 Apache SSL인증서 적용 (Certbot, Let's encrypt) 환경 : CentOS7 / Apache EPEL 저장소 활성화 및 apache용 certbot 설치 yum install epel-release yum install certbot python2-certbot-apache certbot에서 apache를 기반으로 자동구성 certbot --apache certbot에서 apache를 수동으로 구성 certbot --apache certonly certbot을 설정하여 구성 완료 후 문제가 없을 경우 아래 메시지가 출력된다. - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/sengwoolee.dev/fullchain.pem Your key file ..
Ubuntu Errors were encountered while processing 해결 1. dpkg 기록 삭제 sudo rm /var/lib/dpkg/info/* 2. dpkg 재설정 sudo dpkg --configure-a 3. 업데이트 apt-get update
IaaS, PaaS, SaaS IaaS(Infrastructure as a Service) 서버를 운영하기 위해서 필요한 서버 자원, IP, 네트워크, 스토리지, 전력 등등 을 가상의 환경에서 쉽고 편하게 사용할 수 있도록 서비스 형태로 제공한다. 기존 서버 호스팅보다 하드웨어 확장성이 좋고 탄력적이며 빠른 제공을 할 수 있는 가상화 기술을 이용한다. Pass와 Saas의 기반이 된다. PaaS(Platform as a Service) IaaS를 기본으로 개발툴과 기능, 애플리케이션 배포 등 개발환경에 부가적인 서비스를 안전하게 제공하는 것이다. 미들웨어와 데이터베이스 관리, 애널리틱스 혹은 운영체제 등이 포함된다. 개발자가 애플리케이션을 개발하고 배포하는데 필요한 모든 것들을 제공해야 한다. PaaS를 이용하면 개발자는 기반 인프라..
보일러 플레이트 (Boilerplate) 보일러플레이트(boilerplate)는 변경 없이 재사용할 수 있는 저작품을 의미하며, 프로그래밍에서는 상용구 코드를 의미한다. 어떤 동작을 수행하기 위해 사전에 작성해야 하는 코드로서 자바에서는 클래스의 getter, setter 메소드를 말한다. 보일러 플레이트의 특징은 다음과 같다. 1. 최소한의 변경으로 재사용할 수 있는것 2. 적은 수정만으로 여러 곳에 활용이 가능한 코드, 문구 3. 각종 문서에서 반복적으로 인용되는 문서의 한 부분
데이터베이스 정규화, 반정규화 데이터베이스의 정규화, 반정규화에 대해 작성한다. 1.정규화(Normalization) 정규화는 데이터의 중복성을 제거하여 여러 엔티티의 조인이 발생하는 데이터베이스 환경에서 성능을 향상시키기 위한 데이터 구조화 프로세스를 말한다. 정규화 단계 -제1정규화 중복되는 컬럼을 제거한다. -제2정규화 종속되는 값을 제거한다. -제3정규화 엔티티에 맞는 데이터로 분리한다. 2. 반정규화(역정규화, Denormalization) 정규화로 인해 테이블 수가 증가하면 다수의 조인이 발생함에 따라 성능 저하가 발생할 수 있다. 이 문제를 해결하고자 정규화 과정이 모두 마무리된 다음 반정규화를 실시한다. 단 테이벌을 합치는 것만이 반정규화는 아니다. -그룹에 대한 합계 값을 미리 계산하여 테이블에 저장 (기존 테이블에 ..
Index Index는 테이블에 저장된 데이터를 빠르게 조회하기 위한 데이터베이스 객체이다. 대부분 B-Tress, B+Tree 구조를 가진다. Index는 논리적/물리적으로 테이블과 독립적이다. 테이블의 레코드는 순서 없이 저장되는데 인덱스가 없는 테이블의 데이터를 찾을 때 무조건 풀스캔을 한다. 데이터의 양이 많을 경우 풀스캔을 하게되면 처리 성능이 떨어진다. 인덱스를 통해 데이터를 빨리 찾고자 사용한다. 인덱스를 생성할 때는 WHERE 절과 JOIN, ORDER BY 등 키 값의 선별이 가능한 컬럼에 생성한다. 테이블이 자주 갱신될 경우엔 인덱스를 사용하지 않는 것이 좋다. 인덱스는 클러스터드 인덱스와 논클러스터드 인덱스로 나누어진다. 클러스터드 인덱스는 물리적인 정렬로 데이터를 입력 시 이것을 기준으로 입력..
SQL - GROUP BY, HAVING GROUP BY 데이터를 원하는 그룹으로 나누어 가져온다. 그룹의 컬럼명을 GROUP BY 절 뒤에 추가해 사용한다. 집계함수와 함께 사용되는 상수는 GROUP BY 절에 추가하지 않아도 된다. SELECT TEST_NAME, TEST_TEXT, COUNT(*) FROM TEST GROUP BY TEST_NAME ORDER BY COUNT(*) ASC; HAVING WHERE 절에서는 집계함수 사용이 불가능하다. 집계함수를 가지고 조건비교를 할 때 HAVING 을 사용한다. SELECT TEST_NAME, TEST_TEXT, COUNT(TEST_NO) FROM TEST GROUP BY TEST_NAME HAVING COUNT(TEST_NO) > 3;
SQL 튜닝 같은 결과의 쿼리는 여러 형태로 작성될 수 있으며 옵티마이저가 실행계획을 생성할 때 최대 성능의 쿼리를 작성해야 한다. 옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심 엔진이다. 사용자가 구조화된 질의언어로 결과집합을 요구하면 이를 생성하는데 필요한 처리경로는 DBMS에 내장된 옵티마이저가 자동으로 생성해주며 이 처리 경로를 실행계획이라고 부른다. 더 높은 성능의 쿼리를 작성하기 위한 튜닝 가이드라인을 작성한다. 1. WHERE 조건에 인덱스 모두 사용 TEST 테이블에서 TEST_NO, TEST_CONTEXT 컬럼이 TEST_NO_IDX 인덱스로 존재할 때 아래 쿼리는 인덱스를 사용하지 않는다. SELECT * FROM TEST WHERE TEST_..

반응형