Skip to content

00 — 빈 PC에서 시작하기 ​

🗓️ 3월 2일 (토) 오전 · 회사에서 받은 노트북. 오라클은커녕 Git도 없다. 이 문서를 마치면 docker version으로 버전 번호가 나오고, 이 저장소가 내 PC에 들어와 있다. 그게 전부다. 오라클은 다음 문서에서 올린다.

Docker Desktop이 이미 돌아가는 PC라면 이 문서를 건너뛰고 01_첫_고객사_ora-hanorder.md로 간다.


0. 준비물 ​

항목요구왜
OSWindows 10 64-bit (21H2 이상) 또는 Windows 11Docker Desktop의 WSL2 백엔드 요건. macOS·Linux는 Docker만 깔면 그다음은 같다
메모리8GB 이상오라클 컨테이너 한 대가 1~1.5GB를 쓰고, 2대를 동시에 켜는 화(03·04·12)가 있다
디스크 여유L1만: 10GB / 4대 전부: 40GB이미지 2.9GB + ora-hanorder 볼륨 + (나중에) ora-burger 11.5GB
권한관리자 계정WSL2 설치와 Docker Desktop 설치에 필요
가상화BIOS/UEFI에서 활성작업 관리자 → 성능 → CPU에서 "가상화: 사용"이면 OK. "사용 안 함"이면 BIOS에서 켠다(Intel VT-x / AMD-V)

1. Git for Windows — 저장소를 받고, Git Bash를 얻는다 ​

  1. https://git-scm.com/download/win에서 64-bit 설치 파일을 받는다.
  2. 설치 옵션은 전부 기본값으로 두고 Next를 누른다(에디터 선택도 그대로 둔다).
  3. 새 PowerShell 창을 열어 확인한다.
powershell
git --version

정상 출력 (이 문서를 쓴 PC에서 실측)

git version 2.55.0.windows.5

버전 번호가 나오면 된다.

💡 Git Bash가 같이 설치된다. 이 교재의 bash 코드 블록은 Git Bash 기준이고, powershell 블록은 PowerShell 기준이다. 어느 쪽을 써도 되지만 한 문서 안에서는 하나만 쓴다. 셸을 오가면 heredoc과 인코딩 규칙이 달라서 엉킨다. 처음이라면 Git Bash를 권한다. PowerShell을 고른다면 창을 열 때마다 $OutputEncoding = New-Object System.Text.UTF8Encoding $false부터 입력한다. 그러지 않으면 파이프로 넘긴 한글이 ?로 저장된다(02_접속과_실행_방법.md §4).


2. WSL2 — Docker가 올라탈 리눅스 커널 ​

Windows의 Docker Desktop은 WSL2 위에서 돈다. 그래서 WSL2부터 있어야 한다.

관리자 권한 PowerShell(시작 → "PowerShell" 우클릭 → 관리자 권한으로 실행)에서 실행한다.

powershell
wsl --install --no-distribution

끝나면 재부팅한다. 리눅스 배포판은 따로 설치하지 않아도 된다. Docker Desktop이 자체 배포판을 가져온다.

재부팅한 뒤 확인한다.

powershell
wsl --status

정상 출력: 아래처럼 버전 정보가 나오면 된다.

기본 버전: 2

🐞 실제로 난 오류 — wsl -l -v가 깨진 문자열과 함께 Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG를 뱉는다 ​

이 문서를 쓴 새 PC에서 실제로 난 오류다. WSL 구성 요소가 설치되지 않았거나 등록이 깨진 상태다. 조치: 관리자 PowerShell에서 wsl --install --no-distribution → 재부팅 순서로 진행한다. 그래도 같으면 wsl --update를 실행한 뒤 다시 재부팅한다. 그래도 안 되면 "Windows 기능 켜기/끄기"에서 Virtual Machine Platform과 Linux용 Windows 하위 시스템 두 항목이 체크돼 있는지 본다.


3. Docker Desktop — 컨테이너를 돌리는 엔진 ​

  1. https://www.docker.com/products/docker-desktop/에서 Windows (x86_64) 설치 파일을 받는다.
  2. 설치 화면에서 "Use WSL 2 instead of Hyper-V"가 체크돼 있는지 확인하고 설치한다. 설치가 끝나면 로그아웃이나 재부팅을 요구할 수 있다.
  3. 시작 메뉴에서 Docker Desktop을 실행한다. 약관에 동의한 다음 나오는 계정 로그인은 건너뛰어도 된다(Skip / Continue without signing in).
  4. 작업 표시줄의 고래 아이콘이 움직임을 멈출 때까지 기다린다(1~2분). "Engine running"이 보이면 준비가 끝난 것이다.
  5. Git Bash나 PowerShell에서 확인한다.
