📚 PHP 강의 커리큘럼

2025. 6. 24. 21:12프로그램/PHP 초급

📚 PHP 강의 커리큘럼


1단계: 초급 (PHP 기본기 다지기)

PHP 개발의 첫걸음을 떼는 과정입니다. 프로그래밍 기본 개념과 PHP 언어의 핵심 문법을 익혀 간단한 웹 페이지를 만들 수 있도록 합니다.

  • 1주차: PHP 개발 환경 설정 및 기본 출력
    • PHP란 무엇인가?
    • 웹 서버 (Apache, Nginx) 및 PHP 설치 (XAMPP/WAMP/Laragon 활용)
    • 개발 도구 (VS Code) 설정
    • echo, print를 이용한 출력
    • HTML과 PHP 연동하기
  • 2주차: 변수와 자료형
    • 변수 선언 및 할당 ($)
    • 데이터 타입 (정수, 실수, 문자열, 불린, 배열, 객체, NULL)
    • 상수 (define)
    • 데이터 타입 변환 (형 변환)
  • 3주차: 연산자
    • 산술, 할당, 비교, 논리, 증감 연산자
    • 조건 연산자 (삼항 연산자 ?:)
    • 오류 제어 연산자 (@)
    • Null 병합 연산자 (??)
  • 4주차: 조건문과 반복문
    • if, else if, else 문
    • switch 문
    • for, while, do-while 문
    • foreach 문 (배열에 특화)
    • break, continue
  • 5주차: 함수
    • 함수 정의 및 호출
    • 매개변수 (기본값, 가변 인자)
    • 반환 값
    • 내장 함수 (문자열, 배열 관련 함수 등)
    • 사용자 정의 함수
  • 6주차: 배열
    • 배열 선언 및 초기화
    • 인덱스 배열, 연관 배열
    • 다차원 배열
    • 배열 조작 함수 (정렬, 추가/삭제 등)
  • 7주차: HTML 폼 처리 및 GET/POST 방식
    • HTML 폼 생성
    • GET, POST 메서드의 이해
    • $_GET, $_POST, $_REQUEST 슈퍼 글로벌 변수
    • 폼 데이터 유효성 검사 (간단한 예시)
  • 8주차: 파일 입출력 및 쿠키/세션
    • 파일 생성, 읽기, 쓰기
    • 쿠키(Cookie) 설정 및 읽기
    • 세션(Session) 설정 및 사용
    • $_SERVER 슈퍼 글로벌 변수 활용

2단계: 중급 (데이터베이스 연동 및 웹 애플리케이션 기초)

PHP와 데이터베이스를 연동하여 동적인 웹 애플리케이션을 만드는 방법을 학습합니다. 기본적인 웹 보안 개념과 함께 MVC 패턴의 기초를 다집니다.

  • 1주차: 데이터베이스 기초 및 MySQL 연동 (PDO)
    • 관계형 데이터베이스 개념 (MySQL/MariaDB)
    • SQL 기본 (SELECT, INSERT, UPDATE, DELETE)
    • PHP Data Objects (PDO)를 이용한 DB 연결
    • SQL Injection 방지를 위한 Prepared Statement
  • 2주차: 회원가입 및 로그인 시스템 구현
    • 데이터베이스 스키마 설계 (사용자 테이블)
    • 회원가입 기능 (데이터 유효성 검사, 비밀번호 해싱)
    • 로그인 기능 (세션 기반 인증)
    • 로그아웃 및 세션 관리
  • 3주차: 게시판 CRUD 구현 (기본)
    • 게시판 테이블 설계
    • 글 목록, 글 작성, 글 보기, 글 수정, 글 삭제
    • 페이징 처리
  • 4주차: 파일 업로드 및 이미지 처리
    • HTML 폼을 이용한 파일 업로드
    • $_FILES 슈퍼 글로벌 변수
    • 업로드된 파일 유효성 검사 (확장자, 크기)
    • 이미지 리사이징 및 썸네일 생성 (GD 라이브러리)
  • 5주차: PHP 객체 지향 프로그래밍 (OOP) 기초
    • 클래스, 객체, 속성, 메서드
    • 생성자 (__construct)
    • 캡슐화 (public, private, protected)
    • 상속 (extends)
  • 6주차: OOP 심화 및 디자인 패턴 소개
    • 추상 클래스, 인터페이스
    • 트레이트 (Trait)
    • 정적 속성/메서드 (static)
    • 싱글톤(Singleton), 팩토리(Factory) 패턴 소개
  • 7주차: MVC 패턴의 이해 및 적용
    • MVC (Model-View-Controller) 개념
    • 간단한 MVC 구조로 게시판 리팩토링
    • URL 라우팅 기초
  • 8주차: 웹 보안 기초 및 에러 핸들링
    • XSS, CSRF 공격 이해 및 방어
    • 비밀번호 보안 (해싱, 솔팅)
    • 에러 보고 및 로그 설정
    • try-catch 예외 처리

