Docker 활용한 django 예제

개요

  • Docker에서 django 개발환경 만들기
  • 간단한 웹개발 실습

참고자료

실습사전조건

  • 가상환경으로 Ubuntu 24.04 LTS
  • make : 소스코드를 컴파일할 때 사용하는 자동 빌드 도구이다.
  • build-essential : C/C++ 컴파일에 필요한 기본 컴파일 도구 모음이다.
  • libssl-dev : SSL/TLS 통신을 위한 OpenSSL 라이브러리 개발 헤더이다.
  • zlib1g-dev : 압축 알고리즘용 zlib 라이브러리 개발 파일이다.
  • libbz2-dev : bzip2 압축 알고리즘용 개발 라이브러리이다.
  • libreadline-dev : 터미널에서 편리한 입력을 가능하게 하는 readline 개발 라이브러리이다.
  • libsqlite3-dev : SQLite 데이터베이스 개발에 필요한 라이브러리이다.
  • wget : 파일을 HTTP, HTTPS, FTP로 다운로드할 수 있는 명령줄 도구이다.
  • curl : 다양한 프로토콜로 데이터를 송수신할 수 있는 명령줄 도구이다.
  • llvm : C/C++ 등의 언어를 위한 컴파일러 인프라 구조이다.
  • libncurses5-dev : 터미널 기반 UI(텍스트 기반 사용자 인터페이스)를 만들기 위한 ncurses 라이브러리의 개발 파일이다.
  • xz-utils : .xz 형식의 압축을 처리할 수 있는 도구이다.
  • tk-dev : GUI 애플리케이션을 만들 때 사용하는 Tk GUI 툴킷 개발 파일이다.
  • libxml2-dev : XML 파싱 및 처리 기능을 제공하는 libxml2의 개발 헤더 및 라이브러리이다.
  • libxmlsec1-dev : XML 디지털 서명 및 암호화를 위한 libxmlsec1의 개발 라이브러리이다.
  • libffi-dev : 외부 함수 호출을 위한 외부 함수 인터페이스 개발 라이브러리이다.
  • liblzma-dev : LZMA 압축 알고리즘을 위한 개발 라이브러리이다.
  • python3-openssl : 파이썬에서 OpenSSL을 사용할 수 있도록 하는 패키지이다.
  • git : 분산 버전 관리 시스템으로, 소스코드 형상 관리를 도와준다.
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev python3-openssl git

pyenv 설치

  • 다음 명령어로 실행한다.
$ curl https://pyenv.run | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   270  100   270    0     0    404      0 --:--:-- --:--:-- --:--:--   404
Cloning into '/home/evanjjh/.pyenv'...
remote: Enumerating objects: 1365, done.
remote: Counting objects: 100% (1365/1365), done.
remote: Compressing objects: 100% (725/725), done.
remote: Total 1365 (delta 826), reused 806 (delta 507), pack-reused 0 (from 0)
Receiving objects: 100% (1365/1365), 1.14 MiB | 7.48 MiB/s, done.
Resolving deltas: 100% (826/826), done.
Cloning into '/home/evanjjh/.pyenv/plugins/pyenv-doctor'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11 (delta 1), reused 5 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (11/11), 38.72 KiB | 1.68 MiB/s, done.
Resolving deltas: 100% (1/1), done.
Cloning into '/home/evanjjh/.pyenv/plugins/pyenv-update'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 5 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (10/10), done.
Resolving deltas: 100% (1/1), done.
Cloning into '/home/evanjjh/.pyenv/plugins/pyenv-virtualenv'...
remote: Enumerating objects: 64, done.
remote: Counting objects: 100% (64/64), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 64 (delta 10), reused 23 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (64/64), 43.08 KiB | 2.15 MiB/s, done.
Resolving deltas: 100% (10/10), done.

WARNING: seems you still have not added 'pyenv' to the load path.

# Load pyenv automatically by appending
# the following to 
# ~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
# and ~/.bashrc (for interactive shells) :

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"

