반응형

EC2  : 사용자가 아마존 머신 이미지로 부팅하여 인스턴스라고 불리는 가상 머신을 원 원하는 소프트웨어를 포함하여 구성하게 해줌

           / 스케일링이 가능한 애플리케이션 배치 장려
 

RDS : 분산 관계형 데이터베이스/ 관계형 DB의 스토리지, 연산 자원들을 스케일링 하는 것은 하나의 API 호출로 수행

            / EC2와 함께 사용하여 DB 설정, 운영, 백업 기능 편하게 사용하는 DB 전용서버

 

S3  


Elastic Beanstalk : EC2 + RDS 등 AWS 리소스들을 조합하여 완성된 어플리케이션 플랫폼 / PaaS
                                     / Docker 컨테이너를 기반으로 애플리케이션을 쉽게 배포하고, 운영하고, 관리하는걸 도와주는 AWS 서비스


테이블(8) : 학과 정보 / 경기 대진표 / 부스 정보 / 장기자랑 참가자 / 장기자랑 투표 정보 
          체육대회, 축제 공유하는 “푸드 트럭 정보 ” / 부스 별 방문 스탬프 “부스 스탬프 정보”
           / 추첨 , 투표 등에 의해 회원 테이블 생성 


테이블 : USER(중복 허용 X , 널 값 중복 가능) / POST / PAYCORDT(결제 / USER 1 : 결제 N) / COMMENT 시퀀스 생성 


아쉬운 점 : MyBatis

                    -> SQL 코드로 완전 분리 (기존 DAO에 모든 SQL 작성 , MAPPER 파일에 SQL 코드 입력하고 DAO에서 필요할때마다

                         가져옴,  코드 간결화 ,  유지보수성 향상)로 할 걸

                    -> JDBC(자바 프로그램이 데이터베이스와 연결되어 데이터를 주고 받게 하는 인터페이스 ) 

 

DAO : DB와 연결하게 하기 위해 데이터 접근하는 객체 /그래서 페이지당 커넥션을 하나만 가져오고 그 커넥션을 가져온 객체가 모든 DB와의 연결을 하는것이 DAO 객체입니다

 

VO(DTO) :직을 갖고 있지 않는 순수한 데이터 객체이며 속성과 그 속성에 접근하기 위한 getter, setter 메소드만 가진 클래스

반응형
반응형

1. Hadoop 

  • 정의 : 여러 대의 컴퓨터 클러스터(연결되어 하나의 시스템 처럼 동작하는 집합)에서 대규모 데이터 세트를 분산 처리 할 수 있게 해주는 프레임 워크 / 파일을 블록단위로 저장, 마스터 - 슬레이브 구조 
  • 장점 : 멀티 노드로 부하를 분산시켜 처리 / 장비 추가 시 성능이 선형적으로 증가 / 저렴한 장비로 처리 가능 
  • 분산 코디네이터 : Zookeeper
    • 중앙 집중식 서비스 / 알맞은 분산 처리 및 분산 환경을 구성하는 서버 설정을 통합적으로 관리 
  • 분산 리소스 관리
    • YARN : 작업 스케줄링 및 클러스터 리소스 관리 위한 프레임워크 맵리듀스, 하이브, 임팔라, 스파크 등 다양한 APPLICATION이 안에서 작업 실행
    • Mesos : 클라우드 환경에 대한 리소스 관리
  • 데이터 저장 
    • HBASE : 분산 데이터베이스 / 구글 빅테이블이 원조 
    • HDFS : 분산 파일 데이터 저장 / 자바로 작성된 확장 
    • Kudu : 컬럼 기반 스토리지 : 데이터에 대한 빠른 분석 위해 설계 
  • 데이터 수집 
    • Chukwa : 분산 환경 생성되는 데이터 안정적으로 HDFS 에 저장하는 플랫폼 / 대규모 분산 시스템 모니터링 시스템
    • Flume : 많은 양 데이터 수집, 집계 및 이동위한 분산형 서비스 
    • Kafka : 데이터 스트림 실시간 관리, 대용량 이벤트 처리 위해 개발
  • 데이터 처리
    • Mahout : 분석 기계학습에 필요한 알고리즘 구축
    • Spark  : 대규모 데이터 처리 위한 빠른 속도 실행시켜주는 엔진 / 파이썬, R 등에서 대화형으로 사용  / 메모리를 사용해 맵리듀스보다 빠르다 
    • HIVE : 하둡 기반 데이터 솔루션 / SQL과 유사한 HIVEQL 언어 제공하여 쉽게 데이터 분석 할 수 있게 도와줌
    • MapReduce : 대용량 데이터를 분산처리하기위한 프로그램 / 정렬된 데이터를 분산처리(키 , 밸류 쌍으로 구분)하여 Map 하고 이를 다시 합치는 Reduce (지표 생성)과정을 거친다 

 

