PHP 7+ 프로그래밍: 리부트
PHP 7+ 프로그래밍: 리부트
수강정보
(6개의 수강평)
81명의 수강생
스킬태그 #Back-End, #PHP, #웹 개발
25% 할인, D-7
41,250원
55,000원
지식공유자 : 정상우
70회 수업 · 총 15시간 11분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 입문

이 강의는

기초 문법부터 내장 함수, 웹 보안, 게시판 만들기까지 PHP 언어를 시작하는 분들을 위해 바이블이 될 수 있게 만들어보고자 하는 마음으로 이번 강좌를 만들어보았습니다.

이런 걸 배워요

  • PHP 7+ 기초문법
  • PHP 에서 사용하는 다양한 내장함수들
  • PHP 의 웹 보안 요소들
  • PHP 로 회원제 게시판 만들기
  • PHP 레거시 프로젝트 탈출

레거시 PHP 대신 꼭 알아야 할
최신 PHP 7+ 프로그래밍을 학습할 수 있습니다.

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

이 강좌는 기존에 있던 'PHP 7+ 프로그래밍' 강좌의 리부트 버전입니다. 기초 문법부터 내장 함수, 웹 보안, 게시판 만들기까지 입문초급단계에서 PHP 언어를 시작하는 분들을 위해 바이블이 될 수 있게 만들어보고자 하는 마음으로 이번 강좌를 만들어보았습니다.

이번 강좌에서는 PHP 프로그래밍 기초 문법부터 시작하여 내장 함수, 웹 보안, 게시판 만들기까지 웹 개발에 있어서 기초가 될 수 있는 부분을 이야기합니다. 기존에 있던 'PHP 7+ 프로그래밍' 강좌에서 다루지 않았던 여러 내장 함수들이나 게시판에서 단순 구현 뿐만이 아닌 함수화를 통해 코드의 품질 향상까지 도모할 수 있도록 구성해 보았습니다.

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

+ 리부트 이전의 기존 "PHP 7+ 프로그래밍" 강의 학습자를 대상으로 50% 할인 쿠폰을 제공할 예정입니다. 기존 강의 공지를 확인해주세요!

어떤 것을 배우게 되나요?

꼭 알아야 할 PHP 기초 문법

PHP 7+ 버전에 해당하는 기본적인 문법을 익힙니다. 해당 강좌는 기본적으로 PHP 7.2 버전을 기준으로 하나 PHP 7.4 버전에 등장한 Arrow FunctionSpread Operator in Array 도 커버할 수 있도록 구성하였습니다. 따라서 강의를 천천히 따라오다보면 현재 시점으로 최신버전인 PHP 7.4 버전까지 익힐 수 있습니다.

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

많이 사용하는 PHP 내장 함수들

String, Password Hashing 등 PHP 프로그래밍을 하면서 꼭 알아야 할 내장 함수에 대해 배웁니다. 내용이 많아 보일 수 있지만, 게시판 만들기에서 상당 수 사용하게 됩니다. 너무 많다면, 레퍼런스 형식으로 게시판 만들기를 먼저 진행하다가 내장 함수 파트를 보는 것도 한 가지 방법입니다.

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

보안을 잊지 마십시오.

Session, XSS 등 웹 보안에 대해 익힙니다. PHP 는 타 언어에 비해 진입 장벽이 다소 낮기 때문에 오히려 보안과 같은 사항이 지켜지지 않는 경우가 많습니다. 이는 웹 어플리케이션 작성에 있어서 문제가 될 수 있으며 우리가 설령 보안 전문가는 아니라고 할 지라도 기본적인 보안 사항은 지켜줄 필요가 있습니다.  

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

결국, 게시판을 만들게 되어 있습니다.

