데이터 엔지니어링은 컴퓨터의 구조를 이해하고 데이터(특히, 최근에는 빅데이터)를 효율적으로 저장/관리/가공할 수 있는 데이터 파이프라인을 만드는 것이다.
데이터 엔지니어가 되기 위해 우선 관련 기초용어에 대해서 한번 알아보자!
💡 Computing Resource : 데이터를 처리하기 위해서 필요한 리소스
- CPU(Central Processing Unit) : 연산 능력(= 계산량) e.g. # of cores
- 메인 메모리(main memory) : 데이터를 임시 저장할 수 있는 공간의 크기 (= 단기기억)
- 스토리지(storage) : 데이터를 지속적으로 저장할 수 있는 크기 (= 장기기억)
💡 Network : 컴퓨터가 특정 시스템을 통해서 연결되어 있는 구조. 이 구조에서는 컴퓨터들이 서로 통신을 해서 데이터를 주고 받을 수 있다.
- network model : Computer Network를 이해하는 방식. (
OSI 7 layer
vs TCP/IP layer
)
- Client : end-user. 실제 사용자. 서비스 이용자. 작업을 요청하는 사람(또는 프로그램/컴퓨터)
- Server : 요청을 받는 대상. 서비스를 운영해주는 컴퓨터
- Web : Hypertext와 media
- REST API : Rest 기반으로 API를 구현한 것.
💡 데이터베이스 : 데이터를 효율적으로 운영/관리/저장하는 시스템
- RDB : 관계형 db. 테이블 형태로 데이터를 관리하는 체계
- table : row와 column으로 구성된 2차원 데이터.
- schema : 어떤 테이블에 대한 정의. 테이블에 대한 metadata. column에 대한 정의, row에 대한 정의.
- SQL : Structured Query Language. 데이터베이스를 다루기 위한 언어.
- NoSQL : Not only SQL. SQL 그 이상. SQL로 지원되지 않는 데이터베이스들을 포함한 모든 시스템.
Data Warehouse
: 분석을 목적으로 만들어진 대용량 데이터 처리가 가능한 관계형 데이터베이스.
Data Lake
: 수집을 목적으로 만들어진 대용량 데이터 처리가 가능한 NoSQL.