2. Container (도커 / 쿠버네티스)

- 빅데이터에서 컨테이너(운영체제 커널을 공유하는 경량의 가상화 환경)와 하둡을 접목시키는 기술 증가 

 

 

3. Elastic Search 기반 데이터 수집  

  • Logstash : 동적 데이터 수집 파이프라인
  • ElasticSearch : 분산형 RESTFul 검색 및 분석 엔진
  • kibana  : 엘라스틱서치 데이터 시각화

 

4. EC2 / RDS / Elastic Beanstalk / S3

  • EC2 : 사용자가 아마존 머신 이미지로 부팅하여 인스턴스라고 불리는 가상 머신을 원 원하는 소프트웨어를 포함하여 구성하게 해줌 / 스케일링이 가능한 애플리케이션 배치 장려
  • RDS : 분산 관계형 데이터베이스/ 관계형 DB의 스토리지, 연산 자원들을 스케일링 하는 것은 하나의 API 호출로 수행 / EC2와 함께 사용하여 DB 설정, 운영, 백업 기능 편하게 사용하는 DB 전용서버
  • S3 : 저장 서비스 / 하나의 AWS 리전 내 물리적 가용영역에 자동으로 분산 저장 
  • Elastic Beanstalk : EC2 + RDS 등 AWS 리소스 조합하여 완성된 어플리케이션 플랫폼  / PaaS

5. 의료 빅데이터 필요성 : DB 성능 확보하여 대용량 데이터를 기반으로 다양한 정보 분석 업무를 수행하여 의료 가치 있는 데이터 생성에 목적 / 시스템 성능 확보, 비정규화 및 테이블 병합 , 요약 테이블 적용, QL 튜닝 , 지속적인 성능 개선 활동 필요 

 

6. NoSQL 

- NOT ONLY SQL 

- RDBMS + 다른 특성 부가적으로 지원

- 기존의 관계형 데이터베이스보다 더 융통성 있는 데이터 모델 사용하고 데이터의 저장 및 검색 위한 특화된 매커니즘 제공 

- 특징

  • 테이블 조인 기능 없음
  • 비SQL 인터페이스 통한 데이터 액세스
  • 여러 대의 DB 서버를 묶어 (클러스터링) 하나의 DB 구성
  • ACID 미보장
  • 스키마, 속성 동적 정의
  • 중단 없는 서비스, 자동 복구 기능 지원
  • 오픈소스
  • 확장성 가용성 높은 성능 

- 종류 

  • WIDE COLUMMAR STORE : 구글 Big Table Paper 에서 유래 / Key Value => Column Family 데이터 모델 사용 
    • HBASE / Cassandra/ ScyllaDB
  • DOCUMENT DB : JSON, XML 같은 Collection 데이터 모델 구조 채택 
    • Mongodb

8. 머신러닝 R

- 머신러닝의 데이터 관리에 빅데이터를 사용할 수 있다.

- 대규모 데이터를 이용하기 위한 모델링을 컴퓨터가 알아서 하는 것이 머신러닝 

R  : 통계 처리 및 시각화 하는데 사용

 

9. 하둡 vs RDBMS 

  • 데이터 타입 : 하둡(정형, 반정형, 비정형) / RDBMS (정형)
  • 스키마 : 하둡(데이터 읽을 때 스키마 적용) / RDBMS(데이터 적재할 때 스키마 적용)
  • 좋은 사용법 : 하둡(대용량 데이터 처리) / RDBMS(복잡한 ACID 트랜잭션에 적용)
  • 속도 : 하둡(쓸 때 빠름) / RDBMS(읽을 때 빠름)

10. 빅데이터 4V?

속도 / 양 / 다양성 / 진실성(정확도 높아짐) / 가치

반응형
반응형

Telnet

- 원격 접속 서비스

