Hong의 모든 글

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이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다” 없애기

웹사이트에서 접속하는 웹브라우저가 자동제어되는 웹브라우저인지 아닌지 알아낼 수 있습니다.

웹드라이버로 조종되고 있는지 아닌지를 웹 브라우저가 알려주도록 되어 있기 때문입니다. 그걸 이용해서 자동화해서 데이터를 가져가지 못하게 차단하는 웹사이트가 있습니다.

웹사이트에서 차단하지 못하게 웹드라이버로 조종되는지 알려주는 것들을 제거하거나 가리는 방법입니다.

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()

Zulu JDK와 Jenkins 설치하기 – Ubuntu 24.04

Ubuntu 24.04에 Zulu JDK와 Jenkins를 설치하는 방법

Ubuntu 24.04에 Zulu JDK와 Jenkins를 설치하는 방법을 단계별로 설명드리겠습니다.

이 가이드에서는 먼저 Azul Zulu JDK를 설치한 후, Jenkins를 설치하는 절차를 다룹니다.

Jenkins는 Groovy 언어로 개발되었으므로 JDK가 필요합니다. Zulu JDK가 성능이 좋고 사용하기 편안하므로 무난하게 이걸 설치합니다. Jenkins는 가능한 최신 버전을 설치합니다.

1. Azul’s Public Key 등록

먼저, Azul의 공용 키를 등록합니다.

이를 위해 gnupg, ca-certificates, 및 curl을 설치한 후, 공용 키를 다운로드하고 시스템에 등록합니다.

sudo apt install gnupg ca-certificates curl
curl -s https://repos.azul.com/azul-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg
echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | sudo tee /etc/apt/sources.list.d/zulu.list

2. 사용 가능한 패키지에 대한 정보 업데이트

Azul Zulu 리포지토리를 설정한 후, 패키지 목록을 업데이트합니다.

sudo apt update

3. 필요한 Azul Zulu 패키지 설치

이제 설치하고자 하는 Zulu JDK 버전을 설치합니다. 예를 들어, Zulu 21 JDK를 설치하려면 아래 명령을 실행합니다.

sudo apt install zulu21-jdk -y

4. 자바 설치 버전 확인

설치가 완료되면, Java가 올바르게 설치되었는지 확인합니다.

java -version

예상 출력:

openjdk version "21.0.1" 2023-10-17 LTS
OpenJDK Runtime Environment Zulu21.30+15-CA (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Zulu21.30+15-CA (build 21.0.1+12-LTS, mixed mode, sharing)

Jenkins 설치

다음으로, Jenkins를 설치하는 방법을 안내드리겠습니다.

1. Jenkins의 Public Key 등록

먼저, Jenkins의 공용 키를 다운로드하여 시스템에 등록합니다.

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key

2. Jenkins 리포지토리 추가

Jenkins 리포지토리를 추가합니다.

echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null

3. 패키지 목록 업데이트

패키지 목록을 업데이트합니다.

sudo apt-get update

4. Jenkins 설치

마지막으로, Jenkins를 설치합니다.

sudo apt-get install jenkins

이로써 Ubuntu 24.04에 Zulu ZDK와 Jenkins를 성공적으로 설치할 수 있습니다.

추가적인 설정이나 문제 해결이 필요하시면 공식 문서나 커뮤니티 포럼을 참고하시기 바랍니다.