자유게시판

제목 PHPfest2011 후기입니다 ㅎ
글쓴이 조사장 작성시각 2011/05/31 11:21:13
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 13342   RSS

안녕하세요.

2월달에 CI를 접하며 인사드린 이후;;; 플젝이 이제서야 마감되어 조금 여유를 가지고 찾아와봅니다 ㅎㅎ

PHPFest 2011에서 웅파님의 'CI 보안 및 후킹 팁'이란 주제로 강의를 듣고 제 나름대로 내용을 정리해보았습니다.
(실제 훌륭하고 좋았던 내용에 비해 제 맘대로 해석하여 정리한 내용인지라 질이 떨어질 수 있으니..유의하세요 ㅋ)



1. CI 개발사례로 본 장점

 - CI사용시와 순수PHP로 개발하였을때 2배가량의 속도차이가 난다고 함

> 강의에서 2009년 당시 1.5버전?과의 순수PHP와의 성능차이는 약 10배가량으로 PHP가 월등하다고 하였으나, 1.7이후? 2.0이후? 많이 좋아져 성능면에서 빠른 성능을 기대할 수 있다고 합니다

CI를 사용하면 기본적으로 MVC가 적용되어있고 이 구조에 익숙한 저로썬 성능도 성능이지만 개발속도 및 유지보수시 매우 편리하다는 이점이 작용하여 성능은...나날이 발전하는 서버의 사양과 기술력(memcached등..)으로 커버가 가능하다고 생각합니다 ㅋ

 - 실무에서는 아직 2.0보다는 1.7이 더 많이 쓰이며 2.0은 교육 및 실험(?)위주로 사용하고 있다고 함

> 네 저희회사에서는 걍 바로 플젝에 반영해서 오픈했습니다 엉엉엉;
...CI를 공부하다 '뭐?!2.0이 나왔다고 바로 써보자~ㅋㅋㅋ'라고 내뱉고 던진말에 책임을 져야해서 1.7로 가던걸 2.0로 바꾸어 적용해보고 플젝진행 겸 실험(?)끝에 사이트가 오픈되었습니다(정말 이곳 한글메뉴얼이 없었다면...하지 못할 일이었습니다...아..영원한 숙제..영어...OTL..)

마침 MySQL 5.x와 PHP5를 쓰기로 결정해서 CI의 버전도 따라올라가게 된 것이 계기중에 하나였던 같습니다

CI의 깊고어두운(?) 기술들까진 아직 공부를 안해서 1.7과 2.0의 차이는 extends 시 CI_ 붙이는 것과 application 폴더가 밖으로 빠져나와 오히려 더 편해졌다는 점...이정도 외엔 체감적으로 못느끼고 있습니다 ㅎ

 - CI의 시작인(?) index.php를 줄이기 위해(결과적으로 짧은 URI를 위해) Apache의 modrewrite엔진을 사용하여 사용자에게 노출되는 주소를 짧고 간결하게 제공함

> 사실 전 이 부분에서는 아직까지는 장점을 못느끼고 있습니다

개발자로써 짧고 간결한 URI를 사용할 수 있다? 예...툴에서 그냥 콕콕 찍어쓰다보니 신경안쓰게되구요.

사용자 입장에서 봤을때 짧아보이지만...고객(사용자)님들은 그런거 상관없이 메뉴만 눌러서 쓰는게 대부분이라 생각하다보니 짧아서 보기좋다- 라는 거 이외엔 아직 장점을 체감하지 못하고 있습니다.
ex) http://www.test.com/board/page/1 > 게시판 페이지1을 찾을 수 있게 쉽게 표현되어도 고객은 이걸 2로 바꾸어 쓰진 않을거란 생각입니다 그냥 밑에 페이징을 누르는게 당연하다고 생각할테니까요 ;)

* 이 부분덕에 MySql과 Apache설치시 prefork/worker 방식이 무언지..찾아보게 되고...의미를 이해하고 설치부터 셋팅까지 엉엉...ㅠ_ㅠ 고생하게되어 이 부분을 특별히 싫어하거나 그런건 아닙니다...밑거름이 되리라 생각합니다..ㅠ_ㅠ

 - 템플릿 기반의 view 제공

> 작년 프로젝에서는 java를 사용해서 개발할 때 velocity라는 자바기반의 템플릿엔진을 사용했었는데요.
모든게 다 편하진 않았습니다만,
개발자에겐 view만을 위한 데이터제공으로 업무가 명확해지고,
디자이너에겐 위에 말한 내용으로 인해 페이지 가독성이 좋아져서 협업시 서로 편리함을 많이 느꼈습니다
이번에도 역시 작업할 때 편하게 작업했구요