- 특정 사용자가 네트워크 통해 다른 컴퓨터에 연결하여 그 컴퓨터에서 제공하는 서비스 받을 수 있는 인터넷 표준 프로토콜(컴퓨터, 네트워크 장비가 서로 통신하기 위한 규약)

 

ssh(Secure Shell)

- 세션을 감싸주는 텔넷 응용 프로그램

- 다른 사용자가 세션을 엿듣지 못하도록 => 암호화 되어 전송해 보안에 적합 

 

차이점

서버간의 통신 방법의 차이 (TCP / IP 패킷 정보 전달, 결과값 다시 서버에)

- TELNET : BYTE 스트림 형식으로 주고 받음 / 정보 노출 위험 큼 

- SSH : DES, RSA 등 고급 암호화 통해 통신 / 약간의 부하 생김 

 

##IP : 패킷 단위로 보낼 목적지 주소 할당 후 어디로 보낼지 결정하고 이를 전송 

    TCP :  IP 프로토콜 기반 위에서 전송되는 데이터들을 안정되게 전송 

반응형
반응형

 

1. 데이터 베이스 특징

  • 독립성(물리적 / 논리적)
  • 무결성(잘못된 데이터 발생 하는 경우 수 방지 => 유효성 검사 통해 구현)
  • 보안성(인가된 사용자들만 자원에 접근)
  • 일관성(연관된 정보 논리적 구조로 관리)
  • 중복 최소화(자료 중복, 데이터 중복 문제 해결)

2. 데이터베이스 성능 

  • 디스크 I/O 를 줄이는 것에서 시작
  • 디스크 헤더 위치 이동 없이 얼마나 많은 데이터를 한번에 기록하느냐에 결정됨
  • DB 쿼리 튜닝 : 랜덤 I/O 자체 줄여주는 것 목적

3. 인덱스 (= 색인)

  • DBMS 에서 저장 성능 희생하여 데이터 읽기 속도 높이는 기능 
  • 데이터가 정렬되어 들어간다 
  • 양이 많은 테이블에서 일부 데이터만 불러 올 때, 풀 스캔 시 처리 성능 떨어짐 
  • 종류
    • B +- Tree 인덱스 : 원래 값 이용해 인덱싱
    • Hash 인덱스 : 칼럼 값으로 해시 값 계산하여 인덱싱 / 메모리 기반 DB 에서 많이 사용 
    • B > Hash  -> 왜? ==> SELECT 질의 시 부등호 연산 포함되어 = 연산에 특화된 Hash는 적합하지 않다 
  • 생성 시 고려 해야 할 점 
    • 테이블 전체 로우 수 15 % 이하 데이터 조회 시 생성
    • 테이블 건수가 적으면 인덱스 생성 X -> 풀 스캔이 빠름
    • 컬럼 : 유일성이 좋거나 범위가 넓은 값을 가지고 NULL 값이 많이 없는 것을 지정
    • 자주 쓰는 컬럼을 앞으로 지정 
    • DML(insert, delete, update) 시 인덱스에도 수정 작업이 동시에 발생하기에 많은 인덱스 생성 시 성능 부하 
    • DML 이 많은 테이블은 인덱스 생성 X
    • SQL 쿼리가 인덱스를 활용할 수 있게끔 짜기 

4. 클러스터 인덱스 vs 넌클러스터 인덱스 (oracle)

  • 클러스터 인덱스 : 실제 DB의 데이터 파일에 정렬되어 있는 상태로 디스크 저장/  테이블 당 한개
                                     / 기본키 값이 비슷한 레코드 끼리 묶어 저장 
  • 넌클러스터 인덱스 : 실제 DB의 데이터 파일에 정렬되지 않는 상태로 디스크 저장 / 테이블 당 여러 개 

5. 정규화 

  • 중복 저장 시 갱신 이상 발생 -> 이를 해결하기 위해 정규화 과정 거침
  • X의 값이 Y의 값을 유일하게 결정하면, "X는 Y를 함수적으로 결정"
  • 갱신 이상 종류 
    • 삽입 이상 
    • 삭제 이상
    • 수정 이상
  • 정규화란?
    • RDB 에서 중복을 최소화 하기 위해 데이터를 논리적으로 구조화하는 작업
    • 1NF : 원자값을 가진다
    • 2NF : 완전 함수적 종속 
    • 3NF : 이행적으로 종속되지 않는다
    • BCNF
  • 단점 : JOIN 연산이 많아져 , 질의에 대한 응답시간이 느려질 수 있음 

