Python - PySide6
6. 다른 환경 배포, 실행
6. 다른 환경 배포, 실행
2025.12.24목표더보기Docker 이미지를 파일 형태로 전달할 수 있다다른 PC 환경에서 동일한 서버를 실행할 수 있다Docker Compose 기반 실행으로 환경 차이를 제거할 수 있다교육 현장에서 서버 배포 흐름을 설명할 수 있다이제 서버 코드를 넘기는 것이 아니라실행 환경 자체를 전달할 수 있습니다. 1. 다른 환경 배포 시나리오더보기강사용 PC에서 만든 서버를 여러 실습용 PC에서 동일하게 실행해야 함여러 실습용 PC는 네트워크, OS, Python 설치 여부가 제각각 입니다. 이때 가장 중요한 요구사항은 다음입니다.“학생 PC 환경과 상관없이같은 서버를 동일하게 실행할 수 있어야 한다.” Docker는 이를 이미지 단위 배포로 해결합니다. 2. 단계별 배포 더보기 1단계: 강사 PC에서 서버 이미지를 파일..
5. Docker Compose로 배포 표준화
5. Docker Compose로 배포 표준화
2025.12.24목표더보기docker run 명령어 기반 실행의 한계를 설명할 수 있다Docker Compose의 역할과 필요성을 이해한다docker-compose.yml 파일의 구조를 이해한다서버 실행 설정을 파일로 문서화할 수 있다팀 또는 교육 환경에서 동일한 서버 실행을 보장할 수 있다 1. Docker Compose 개요더보기(1) docker run 기반 실행의 한계 docker run -d -p 8888:8888 chat-server이 방식은 단일 실습에서는 문제가 없지만, 팀·배포 환경에서는 다음과 같은 한계가 발생합니다. 문제설명명령어 의존실행 방법이 터미널 히스토리에만 남음재현 어려움옵션 하나만 빠져도 실행 결과가 달라짐문서화 한계실행 조건을 설명으로 풀어 써야 함확장성 부족컨테이너가 늘어날수록 관리 불..
4. 이미지 빌드 및 로컬 실행 단계
4. 이미지 빌드 및 로컬 실행 단계
2025.12.24목표더보기Dockerfile로 서버 이미지를 빌드할 수 있다빌드된 이미지를 컨테이너로 실행할 수 있다서버 컨테이너가 Running 상태로 유지되는 이유를 설명할 수 있다포트 매핑(-p)의 역할을 이해한다docker logs로 서버 상태를 확인할 수 있다 1. 이미지 빌드 개요더보기이미지 빌드란 무엇인가? Dockerfile에 정의된 규칙을 기반으로실행 가능한 서버 실행 환경을 하나의 이미지로 생성하는 과정서버 코드실행 환경라이브러리실행 명령(CMD)이 모두가 하나의 이미지에 포함됩니다. 2. 이미지 빌드 기본 구조더보기이미지 빌드 과정FROM 이미지 다운로드(필요 시)WORKDIR 설정서버 코드 COPY라이브러리 설치(RUN)CMD 저장(실행하지 않음)중요한 점:CMD는 빌드 시 실행되지 않습니다.CMD..
3. Dockerfile 학습
3. Dockerfile 학습
2025.12.24목표더보기Dockerfile의 역할을 설명할 수 있다서버 실행 환경을 Dockerfile로 정의할 수 있다Dockerfile 기 이미지를 빌드할 수 있다docker run만으로 서버가 자동 실행되는 이유를 이해한다 1. Dockerfile 개요더보기Dockerfile이란 무엇인가? Dockerfile은 실행 환경과 실행 방법을 코드로 정의한 컨테이너 이미지를 만들기 위한 설계도입니다.서버 관점에서 Dockerfile은"서버 실행 환경 + 서버 실행 방법을 코드로 정의한 파일"서버 실행에 필요한 다음 내용이 Dockerfile에 포함됩니다.어떤 OS / 런타임을 사용하는가?서버 코드는 어디에 있는가?컨테이너가 실행되면 무엇이 실행되는가?필요한 라이브러리는 무엇인가? 2. Dockerfile 기본 구조더보기..
2. 도커 이미지, 컨테이너 이해
2. 도커 이미지, 컨테이너 이해
2025.12.24목표더보기Docker Image와 Container의 차이를 명확히 설명할 수 있다컨테이너가 "프로그램 실행 단위"라는 점을 이해한다[실습] docker run hello-worlddocker run hello-world 한 줄이 수행하는 모든 과정을 설명할 수 있다Docker Image 다운로드, 컨테이너 생성, 실행, 종료 흐름을 이해한다컨테이너를 실행, 중지, 삭제할 수 있다실행 중인 컨테이너의 로그를 확인할 수 있다서버 컨테이너 실행에 필요한 최소 명령어 흐름을 이해한다 1. [실습]: docker run hello-world 더보기STEP 1.터미널에서 다음 명령어를 실행합니다.docker run hello-world STEP 2.docker run 한 줄의 실제 동작 흐름 설명로컬에 he..
1. 도커 이해
1. 도커 이해
2025.12.24목차더보기1. 도커 이해 2. 도커 이미지, 컨테이너 이해 3. Dockerfile 학습 4. 이미지 빌드 및 로컬 실행 5. Docker Compose로 배포 표준화 6. 다른 환경 배포, 실행 7. AWS EC2에 Docker 서버 배포 실습1. Docker 설치더보기Docker 설치가 필요한 이유Docker는 단순한 프로그램이 아니라 다음 요소로 구성됩니다.Docker Engine (컨테이너 실행 핵심)Docker CLI (명령어 도구)컨테이너 네트워크/스토리지 관리 기능즉, Python처럼 "파일 하나 실행" 개념이 아니라시스템 레벨 도구이기 때문에 반드시 설치가 필요합니다. 2-4. Docker 설치 확인터미널(명령 프롬프트)에서 다음 명령어를 실행합니다. docker --version정상 ..
3. 채팅 만들기
3. 채팅 만들기
2025.12.231. 목표더보기 2. 서버더보기import sysfrom PySide6.QtWidgets import ( QApplication, QMainWindow, QWidget, QVBoxLayout, QTextEdit)from PySide6.QtNetwork import QTcpServer, QTcpSocket, QHostAddressclass ServerWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("채팅 서버") self.resize(500, 400) # UI central = QWidget(self) self.setCen..
2. 실행 흐름
2. 실행 흐름
2025.12.231. 학습 순서더보기(1) 요약개념 → 구조 → 코드 → 실행 흐름 (2) 상세네트워크 프로그래밍 개념 (모든 IT 기술 공통)네트워크 프로그래밍 구조 (모든 IT 기술 공통)네트워크 프로그래밍 코드 (언어마다 호출 함수 차이, 근본 원리 모든 IT 기술 공통)네트워크 프로그래밍 실행 흐름 (모든 IT 기술 공통) 2. 실행 흐름더보기 ㄴ 2.1 서버 코드와 실행 흐름더보기 서버 간단 예시 코드import sysfrom PySide6.QtWidgets import QApplication, QMainWindow, QLabelfrom PySide6.QtNetwork import QTcpServer, QHostAddressclass ServerWindow(QMainWindow): def __init__..
1. 네트워크 프로그래밍 개요
1. 네트워크 프로그래밍 개요
2025.12.23네트워크 프로그래밍 개요 네트워크 프로그래밍 개요1. 학습 순서더보기(1) 요약개념 → 구조 → 코드 → 실행 흐름 (2) 상세네트워크 프로그래밍 개념 (모든 IT 기술 공통)네트워크 프로그래밍 구조 (모든 IT 기술 공통)네트워크 프로그래밍 코드 (언basiclike.tistory.com 네트워크 표준 네트워크 표준Socket 더보기Socket 은 현실의 전화기와 같은 단말을 프로그램 소스코드로 구현한 논리적 추상화 형태로, 일반적인 모든 프로그램의 네트워크는 Socket 이라는 전 세계 소켓 인터페이스 기반으로 구basiclike.tistory.com
11. 테스트
11. 테스트
2025.12.231. 목표더보기(1) 소프트웨어 개발에서 테스트의 위치 소프트웨어 개발 생명주기(SDLC)에서 테스트는 요구사항 분석설계구현(코딩)테스트배포유지보수단계에서 테스트 단계의 목적은 단순히 "에러가 없는지 확인"이 아니라요구사항이 정확히 구현되었는지기능이 의도한 시나리오대로 동작하는지잘못된 입력이나 예외 상황에서도 안전하게 동작하는지시스템 구성 요소들이 서로 정상적으로 연동되는지만들어진 소프트웨어가 실제로 사용 가능한 상태인지 검증하는 단계입니다. (2) 소프트웨어 개발 테스트 단계 개요 단계테스트 명칭핵심 목적1단계단위 테스트(Unit Test)개별 기능 검증2단계통합 테스트(Integration Test)모듈 간 연동 검증3단계시스템 테스트(System Test)전체 시스템 검증4단계인수 테스트(Acc..
10. 구현 - 대여 페이지
10. 구현 - 대여 페이지
2025.12.231. 목표더보기BasePage의 공통 UI 골격을 재사용하여 CirculationPage에서 다음 기능을 구현한다.회원 조회(회원 ID/이름/연락처/이메일 조건 기반)선택 회원의 대출 목록 조회(issues + books JOIN)도서 대출(issues INSERT + books.is_available 갱신)도서 반납(issues DELETE + books.is_available 갱신)대출 연장(issues issue_date 갱신 + renew_count 증가)BasePage의 btn_refresh, btn_delete를 "연장", "반납" 버튼으로 의미 변경하고, 기존 Signal을 해제 후 페이지 전용 Slot으로 재연결한다.2. 전체 로직더보기(1) 이전 단계에서 구현한 파일에 이어 작업합니다.l..
9. 구현 - 도서 관리 페이지
9. 구현 - 도서 관리 페이지
2025.12.221. 목표더보기BasePage(공통 템플릿)를 상속하여 MemberManagerPage를 확장한다.기능 범위도서 등록(INSERT)도서 전체 조회(SELECT)도서 조건 검색(WHERE + LIKE)선택 도서 삭제(DELETE)BasePage의 공통 버튼(btn_refresh, btn_delete)을 재사용하여 "버튼 중복" 문제를 해결한다.상태 라벨(status)을 활용해 처리 결과(조회 건수, 성공/실패, 취소)를 사용자에게 즉시 피드백한다.2. 전체 로직더보기(1) 이전 단계에서 구현한 파일에 이어 작업합니다.libraryManagementSystem/├─ db/│ ├─ config.py│ └─ database_manager.py├─ pages/│ ├─ base_page.py│ ├─ memb..