- hook -> plugin설정 -> view 렌더링을 통해 페이지관리자에게 편의성제공??엉???

> 강의시 내용에 대해 이해는 했지만, 아직 공부하지 않은 부분이며 사용해보지 않아서 아직 뭐라 코멘트 달게 없네요 ㅎㅎ
암튼 잼있어 보이는 기능이었습니다


2. 후킹을 이용한 DB이용 분산

 - 다양한 디바이스에 대해 웹서비스 제공시 hook사용해 controller,model를 재사용할 수 있어 디바이스별 웹사이트를 제작시 이점이 있다

> 매우 편리한 기능이라 생각됩니다 아직 이 부분가지 사용안해봤지만 몇번 테스트해보면 쉽게 사용할 수 있을 것 같구 잼있을것 같습니다 ㅋ

 - 게시판사례
게시판 설정정보를 xml파일로 저장하여 simple_xpath?를 사용하여 xml데이타를 쉽게 가져와 게시판노출시 매번 게시판설정 테이블에 select 되는 즉, db커넥션을 한번이상 줄일 있다고 합니다
새로운 기술이라기 보다는 웅파님께서도 생각의 전환? 이라고 설명해 주셨습니다

> 생각못하던 부분이었습니다 매우 흥미롭고 재미있어보였습니다
CI config/database의 cache_on부분도 비슷한 맥락이려나 싶습니다 select된 자료를 json으로 압축?하여 DB커넥션을 줄이는 방법...?!
요새 memcached 방식?기술?에 대해 스멀스멀 수면위로 떠오르는 SW성능향상을 위한 방법들중 하나로 생각되어집니다 ㅎ

* 단, 초기설계시 이런 부분까지 감안하여 설계를 해야하는 구조를 이해하며, 실제 개발시 복잡함을 덜해주는 방법을 따져야하다보니 무작정 설계하는 것 보단 충분히 이해하는 것이 중요한것 같습니다 ㅎ

3. 놓치기 쉬운 보안

 - xss, sql injection, uri 보안

> 대부분 CI에서 제공하는 parameter처리나 쿼리바인딩처리등을 사용하며 특별한 문제가 없다는 것.? 입니다 ㅎㅎ
$_POST['val'] 대신 $this->input->post('val')을 사용하면 CI내부 필터에서 스크립트에 사용되는 특수문자들에 대해 인코딩하여 xss공격을 피할 수 있다는등...CI메뉴얼 보고 잘 사용하면 이상이 없을 것이라점


-------------------------------------------------------------------------------------------------------------------------

ㅎ_ㅎ;;PHPfest2011 후기는 여기까지 입니다...후기...는 아닌것 같지만..후기였습니다 ㅋ

회사에서 다음프로젝트는 다시 java로 해보자라는 이야기가 나오고 있습니다...CI그간 즐거웠...(응?!) 는 아니구요...
PHP를 처음접해본 바 매우 잼있고 쉽고(?나름?) 재미있었습니다(공부해야할게 정말 너무도 많네요 ㅎㅎ)

6월달 짬이 나니 CI를 가지고 개인홈페이지에 도전해볼까 합니다 ㅋ

앞으로 많은 조언부탁드리겠습니다 ㅋ

 다음글 PHP 개발자 모십니다. (4)
 이전글 PHP FEST에서 강의중이신 웅파님*^^* (7)

댓글

flavo / 2011/05/31 15:05:27 / 추천 0
저도 참석을 했는데 CI 세션은 못들었었는데 요약해 주셔서 감사합니다.

윙프 / 2011/06/01 09:06:43 / 추천 0
지방(부산)에 있는 개발자로서 이런 강의를 들을수 없다는게 참슬픈일인데..
조사장님이 이렇게 리뷰를 해주시니깐 참좋네요~ㄳㄳ
최용운 / 2011/06/01 16:36:46 / 추천 0
 상세한 정리 감사드립니다. 큰 도움이 되었습니다. :)
조사장 / 2011/06/01 18:23:06 / 추천 0
아이고오 좋게 읽어주셔서 감사합니다  ㅋ

세미나 참석 후 더 공부해야겠다는 생각 뿐이네요 ㅎㅎ
변종원(웅파) / 2011/06/01 21:18:55 / 추천 0
와우~ 정리를 무지 잘하시네요.
조금 다른 부분도 있습니다만 대부분 제가 전달하고자 하는 의도를 잘 요약하셨네요.
다른 부분은 제가 댓글로 주석을 달아놓겠습니다.
무명의시인2 / 2011/06/09 08:15:53 / 추천 0

ㅎㅎ

정리 너무 감사합니다^^