# Restart your shell for the changes to take effect.

# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:

eval "$(pyenv virtualenv-init -)"

.bashrc 파일 설정

  • 먼저 vim을 설치한다.
sudo apt-get update
sudo apt-get install -y vim
  • .bashrc 파일을 연다
vi ~/.bashrc
  • 파일을 열면 다양한 환경변수 설정 코드가 들어 있다.

image.png

VS Code에서 가상머신 접속

사전조건

  • 사전에 가상 머신, VS Code는 설치가 되어 있다고 가정한다.

가상머신 네트워크 설정

  • Putty로 가상 머신 네트워크에 접속하는 방법 참고 :

VS Code SSH 파일 설정

  • Extension에서 SSH 검색 후 Remote - SSH 선택

image.png

  • SSH Config 설정
    • F1 누르고 SSH 입력
    • 메뉴들 중 Connect to Host 선택

image.png

  • Configure SSH Hosts 선택

image.png

  • .ssh\config 메뉴 선택

image.png

  • 필자는 기존에 세팅한 옵션 확인

image.png

  • 다음과 같이 설정
    • User는 가상환경 만들 때 작성했던 username이다.
    • 즉 Computer 이름인 evan-master를 기재한다.

image.png

VirtualBox 네트워크 설정하기

개요

  • VirtualBox에서 네트워크 환경을 구축한다.
  • Putty 프로그램을 통해 Windows 11에서 Ubuntu에 접속한다.

VirtualBox 에서 네트워크 환경 구축

  • 네트워크 관리자 선택
  • NAT 네트워크 탭 선택

image.png

image.png

  • 만들기 버튼 클릭, DHCP 활성화 체크 된 상태 유지

image.png

  • 가상환경 설정에서 네트워크 선택 (어댑터 1 선택)

image.png

  • 가상환경 재 실행 및 포트번호 확인
    • inet 10.0.2.15 번호는 사용자 환경에 따라 다를 수 있음
