Thumbnail
개발 · 프로그래밍 프로그래밍 언어
PHP 7+ 프로그래밍: 객체지향
(4.5)
13개의 수강평 ∙ 196명의 수강생

55,000원

지식공유자: 정상우
총 41개 수업 (10시간 10분)
수강기한: 무제한
수료증: 발급
난이도:  입문-초급-중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유
초급자를 위해 준비한
[프로그래밍 언어, 개발 · 프로그래밍] 강의입니다.

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.21 TS(Thread Safe) (64bit)
  • XDebug 3.0.4 TS (64bit)
  • 코드 편집기는 VSCode(Visual Studio Code)를 사용합니다.
  • 브라우저를 준비해주세요. (IE 싫어요)

 

 

예제코드 & QnA

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

나만의 프레임워크 만들기

게시판 프로젝트

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

 

Q. 교재는 있나요?

A. 강의의 정식 교재는 없지만, 강사자 본인이 운영하고 있는 블로그에서 PHP 를 참고하시면 관련 정보를 얻으실 수 있습니다. 다만, 기본적인 부분을 위주로 이야기하고 있기 때문에 내장 함수라든가 게시판 프로젝트의 모든 것을 이야기하지는 않습니다. 즉, 강의에서 이야기하고있는 것과 다릅니다.

https://pronist.tistory.com/36

 

참고 할만한 질의 응답

유머

 

참고할만한 자료 & 서적

 

 

지난 강의 보기

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

 

지식공유자가 알려주는
강의 수강 꿀팁!
🎓
이런 분들께
추천드려요!
PHP 7+ 프로그래밍: 리부트 수강자
PHP 객체지향 프로그래밍을 알아보고 싶으신 분
모던 PHP 프로그래밍을 해보고 싶으신 분
📚
선수 지식,
필요한가요?
PHP 7+ 프로그래밍: 리부트