3단계: 고급 (프레임워크 활용 및 서비스 개발)

실제 서비스 개발에 필요한 프레임워크 활용 능력을 기르고, RESTful API 개발 및 성능 최적화 방법을 학습합니다.

  • 1주차: PHP 프레임워크 입문 (Laravel / Symfony 중 택 1)
    • 프레임워크의 필요성과 장점
    • 선택한 프레임워크의 설치 및 기본 구조 이해
    • 라우팅, 컨트롤러, 뷰 기본 사용법
  • 2주차: ORM (Object-Relational Mapping) 활용
    • ORM 개념 (Eloquent ORM 등)
    • 모델 생성 및 데이터베이스 연동
    • 관계형 데이터베이스 관리 (1:1, 1:N, N:M 관계)
  • 3주차: 인증 및 권한 관리 (프레임워크)
    • 프레임워크의 내장 인증 시스템 활용
    • 미들웨어(Middleware)를 이용한 접근 제어
    • 역할 기반 권한 관리 (Role-Based Access Control)
  • 4주차: RESTful API 개발 기초
    • RESTful API 개념과 원칙
    • API 엔드포인트 설계
    • JSON 데이터 형식 다루기
    • Postman 등 API 테스트 도구 활용
  • 5주차: RESTful API 보안 및 인증
    • API 키, 토큰 기반 인증 (JWT)
    • CORS (Cross-Origin Resource Sharing) 설정
    • API 요청 제한 (Rate Limiting)
  • 6주차: 캐싱 (Caching) 전략
    • 캐싱의 중요성과 종류 (데이터베이스 캐싱, HTTP 캐싱, OPcache)
    • 프레임워크 캐싱 시스템 활용
    • Redis/Memcached 연동
  • 7주차: 성능 최적화 및 디버깅
    • DB 쿼리 최적화 (인덱스 활용)
    • 코드 프로파일링 (Xdebug)
    • PHP-FPM 설정 최적화
    • 로그 관리 및 모니터링
  • 8주차: 배포 및 운영 기초 (Linux 서버)
    • Linux 서버 환경 이해 (Ubuntu/CentOS)
    • Git을 이용한 코드 배포
    • 웹 서버 (Nginx/Apache) 설정
    • HTTPS (SSL/TLS) 설정

4단계: 최상급 (대규모 서비스 아키텍처 및 고급 기술)

복잡하고 대규모의 서비스를 설계하고 운영하는 데 필요한 고급 기술과 아키텍처 패턴을 학습합니다.

  • 1주차: 마이크로서비스 아키텍처 (MSA) 개요
    • 모놀리식 vs 마이크로서비스
    • MSA의 장단점
    • PHP에서 MSA 구현 전략
    • API Gateway, 서비스 디스커버리
  • 2주차: 메시지 큐 (Message Queue) 활용
    • 메시지 큐의 필요성 (Kafka, RabbitMQ)
    • 비동기 처리, 작업 큐 (Queue)
    • PHP에서 메시지 큐 연동 및 활용 (Laravel Queue 등)
  • 3주차: 컨테이너 기술 (Docker) 활용
    • Docker 개념 및 설치
    • Dockerfile 작성 및 이미지 빌드
    • Docker Compose를 이용한 다중 컨테이너 애플리케이션
    • PHP 애플리케이션 도커라이징
  • 4주차: CI/CD (지속적 통합/지속적 배포) 파이프라인 구축
    • CI/CD 개념 및 필요성
    • GitLab CI/CD, GitHub Actions 등 활용
    • PHP 프로젝트를 위한 CI/CD 파이프라인 설계 및 구현
  • 5주차: NoSQL 데이터베이스 (MongoDB/Redis) 활용
    • NoSQL의 필요성 및 종류
    • MongoDB/Redis 기본 사용법
    • PHP에서 NoSQL 연동 및 활용 사례 (캐싱, 세션 저장, 로그 등)
  • 6주차: 테스트 자동화 (단위/통합/E2E 테스트)
    • PHPUnit을 이용한 단위 테스트
    • 통합 테스트 작성
    • Codeception/Cypress를 이용한 E2E(End-to-End) 테스트
    • 테스트 주도 개발 (TDD) 소개
  • 7주차: 클라우드 서비스 연동 (AWS/Azure/GCP)
    • 클라우드 컴퓨팅 개념
    • 주요 클라우드 서비스 소개 (EC2, S3, RDS, Lambda 등)
    • PHP 애플리케이션을 클라우드에 배포하고 관리하는 방법
  • 8주차: 아키텍처 패턴 및 설계 심화
    • 도메인 주도 설계 (DDD)
    • 클린 아키텍처 (Clean Architecture)
    • 성능 확장성 및 고가용성 설계
    • 모니터링 및 로깅 시스템 심화 (ELK Stack)