PHP 7+ 프로그래밍: 객체지향
PHP 7+ 프로그래밍: 객체지향
수강정보 40명의 수강생
55,000원
지식공유자 : 정상우
40회 수업 · 총 9시간 48분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 초급

이 강의는

PHP 객체지향, 내장 클래스, PSR, Composer, MVC(Model, View, Controller)까지 모던 PHP를 익히기 위한 근간을 이야기합니다.

이런 걸 배워요

  • PHP 객체지향 프로그래밍
  • PHP 내장 클래스와 인터페이스
  • PHP 마이크로 프레임워크 개발
  • PHP 패키지 매니저
  • MVC(Model, View, Controller)

모던 PHP 7+ 프로그래밍의 핵심, 객체지향 프로그래밍(OOP)으로 
제대로 된 PHP 개발을 경험하세요.

PHP 7+ 프로그래밍: 객체지향

이 강좌는 'PHP 7+ 프로그래밍: 리부트' 강좌의 후속 강좌입니다. 다만 이전 강좌를 듣지 않더라도 기초지식이 있다면 따라올 수 있습니다. PHP 객체지향, 내장 클래스, PSR, Composer, MVC(Model, View, Controller)까지 모던 PHP를 익히기 위한 근간을 이야기합니다. 해당 강좌를 익히게 되면 라라벨(Laravel) 프레임워크을 시작할 준비가 되었다고 할 수 있습니다.

PHP 7 에서는 현재까지 PHP 7.4 버전이 마지막 버전이며 그 다음 버전은 메이저 버전이 변화하는 PHP 8 로 우리를 맞이하게 될 예정입니다. PHP 8 에서 JIT(Just In Time) 컴파일러의 도입 등으로 인한 퍼포먼스 변화로 볼 때 또 다시 PHP 세계에 지각 변동이 찾아올 것입니다.

어떤 것을 배우게 되나요?

PHP는 객체지향의 시대를 맞이했다.

PHP 객체지향 문법을 익힙니다. 클래스와 객체 기초부터 제네레이터, 참조 표현 등 모던 PHP에 추가된 다양한 기능을 공부합니다. 또한 상속과 문맥 키워드 등 PHP 언어만이 가진 특징에 대해서도 이야기하게 됩니다.

http://docs.php.net/manual/en/langref.php

내장 클래스, 이 정도는 알아야지!

'PHP 7+ 프로그래밍: 리부트' 강좌에서 이야기하지 않은 내용인 Classes, DateTime, Directory, Reflection, SPL 등 PHP 에서 사용하는 내장 클래스에 대해 알아봅니다. 추가적으로 Iterator, ArrayAccess 와 같은 인터페이스에 대해서도 알아봅니다. 물론 이 내용이 길다고 생각된다면 나중에 보아도 상관없습니다. 

http://docs.php.net/manual/en/extensions.membership.php

PHP 표준 권장안이 뭔가요?

PSR(PHP Standard Recommendation)에 대해서 알아봅니다. PHP 프로그래밍을 할 때 PHP-FIG 에서 이야기하고 있는 권장안이며 코딩 스타일(PSR-1, PSR-12), 오토로더(PSR-4) 등 우리가 알아야 할 내용들을 포함하고 있습니다. 따라서 이에대해 논의해봅니다.

https://www.php-fig.org/psr/

언제까지 직접 만들어서 쓸 건가요?

웹페이지에 사용하는 코드를 전부 우리가 만들어야 할까요? 그렇지 않습니다. 세상에는 다양한 사람들이 만들어놓은 멋진 오픈소스 패키지가 많습니다. 우리는 이것들을 적극적으로 사용해야겠죠.

https://packagist.org/

패키지 매니저, 그것이 바로 Composer 입니다. 이것을 사용하면 다양한 사용자가 만든 패키지를 사용할 수 있고, Packagist 레지스트리를 사용할 수 있습니다. 해당 수업에서는 PHP 패키지 중 하나인 Whoops 를 사용하여 패키지를 사용했을 때의 이점을 느껴봅니다.

https://getcomposer.org/

나만의 프레임워크 만들기

프레임워크는 본디 여러 라이브러리를 포함하고, 사용자가 편히 사용할 수 있도록 프로젝트 템플릿을 제공하거나 틀을 제공하곤 하는데, 우리는 MVC(Model, View, Controller)에 중점을 맞추어 사용할 수 있도록 구성해봅니다. 물론 여기서는 다른 사람이 만든 패키지는 일체 사용하지 않습니다. 여기서 만든 패키지는 직후에 나올 게시판 프로젝트에서 Composer 를 사용하여 다운 받고 직접 사용합니다.

함수형에서, 객체지향으로

MVC(Model, View, Controller), 객체지향을 적극적으로 사용하여 게시판 프로젝트를 탈바꿈합니다. 또한 '나만의 프레임워크 만들기' 에서 만든 패키지를 다운받고 직접 적용시켜보는 과정을 해볼 것입니다. 허나, 코드는 index.php 부터 처음부터 작성할 것이며 첫 강좌를 듣지 않았더라도 따라올 수 있도록 기존의 코드는 사용하지 않기로 하였습니다.

강의를 듣기 전에 필요한 것들

개발 서버는 빌트인 내장 서버를 사용하지만, 필요에 따라 WAMP와 같은 도구를 사용하거나, PHP 매뉴얼을 참고해주세요.

  • PHP 7.4
  • 코드 편집기는 VSCode(Visual Studio Code)를 사용합니다.
  • 브라우저를 준비해주세요. (IE 싫어요)

예제코드 & QnA

