SlideShare a Scribd company logo
1 of 48
Download to read offline
PHP 개발 방법 
용영환 
for 티몬 개발자
저는 
Café 24, Tatter&Company, NAVER, Ahems 
“이클립스 PDT” 
“개발자, 나를 말하다”
오늘과 내일, 우리가 함께 할 것들은 개발자를 보다 인간답게 살 수 있게 해줍니다.
어머, 이건 꼭 해야해!!
웹 개발 환경 
Development Server 
Production Server
웹 개발 환경 
Development Servers - Dev Server : Co-working 
- Apha Server : Co-testing 
- Beta Server : Verification
PHP 코딩 도구 
Notepad ++ 
Editplus 
Ultraedit 
Vim
좀더 나은 PHP 코딩 도구 
이클립스 PDT 
Intelli J 
PHP Storm 
NetBeans 
Sublime 
......
우리는 PHP 개발 방법에 대해 같이 고민해 볼 겁니다.
개발 방법이란? 개발 도구와는 다른 것? 뭐지?
방법 
어떤 일을 해 나가거나 목적을 이루기 위하여 취하는 수단이나 방식.
방법 
어떤 일을 해 나가거나 목적을 이루기 위하여 취하는 수단이나 방식. 
개발 방법 
개발을 하기 위한 수단이나 방식.
함수 지향 개발 방법, 객체 지향 개발 방법, 
애자일 개발 방법, 짝 프로그래밍 개발 방법, 
통합 개발 환경에서의 개발 방법, 
버전 관리 소프트웨어를 통한 개발 방법, 
천상천하 유아독존 개발 방법 등
우리의 PHP 개발 방법은 
통합 개발 환경인 Eclipse PDT 에서 
객체 지향적으로 코딩을 하고 
PHPUnit 으로 단위 테스트를 하고 
Xdebug 로 디버깅을 하고 
Profiling으로 팀장님이 짠 소스 코드 성능 테스트도 하고 
CodeSniffer로 코드를 훑어 볼 겁니다.
통합 개발 환경(IDE)?
이클립스 
Java 로 만들어진 범용 소프트웨어 플랫폼 
모든 것이 다 Plug-ins 
이클립스 재단 
현재 Version 4.3 Kepler (2013년 6월 26일) 
이클립스 RCP 를 이용하면 뭐든 만들 수 있다.
이클립스 PDT 
이클립스 공식 프로젝트 
PHP 통합 개발 환경 
2007년 4월 6일 0.7 버전 공개 
Zend 사에서 주로 개발
이클립스 PDT 장점 
코드 자동 완성 
객체지향적 개발 가능 
자동 포멧 교정 
코드 오류 검출 
실행, 디버깅 등을 손쉽게 가능 
여러가지 유용한 개발 도구 지원
PHP 이야기 
PHP에 대해서 이야기를 나누어 보죠.
왜 PHP가 까이는가? 
보안에 취약하다? 성능이 안좋다? 코드가 지져분하다? 단순한 스크립트 언어다? PHP: 잘못된 디자인의 프랙탈 
-예측 가능, 일관성, 간결, 신뢰성, 디버깅
PHP는 건재하다
언어는 표현 수단이다. 
선입견과 편견을 버리자. 
이 세상 모든건 다 장단점이 있다.
PHP 버전 
PHP 5.0 : Zend 2.0 , 4X Fater than PHP 4. 
PHP 5.3 : Namespace, Closures, Garbage collection 등
PHP 미래 
PHP 5.5 : Coroutines, finally, Zend OPCache 
Coroutines???
PHP 미래 
PHP 5.5 : Coroutines, finally, Zend OPCache 
Coroutines??? 
Aikido, AngelScript, BCPL, Pascal, BETA, C#, ChucK, D, Dynamic C, Erlang, F#, Factor, GameMonkey, Go, Haskell, High Level Assembly, JavaScript(since 1.7), Icon, Io, Limbo, Lua, Lucid, μC++, MiniD, Modula-2, Nemerle, Perl(Perl 5 with Coro, Perl 6 native[citation needed]), Prolog, Python(since 2.5), Ruby, Sather, Scheme, Self, Simula-67, Squirrel, stackless Python, SuperCollider, Tcl(since 8.6), urbiscript 
AND PHP 5.5
PHP 미래 
PHP 5.6 
Internal Operator Overloading 
Uploads of over 2GB are now accepted 
POST data memory usage decreased 
Skipping Parameters
PHP 미래 
PHP 5.6 
Skipping Parameters 
function foo($param, $param2=’a', $param3=0, $param4=”) {…} 
foo(‘value’, default, default, ‘another value’)
Namespace 
클래스 중복을 방지한다. 
PEAR DB  독점권이라도 갖고 있나?
Anonymous function 
“익명함수” 
함수명이 없다. 
그래서, 단순하면서도 강력하다.
Lambda 
또다른 “익명함수” 
이또한 신세계이다.
코드 살펴 보기
배포 
로컬 워크스테이션 
공용 개발 or 알파 서버 
무엇으로
배포 
개발 or 알파 서버 
베타 or 프로덕션 서버 
무엇으로
배포 
http://ant.apache.org/
객체지향 PHP 
왜 객체지향으로 개발해야 하는가? 
모델링을 보다 자연스럽게 할 수 있다. 
모델링이 되면 개발이 쉬워진다. 
재사용성이 높아진다. 
확장 및 유지보수가 보다 쉬워진다.
객체지향 PHP 
왜 객체지향으로 개발해야 하는가? 
인간이 생각하는 방식과 비슷하다.  자연스럽다. 
재사용성과 확장성  퇴근이 빨라질 수도 있다.
객체지향 PHP 
Model – 데이터 모델 
Data Access Object – 데이터 처리 
Business Object – 비즈니스 로직
Model
3D Modeling
Class Modeling
Getter & Setter 
외부에서 접근 가능한 정보에는 
Getter 또는 Setter를 만든다. 
캡슐화 + 정보 은닉 
클래스의 내용을 모르더라도 원하는 결과를 얻게 한다. 
정보에 대한 접근을 제한한다.
프로파일링 
일반적 수사 기법으로는 해결되기 힘든 연쇄살인사건 수사 등에 투입되어 
용의자의 성격, 행동유형 등을 분석하고, 
도주경로나 은신처 등을 추정하는 역할을 한다.
프로파일링 
http://xdebug.org/
Kcachegrind ( KDE )
테스트 
소프트웨어 개발에서 테스트란? 
우리가 해야 할 것은 “단위 테스트” 
PHPUnit 은 단위 테스트를 할 수 있게 해주는 도구
테스트 
소프트웨어 개발에서 테스트란? 
우리가 해야 할 것은 “단위 테스트” 
PHPUnit 은 단위 테스트를 할 수 있게 해주는 도구
CI 
continuous integration 
지속적인 통합?
CI 
빌드 자동화 
테스트 자동화 
배포 자동화

More Related Content

What's hot

『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기복연 이
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기Young D
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기NAVER D2
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기Changwan Jun
 
[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법phpkorea
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!영호 김
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
Phpstorm remote xdebug setting
Phpstorm remote xdebug settingPhpstorm remote xdebug setting
Phpstorm remote xdebug settingJung soo Ahn
 
[D2]pinpoint 개발기
[D2]pinpoint 개발기[D2]pinpoint 개발기
[D2]pinpoint 개발기NAVER D2
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)성일 한
 
[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기NAVER D2
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)NAVER D2
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 

What's hot (20)

Modern PHP
Modern PHPModern PHP
Modern PHP
 
『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
 
[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
Phpstorm remote xdebug setting
Phpstorm remote xdebug settingPhpstorm remote xdebug setting
Phpstorm remote xdebug setting
 
Learning Laravel
Learning LaravelLearning Laravel
Learning Laravel
 
Composer
ComposerComposer
Composer
 
[D2]pinpoint 개발기
[D2]pinpoint 개발기[D2]pinpoint 개발기
[D2]pinpoint 개발기
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
 
[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 

Similar to 티켓몬스터를 위한 PHP 개발 방법

XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기Sol Kim
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdfSeung kyoo Park
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호용호 최
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호Jiho Lee
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화Terry Cho
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화Jaehoon Choi
 
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)Channy Yun
 
예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기수보 김
 
프로그래머를 꿈꾸는 학부 후배들에게
프로그래머를 꿈꾸는 학부 후배들에게프로그래머를 꿈꾸는 학부 후배들에게
프로그래머를 꿈꾸는 학부 후배들에게Matthew (정재화)
 
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)VMware Tanzu Korea
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기복연 이
 
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략Ji-Woong Choi
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기KTH, 케이티하이텔
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기Sunghyouk Bae
 
UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑Dongsik Yang
 
31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"hyu_jaram
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 

Similar to 티켓몬스터를 위한 PHP 개발 방법 (20)

XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
 
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)
 
