2025. 3. 10. 16:57ㆍ고급 웹프로그래밍
웹 프로그래밍, 웹 에서 서비스를 개발하기 위해선 많은 영역의 지식을 알아야 한다
ex) cs, algorithm, DB ... 등
이 고급 웹프로그래밍은 전체적인 과정을 얕게나마 한번 공부하기 위해 만들었다.
환경설정
먼저 프로젝트를 시작하기 앞서 환경을 설정해야 한다.
- WSL2 설치 및 설정
- pyenv 설치 & Python 설정
- Conda 설치 & 가상환경 구성
- Docker 설치 & 실행
pyenv와 conda는 python 명령어를 제어 할 수 있어 충돌이 발생할 수 있다. pyenv가 먼저 Python을 제어할 수 있도록 먼저 설치한다(~/ .bashrc에서 $path를 수정할 수 있는 분은 conda 다음에 설치하셔도 됨)
중요!! 데이터 분석이나 연산과 같은 작업을 안하는 분은 그냥 conda는 설치하지 않도록 하자!!
1. WSL2 설치
설치 하는 이유:
- WSL 2는 Docker와 완벽하게 연동됨
- 실제 서버 환경과 동일한 개발 환경을 구축할 수 있음
- 리눅스 명령어를 사용할 수 있음 (와아아앙전 편함)
- 관리자 모드로 터미널에서
wsl --install
를 실행 한다.
그 후 시스템을 재부팅 한다.
- Microsoft Store에서 Ubuntu를 검색하여 설치한다.
(24.04는 최신 버전이라 어떤 문제가 있을지 잘 모르니 22년04월에 나온 ubuntu 22.04를 추천)
(또는 터미널에서wsl --list --online
를 하고 설치 가능 목록을 보고wsl --install -d Ubuntu-22.04
이런식으로 설치)
- 마지막으로 유닉스 시스템의 이름과 패스워드를 지정 해주면 설치가 완료된다.
(microsoft store에서 열기 누르면 된다, 혹은ubuntu2204.exe
를 터미널에서 입력해준다.) -
- 이후에는 터미널에서
wsl
을 입력하면 ubuntu를 사용할 수 있지만 그것마저 귀찮다면 터미널의 기본 설정을 ubuntu로 바꾸면 된다. -
2. vscode에 WSL2 연동하기
- vscode의 extension에서 wsl을 검색하여 설치한다.
- 그 후 터미널에서
code .
를 입력하면 현재 디렉터리에서 vscode가 열린다.
Pyenv 설치
설치하는 이유:
- 시스템 전역의 파이썬 버전 관리 가능
- pyenv를 사용하면 프로젝트 폴더마다 .python-version 파일을 두어 자동으로 Python 버전 전환 가능.
- wsl에서
curl -fsSL https://pyenv.run | bash
를 입력하여 pyenv를 설치한다. - pyenv를 path에 등록하여 컴퓨터가 경로를 읽을 수 있게 해준다.
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init --path)"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc # virtualenv 사용 시 필요
- 소스 코드에서 직접 Python을 빌드하기 위해 c컴파일러 및 필요 패키지 설치
sudo apt update && sudo apt upgrade -y # 패키지 목록 업데이트 sudo apt install -y build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \ libffi-dev liblzma-dev
사용 중인 SHELL이 zsh라면 bashrc
말고 zshrc
를 사용하면 된다
- 셀을 닫고 다시 키던가
source ~/.bashrc
를 하여 변경사항을 적용한다. pyenv --version
을 하여 잘 설치되었는지 확인한다.pyenv install -list
를 입력하여 원하는 버전을 찾고pyenv install 버전
,pyenv global 버전
을 하여 전역에 설정 (특정 폴더에만 적용할거면pyenv local 버전
)python --version
을 하여 잘 적용 됐는지 확인 (현재 어떤 버전들이 깔렸는지 확인하고 싶다면pyenv versions
)
conda 설치
사실 도커가 있다면 로컬에 안깔아도 가상 환경에 설치할 수 있음, 근데 본인은 도커를 해본적이 없는 상태에서 데이터 분석을 지금 해야 할 일이 있어서 진짜 굳이굳이 설치한다
(계속 말 하지만 지금 당장 데이터 분석 할거 아니면 굳이 설치하지 말자, 본인은 데이터 분석을 해야 하는 일이 있어서 굳이 따로 설치함)
설치하는 이유:
- 프로젝트별 가상 환경 & 데이터 엔지니어링 패키지 관리(같은 OS 안에서 Python/R 라이브러리를 가상 환경으로 관리)
pyenv install miniconda
로 설치가 아닌 개별적으로 설치하는 이유
a. pyenv global 또는 pyenv local을 통해 Python 버전을 바꾸면, Conda도 따라 바뀜.
b. conda 업데이트가 어려움
- wsl에서 아래와 같은 명령어를 입력한다(*약관, 설치 경로, 초기화 여부에 대해 묻는데 그냥 yes, enter, yes 하면 된다)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash ~/Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
로 변경사항을 적용한다.conda --version
을 하여 제대로 설치됐는지 확인하다.conda config --set auto_activate_base false
을 하여 시작시 자동으로 (base)환경이 시작되는것을 끝다.
conda를 만약 사용할 일이 생기면(적어도 이 프로젝트를 하는 동안에는 사용할 일이 매우 높은 확률로 없겠지만)pyenv global system
로 기본 Python을 시스템 Python으로 변경 후 conda 가상환경 활성화 시킬 것, 반대도 콘다 가상환경 끄고 pyenv 사용할 것
뭔가 충돌이 발생한다? which python
을 하여 파이썬이 어디에서 동작하는지 확인해보자.
파이썬의 경로가 miniconda
파이썬의 경로가 pyenv
docker 설치
docker 설치하는 이유
- 배포 환경과 동일한 개발 환경을 만들 수 있음
- OS 자체를 컨테이너로 격리 → 시스템 전체를 독립적으로 실행 가능
- 웹 서버, 데이터베이스, 캐시 서버를 각각의 컨테이너로 실행하고, 필요할 때 개별적으로 확장 가능
- 위 docker를 클릭하여 나온 링크에서 Docker Desktop for Windows. 를 클릭하여 Docker를 다운 받는다.
- wsl2에서 직접 설치가 가능하나 이렇게 설치하는게 더 쉽다(단점: docker desktop을 활성화 해야 사용가능)
- wsl2에서 직접 설치가 가능하나 이렇게 설치하는게 더 쉽다(단점: docker desktop을 활성화 해야 사용가능)
- 시스템이 재부팅 되고 나면 accpet를 누른다.
- 설정 -> resources -> WSL integration에서 원하는 버전을 클릭 후 apply & restart를 클릭
4. wsl에서 docker --version
을 입력하여 버전 및 빌드번호 확인
5. docker run hello-world
명령을 사용하여 간단한 기본 제공 Docker 이미지를 실행하여 올바르게 설치되었는지 테스트
(대충 이미지가 없어서 다운 받았고 당신은 이걸 성공적으로 해냈다, 다른 거 보고 싶으면 아래 링크들을 봐라)
6. docker ps -a
로 실행중이거나 종료된 컨테이너 확인
'고급 웹프로그래밍' 카테고리의 다른 글
FastAPI(models) (0) | 2025.04.02 |
---|---|
FastAPI(Header) (0) | 2025.04.02 |
FastAPI(Body) (2) | 2025.03.27 |
FastAPI(경로 매개변수) (0) | 2025.03.26 |
FastAPI(1) (0) | 2025.03.24 |