ݺߣ
Submit Search
유연하게 확장할 수 있는 PHP 웹 개발 이야기
•
22 likes
•
4,125 views
Young D
Follow
XECon + PHPFest 2014 발표 자료입니다.
Read less
Read more
1 of 105
Download now
Downloaded 75 times
More Related Content
유연하게 확장할 수 있는 PHP 웹 개발 이야기
1.
유연하게 확장할 수
있는 PHP 웹 개발 이야기 용영환 PHPKorea http://xenonix.com 2014.11.08 Session 1-5 XECon + PHPFest 2014
2.
유연하게 확장한다? 2014.11.08
Session 1-5 XECon + PHPFest 2014
3.
2014.11.08 Session 1-5
XECon + PHPFest 2014 http://sports.donga.com/3/all/20110317/35666621/3
4.
확장이 필요한 경우라면
일하는 사람이 늘었거나 돈 내는 사람이 늘었거나. 2014.11.08 Session 1-5 XECon + PHPFest 2014
5.
일하는 사람만 늘었다면…
미안하다!!! 2014.11.08 Session 1-5 XECon + PHPFest 2014
6.
미안하지만 어찌됐든 일은
해야 한다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
7.
돈 내는 사람이
늘었다면… 2014.11.08 Session 1-5 XECon + PHPFest 2014
8.
서버에 장애가 나도
일단 땡큐여서 미안하다!!! 2014.11.08 Session 1-5 XECon + PHPFest 2014
9.
서비스가 성장함에 따라
유연하게 확장하는 길목을 2014.11.08 Session 1-5 XECon + PHPFest 2014
10.
세 가지로 나눠
보면 인간 + 프로그램 + 시스템 2014.11.08 Session 1-5 XECon + PHPFest 2014
11.
처음부터 다 대응하면
좋겠지만… 2014.11.08 Session 1-5 XECon + PHPFest 2014
12.
다음 대응 단계를
알고 준비하고 있으면 좋을 것 같습니다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
13.
초기 개발자 1명?
2014.11.08 Session 1-5 XECon + PHPFest 2014
14.
그리고 우리는 돈이
없다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
15.
그래서, 가볍게 시작합니다.
서버 1 대 = 웹 + DB 2014.11.08 Session 1-5 XECon + PHPFest 2014
16.
mysql_connect ( /slideshow/xe-con-phpfest2014/41350815/“127.0.0.1”
…); 2014.11.08 Session 1-5 XECon + PHPFest 2014
17.
2014.11.08 Session 1-5
XECon + PHPFest 2014 이용자
18.
웹 서버 <분리>
DBMS 2014.11.08 Session 1-5 XECon + PHPFest 2014
19.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 DBMS
20.
mysql_connect ( /slideshow/xe-con-phpfest2014/41350815/“192.168.0.100”
…); 2014.11.08 Session 1-5 XECon + PHPFest 2014
21.
OPcache 2014.11.08 Session
1-5 XECon + PHPFest 2014
22.
2014.11.08 Session 1-5
XECon + PHPFest 2014 이용자
23.
정적 파일과 동적
파일 분리 2014.11.08 Session 1-5 XECon + PHPFest 2014
24.
function getImgUrl($path) {
return $path; } 2014.11.08 Session 1-5 XECon + PHPFest 2014
25.
<img src=/slideshow/xe-con-phpfest2014/41350815/“ <?php
echo getImgUrl(‘/hello.png’) ?> ” /> 2014.11.08 Session 1-5 XECon + PHPFest 2014
26.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 DBMS 이미지 웹 서버
27.
function getImgUrl($path) {
return ‘http://img.phpk.org’.$path; } 2014.11.08 Session 1-5 XECon + PHPFest 2014
28.
ob_start( ); 미리
HTML 파일로 생성 2014.11.08 Session 1-5 XECon + PHPFest 2014
29.
2014.11.08 Session 1-5
XECon + PHPFest 2014 이용자
30.
웹 서버 추가
1 + 1 = 2 대 2014.11.08 Session 1-5 XECon + PHPFest 2014
31.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 DBMS 웹 서버
32.
이렇게 확장하면 참
좋겠습니다만… 2014.11.08 Session 1-5 XECon + PHPFest 2014
33.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 DBMS 웹 서버
34.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 DBMS 웹 서버 L4 스위치
35.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 DBMS 웹 서버 프록시 서버
36.
2014.11.08 Session 1-5
XECon + PHPFest 2014 이용자
37.
웹 서버 추가
1 + 1 + 1 = 3 대 2014.11.08 Session 1-5 XECon + PHPFest 2014
38.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 웹 서버 DBMS 웹 서버 프록시 서버
39.
2014.11.08 Session 1-5
XECon + PHPFest 2014
40.
이제 안정화가 된
것 같으니 개발자를 구해봅니다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
41.
2014.11.08 Session 1-5
XECon + PHPFest 2014 개발자
42.
협업 개발 환경
필요 2014.11.08 Session 1-5 XECon + PHPFest 2014
43.
이슈 트래킹 시스템
소스 저장소, 문서 저장소, 개발 서버, IDE, 소스 리뷰, 통일된 빌드 환경 2014.11.08 Session 1-5 XECon + PHPFest 2014
44.
이슈 트래킹 시스템
JIRA? Mantis? 지금은 그냥 Yobi 2014.11.08 Session 1-5 XECon + PHPFest 2014
45.
소스 저장소 SVN
+ GIT CVS는 요즘 안씁니다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
46.
문서 저장소 Confluence
지금은 그냥 NAS 2014.11.08 Session 1-5 XECon + PHPFest 2014
47.
개발 서버 CentOS
가상머신 or 성능 좋은 개발서버 한대 2014.11.08 Session 1-5 XECon + PHPFest 2014
48.
2014.11.08 Session 1-5
XECon + PHPFest 2014 개발자 PC 개발자 PC 개발자 PC 개발자 PC 개발 서버 개발 서버 개발 서버 개발 서버 가상머신 개발서버
49.
2014.11.08 Session 1-5
XECon + PHPFest 2014 개발 서버 개발자 PC 개발자 PC 개발자 PC 개발자 PC
50.
IDE 이클립스 PDT
2014.11.08 Session 1-5 XECon + PHPFest 2014
51.
장점 : 소스
저장소에서 Checkout 만 받으면 동일한 코드 환경이 유지 2014.11.08 Session 1-5 XECon + PHPFest 2014
52.
통일된 빌드 환경
현재 Ant 조만간 Maven 2014.11.08 Session 1-5 XECon + PHPFest 2014
53.
2014.11.08 Session 1-5
XECon + PHPFest 2014 개발 서버 개발자 PC 개발자 PC 개발자 PC 개발자 PC
54.
빌드 프로그램을 사용하면
PHP 프로젝트를 ZIP 같은 파일로 패키징 할 수 있습니다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
55.
패키징을 하면 배포가
수월하다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
56.
www.php-maven.org 2014.11.08 Session
1-5 XECon + PHPFest 2014
57.
개발자를 뽑았으니 뭔가를
더 만들겠죠. 2014.11.08 Session 1-5 XECon + PHPFest 2014
58.
2014.11.08 Session 1-5
XECon + PHPFest 2014 기능
59.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 웹 서버 DBMS 웹 서버
60.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 웹 서버 DBMS 웹 서버 DBMS
61.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 웹 서버 DBMS 웹 서버 DBMS
62.
라운드 로빈 $db_no
= rand(0,1); mysql_connect ( $db [ $db_no ] ,…); 2014.11.08 Session 1-5 XECon + PHPFest 2014
63.
2014.11.08 Session 1-5
XECon + PHPFest 2014 이용자
64.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 웹 서버 DBMS 웹 서버 DBMS 웹 서버 DBMS
65.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 웹 서버 DBMS 웹 서버 DBMS 웹 서버 DBMS 프록시 서버
66.
mysql_connect ( /slideshow/xe-con-phpfest2014/41350815/“192.168.0.99”
…); 2014.11.08 Session 1-5 XECon + PHPFest 2014
67.
2014.11.08 Session 1-5
XECon + PHPFest 2014
68.
Memcached 같은 메모리
캐시 2014.11.08 Session 1-5 XECon + PHPFest 2014
69.
이용자를 위한 맞춤형
정보가 있다면 2014.11.08 Session 1-5 XECon + PHPFest 2014
70.
로그인을 어떻게 유지할
것인가 2014.11.08 Session 1-5 XECon + PHPFest 2014
71.
방법 1 2014.11.08
Session 1-5 XECon + PHPFest 2014
72.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 웹 서버 DBMS 웹 서버 DBMS 웹 서버 DBMS 프록시 서버 세션 DB
73.
방법 2 2014.11.08
Session 1-5 XECon + PHPFest 2014
74.
쿠키를 직접 이용한다.
2014.11.08 Session 1-5 XECon + PHPFest 2014
75.
이용자 서버를 분리
2014.11.08 Session 1-5 XECon + PHPFest 2014
76.
2014.11.08 Session 1-5
XECon + PHPFest 2014 DBMS 웹 서버 프록시 서버 user.phpk.org DBMS
77.
2014.11.08 Session 1-5
XECon + PHPFest 2014 user1 DBMS user2 DBMS
78.
자신의 /slideshow/xe-con-phpfest2014/41350815/“이용자 서버”가
어디인지 어떻게 아는가 2014.11.08 Session 1-5 XECon + PHPFest 2014
79.
$_SESSION[/slideshow/xe-con-phpfest2014/41350815/“user_server”] = /slideshow/xe-con-phpfest2014/41350815/“user1”;
2014.11.08 Session 1-5 XECon + PHPFest 2014
80.
회원들에게 이메일 발송을
해야한다면… 2014.11.08 Session 1-5 XECon + PHPFest 2014
81.
2014.11.08 Session 1-5
XECon + PHPFest 2014 PHP Worker MQ SMTP 비동기
82.
MQ ActiveMQ RabbitMQ
ZeroMQ … 2014.11.08 Session 1-5 XECon + PHPFest 2014
83.
PHP 프로젝트의 기능
분리 2014.11.08 Session 1-5 XECon + PHPFest 2014
84.
PHP 코드에서 컨트롤러를
분리하면 데이터 처리 부분을 분리할 수 있다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
85.
2014.11.08 Session 1-5
XECon + PHPFest 2014
86.
플러그인 방식? 2014.11.08
Session 1-5 XECon + PHPFest 2014
87.
class HelloModule {
} 2014.11.08 Session 1-5 XECon + PHPFest 2014
88.
Interface Module{ public
function run(); } 2014.11.08 Session 1-5 XECon + PHPFest 2014
89.
$moduleList[ ] =
‘HelloModule’; 2014.11.08 Session 1-5 XECon + PHPFest 2014
90.
foreach ( $moduleList
as $module ) $module->run(); 2014.11.08 Session 1-5 XECon + PHPFest 2014
91.
API 방식? 2014.11.08
Session 1-5 XECon + PHPFest 2014
92.
2014.11.08 Session 1-5
XECon + PHPFest 2014 DBMS 웹 서버 프록시 서버 API 웹 서버 JSON
93.
AJAX 방식? 2014.11.08
Session 1-5 XECon + PHPFest 2014
94.
데이터 객체의 분리
2014.11.08 Session 1-5 XECon + PHPFest 2014
95.
class ArticleDAO extends
DB { } 2014.11.08 Session 1-5 XECon + PHPFest 2014
96.
DB 객체가 DB
연결을 담당한다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
97.
이렇게 컨트롤러를 분리하면
테스트가 가능하다. 2014.11.08 Session 1-5 XECon + PHPFest 2014
98.
PHP UnitTest 2014.11.08
Session 1-5 XECon + PHPFest 2014
99.
2014.11.08 Session 1-5
XECon + PHPFest 2014
100.
2014.11.08 Session 1-5
XECon + PHPFest 2014
101.
2014.11.08 Session 1-5
XECon + PHPFest 2014 Front-End PHP Back-End PHP
102.
2014.11.08 Session 1-5
XECon + PHPFest 2014 이용자
103.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 Nginx Cache 프록시 서버
104.
2014.11.08 Session 1-5
XECon + PHPFest 2014 웹 서버 FestCGI PHP/Hack 서버 DBMS
105.
2014.11.08 Session 1-5
XECon + PHPFest 2014
Download