레거시 프로젝트로 게시판을 만듭니다. 아무것도 없는 백지에서 index.php 를 작성하는 것을 시작으로 프로젝트가 진행됩니다. 이러한 게시판 프로젝트가 현재 프레임워크 위주로 개발되어 돌아가는 웹 어플리케이션 세계에 있어서 맞지 않을 수 있습니다. 하지만 PHP 의 프레임워크인 라라벨을 조금이라도 이해하기 위해서는 레거시로 프로젝트를 작성해볼 필요가 있으며, 놀랍게도 현장에는 레거시로 작성된 PHP 4, PHP 5 어플리케이션 또한 많습니다.

언제까지, 레거시입니까?

레거시로 작성한 게시판 프로젝트를 '어떤 아키텍쳐' 를 묘사하며 비슷하게 따라합니다. 객체지향으로 구현한 '진짜' 는 아니기에 언급하지 않습니다.  하지만 현재 존재하는 코드를 함수화 함으로써 코드가 극적으로 변화하는 모습을 볼 수 있습니다. 객체지향으로 구현해보는 것은 'PHP 7+ 프로그래밍: 객체지향' 에서 이야기 할 예정입니다.

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

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

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

예제코드 & QnA

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

게시판 프로젝트는 두 개의 브랜치로 나뉘어 있고, 각각 함수화 이전과 이후로 나뉘어 있습니다.

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

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

Q. 이 강좌 이후에는 어떤 것을 공부하면 좋을까요?

A. 객체지향 파트를 반드시 공부해야 합니다. 자료는 PHP 문서를 보는 것이 그나마 낫습니다. 물론, PHP 는 함수형 프로그래밍을 할 수도 있으므로 그것을 알아보는 것도 좋습니다. 그 외에 PHP Coding Stadnard, PSR(PHP Standard Recommendation) 등을 알아봐야 합니다. 한 가지 확실한 것은 객체지향을 공부하기 이전에 라라벨 프레임워크로 넘어가는 것은 지양하는 것이 좋습니다.

이 강좌의 다음 강좌는  'PHP 7+ 프로그래밍: 객체지향' 입니다. 이번 강좌에서 함수에 대한 이야기를 주로 했다면, 객체지향에서는 클래스와 객체에 대한 이야기를 주로하고, 그 뿐만 아니라 패키지매니저 등 조금 더 깊은 내용을 살펴봅니다.

2020년 06월 09일 'PHP 7+ 프로그래밍: 객체지향' 강의가 공개되었습니다.
https://www.inflearn.com/course/php7-oop

참고 할만한 질의 응답

참고 할만한 자료 & 서적

도움 되는 분들

  • PHP 를 배워보고 싶으신 분
  • PHP 로 웹 서비스를 구축해보고 싶으신 분
  • PHP 를 확실하게 알아보고 싶으신 분

교육과정

