본문 바로가기

빅데이터/개념 정리

(9)
메모리 구조에 대하여, 코드는 어떻게 실행되는걸까? 프로그램 실행(로드) ① 프로그램 실행을 요청(request)한다. ② 프로그램의 정보를 읽어 메모리에 로드(load)한다. ③ CPU는 프로그램 코드를 가져와 메모리를 관리하고 명령문(function, method)을 실행한다. ④ Heap: 동적 메모리가 할당되면 FreeStore 영역을 사용한다. (low memory -> high memory) ⑤ Stack: 동적 메모리가 할당되면 FreeStore 영역을 사용한다. (high memory -> low memory) 메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 한다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다. 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제..
HashMap(해쉬맵)에 대한 개념과 사용방법 HashMap 이란? Java Collections Framework에 속한 구현체 클래스이면서, Map 인터페이스를 구현한 함수이다. 따라서 데이터의 저장은 key, value 형태가 된다. key 값의 hashCode를 index로 Araay에 값을 저장한다. 따라서 검색속도는 매우 빠르다. 그리고 해싱(Hashing) 검색을 사용하기 때문에 대용량 데이터 관리에도 좋은 성능을 보여주고 있다. key 값은 중복이 되지 않고, value 값은 허용이 된다. '키에 대한 해시 값을 사용하여 값을 저장하고 조회하며, 키-값 쌍의 개수에 따라 동적으로 크기가 증가하는 associate array'이다. (출처: https://d2.naver.com/helloworld/831311) 이 associate ar..
JOIN, Sub Query, Transaction 개념정리 노트 JION 테이블 간의 수평적 결합이다. 여러 테이블에 각각 나누어져서 정의된 속성(컬럼)을 동시에 조회할 경우에 사용한다. 1) EQUI JOIN JOIN에 사용되는 테이블의 컬럼간에 정확히 일치(EQUAL)하는 데이터를 return 한다. EQUAL( = ) 연산자를 사용하여 JOIN 한다. SELECT dname,ename,job,sal FROM emp,dept WHERE emp.deptno=dept.deptno AND /* -> JOIN 조건 */ emp.job IN ('MANAGER','CLERK') /* -> 필터링 조건 */ ORDER BY dname; 쿼리 실행순서: 필터링 조건 > JOIN 조건 2) NON EQUI-JOIN EQUAL( = ) 이외의 연산자, 어떤 범위(, BETWEEN,..
Null, DISTINCT, DECODE, CASE, 오라클 함수 Null 값이 정의되지 않은, 존재하지 않는, 할당되지 않은, 현재 데이터를 입력하지 못한 경우, 적용 불가능한 상태 ex) 숫자 0 의 경우 -> ASCII 코드: 48 공백 ' '의 경우 -> ASCII 코드: 32 null 의 경우 -> ASCII 코드: 00 WHERE 절에서 사용할 경우에는 is null 또는 is not null 로 쓴다. null 은 연산할 수 없다. null 은 정렬시 가장 큰 값으로 간주한다. DISTINCT 중복되지 않는 유니크한 튜플만 가져온다. Oracle version 원리 처리 데이터 10g 이전 ORDER BY 규모가 작은 데이터량 10g 이후 Hash 빅데이터 DECODE 함수 Oracle 에서만 지원하는 함수이다. SELECT 문장 내에서 if문을 수행해준다..
데이터베이스의 기초, DBMS DBMS 란 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다. DBMS의 역할과 필요한 이유가 뭘까? 혼란스러운 창고 창고를 이용하려는 직원은 자신이 원하는 것을 찾기 위해 노력해야 한다. 잘 정리된 창고 창고 관리인이 물건의 특징이나 쓰임새에 따라 분류해 놓는다면 쉽게 찾을 수 있다. 1. DBMS(DataBase.. hgserver.tistory.com Database 용어 식별자(identifier): 여러개의 집합체를 담고있는 관계형 데이터베이스에서 구분할 수 있는 논리적인 개념 1) 유일성: 하나의 릴레이션에서 모든 행은 서로 다른 키 값을 ..
docker에 대하여, 왜 인기일까? 도커 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다. docker container 컨테이너는 격리된 공간에서 프로세스가 동작하는 기술이다. 리눅스에서는 리눅스 컨테이너라고 하고 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다. 하나의 서버에 여러개의 컨테이너를 실행하면 서로 영향을 미치지 않고, 독립적으로 실행되어 마치 가벼운 VM(Virtual Machine)을 사용하는 느낌을 준다. docker image 도커는 가상의 공간을 이미지로 만들어 저장한 후 하나의 이미지에서 여러개..
Linux란 무엇이고, 사용하는 이유는? 리눅스란 운영체제이다. 운영체제는여러가지 프로그램의 모음으로, 이 프로그램을 이용해 컴퓨터를 사용하고 다른 프로그램을 실행한다. 리눅스는 유닉스(Unix) 운영체제를 모델로 만든 운영체제이다. 리눅스는 다중 작업, 다중 사용자 시스템으로 설계됐다. 다중 작업, 다중 사용자 시스템이라는 것만으로도 리눅스는 여타의 잘 알려진 운영체제와 차별된다. 다른 운영체제와는 달리 어느 누구도 리눅스를 소유하지 않는다. 자원자의 힘으로 리눅스의 상당 부분을 개발했다. 따라서 리눅스(Linux)는 컴퓨터 운영체제 중 하나이며, 다중 사용자, 다중 작업(멀티테스킹, 다중 쓰레드)를 지원하는 네트워크 운영체제(NOS)이다. 리눅스의 장점 1. 리눅스는 무료 2. 리눅스는 강력한 네트워크를 구축 3. 리눅스는 공개 운영체제 4..
오픈소스 플랫폼 - Kudu 출처 원문 https://d2.naver.com/helloworld/9099561 [저장 측면 - Kudu] 1. 데이터가 칼럼 기반으로 저장돼 있어 특정 칼럼만 읽을 때는 디스크에서 읽는 양을 획기적으로 줄여 성능을 높일 수 있다. 다른 칼럼 기반 스토리지인 Parquet와 다르게 테이블을 생성할 때 각 칼럼마다 압축 방식과 인코딩 방식을 사용자가 지정할 수 있다. 2. 일반 DBMS처럼 primary key를 제공해 랜덤 액세스 속도가 매우 빠르다. Kudu의 primary key는 내부적으로 B+ 트리로 저장돼 있어 대규모 데이터에서도 primary key를 사용해 매우 빠르게 데이터에 접근할 수 있다. 수백억 건의 레코드에서도 primary key로 접근하는 데는 수 밀리초밖에 걸리지 않는다. 3..