안녕하세요
정상우 입니다.
정상우의 썸네일
커리큘럼 총 41 개 ˙ 10시간 10분의 수업
이 강의는 영상이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. PHP는 객체지향의 시대를 맞이했다.
02 - 클래스 기초 (Basics) 미리보기 28:32
03 - 정적 메서드와 늦은 정적 바인딩 (Static) 12:38
04 - 생성자와 소멸자, Final, 가시성 (Inheritance) 18:00
05 - 추상 클래스, 인터페이스, 트레이트 (Abstraction) 19:10
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. 내장 클래스, 이 정도는 알아야지!
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 표준 권장안이 뭔가요?
22 - PSR (PHP Standard Recommendation) 10:32
섹션 4. 언제까지 직접 만들어서 쓸 건가요?
23 - PHP 패키지 매니저, 컴포저 (Composer) 14:42
섹션 5. 나만의 프레임워크 만들기
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. 함수형에서, 객체지향으로
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
강의 게시일 : (마지막 업데이트일 : 2021년 07월 03일)
수강평 총 13개
수강생분들이 직접 작성하신 수강평입니다. 수강평을 작성 시 300잎이 적립됩니다.
4.5
13개의 수강평
5점
4점
3점
2점
1점
VIEW 좋아요 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
종혠 thumbnail
리부트를 시작해서 지금 강의도 들었는데, 함수형을 객체적으로 변환시 참고 할 만한 강의였습니다. 한번 들었던 것으로 이해는 다 되지는 않았지만, 여러번 볼 수 록 좋은 강의입니다. 이 후에 괜찮으시면 라라벨을 다루는 것도 좋고,주제가 살짝 벗어나지 않는 선에서 실 서버를 만들면서 서버에 대한 작은 노하우도 배우며 게시판을 만들어 보는 강의가 나오면 좋겠네요. 👍
2020-09-05
Henu thumbnail
가히 PHP 강의중 최고라 말할 수 있을 것 같습니다. 저는 현업에서 PHP 5.* 버전의 레거시 프로젝트를 맡아 업무를 진행하곤 합니다. 하지만 주 개발 언어가 PHP가 아니기에 얕은 지식으로나마 에러가 나지 않을 수준으로만 코딩을 하곤 했었는데, 어느 순간부터 레거시 프로젝트들에 대한 문제점들이 보이기 시작했습니다. 예를 들어, 스파게티 코딩은 당연지사 동일한 처리를 담당하는 함수의 중복, 잘못된 Truthy/Falsy 판별, 더군다나 PHP 환경 설정을 조작하여 얕은 에러(Warning) 같은 경우는 넘기도록 설정이 되어있고 등등... 사태의 심각성을 느끼는 순간 PHP는 원래 이렇게 코딩하는 것인가 의문점이 들었고, 어떻게 하면 PHP로도 유지보수가 편리한 코딩을 할 수 있을까라는 생각이 들던 찰나 인프런에 이렇게 귀한 PHP 강의를 찾게 되었네요. 이 강의 덕분에 PHP 7.*(모던한) 문법과 PHP 프레임워크들의 디렉토리 구조에 대해 제대로 배울 수 있는 기회를 가지게 되었네요. 감사드립니다. 추후 라라벨 프레임워크에 대한 강의가 나온다면 바로 수강 신청하겠습니다! 아, 한가지 OOP 파트까지 수강하면서 아쉬웠던 점은 로컬환경에서만 실습을 하다보니 실제 운영환경(Linux/Unix 등)에는 어떻게 배포가 이루어지는지 궁금해졌습니다. 만약, 강사님의 시간적 여유가 되신다면 다음 강의에서는 운영환경 배포쪽도 다뤄주셨으면 좋겠습니다.
2022-05-11
지식공유자정상우
정성어린 수강평 너무너무 감사합니다. 실제로 시장에서 아직까지도 현역으로 동작하는 프로젝트임에도 불구하고 PHP 프로젝트의 경우에는 말씀하신대로 레거시가 엄청 많습니다. PHP 는 인터넷의 발전에 있어서는 정말 중요한 역할을 해왔지만, 개발자의 입장에서 PHP 가 시장에서 쓰이는 방식은 그렇게 반갑지만은 않았지요. 저도 현업에서 이미 작성된 프로젝트에서 처음 PHP 를 마주했을 때, 정말 이 언어는 이게 한계인가를 고민하게 되어 타 언어로 이사를 가야하나 생각도 했었습니다. 그러나 PHP 는 논프레임워크 환경에서 자유도가 정말 높은 만큼 개발자에 따라 그 결과물은 너무나도 다르다는 것을 인지하고 많은 이들이 PHP 를 보다 나은 방식으로 사용할 수 있도록 강의를 만들어보면 어떨까 싶었습니다. Henu 님처럼 현업에 있으면서 PHP 를 사용할 때 보다 나은 방식으로 작성할 수 있는 방법을 고민하는 개발자가 많아졌으면 좋겠습니다. 여담으로 배포의 경우 저도 아직 미숙한 부분이 많아 제외했답니다 :))
2022-05-11
웹나그네 thumbnail
소리가 너무나도 작아서 너무 불편하게 강의를 들었습니다😡 다음에는 소리에 신경을 써주셨으면 합니다... 그것을 빼면 내용은 좋으니 PHP 기초 강의로 추천드립니다😀
2020-07-18
차무송 thumbnail
자신이 이후 라라벨이나 CI를 다룰 생각이 있다면 필수로 들으세요. 안그러면 framework가 어떤 식으로 돌아가는지도 모 르고 코드를 작성하게 될 것 같습니다. CI4를 공부하면 할수록 이 분이 얼마나 많은 지식을 가지고 계신지 체감하게 하네요... 강의시간에 비해 많은 시간을 투자해야 전체적으로 이해할 수 있다고 생각합니다. 저는 그랬습니다. 하지만 이런 시간 투자가 자신의 힘이 된다고 생각합니다. 이해안가는건 계속 반복해서 문서를 찾아보며 공부한다면 이 강의가 얼마나 고민하고 간단하게 깔끔하게 지식을 전달하기 위해 노력했는지 느끼실겁니다.
2022-02-10
지식공유자정상우
수강평 달아주셔서 정말 감사합니다. 이 강의를 만들면서 나름대로 고민을 많이했었는데 알아주셔서 정말 고맙습니다. 추후 새로운 마이크와 함께 라라벨 강의도 진행예정이랍니다 :)
2022-02-10
cafe small house thumbnail
php 강의중에서는 진짜 좋은거 같습니다 물론 수강생의 실력에 따라서 더 얻어가는것이 다를거라고 개인적으로 생각합니다 이론을 하나하나 알려주는것이기 때문에 흡수하는 차이가 있겠지만 기본적인 php에서 더 나아가 더 넓은 생각들을 하게 해줍니다 중간까지 들은것으로는 너무너무 마음에 들고 1편에 있는 게시판을 또 oop를 사용해서 변경을 할게 남아있는데 정말 기대하면서 보고 있습니다 기본적인 부분은 어느정도 갖추어졌다면 그리고 더욱 php를 공부를 하셔야 한다면 꼭 들으셨으면 좋겠습니다!
2022-01-06
지식공유자정상우
긍정적인 수강평 감사드립니다. :))) 올 상반기 안에 라라벨 강의도 예정되어있답니다. 힘내서 만들어보도록 할게요!
2022-01-06
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의를
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스