모두 펼치기 70 강의 15시간 11분
섹션 0. 우리 수업에 대하여
1 강의 08 : 08
섹션 1. 꼭 알아야 할 PHP 기초 문법
14 강의 171 : 19
02 - 기초 문법 (Basic syntax)
13 : 00
03 - 자료형 (Types) (1)
11 : 22
04 - 자료형 (Types) (2)
15 : 21
05 - 변수 (Variables)
13 : 08
06 - 상수 (Constants)
04 : 22
07 - 연산자 (Operators) (1)
18 : 07
08 - 연산자 (Operators) (2)
11 : 00
09 - 조건문 (if ~ elseif, else)
13 : 27
10 - 반복문 (for, foreach) (1)
08 : 29
11 - 반복문 (while, do ~ while) (2)
09 : 06
12 - 함수 (Functions) (1)
14 : 44
13 - 함수 (Functions) (2)
10 : 15
14 - 함수 (Functions) (3)
18 : 48
15 - 코드 분할 (include, require)
10 : 10
섹션 2. 많이 사용하는 PHP 내장 함수들
30 강의 373 : 17
16 - PHP Options/Info (1)
15 : 19
17 - PHP Options/Info (2)
07 : 27
18 - Error Handling
10 : 30
19 - Strings (1)
22 : 38
20 - Strings (2)
21 : 55
21 - Hash
09 : 26
22 - Password Hashing
11 : 05
23 - PCRE
22 : 54
24 - Math
07 : 41
25 - CSPRNG
03 : 38
26 - Array (1)
17 : 04
27 - Array (2)
06 : 33
28 - Variable Handling
13 : 35
29 - Filter
17 : 43
30 - Function Handling
07 : 50
31 - Date
15 : 52
32 - Network
11 : 25
33 - Sessions
14 : 18
34 - URLs
07 : 55
35 - cURL
08 : 46
36 - JSON
02 : 57
37 - Directory
06 : 44
38 - Filesystem (1)
23 : 50
39 - Filesystem (2)
08 : 43
40 - Streams (1)
13 : 33
41 - Streams (2)
11 : 37
42 - Readline
04 : 20
43 - Output Control
05 : 26
44 - Program Execution
20 : 40
45 - MySQLi
21 : 53
섹션 3. 보안을 잊지 마십시오.
5 강의 60 : 59
46 - 에러 보고 (Error Reporting)
05 : 40
47 - 파일 (File)
16 : 41
48 - 세션 (Sessions)
13 : 08
49 - SQL 주입 (SQL Injection)
09 : 00
50 - 크로스 사이트 스크립팅 (XSS)
16 : 30
섹션 4. 결국, 게시판을 만들게 되어있습니다.
10 강의 161 : 32
51 - 게시판 강의 소개 (Introduction)
05 : 53
52 - 부트스트랩 (Bootstrap)
11 : 19
53 - 레이아웃 (Layouts)
14 : 48
54 - 유저 (User; Register)
17 : 32
55 - 인증 (Auth; Login, Logout), 유저 (User; Update)
16 : 40
56 - 게시글 (Post; Write) (1)
27 : 34
57 - 게시글 (Post; Index) (2)
23 : 45
58 - 게시글 (Post; Read, Delete) (3)
21 : 31
59 - 게시글 (Post; Update) (4)
12 : 45
60 - 현재 작성한 게시판의 문제점 (Problems)
09 : 45
섹션 5. 언제까지, 레거시입니까?
10 강의 136 : 18
61 - 디렉토리 (Directories)
04 : 04
62 - 함수 (Functions; Database) (1)
12 : 21
63 - 함수 (Functions; Functions) (2)
21 : 08
64 - 프로바이더 (Providers)
10 : 08
65 - 미들웨어 (Middlewares)
07 : 16
66 - 뷰, 컨트롤러, 서비스 (View & Controller & Service)
23 : 28
67 - 인증 (Auth)
11 : 01
68 - 유저 (User)
12 : 29
69 - 게시글 (Post)
24 : 10
70 - 이미지 (Image)
10 : 13

공개 일자

2020년 2월 24일 (마지막 업데이트 일자 : 2020년 2월 26일)

수강 후기

4.3
6개의 수강평
default_profile.png
최병욱 4달 전
php 강의가 별로 없는데 좋은 강의를 듣게 되어 감사드립니다 객체지향 강의도 많이 기대 됩니다.
정상우

정상우 4달 전
수강평 감사합니다 :) 기대하신다니 어깨가 무거워지네요 ㅜㅜ ㅋㅋ

default_profile.png
개Foot 6달 전
좋은 강의 열어 주셔서 감사합니다. 이 강의 학생분들은 http 프로토콜을 이해하셨으며 php 강의 이지만, 웹을 만들기 시작하신분 들에게 웹의 전반적인 방향과 기초를 잡아 주기에 좋은 강의 였습니다. 개인적으로 처음 웹을 만들 때 기본 보안 쪽을 어떻게 구성해야 하는 부분에서 고민이 많은 분에게도 추천 합니다. 선생님께서 많은 질문에도 친철하게 알려주셔서 카피 프로젝트를 무사히 할 수 있었습니다.(제 질문이 참고 질문에 올라와서 영광이었습니다!!^^) 다음 강의를 기다리면서 바램은 코드 폰트를 약간 키워주셨으면 하네요.^^ 감사합니다!!
정상우

