[데이터엔지니어]
데이터 엔지니어를 이해하기 위한 기본개념
인터넷
-
인터넷이란
-
TCP/IP (Transmission Control Protocol/Internet Protocol) 라는 통신 프로토콜(일종의 약속, 규약)을 이용해 정보를 주고 받는 컴퓨터 네트워크 (해저케이블이 전세계에 이어져있음)
-
무선인터넷은 케이블(선)이 아닌 주파수를 매체로 사용됨
-
우리는 단말기(스마트폰, 무선연결된 노트북 등)만을 무선으로 사용하고 있음 공유기부터는 전부 유선..
-
서버와 클라이언트
-
Client
-
개인 PC의 브라우저(어플리케이션)
-
서버에 데이터를 요청
-
-
Server
-
Client의 요청에 따라 데이터를 전송
-
어딘가에 24h 켜져있음
-
PC(Client)와 Server 사이에 Internet이 있음
-
-
Server Client Architecture
-
PC에 브라우저가 설치되어있고 유저는 브라우저를 통해 인터넷에 접속(Client)
-
인터넷을 통해 Server에 데이터를 요청
-
Server는 Web Application을 통해 Database와 통신 ,
Client로 부터 요청받은 데이터를 Database에서 받아와 전달하거나 Client가 제공한 데이터를 Database에 저장
-
URL
-
Uniform Resource Locator
-
ex) https://news.naver.com/main/read.naver?sid1=105&oid=001&aid=0009847211
-
https:// - Protocol
-
news - Sub Domain
-
naver.com - Domain
-
80 - port
-
/main/ - path
-
read.nhn - page
-
?sid1=105&oid=001&aid=0009847211 - query (aid=article id)
-
-
URL 과 서버와 클라이언트
위 URL을 예시로
-
Client는 브라우저에서 https://news.naver.com을 통해 Server에 접속
-
:80 (포트번호) 을 통해 서버는 Web Application에서 맞는 포트를 찾아 들어감
-
/main/이라는 path에 read.nhn이라는 파일이 저장되어있음(Database상)
-
Web Application에서는 aid=0009847211이라는 query를 통해
-
Database에서 해당 파일정보를 불러와 HTML을 생성하여 Server에 전달
-
최종적으로 Client에서 해당 정보를 받아봄(화면에 출력)
-
개발자
크게 5가지 분야로(명확하게 구분하기는 어렵지만)
-
Publisher
- 브라우저의 화면을 구성하는 HTML/CSS 위주의 코드 작성
-
FrontEnd Developer
- 브라우저의 이벤트 처리를 위한 Javascript 위주의 코드 작성
-
System Engineer
- Server 컴퓨터 인프라 구축, 유지 관리
-
BackEnd Developer
- Server 컴퓨터에서 동작하는 Web Application 개발
-
DBA
-
Database Administrator
-
DB를 구성하고 SQL을 통해 데이터를 관리
-
클라우드 서비스
-
AWS, Azuer, Google Cloud Platform 등
물리적인 서버를 구축하는 대신 클라우드 서비스를 제공하는 회사들이 구축해놓은 서버를 빌려서 사용하는것
데이터 엔지니어
- System Engineer + BackEnd Developer + DBA
- 데이터를 수집하고 저장하고 처리하는데 필요한 모든 스킬이 필요함
댓글남기기