이 강좌의 예제 코드는 아래의 깃허브 레포지토리에서 찾을 수 있습니다.
https://github.com/pronist/php7-lecture/tree/intermediate

나만의 프레임워크 만들기

게시판 프로젝트

게시판에서 프론트엔드에 UIkit CSS Framework 와 텍스트 에디터로 CKEditor 5 를 사용합니다. 그에 대한 내용들은 다음의 링크에서 알아볼 수 있습니다.

예제코드는 버그나 일부 수정사항에 따라 강의의 내용과 약간 다를 수도 있습니다.

참고 할만한 질의 응답

참고할만한 자료 & 서적

지난 강의 보기

PHP 7+ 프로그래밍: 리부트
레거시는 안녕, 입문자를 위한 모던 PHP 기초 바이블!

도움 되는 분들

  • PHP 7+ 프로그래밍: 리부트 수강자
  • PHP 객체지향 프로그래밍을 알아보고 싶으신 분
  • 모던 PHP 프로그래밍을 해보고 싶으신 분

선수 지식

  • PHP 7+ 프로그래밍: 리부트

교육과정

모두 펼치기 40 강의 9시간 48분
섹션 0. 우리 수업에 대하여
1 강의 06 : 01
섹션 1. PHP는 객체지향의 시대를 맞이했다.
10 강의 165 : 39
02 - 클래스 기초 (Basics)
28 : 32
03 - 정적 메서드와 늦은 정적 바인딩 (Static)
12 : 38
04 - 생성자와 소멸자, Final, 가시성 (Inheritance)
18 : 00
05 - 추상 클래스, 인터페이스, 트레이트 (Abstraction)
19 : 14
06 - 매직 메서드 (Magic Methods)
17 : 02
07 - 네임스페이스 (Namespaces)
12 : 55
08 - 예외 (Exceptions)
13 : 35
09 - 제네레이터 (Generators)
14 : 02
10 - 참조 (References)
11 : 35
11 - 객체 비교와 복사 (Cloning)
18 : 06
섹션 2. 내장 클래스, 이 정도는 알아야지!
10 강의 156 : 27
12 - 클로저 (Closure)
08 : 06
13 - 클래스 (Classes)
08 : 51
14 - 날짜와 시간 (DateTime)
14 : 49
15 - 디렉토리 (Directory)
04 : 56
16 - 리플렉션 (Reflection)
08 : 06
17 - 세션 (Sessions)
18 : 33
18 - 표준 PHP 라이브러리 (SPL)
27 : 22
19 - 스트림 (Streams)
21 : 36
20 - PHP 데이터 객체 (PDO)
15 : 26
21 - 캐시 (Cache)
28 : 42
섹션 3. PHP 표준 권장안이 뭔가요?
1 강의 10 : 32
22 - PSR (PHP Standard Recommendation)
10 : 32
섹션 4. 언제까지 직접 만들어서 쓸 건가요?
1 강의 14 : 42
23 - PHP 패키지 매니저, 컴포저 (Composer)
14 : 42
섹션 5. 나만의 프레임워크 만들기
7 강의 71 : 30
24 - 데이터베이스 (Database)
13 : 19
25 - Http (Http; Request)
05 : 40
26 - 라우팅 (Routing; Route, Middleware, RequestContext)
24 : 16
27 - 세션 (Sessions)
13 : 05
28 - 지원 (Support; ServiceProvider, Theme)
04 : 59
29 - 어플리케이션 (Application)
06 : 44
30 - 나만의 프레임워크를 패키지로 만들기 (Package)
03 : 27
섹션 6. 함수형에서, 객체지향으로
10 강의 163 : 43
31 - 지난 프로젝트와 달라진 점
07 : 18
32 - 프로젝트 준비하기
11 : 52
33 - MVC(Model, View, Controller)
15 : 37
34 - 프로바이더 (Providers)
09 : 53
35 - 미들웨어 (Middlewares)
07 : 00
36 - 메인 (Index)
35 : 31
37 - 인증 (Auth)
14 : 41
38 - 유저 (User)
09 : 28
39 - 게시글 (Post)
36 : 19
40 - 이미지 (Image)
16 : 04

공개 일자

2020년 6월 9일 (마지막 업데이트 일자 : 2020년 6월 9일)

수강 후기

아직 평가를 충분히 받지 못한 강의 입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!😄️️

수강 문의

  • Henu 프로필 Henu
    2020-09-04 59975

    안녕하세요. 이전 PHP - 리부트 수강 전 문의에 대한 답변 감사드립니다. 현재 PHP 리부트 강의 수강중에 있으며, 이후 객체지향 파트도 수강 계획에 있습니다! 해당 강의 후반부에서 다루는 PHP 프레임워크가 있는지 만약, 있는 경우 어떤 프레임워크를 사용하는지 알고 싶습니다!

    정상우
    정상우
    정상우
    2020-09-04 69413

    이 강의는 객체지향을 위주로 다루고 있어서 라라벨이나 CI 등, PHP 프레임워크에 대해서는 다루지 않습니다. 다만 그 프레임워크들이 대체로 어떻게 구성되고 우리 프로젝트에서 돌아가는지 실제로 만들어보는 작업을 거치게 됩니다. 프레임워크를 직접 배우기 전에 그와 비슷한 형태로 만들어봄으로써 이해도를 한 단계 더 높힐 수 있는 단계가 될 것입니다. 따라서 해당 강의가 시장에서 사용되어지고 있는 PHP 프레임워크 자체를 이야기하진 않지만, 그에 대한 본질은 파악할 수 있을 것입니다. :) 강의 수강에 참고해주시면 감사하겠습니다.

다른 수강문의 보기
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스