데이터 엔지니어와 데이터 사이언티스트의 차이

데이터 엔지니어(Data Engineer)와 데이터 사이언티스트(Data scientist, 데이터 과학자)에 대한 차이에 대한 포스트입니다.

GPT나 Claude에게 물어보면 잘 대답해 주겠지만 그냥 설명하기 쉽게 표로 만들어 봤습니다.

질문 항목데이터 엔지니어데이터 사이언티스트 (데이터 과학자)
무슨 일을 하는가?데이터 처리에 대한 일을 한다.데이터 분석과 활용에 대한 일을 한다.
한마디로 하는 일을 쉽게 설명하면?데이터 저정, 흐름, 이용에 대한 것을 관리한다.데이터의 분석, 재활용을 통해 부가가치 창출과 서비스 고도화를 한다.
일과 시간에 하는 일은?대부분의 시간을 데이터 플랫폼을 다루는데 쓴다.
S3, BigQuery, Hadoop/Hive/Spark
대부분의 시간을 데이터를 분석하고 모델을 만드는데 쓴다.
통계분석, ML/AI 모델링, 모델 성능 분석
주로 사용하는 도구는?개발툴 보다는 터미널, 관리툴 등을 주로 사용한다.개발툴 보다는 주피터노트북이나 모델링을 위한 스크립트 파일을 작성할 수 있는 편집기를 주로 쓴다.
데이터와 관련된 어떤 일을 하는 것인가?ETL과 같은 업무에 깊이 관여하며 데이터가 잘 전송되고 정합성 문제가 없는지 확인하는 것에 중점을 둔다.ETL 보다는 Feature Engineering이나 aggregation 더 깊이 관여하며 정합성 보다는 좋은 통계적 인사이트를 찾거나 모델을 만드는데 더 중점을 둔다.
포지션(일자리) 수요데이터 관련 인프라 유지가 필요한 회사에서만 포지션이 있다.데이터 분석, 데이터 과학을 서비스에 적용할 일이 있는 회사에만 필요
경력이 많아짐에 따라 발전 하는 것어느 정도 경력이 쌓이면 더 발전할 것은 없고 사용하는 솔루션의 종류가 운영 경험이 쌓인다.데이터로 부터 얻을 수 있는 인사이트에 통찰이 생기며 다양한 모델링의 종류와 경험이 쌓인다.
급여 수준일반적으로 개발자 보다 조금 높다일반적으로 개발자 보다 많이 높다

Nginx로 userid (쿠키 세션 ID) 자동 생성하기

세션ID, 쿠키ID

쿠키에서 넣어놓는 세션ID(사용자ID)를 속칭 쿠키ID라고 합니다.

웹사이트나 포털사이트에 비로그인 접속자들을 추적하기 위해서 사용합니다.

구글, 네이버, 온라인광고, 이커머스 등의 사이트에서 사용자의 행적을 추적할 때 가장 많이 사용합니다.

이 비식별 키를 기준으로 사람들의 행동을 쌓아놓은 로그데이터인 행적데이터(로그 데이터)가 빅데이터에서 말하는 대량 데이터의 핵심 중 하나입니다. 이 로그를 분석하면 인사이트가 나옵니다.

로그인하지 않는 경우에는 추천시스템도 이 데이터를 기본으로 만들며 세그멘테이션, 데이터 교환 같은 것도 다 이것을 기준으로 합니다.

생성 방법

예전에는 백엔드서버에서 생성을 해서 쿠키로 생성해주는 방식을 많이 썼지만 NginX에 userid라는 모듈이 있어서 이 일을 대신해주니 편리합니다. NginX 없이 바로 웹서비스를 하는 경우에는 구현이 필요합니다.

보통 랜덤값을 생성해서 16바이트 또는 32바이트 16진수값을 문자열로 바꿔서 넣습니다.

사용자의 IP나 특별한 정보를 넣기도합니다만 쓸모가 없어서 요즘은 잘 하지 않습니다.

userid on;
userid_name uid;
userid_domain example.com;
userid_path /;
userid_expires 365d;
userid_p3p 'policyref="/w3c/p3p.xml", CP="CUR ADM OUR NOR STA NID"';

만료기간은 기본 1년으로 되어 있지만 넉넉하게 5년쯤으로 넣어 놓으면 됩니다.

셀리니움 “Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다” 없애기

Python

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

options = Options()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

# user-agent를 일반적인 브라우저와 비슷하게 설정
options.add_argument('--disable-blink-features=AutomationControlled')

# 크롬 드라이버 경로 설정
service = Service(executable_path="path_to_chromedriver")

driver = webdriver.Chrome(service=service, options=options)

# 필요한 작업 수행
driver.get('https://www.example.com')

# 작업 종료 후 드라이버 종료
driver.quit()