오늘 수업은 단순한 코딩 실습이 아니었다. 실제 현장에서 어떻게 쓰이는지를 먼저 보여주고, 그걸 직접 구현해보는 방식이었다. 정리해두지 않으면 날아갈 것 같아서 기록한다.
서버를 다루는 방법은 크게 두 가지다.
| 구분 | 뜻 | 예시 |
|---|---|---|
| CLI | Command Line Interface 텍스트 명령어로만 조작 |
오늘 쓴 터미널. sudo lxc launch... 같은 것들 |
| GUI | Graphical User Interface 마우스 클릭으로 조작 |
윈도우 탐색기, 바탕화면 아이콘 클릭 |
앞으로 라즈베리 파이(Raspberry Pi)를 가지고 실습할 예정이라고 했다. 오늘 배운 LXD, Docker, Flask 구조를 라즈베리 파이 위에서 그대로 돌리는 것이다.
교수님이 키오스크를 예시로 든 이유가 있다. 우리가 매일 쓰는 카페 키오스크, 편의점 POS 기기가 사실 오늘 만든 구조와 똑같다.
│
▼
[ 로컬 서버 (Flask) ] ← 주문 받아서 처리
│
▼
[ DB (데이터베이스) ] ← 주문 내역, 매출 저장
│
▼
[ 본사 서버 ] ← 전국 가맹점 매출 통합 관리
휴대폰 장치에서도 이 구조를 그대로 구현할 수 있다. 스마트폰 하나에 서버, 클라이언트, DB를 다 올리는 것도 가능하다는 뜻이다.
├── Server : Flask (app.py) → /menu API 제공
├── Client : kiosk.py → 주문 인터페이스 (다음 단계)
└── DB : 현재 txt → 다음엔 SQLite로 발전
전부 Docker 컨테이너로 묶어서 실행
AI한테 "이런 거 만들어줘"라고 말하면 코드를 뽑아주는 방식이다. 직접 문법을 다 외우지 않아도 구조와 흐름만 알면 빠르게 만들 수 있다.
컨테이너가 꺼지거나 포트 연결이 끊기는 문제가 생길 수 있다. 이럴 때 매번 명령어를 하나씩 치는 게 아니라, 쉘스크립트(.sh)로 한 번에 재구동할 수 있다.
# 기존 컨테이너 정리
docker rm -f $(docker ps -aq)
# 다시 실행
docker run -d -p 8080:5000 kiosk-app
echo "서버 재시작 완료"
bash restart.sh 한 줄만 치면 모든 명령어가 순서대로 실행됩니다.서버가 날아갔을 때 빠르게 복구할 수 있는 비상 대책입니다.
교수님이 직접 말했다. 결국은 암기해야 하는 상황이 된다고.
처음엔 이해가 안 됐는데 오늘 실습하면서 알겠다. 명령어를 찾아보면서 치면 느리고, 오타나면 오류 나고, 흐름이 끊긴다. 자연스럽게 손에 붙어야 실전에서 쓸 수 있다.
| 오늘 써야 했던 명령어들 | 역할 |
|---|---|
sudo lxc launch ubuntu:22.04 kiosk-study |
컨테이너 생성 |
sudo lxc exec kiosk-study -- bash |
컨테이너 진입 |
docker build -t kiosk-app . |
이미지 빌드 |
docker run -d -p 8080:5000 kiosk-app |
컨테이너 실행 |
docker rm -f $(docker ps -aq) |
컨테이너 강제 삭제 |
docker logs $(docker ps -q) |
실행 로그 확인 |
수업 중에 교수님이 언급한 이야기다. 개발자들에게 허락되는 휴식은 책을 읽거나 게임하는것이라고 해당 기술관련 서적이나 게임구성 이해를위해 분석하는 등 쉬는 시간에도 개발자들은 무의식적으로 분석하고 공부한다. 일주일에 책을 10권씩 읽는 사람이 있거나 AI를 활용해서 자기개발을 하고 습득한 기술을 동료들에게 직접 설명하고 실현해보인다는 동료도있었다고 한다.
오늘 내가 한 것도 그 방향과 같다. 배운 걸 그냥 두면 휘발된다. 이렇게 정리해서 올리는 것 자체가 복습이고 내 것으로 만드는 과정이다.
AI를 쓰는 사람과 안 쓰는 사람의 속도 차이가 앞으로 더 벌어질 것이다. 지금 이 방향이 맞다.
| 순서 | 내용 | 상태 |
|---|---|---|
| 1단계 | Flask 서버 + Docker + LXD 환경 구성 | ✅ 완료 |
| 2단계 | kiosk.py 클라이언트 작성 (주문 화면) | 🔜 다음 |
| 3단계 | DB 연동 (txt → SQLite) | 🔜 예정 |
| 4단계 | 쉘스크립트 자동 재구동 | 🔜 예정 |
| 5단계 | 라즈베리 파이에 동일 구조 이식 | 🔜 예정 |
바이브 코딩으로 빠르게 만들 수 있지만, 오류를 해결하려면 결국 기본기가 필요하다.
CLI 명령어는 쓰다 보면 몸에 붙는다. 오늘 오타 덕분에 더 확실히 기억됐다.
LXD → Docker → Flask → 브라우저 확인까지, 전체 흐름이 이제 머릿속에 잡혔다.
'생각 글' 카테고리의 다른 글
| 26년 5월 8일 생각 글 (0) | 2026.05.08 |
|---|---|
| 26년 5월 7일 생각 글2 (0) | 2026.05.07 |
| 26년 5월 6일 정리글 (0) | 2026.05.06 |
| 26년 4월 29일 생각 (0) | 2026.04.29 |
| 26년 4월 27일 생각 (0) | 2026.04.27 |