예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기
 
프로그래머를 꿈꾸는 학부 후배들에게
프로그래머를 꿈꾸는 학부 후배들에게프로그래머를 꿈꾸는 학부 후배들에게
프로그래머를 꿈꾸는 학부 후배들에게
 
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
 
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
 
UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑
 
31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 

More from Young D

HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법Young D
 
한발 앞서 배워보는 Xamarin overview
한발 앞서 배워보는 Xamarin overview한발 앞서 배워보는 Xamarin overview
한발 앞서 배워보는 Xamarin overviewYoung D
 
Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Young D
 
ERD를 이용한 DB 모델링
ERD를 이용한 DB 모델링ERD를 이용한 DB 모델링
ERD를 이용한 DB 모델링Young D
 
Microsoft Azure를 통한 Push와 DB 이용방법
Microsoft Azure를 통한 Push와 DB 이용방법Microsoft Azure를 통한 Push와 DB 이용방법
Microsoft Azure를 통한 Push와 DB 이용방법Young D
 
iBeacons가 뭔가
iBeacons가 뭔가iBeacons가 뭔가
iBeacons가 뭔가Young D
 
CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치Young D
 
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리Young D
 
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까Young D
 
[협업 도구] 위키를 활용한 협업 노하우
[협업 도구] 위키를 활용한 협업 노하우 [협업 도구] 위키를 활용한 협업 노하우
[협업 도구] 위키를 활용한 협업 노하우 Young D
 