정상우 6달 전
으앗 수강평 남겨주셔서 감사합니다. 객체지향 쪽이 현재 문법 부분까진 제작이 되었는데, 그 다음 섹션부터는 폰트 크기를 올려야 할 듯 싶네요. (개Foot 님은 이 강좌의 첫 번째 완강자입니다. Thank you!)

default_profile.png
고수 2달 전
발음 정확하게 해줬으면 좋겠다.. 뭐라고 말하시는데 집중해서 들어도 뭐라고 하는지 잘 안들린게 좀 아쉬움 강의 자체는 easy..
정상우

정상우 2달 전
수강평 감사합니다! 아무리 첫 강의라 그런지 발음이 어눌했던 점이 있던 것 같습니다. xD + 그리고 보니 .. 인코딩을 다시 해서 소리를 좀 키워야겠네요 .. ㅜㅜ

수강 문의

  • Henu 프로필 Henu
    2020-09-02 58981

    안녕하세요. PHP를 사용할 때는 주로 5.* 버전으로 그누보드를 이용해서 코딩을 하곤 했었습니다.(레거시 프로젝트들) 주 개발언어가 PHP는 아니지만 어느정도 관심있게 보는 언어이다 보니, 수강전 문의 드립니다. 기존 레거시 프로젝트 개발 및 유지보수를 진행하면서 PHP는 맥락없이 코딩하는 언어구나 느꼈었습니다. 각 회사마다 코딩 스타일은 다르겠지만 제가 경험했던 바로는 정리가 안된 변수들과 함수, 그때마다 필요하면 하드코딩을 통한 에러 수정.. 추후 누군가 개발한 프로젝트를 유지보수 하게 될때에는 코드를 보는순간 짜증이 밀려왔었는데요. 이러한 이유들이 PHP가 가진 장점이자 단점으로 생각이 듭니다. 그 단점을 보완하고자, 이 강의에 관심을 가지게 되었고, PHP 5.* 버전과 7버전의 차이 및 학습의 난이도를 알고 싶습니다. 또한 7 버전 기준으로 학습을 했지만 이를 5.* 버전에서도 적용할 수 있을지 궁금합니다.

    정상우
    정상우
    정상우
    2020-09-02 69053

    PHP 5, PHP 7 의 차이는 내장 함수 및 문법의 변화와 PHP 의 속도가 비약적으로 상승했다는 점입니다만, 사실 가장 중요한건 PHP 세계가 체계적으로 확립되었다는 점입니다. 말씀하셨듯이 레거시 PHP 프로젝트는 난잡하고, 스파게티 코드입니다. 저도 그런 프로젝트를 많이 경험해봐서 상당히 나쁘게 생각하고 있습니다. 하지만 PHP 7이 등장 한 지 꽤 오래되었고 MVC 등의 아키텍쳐 패턴의 출현과 자바스크립트의 NPM 과 비슷한 역할을 하는 의존성관리자의 발달, PHP 의 코딩 스타일을 권장하는 PSR 이 등장하는 등 PHP 의 생태계가 상당한 변화를 이루었습니다. PHP 가 가진 자유는 가독성의 하락과 어려운 유지보수를 불러왔기에 어느정도는 제한이 필요했기에 나타난 것들이겠지요. 프레임워크 중에서 라라벨 프레임워크는 PHP 개발자라면 꼭 익혀두면 좋은 프레임워크입니다. 학습의 난이도는 PHP 를 처음접하는 사람부터 할 수 있도록 했으며, PHP 7 프로그래밍: 리부트 강좌는 초급 강좌. 정말 처음 하는 분들부터 할 수 있고, PHP 7 프로그래밍: 객체지향 강좌는 초급 이상의 분들부터 들어주시면 더 좋을 것같습니다. :)

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