6. 트랜잭션 

 

  • 작업의 완전성 보장 
  • 논리적 작업 셋이 모두 완벽하게 처리하거나 또는 처리하지 못할 경우 원상태로 복구해서 작업의 일부만 적용되는 현상 발생하지 않게 만들어주는 기능 
  • 성질 : ACID(원자성 + 일관성 + 고립성 + 지속성)
  • LOCK : 동시성 제어 VS 트랜잭션 : 데이터 정합성 보장 기능 

7. DeadLock

  • 정의 : 두 개 이상의 트랜잭션이 특정 자원의 잠금(lock)을 획득한 채 다른 트랜잭션이 소유하고 있는 잠금을 요구하면 아무리 기다려도 상황이 바뀌지 않는 상태
  • 빈도 낮추는 방법
    • 트랜잭션을 자주 커밋 
    • 정해진 순서로 테이블 접근
    • 읽기 잠금 획득 사용 피함
    • 복수 행의 연결에서 잠금을 획득해 갱신을 직렬화 하면 동시성은 떨어지지만 데드락 회피 가능 
  • 데드락 발생 순서 
    • 트랜잭션 1 -> B t 첫번째 행 잠금 획득
    • 트랜잭션 2 => A t 첫번쨰 행 잠금 획득
    • 트랜잭션 commit 하지 않은 채 서로의 첫 번째 행에 대한 잠금 요청 시 데드락 발생
//잠금 획득 
Transaction 1> create table B (i1 int not null primary key) engine = innodb;
Transaction 2> create table A (i1 int not null primary key) engine = innodb;

Transaction 1> start transaction; insert into B values(1);
Transaction 2> start transaction; insert into A values(1);

//commit 없이 잠금 요청
Transaction 1> insert into A values(1);
Transaction 2> insert into B values(1);
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

 

8. VIEW

  • 정의 : 물리적인 테이블을 근거한 논리적인 가상 테이블
  • 이유 
    • 복잡하고 긴 쿼리문을 뷰로 정의하면 접근 단순화 시킬 수 있다
    • 보안 유리 

9. 데이터 무결성 제약조건 

  • 정의 : 테이블에 부적절한 자료가 입력된 것을 방지하기 위해 컬럼에 대해 정의하는 여러 가지 규칙
  • 무결성 제약 조건 종류
    • NOT NULL : NULL X
    • UNIQUE : 중복된 값 X / 항상 유일값
    • PK : NULL  X / 중복된 값 X  / 테이블 한 개에 유일하게 존재 
    • FK : 참조되는 테이블 칼럼 값 존재 시 허용 / 부모 키가 부모 테이블의 PK 나 UNIQUE 로 설정되어 있어야
    • CHECK : 저장 가능한 데이터 값의 범위 , 조건 지정해 설정한 값(타당한 값)만 허용 

10. 시퀀스(오라클)

  • 시퀀스 생성 시 PK와 같이 유일한 숫자를 자동을 생성하는 발생기 
  • 보통 PK로 설정하여 사용 
  • 사용 이유 : 캐쉬에 상주하고 있어 데이터 불러오는 속도가 빠름 

11. 트리거

  • 정의 : 자동으로 실행되게 정의한 저장 프로시저, INSERT / UPDATE/ DELETE 문에 대한 자동 호출
  • 사용 이유 : 데이터 무결성 강화 / 업무 처리 자동화 / 업무 규칙 보장 

12. 데이터웨어하우스 

  • DB 축적 데이터를 공통의 형식으로 변환해 의사결정에 도움 주는 DB

13. ORACLE DB VS MySQL

  • ORACLE : 대규모 트랜잭션 처리 / 여러 서버에 대용량 DB 분산 / 절차 언어 통해 DB 내장 프로그램 작성 지원(트리거 , 독립실행)
  • MySQL : 단일 DB / 대용량 DB X / DB 복원 저장점 없음 (COMMIT, ROLLBACK만 존재)

