Jupyter Lab 작동 원리
Jupyter Lab은 클라이언트-서버 구조로 작동하며, Jupyter Lab 서버가 백그라운드에서 실행되어 웹 브라우저를 통해 접근할 수 있는 웹 애플리케이션 환경을 제공합니다. 여기서 서버 역할을 하는 Jupyter Lab Server가 핵심인데요, 간단히 작동 원리를 설명하자면 다음과 같습니다:
1. Jupyter Lab 서버 실행
'jupyter lab' 명령어를 입력하면, 로컬에서 서버가 시작됩니다. 이 서버는 기본적으로 특정 포트 (예: `8888`)를 열고 사용자의 요청을 처리할 준비를 합니다.
이 서버는 사용자의 코드를 실행하고 결과를 반환하는 역할을 하며, 웹 애플리케이션 형태로 인터페이스를 제공하는 역할도 수행합니다.
2. 웹 브라우저에서 접속
Jupyter Lab 서버가 실행되면, 서버는 'localhost' (기본적으로 127.0.0.1)와 특정 포트 (보통 `8888` 포트)에서 대기합니다.
사용자는 웹 브라우저에서 'http://localhost:8888' 주소를 입력해 Jupyter Lab 인터페이스에 접속할 수 있습니다. 웹 브라우저는 실제로는 Jupyter Lab 서버와의 HTTP 연결을 통해 대화하게 됩니다.
3. 세션과 커널 관리
웹 애플리케이션 형태의 Jupyter Lab 화면에서 사용자 인터랙션(코드 실행, 파일 편집 등)이 발생하면, 서버는 각 요청을 받아들여 해당 작업을 처리하는 커널에 전달합니다.
Jupyter Lab 서버는 여러 커널(예: Python, R 등)을 실행할 수 있으며, 각 커널은 독립된 계산 환경을 제공합니다.
원래는 jupyter lab 실행시키면 웹화면이 바로 실행됐다. 혹시 안뜨면 'http://localhost:8888~~~~' 로 웹브라우저에 입력하면 들어갈 수 있었다. 그동안 ubuntu (wsl) 환경으로 접속했을때는 잘 됐는데, window powershell 로 워크스테이션으로 접속하니 자동 웹실행이 안되고, local 주소로 웹브라우저 접속도 localhost denied 뜨면서 접속이 불가능했다. 이부분은 네트워크 처리 관련해서 wsl ubuntu 와 window powershell 처리 방식이 달라서 그렇다고 한다. gpt 읽어봐도 이해가 잘 되지 않아서 일단 이부분은 건들지 않았다.
1. WSL과 Windows의 IP 구조
WSL 2는 Windows에서 작동하는 별도의 경량 가상 머신으로, 자체적으로 네트워크 인터페이스와 고유한 내부 IP 주소를 가집니다. 따라서 Windows와 WSL 환경은 서로 다른 IP 주소를 가지게 됩니다.예를 들어:Windows의 로컬 IP 주소가 192.168.1.100일 수 있고,WSL은 172.20.16.1과 같은 다른 내부 IP 주소를 가질 수 있습니다.이런 방식으로 WSL 2는 마치 별도의 네트워크 장치처럼 작동하여 독립적인 네트워크 인터페이스를 생성합니다. 이 인터페이스는 WSL 환경 내부에서 localhost로 접속하면 정상적으로 연결이 되지만, Windows의 PowerShell에서 동일하게 접근할 수는 없습니다.
2. 네트워크 공유 의미
WSL과 Windows는 인터넷에 연결할 때 같은 외부 IP 주소를 사용합니다. 예를 들어, 공유기를 통해 인터넷에 연결될 때는 같은 외부 IP로 나가지만, 내부 네트워크에서는 서로 다른 IP 주소로 구분됩니다.이로 인해 WSL은 Windows 시스템의 인터넷 연결을 공유할 수 있지만, 내부 네트워크에서는 WSL과 Windows가 서로 독립된 로컬 IP를 가진 상태로 서로 구분됩니다.
3. 네트워크 인터페이스와 외부 접속
Windows의 PowerShell에서 WSL에 접근하려고 할 때는 WSL의 네트워크 인터페이스를 직접 참조할 수 없어서 localhost로 Jupyter Lab 서버에 접속할 수 없습니다.반면, 외부에서 접속할 때는 WSL과 Windows가 같은 네트워크를 통해 나가기 때문에 WSL에서도 동일하게 외부 인터넷에 접근할 수 있게 됩니다.
요약
WSL은 Windows와 다른 로컬 IP 주소를 가지며, 내부 네트워크에서는 서로 독립적입니다.인터넷에 나갈 때는 같은 외부 IP 주소를 공유하지만, 내부적으로는 분리된 네트워크 인터페이스를 통해 통신합니다.
이런 구조 때문에 WSL 내에서는 Jupyter Lab 서버에 직접 연결이 가능하지만, PowerShell에서는 WSL의 localhost에 직접 연결할 수 없는 것입니다.
wsl ubuntu 와 window powershell 네트워크 처리 방식 차이를 설명하는 GPT 답변이다.
No web browser found: Error('could not locate runnable brower')
에러 코드를 읽어보니 워크스테이션 내 계정에 웹브라우저가 깔려있지 않아서 그런가? 싶어서 firefox를 설치했다.
# firefox 다운로드
cd ~
wget -O firefox.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=ko"
# firefox 압축해제
tar xjf firefox.tar.bz2
# firefox 실행해보기
cd firefox
./firefox
워크스테이션 내 계정에 firefox를 깔아주고 실행시켜 보았다.
window PowerShell 에서 리눅스 워크스테이션 접속 후 conda 가상환경을 원하는 것으로 바꾼다.
여전히 웹이 자동으로 실행되면서 연결되진 않지만, 'http://localhost~~' 주소로 미리 띄어놓은 firefox에 입력하면 jupyter lab 웹으로 띄우는데 성공했다.
wsl ubuntu 말고 window PowerShell 로 워크스테이션에 접속해야하는 이유
2024.11.08 - [분류 전체보기] - 리눅스 워크스테이션 로그인 (WSL ubuntu, Windows Shell)
'IT.DT' 카테고리의 다른 글
리눅스 워크스테이션 로그인 (WSL ubuntu, Windows Shell) (4) | 2024.11.08 |
---|---|
Notion desktop app 마우스 커서 하얀색으로 나올 때 해결법 (1) | 2024.11.08 |
인코딩(Encoding) , UTP-8,16,32 개념 (1) | 2024.09.01 |
로컬서버(Web Server), 웹서버(Local Server) 개념 (0) | 2024.09.01 |
Apache, MySQL, PHP 개념과 상호작용 flow (0) | 2024.09.01 |