Computer Science18 [Docker] 서버 가상화 및 도커 기본 사용법 가상화 하이퍼바이저 형 가상화 방식은 Vmware 처럼 가상머신에 Guest OS, 가상 CPU, 가상 메모리 등을 제공하여 마치 물리서버처럼 실행되는 것 처럼 보인다. 하지만, 이 방식은 가상머신 이미지마다 결국 OS가 필요하게 되고, 가상머신마다 운영체제가 달라질 수 있어 운영관리의 어려움이 발생할 수 있다. 이와 달리 컨테이너 형 가상화 방식은 여러 개의 컨테이너를 호스트 OS 커널에서 직접 실행하게 된다. 따라서 컨테이너는 기존 가상화 기술보다 가볍게 동작한다. 컨테이너 기술은 갑자기 등장한 것이 아니고, 기존 리눅스 기반 시스템에서 프로세스 간 격리를 위해 사용하던 기술들을 조합하여 발전시켜 만들졌다고 볼 수 있다. chroot와 네임 스페이스, cgroup을 조합한 형태인 LXC(Linux C.. Computer Science/etc 2023. 1. 19. 데이터베이스 기초 데이터베이스 데이터베이스를 사용하는 이유 데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. (현재도 부분적으로 사용되고 있다.) 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 한다. 이 때의 문제점은 데이터 종속성 문제와 중복성, 데이터 무결성이다. 데이터베이스의 특징 데이터의 독립성 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다. 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다. 데이터의 무결성 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지.. Computer Science/DataBase 2023. 1. 9. [HTTP] CORS Preflight CORS란? CORS(Cross-Origin Resource Sharing)는 HTTP 헤더를 이용하여, 해당 자원에 접근할 수 있는 권한을 브라우저에게 알려주는 체제이다. 여기서 Origin(출처)는 프로토콜, 도메인, 포트번호를 묶어 말하는 것인데, 이 중 하나라도 다르면 다른 출처이다. 즉, CORS는 요청보낸 곳과 받는 곳의 출처가 다를 때, 이를 허용할지 말지 설정하는 것이라고 할 수 있다. CORS는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원하므로 웹 기술에서 필수적이라고 할 수 있다. CORS를 사용하는 요청 종류 XMLHttpRequest나 Fetch API 호출 웹 폰트(CSS 내 @font-face에서 교차 도메인 폰트 사용 시) WebGL 텍스쳐 drawIma.. Computer Science/Network 2023. 1. 8. [정보처리기사] 실기 핵심 내용 요약 정보처리기사에서 자주 등장하는 내용 중 개인적으로 암기가 필요한 내용 위주로 정리했습니다. 애자일 방법론 XP : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론 XP 5가지 가치(용단의피존) 용기 단순성 의사소통 피드백 존중 XP 12가지 원리 짝 프로그래밍(Pair Programming) 공동 코드 소유 지속적 통합(CI) 계획 세우기 작은 릴리즈 메타포어 : 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간의 의사소통을 원활하게 함 간단한 디자인 TDD 리팩토링 40시간 작업 고객 상주 코드 표준 스크럼(Scrum) : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 방법론 백로그 : 요구사항 스프린트 : 짧은 개발 기간 반복적 수행 스크럼 미팅 : .. Computer Science/etc 2022. 7. 23. [빅데이터 분석기사] 실기 요약본 (5) - 작업형 함수 정리(with. R) 데이터 전처리 default packages : base, stats, ... is.na(x) : 데이터의 각 행과 열이 결측값인지 보여줌 na.omit(x) : 결측값이 하나라도 있는 행 제거, 완전 분석법 scale(x, center, scale) : 기본은 z-score 정규화(표준화), 최대-최소는 center = min(), scale = max() - min() IQR(x, na.rm, ...) : 사분위수 범위 quantile(x, na.rm, ...), fivenum(x, na.rm, ...) : 분위수 sample(x, size, replace) : 무작위추출 // 예측 문제에서 주로 사용 row_number(x) : 순위 지정(중복 x) / min_rank(x) : 공동 순위 xtabs.. Computer Science/etc 2022. 6. 24. [빅데이터 분석기사] 실기 요약본 (4) - 빅데이터 결과 해석 평가지표 편향 : 학습 알고리즘에서 잘못된 가정을 했을 때 발생하는 오차 분산 : 훈련 데이터에 내재된 작은 변동으로 발생하는 오차 종속변수가 범주형 – 혼동 행렬 / 연속형 – RMSE 분류 모형 평가는 혼동 행렬, ROC 곡선, AUC 사용 카파 통계량 : 우연히 나온 결과가 아니라는 것을 설명 혼동 행렬 평가 지표 정확도 : $\frac{TP + TN}{TP + TN + FP + FN}$, 전체 예측에서 실제 맞춘 정도 오차 비율 : $\frac{FP + FN}{TP + TN + FP + FN}$, 전체에서 잘못 분류한 비율 참 긍정률(TPR), 재현율, 민감도 : $\frac{TP}{TP + FN}$, 실제 긍정에서 긍정으로 예측해서 맞춘 비율 특이도 : $\frac{TN}{TN + FP}$, 실.. Computer Science/etc 2022. 6. 24. [빅데이터 분석기사] 실기 요약본 (3) - 빅데이터 모델링 분석 모형 1. 통계기반 기술 통계 : 데이터를 확률/통계적으로 정리/요약하는 기초적인 통계 방법 상관 분석 : 두 개 이상의 변수 간에 존재하는 상호 연관성의 적도를 측정하여 분석 회귀 분석 : 하나 이상의 독립변수들이 종속변수에 미치는 영향 추정 분산 분석 : 두 개 이상의 집단 간 비교를 수행, 분산 비교로 얻은 분포 이용 주성분 분석 : 원래 변수의 선형 결합으로 주성분 변수를 추출하는 통계 방법 판별 분석 : 다변량 기법으로 조사된 집단에 대한 정보를 활용, 어떤 집단인지 탐색 2. 데이터 마이닝 기반 분류 모델 : 객체들을 사전에 전해진 범주 중의 하나로 분류 예측 모델 : 과거 데이터로부터 특성을 분석하여 결괏값을 예측 군집화 모델 : 이질적인 집단을 몇 개의 동질적인 소집단으로 세분화 연관.. Computer Science/etc 2022. 6. 24. [빅데이터 분석기사] 실기 요약본 (2) - 빅데이터 탐색 데이터 세분화 : 선택한 매개변수를 기반으로 데이터를 그룹화(군집화와 동일) 계층적 방법 : 사전에 군집수 지정X, 단계적으로 결과 산출 응집분석법 : 유사한 소집단들을 합쳐 새로운 소집단 구성 분할분석법 : 유사성이 떨어지는 객체들을 분리해가는 방법 비계층적 방법 : 소집단의 개수를 지정 인공 신경망 모델 K-평균 군집화 데이터 결측값 종류 MCAR : 결측값이 다른 변수들과 아무 상관이 없음 MAR : 누락은 특정 변수와 관련되어 나타나지만, 결과는 관계없음 MNAR : 결측값이 다른 변수와 연관되어 나타남 결측값 처리방법 단순 대치법 완전 분석법 평균 대치법 단순 확률 대치법 : 적절한 확률값 부여 후 대치 핫덱 대체 : 현재 진행 중인 연구에서 비슷한 성향으로 대체 콜드덱 대체 : 외부에서 데이터.. Computer Science/etc 2022. 6. 24. [빅데이터 분석기사] 실기 요약본 (1) - 빅데이터 분석 기획 제가 주관적으로 중요한 것, 헷갈리는 것 위주로 정리하다보니 중간중간 빠진 내용도 있습니다. 수제비 2022 - 빅데이터분석기사 실기 도서를 참고하여 정리했습니다. 하둡 에코시스템 1. 데이터 수집 척와 : 대규모 분산 시스템 모니터링, 에이전트/컬렉터로 수집, HDFS에 저장 플럼 : 대용량 로그 데이터 수집/집계/저장, 이벤트/에이전트 활용 스크라이브 : 대용량 실시간 로그 수집 시스템, HDFS 외에 다양한 저장소에 저장 스쿱 : 대용량 데이터 전송 시스템, 커넥터를 이용해 RDBMS ↔ HDFS 전송 히호 : 대용량 데이터 전송 솔루션, SQL 지정가능, JDBC 지원 아파치 카프카 : 실시간 로그 처리, 메시징 시스템과 유사, 분산 스트리밍 플랫폼 기술 2. 데이터 저장 HDFS : 대용량 파일.. Computer Science/etc 2022. 6. 24. 레드-블랙 트리 (Red-Black Tree) 레드-블랙 트리(Red-Black Tree, RB Tree) 트리(Tree)의 가장 큰 장점은 분기(branch)마다 데이터 탐색 범위를 대폭 줄여나간다는 것이다. 하지만 이 장점을 제대로 활용하기 위해서는 트리 자체가 균형을 이뤄야 한다. 즉, 편향된 트리는 메모리만 더 많이 사용할 뿐 $O(N)$ 속도로 탐색되기 때문이다. 이러한 문제점을 해결하기 위해 B Trees와 같이 자가 균형 트리(Self-Balanced Tree)들이 등장했다. 레드-블랙 트리(RB Tree)는 자가 균형 이진 탐색 트리(Self-Balanced Binary Search Tree)로 1978년 레오 귀바스(Leo J. Guibas)와 로버트 세지윅이 1972년 루돌프 바이어가 창안한 "대칭형 이진 B-트리"를 발전시켜 만들.. Computer Science/Data Structure 2022. 6. 5. B Trees (B-Tree & B+ Tree & B* Tree) B Trees B Trees는 데이터 탐색을 더 빠르게 하기 위한 자체 균형 트리(Self-Balanced Tree) 중 하나이다. 트리 종류 중 편향 트리(Skewed Tree)는 최악의 경우 시간 복잡도가 O(N)으로 늘어난다. 따라서, 트리는 편향되지 않도록 균형을 맞추면서 데이터를 저장하는 것이 중요하다. 균형 트리들은 각 트리마다 균형을 맞추는 방법이 조금씩 다르다. B Trees는 주로 디스크를 이용하는 파일 시스템(File System)이나 데이터베이스(RDBMS)에서 인덱스를 통한 빠른 데이터 조회를 위해 사용되는 자료구조이다. 데이터를 빨리 찾기위해 인덱스를 작성하기 시작했으며, 데이터가 많아지자 인덱스 양도 늘어나게 됐다. 인덱스의 효용성을 늘리기 위해 인덱스의 인덱스가 작성됨에 따라 .. Computer Science/Data Structure 2022. 6. 2. 해시 테이블(Hash Table) 해시 테이블(Hash Table) 해시 테이블(Hash Table)이란 Key-Value 쌍으로 데이터를 저장하는 자료구조이다. 배열에서 인덱스를 통해 값에 접근하듯이, 해시 테이블 역시 Key를 통해 Value에 접근한다. 배열의 인덱스는 중복되지 않는 정수이지만, 해시 테이블의 Key는 다양한 자료형이 올 수 있다. 하지만 기본적인 저장공간은 배열이기 때문에 결국 Key를 정수인 Index로 변환해야 한다. 이 변환해주는 함수를 해시 함수(Hash Function)라고 한다. 즉, Key를 해시함수 H를 통해 H(key)라는 인덱스를 만들고, 이를 통해 배열에 저장된 Value를 획득하는 방법이다. 해시값을 통해 접근하는 배열을 버킷(Bucket)이라고 한다. 결국 Key를 해시 함수에 한 번만 적용.. Computer Science/Data Structure 2022. 6. 1. 이전 1 2 다음