14. JOIN 

  • 카티션 곱(Cartesian Product)
    • 두 개 이상의 테이블에 대해 연결 가능한 행을 모두 결합하는 조인 방법이며, WHERE 절에서 조인 조건절을 생략하거나 조인 조건을 잘못 설정하여 양쪽 테이블을 연결하여 조건에 만족하 는 행이 하나도 없는 경우에 발생 합니다. 
    • 예) SELECT * FROM DEPT A, EMP B 

 

  •  EQUI JOIN
    • SQL 문에서 가장 많이 사용되는 조인으로 조인 대상 테이블에서 공통 칼럼을 ‘=’ 비교를 통해 같은 값을 갖는 행에 대해서 연결하여 결과를 생성하는 조인 방법입니다.
    • 예) SELECT A.name FROM DEPT A, EMP B WHERE A.code = B.code 

 

  •  NON-EQUI JOIN
    •  조인 조건에서 ‘<’,’>’, BETWEEN a AND b’와 같이 ‘=’ 조건이 아닌 다른 종류의 연산자를 사용 하는 조인 방법입니다.
    • 예) SELECT A.name FROM DEPT A, EMP B WHERE A.code > B.code

 

  •   OUTER JOIN
    • 두 개 이상의 테이블 조인 시 한쪽 테이블의 행에 대해 다른 쪽 테이블에 일치하는 행이 없더 라도 다른 쪽 테이블의 행을 NULL로 하여 행을 Return하는 것이 OUTER JOIN 입니다.연산자 로는 (+)기호를 사용합니다.
    • 조인 조건에 만족하지 않는 행도 나타냄 
    • 예) SELECT A.name FROM DEPT A, EMP B WHERE A.code = B.code(+)

 

  •   SELF JOIN
    • 한 테이블 내 두 개의 칼럼을 연결하여 EQUI JOIN을 하는 방법

15. DB 설계 시 중요

  • 무결성을 보장하는 것
  • 무결성 보장 방법
    • (애플리케이션) 데이터를 조작하는 프로그램 내에서 데이터 생성, 수정, 삭제 시 무결성 조건 검증
    • (DB트리거) 트리거 이벤트 시 저장 SQL실행, 무결성 조건 실행
    • (제약조건) DB제약조건 기능 선언하여 무결성 유지

16. SQL 문장 종류

명령어 종류 

명령어 

설명 

데이터 조작어

(DML :  Data Manipulation Language

SELECT 

 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 RETRIEVE 라고도 한다.

INSERT

UPDATE

DELETE 

 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들을 말한다. 데이터 삽입, 수정, 삭제

 데이터 정의어

(DDL : Data Definition Language)

CREATE

ALTER

DROP

RENAME

TRUNCATE 

 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 그러한 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어들을 DDL이라고 부른다.

데이터 제어어

(DCL : Data Control Language) 

GRANT

REVOKE 

 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어를 DCL이라고 한다. 

트랜잭션 제어어

(TCL : Transaction Control Language)

COMMIT

ROLLBACK

SAVEPOINT 

 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어를 말한다. 

17. 데이터 유형

 데이터 유형

설 명 

CHAR(s) 

- 고정 길이 문자열 정보

- s는 기본 길이 1바이트, 최대 길이 Oracle 2000바이트 SQL Server 8000바이트 

- s만큼 최대 길이를 갖고 고정 길이를 가지고 있으므로 할당도니 변수 값의 길이가 s보다 작을 경우에는 그 차이 길이만큼 공간으로 채워진다.

VARCHAR(2) 

- CHARACTER VARYING의 약자로 가변 길이 문자열 정보(Oracle은 VARCHAR2 로 표현, SQL Server는 VARCHAR로 표현)

- s는 최소 길이 1바이트, 최대 길이 Oracle 4000바이트, SQL Server 8000 바이트

- s만큼의 최대 길이를 갖지만 가변 길이로 조정이 되기 때문에 할당된 변수값의 바이트만 적용된다. 

NUMERIC 

- 정수, 실수 등 숫자 정보 (Oracle은 NUMBER로, SQL Server는 다양한 숫자 타입 지원)

- Oracle은 처음에 전체 자리 수를 지정하고, 그 다음 소수 부분의 자리 수를 지정한다.

ex> 정수 부분이 6자리이고 소수점 부분이 2자리인 경우 NUMBER(8,2) 

DATE

- 날짜와 시각 정보

- Oracle은 1초 단위, SQL Server는 3.33ms(millisecond) 단위 관리 

 

 

반응형

+ Recent posts