교육용 프로그래밍 언어 Small basic
교육용 프로그래밍 언어 Small basic교육용 프로그래밍 언어 Small basic
교육용 프로그래밍 언어 Small basicYoung D
 

More from Young D (11)

HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
 
한발 앞서 배워보는 Xamarin overview
한발 앞서 배워보는 Xamarin overview한발 앞서 배워보는 Xamarin overview
한발 앞서 배워보는 Xamarin overview
 
Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법
 
ERD를 이용한 DB 모델링
ERD를 이용한 DB 모델링ERD를 이용한 DB 모델링
ERD를 이용한 DB 모델링
 
Microsoft Azure를 통한 Push와 DB 이용방법
Microsoft Azure를 통한 Push와 DB 이용방법Microsoft Azure를 통한 Push와 DB 이용방법
Microsoft Azure를 통한 Push와 DB 이용방법
 
iBeacons가 뭔가
iBeacons가 뭔가iBeacons가 뭔가
iBeacons가 뭔가
 
CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치CentOS 에 MySQL 5.6 설치
CentOS 에 MySQL 5.6 설치
 
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리마이크로소프트 Azure 에서 안드로이드  Push 구현과 Data 처리
마이크로소프트 Azure 에서 안드로이드 Push 구현과 Data 처리
 
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
무선 랜으로 파일 전송할 때 왜 무선 마우스 랙이 발생할까
 
[협업 도구] 위키를 활용한 협업 노하우
[협업 도구] 위키를 활용한 협업 노하우 [협업 도구] 위키를 활용한 협업 노하우
[협업 도구] 위키를 활용한 협업 노하우
 
교육용 프로그래밍 언어 Small basic
교육용 프로그래밍 언어 Small basic교육용 프로그래밍 언어 Small basic
교육용 프로그래밍 언어 Small basic
 