bash
docker version --format '{{.Server.Version}}'

정상 출력 (2026-09-01 실측)

29.5.3

버전 번호가 나오면 된다. 번호가 달라도 상관없다.

실패 증상

failed to connect to the docker API at npipe:////./pipe/dockerDesktopLinuxEngine; ... The system cannot find the file specified.

Docker Desktop이 떠 있지 않다. 설치만 하고 실행하지 않았거나 아직 기동 중인 경우다. 고래 아이콘이 멈출 때까지 기다렸다가 다시 실행한다. 이 메시지는 앞으로도 PC를 켤 때마다 만날 수 있다. Docker Desktop은 직접 실행해야 하기 때문이다(설정에서 "Start Docker Desktop when you sign in"을 켜면 로그인할 때 자동으로 뜬다).

3-1. 메모리 배분 (선택, 8GB PC면 권장) ​

WSL2는 기본적으로 PC 메모리의 절반까지 가져간다. 컨테이너 2대를 동시에 켜려면 메모리를 넉넉히 잡아 준다. C:\Users\<사용자>\.wslconfig 파일에 다음 내용을 적는다(파일이 없으면 새로 만든다).

ini
[wsl2]
memory=8GB

저장한 뒤 wsl --shutdown을 실행하고 Docker Desktop을 다시 시작한다.

8GB PC라면 memory=5GB 정도로 두고 컨테이너는 한 번에 한 대만 켠다. 그래도 01~13화는 문제없이 따라갈 수 있다.


4. 저장소 클론 — 이 교재를 내 PC로 ​

bash
cd ~                # 아무 작업 폴더나 좋다. 경로에 한글·공백이 없는 곳이 편하다
git clone https://github.com/voidmain443/SQL_in_deep.git
cd SQL_in_deep
ls

정상 출력

10_본편_튜너의_1년/  1_시험준비_SQLP합격/  2_중급실전_딥다이브/  3_심화_성능고도화/  40_보고서와_표준/  README.md  ...

폴더 이름은 바꿔도 된다. 이 교재에 나오는 경로는 모두 저장소 루트 기준 상대경로다.

저장소에 없는 것 — 미리 알아 둔다 ​

없는 것왜어떻게
00_자료준비/원서_PDF/의 책 9권저작권각자 구매한 소장본을 쓴다. 어떤 책이 필수인지는 06_원서와_공식문서_지도.md 참고
00_자료준비/OCR_원천/의 추출 텍스트저작물 텍스트소장본에서 직접 추출한다(스크립트는 들어 있다)
ora-dist용 CSV 18개크기 (~97MB)압축본 data_csv.zip은 들어 있다. 03화 전에 압축을 푼다 → 고객사/L3_ora-dist/
ora-newshop용 이커머스 CSV생성물18화 직전에 Python으로 생성한다 → 고객사/L4_ora-newshop/

01~13화에는 이 넷 중 아무것도 필요 없다. 한빛유통 데이터는 스크립트가 만든다.


5. (선택) 클라이언트 도구 — 없어도 된다 ​

오라클에 접속하는 sqlplus는 컨테이너 안에 있다. 내 PC에 오라클 클라이언트를 깔지 않아도 docker exec로 빌려 쓰면 된다. 구조를 GUI 화면에서 그림으로 보고 싶을 때는 SQL Developer를, 내 PC에 CLI를 두고 싶을 때는 SQLcl을 나중에 설치한다(02_접속과_실행_방법.md).


6. 확인 — 여기까지 됐으면 다음 문서로 ​

  • [ ] git --version → 버전 번호
  • [ ] wsl --status → "기본 버전: 2"
  • [ ] docker version --format '{{.Server.Version}}' → 버전 번호
  • [ ] 저장소 폴더 안에 10_본편_튜너의_1년/이 보인다

다 됐으면 01_첫_고객사_ora-hanorder.md 문서로 넘어간다. 3분이면 첫 고객사가 올라간다.