1 분 소요

데이터 엔지니어를 이해하기 위한 기본개념

인터넷

  • 인터넷이란

    • 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
  • 데이터를 수집하고 저장하고 처리하는데 필요한 모든 스킬이 필요함

댓글남기기