티켓몬스터를 위한 PHP 개발 방법

  • 1. PHP 개발 방법 용영환 for 티몬 개발자
  • 2. 저는 Café 24, Tatter&Company, NAVER, Ahems “이클립스 PDT” “개발자, 나를 말하다”
  • 3. 오늘과 내일, 우리가 함께 할 것들은 개발자를 보다 인간답게 살 수 있게 해줍니다.
  • 4. 어머, 이건 꼭 해야해!!
  • 5. 웹 개발 환경 Development Server Production Server
  • 6. 웹 개발 환경 Development Servers - Dev Server : Co-working - Apha Server : Co-testing - Beta Server : Verification
  • 7. PHP 코딩 도구 Notepad ++ Editplus Ultraedit Vim
  • 8. 좀더 나은 PHP 코딩 도구 이클립스 PDT Intelli J PHP Storm NetBeans Sublime ......
  • 9. 우리는 PHP 개발 방법에 대해 같이 고민해 볼 겁니다.
  • 10. 개발 방법이란? 개발 도구와는 다른 것? 뭐지?
  • 11. 방법 어떤 일을 해 나가거나 목적을 이루기 위하여 취하는 수단이나 방식.
  • 12. 방법 어떤 일을 해 나가거나 목적을 이루기 위하여 취하는 수단이나 방식. 개발 방법 개발을 하기 위한 수단이나 방식.
  • 13. 함수 지향 개발 방법, 객체 지향 개발 방법, 애자일 개발 방법, 짝 프로그래밍 개발 방법, 통합 개발 환경에서의 개발 방법, 버전 관리 소프트웨어를 통한 개발 방법, 천상천하 유아독존 개발 방법 등
  • 14. 우리의 PHP 개발 방법은 통합 개발 환경인 Eclipse PDT 에서 객체 지향적으로 코딩을 하고 PHPUnit 으로 단위 테스트를 하고 Xdebug 로 디버깅을 하고 Profiling으로 팀장님이 짠 소스 코드 성능 테스트도 하고 CodeSniffer로 코드를 훑어 볼 겁니다.
  • 16. 이클립스 Java 로 만들어진 범용 소프트웨어 플랫폼 모든 것이 다 Plug-ins 이클립스 재단 현재 Version 4.3 Kepler (2013년 6월 26일) 이클립스 RCP 를 이용하면 뭐든 만들 수 있다.
  • 17. 이클립스 PDT 이클립스 공식 프로젝트 PHP 통합 개발 환경 2007년 4월 6일 0.7 버전 공개 Zend 사에서 주로 개발
  • 18. 이클립스 PDT 장점 코드 자동 완성 객체지향적 개발 가능 자동 포멧 교정 코드 오류 검출 실행, 디버깅 등을 손쉽게 가능 여러가지 유용한 개발 도구 지원
  • 19. PHP 이야기 PHP에 대해서 이야기를 나누어 보죠.
  • 20. 왜 PHP가 까이는가? 보안에 취약하다? 성능이 안좋다? 코드가 지져분하다? 단순한 스크립트 언어다? PHP: 잘못된 디자인의 프랙탈 -예측 가능, 일관성, 간결, 신뢰성, 디버깅
  • 22. 언어는 표현 수단이다. 선입견과 편견을 버리자. 이 세상 모든건 다 장단점이 있다.
  • 23. PHP 버전 PHP 5.0 : Zend 2.0 , 4X Fater than PHP 4. PHP 5.3 : Namespace, Closures, Garbage collection 등
  • 24. PHP 미래 PHP 5.5 : Coroutines, finally, Zend OPCache Coroutines???
  • 25. PHP 미래 PHP 5.5 : Coroutines, finally, Zend OPCache Coroutines??? Aikido, AngelScript, BCPL, Pascal, BETA, C#, ChucK, D, Dynamic C, Erlang, F#, Factor, GameMonkey, Go, Haskell, High Level Assembly, JavaScript(since 1.7), Icon, Io, Limbo, Lua, Lucid, μC++, MiniD, Modula-2, Nemerle, Perl(Perl 5 with Coro, Perl 6 native[citation needed]), Prolog, Python(since 2.5), Ruby, Sather, Scheme, Self, Simula-67, Squirrel, stackless Python, SuperCollider, Tcl(since 8.6), urbiscript AND PHP 5.5
  • 26. PHP 미래 PHP 5.6 Internal Operator Overloading Uploads of over 2GB are now accepted POST data memory usage decreased Skipping Parameters
  • 27. PHP 미래 PHP 5.6 Skipping Parameters function foo($param, $param2=’a', $param3=0, $param4=”) {…} foo(‘value’, default, default, ‘another value’)
  • 28. Namespace 클래스 중복을 방지한다. PEAR DB  독점권이라도 갖고 있나?
  • 29. Anonymous function “익명함수” 함수명이 없다. 그래서, 단순하면서도 강력하다.
  • 30. Lambda 또다른 “익명함수” 이또한 신세계이다.
  • 32. 배포 로컬 워크스테이션 공용 개발 or 알파 서버 무엇으로
  • 33. 배포 개발 or 알파 서버 베타 or 프로덕션 서버 무엇으로
  • 35. 객체지향 PHP 왜 객체지향으로 개발해야 하는가? 모델링을 보다 자연스럽게 할 수 있다. 모델링이 되면 개발이 쉬워진다. 재사용성이 높아진다. 확장 및 유지보수가 보다 쉬워진다.
  • 36. 객체지향 PHP 왜 객체지향으로 개발해야 하는가? 인간이 생각하는 방식과 비슷하다.  자연스럽다. 재사용성과 확장성  퇴근이 빨라질 수도 있다.
  • 37. 객체지향 PHP Model – 데이터 모델 Data Access Object – 데이터 처리 Business Object – 비즈니스 로직
  • 38. Model
  • 41. Getter & Setter 외부에서 접근 가능한 정보에는 Getter 또는 Setter를 만든다. 캡슐화 + 정보 은닉 클래스의 내용을 모르더라도 원하는 결과를 얻게 한다. 정보에 대한 접근을 제한한다.
  • 42. 프로파일링 일반적 수사 기법으로는 해결되기 힘든 연쇄살인사건 수사 등에 투입되어 용의자의 성격, 행동유형 등을 분석하고, 도주경로나 은신처 등을 추정하는 역할을 한다.
  • 45. 테스트 소프트웨어 개발에서 테스트란? 우리가 해야 할 것은 “단위 테스트” PHPUnit 은 단위 테스트를 할 수 있게 해주는 도구
  • 46. 테스트 소프트웨어 개발에서 테스트란? 우리가 해야 할 것은 “단위 테스트” PHPUnit 은 단위 테스트를 할 수 있게 해주는 도구
  • 47. CI continuous integration 지속적인 통합?
  • 48. CI 빌드 자동화 테스트 자동화 배포 자동화