$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fecb:782d  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:cb:78:2d  txqueuelen 1000  (Ethernet)
        RX packets 14  bytes 3218 (3.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 84  bytes 10350 (10.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 37  bytes 4528 (4.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37  bytes 4528 (4.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

포트포워딩

  • 네트워크 관리자에서 NAT 네트워크 선택 - 포트 포워딩 지정후, 다음과 같이 지정
    • 호스트 포트번호 : 22
    • 게스트 IP : evan-master의 IP 입력
    • 게스트 포트번호 : 22 지정

image.png

VirtualBox Ubuntu Desktop 24.04 설치

개요

  • VirtualBox에서 Ubuntu Desktop 설치
  • 윈도우-리눅스 양방햔 간 복사-붙여넣기 구현

VirtualBox Extension Pack 다운로드

image.png

image.png

Ubuntu Desktop 설치파일 다운로드

image.png

VirtualBox 가상머신 만들기

확장 패키지 추가

  • 도구 > 확장 패키지 관리자 선택

image.png

  • 설치파일 불러오기

image.png

image.png

image.png

  • 패키지 설치가 완료가 되면 다음과 같은 화면 확인

image.png

가상 머신 만들기

  • 머신 > 새로 만들기 선택

image.png

Oracle 19c Installation Using Docker on M1

개요

  • Docker 활용해서 Oracle 설치하기 on M1
  • SQL Developer 활용해서 접속 및 테스트하기

사전조건

  • Docker가 이미 설치가 되어 있다고 가정한다.

Oracle Database 설치 순서

Step 01 : 도커 이미지 가져오기

  • Clone Oracle’s Docker Images Repository, Open your terminal and run
git clone https://github.com/oracle/docker-images

Step 02 : Oracle Database 19c 파일 다운로드

Screenshot 2025-03-15 at 10.17.41 AM.png

PostgreSQL 설치 on Windows 11 (2025)

PostgreSQL 설치파일 다운로드

image.png

image.png

설치

  • 설치파일 실행 (관리자 권한)

image.png

image.png

image.png

image.png

  • password는 evan1234

image.png

  • 포트번호 확인

image.png

image.png

image.png

image.png

image.png

image.png

  • 프로그램 검색 창에서 pgAdmin 4 프로그램 열기

image.png

  • 실행되는지 확인

image.png

환경변수 설정

  • 경로 복사

image.png

  • 시스템 환경 변수 열기 후 복사하기
C:\Program Files\PostgreSQL\17\bin

image.png

  • CMD나 PowerShell에서 확인
C:\Users\campus3S043>psql --version
psql (PostgreSQL) 17.4

AWS SageMaker 개발 환경 설정 on Windows 11 (feat. Anaconda)

개요

  • Anaconda 설치 (2025년 버전)
  • Windows 11에서 설치 후 딥러닝 프레임워크 까지 개발환경 설정

다운로드

image.png

  • 다음 화면에서 Download 버튼 클릭

image.png

image.png

설치파일 실행

  • 필자는 관리자 권한으로 실행하는 것을 선호함

image.png

image.png

  • 어떤 분은 Just Me 선택하기도 하지만, 필자는 All Users 선택

image.png

  • 설치 경로 확인

image.png

  • 기존에 Python이 설치가 되었더라도 Anaconda 파이썬 기준으로 테스트 할 예정이기 때문에 반드시 체크할 것
  • 확인 버튼 클릭한다.

image.png

Amazon SageMaker ML on Local Machine via VS Code

개요

  • AWS SageMaker 사용하여 ML 코드 생성
  • VS Code에서 코드 생성
  • S3 Bucket에서 모델 업로드 및 다운로드 응용하여 테스트 진행 코드

사전조건

  • SageMaker가 정상적으로 실행되려면 Docker가 필요할 수 있기, Docker를 먼저 설치하기를 바란다.

AWS & SageMaker 연결 설정

Screenshot 2025-03-09 at 4.49.34 PM.png

Connect EC2 to VSCode using AWS Toolkit (2025 march)

개요

  • Root 계정에서 사용자 그룹 만들기, I AM 정책
  • 사용자 계정에서 정책과 역할 분배하기
  • VS Code에서 AWS Toolkit 이용해서 접속하기

사전조건

  • AWS 회원가입은 완료되어 있고, 로그인이 된 상태라 가정한다.
  • VS Code에서 AWS Toolkit 설치가 되어 있다고 가정한다.

Root 계정에서 I AM 계정 만들기

사용자 생성

  • I AM 검색 후 사용자 클릭, 사용자 생성 버튼을 클릭한다.

Screenshot 2025-03-09 at 10.04.50 AM.png

  • 사용자 세부 정보에서 사용자 이름 선택
  • AWS Management Console에 대한 사용자 액세스 권한 제공 – 선택 사항
    • IAM 사용자를 생성하고 싶음
  • 콘솔 암호 지정
    • A!234567890
  • 사용자는 다음 로그인 시 새 암호를 생성해야 합니다 - 권장 체크 해제

Screenshot 2025-03-09 at 10.08.23 AM.png

AWS EC2 생성하기 (2025 march)

개요

  • EC2 프리티어 생성하기
  • 주요 개발환경 설정하기 (Ubuntu 기반)

EC2 프리티어 생성 및 연결

  • 계정 로그인 후, EC2 서비스 검색 후, EC2 클릭

Screenshot 2025-03-08 at 10.47.08 AM.png

  • 인스턴스란, “구현된 컴퓨터”라고 생각한다. 인스턴스 시작 버튼을 클릭한다.

Screenshot 2025-03-08 at 10.48.34 AM.png

  • 이제 본격적인 설계도를 하나 생성한다.
  • 필자는 lectureServer01 이라고 명명했다.

Screenshot 2025-03-08 at 11.06.39 AM.png

  • 다목적 개발이 목적이라면 Ubuntu(Linux)를 추천. 프리티어가 아닌 OS도 있으니 유의한다.

Screenshot 2025-03-08 at 11.08.18 AM.png