SlideShare a Scribd company logo
bit.ly/kpw2012spot

  13년차 평범한 개발자 살아남기.
        그리고 펄!
           spot, 스팟
            @iklonet
           짜그노빠
            최도성
누구?

● 13년차 개발자 (2000.01~)
● 1년에 책100권 읽어 본 경험자
  http://iklo.egloos.com/4782366
● Perl 사용자 및 권유자
● 前 듣보잡 블로거
뭘로 먹고 살았나?

● 6번째 회사 + 굵직한 알바
  ○ Perl CGI, ASP, Java, PHP

 ○ PHP
 ○ C#
 ○ Java
 ○ Java, PHP
 ○ Java
 ○ HTML, CSS, Javascript, Java
한마디로?

● 웹개발자



         &
         구라!!!
살아남기 위해 갖춰야 했던 것

●   구글
●   메모장
●   엑셀
●   에디터 단축키, 특히 vim, eclipse
●   Perl
Perl?? 언제 쓴겨! 없자나!!!!

               ● Perl CGI?
               ● 13년이라며
               ●   그리고???
이럴 때 했다고!!!!

●   빨리 해야되면
●   안되면
●   닥치면
●   시키면
●   할 사람 없으면
●   놀고 싶으면
●   돈 필요하면
●   kpw2012 발표! 윽.....(__)
사례
#1. 다 막아둘꺼야. 오던가.

● 우리는   공무원
●   일단 80port 빼고 다 막는다
●   소스는 와서 배포해
● 서울,경기,인천,강원도,대전, 대구....   울산
  까지?
브라우저 통해서 고치지 뭐 ㅡ.,ㅡ




                + DB관련
                 기억안남
                  Sorry   ㅡㅡ;
사례
#2. Site 뒈진다!!! 뒤질래?
        ● 웹하드 솔루션
            HPUX+Mysql+Apche+PHP
        ● 심심하면 전화질
        ●   수업 중
        ● 적당히 해라
나 대학생   ●   뒈지는 상황을 봐야 알지
            제길...
뒈지면 고친다!!!


                                   조낸 뛰는
                                   거닷!
가끔 죽어 주는   서버
                             sms

                monitor.pl
사례
 #3. 배포는 왜 root로만;;;




-bash: /usr/bin/rsync:   Permission denied   ...
root로 로그인 해서 배포해!!


      user => deamon




                       user => root

     #!/usr/bin/perl
     use Expect;
     my $exp = Expect->.....blah...
                                      ...
사례
#4. 누락된 결제정보 맞춰줘요!!!


               blcok copy
               + paste

                    ><
설치하기 귀찮
                     아

all RE!!! and SQL
 WWW::mechanize
 HTML::TagParser




  my ($value) = ($html =~ m/(blahblah)/g);
  print "insert into tbl values('$value');"
또!!!! more, more, more

                  Cluster SSH,
                  Dump, Batch, 등등등
                  그리고, 최근엔
                  NexentaStor API를 이
                  용한 POC를 perl로 진
                  행했........
      염장???
됐고! 그래서 펄 할 줄 아냐고....
             ● 그래서 perl 할줄 아는
               겨?
             ● 말로 코딩하냐?
             ● 사랑스런 $들을 보여달
               라!
             ● 더 이상의 사례는 필요
               없다.
당신의 마음
             알았다! 보여주께!!
              자신감 없는 회색;;;
'참석자 중 나를 follow 한 님은?'.pl

● KPW2012를 위해 하루 코딩;;;;;
● 일단 참석자 목록 긁고
● 대충 트위터      로그인 해서
●   html parsing 하면 만들 수 있겠
    다!!!
???????????
???????????
???????????
???????
KPW2012::LT::spot
뭐 사용했냐면....

 use utf8;
 use Encode;
 use Data::Dumper;
 use Modern::Perl;
 use Mojo::UserAgent;
 use List::MoreUtils qw/ uniq /;
cookie + token
my $tx = $UserAgent->     get('https://twitter.com');
if ($tx->success) {
    for my $cookie (@{$tx->res->cookies}) {

     if ($cookie->name eq   '_twitter_sess'         ){
         $cookie_twitter_sess = $cookie->value;
         last;
     }
  }
  $authenticity_token = $tx->res->dom

     ->at('.js-front-language input[name=   authenticity_token   ]')
      ->{value};
} else {
   say $tx->error."n";
   exit(1);
}
login
$tx = $UserAgent->build_form_tx(

  'https://twitter.com/sessions/' => {
        'session[username_or_email]' => 'iklonet@gmail.com'
        , 'session[password]' => 'kpw2012'

        , 'authenticity_token' =>   $authenticity_token
        , 'scribe_log' => ''
        , 'redirect_after_login' => '/'
        , 'return_to_ssl' => 'true'
    }
  );
  $tx->req->headers

     ->cookie('_twitter_sess='.     $cookie_twitter_sess.';');
  $UserAgent->start($tx);
parseInfo
  $tx->res->dom->find('    .content .account-group')
    ->slice(0)
    ->each(sub {
      my $el = shift;

          $profile_avatar = $el->at('   .avatar')->{'src'};
          $username = $el->at('   .username b')->text;
    });

  $follow_status = $tx->res->dom

      ->at('   .profile-card-inner .follow-status')
      ->   text;
사용자 목록
my $txt_members = '
keedi aanoaa JEEN_LEE JellyPooo ja3ck..... Block Copy
';
                                           (vim) Paste
                                           gg
$txt_members =~ s/n//g;
                                           Shift+v
my @members = split(/ /, $txt_members);    Shift+g
foreach (@members) {                       Shift+j
    &parseInfo($_);
}
print
print "tweeterian|$username|$profile_avatar|$follow_statusn";


tweeterian|keedi|https://twimg0-a.akamaihd.
net/profile_images/1814758551/keedi_normal.jpg|님은 나
를 팔로우하고 있습니다
tweeterian|aanoaa|https://twimg0-a.akamaihd.
net/profile_images/576748805/life_normal.jpg|
tweeterian|JEEN_LEE|https://twimg0-a.akamaihd.
net/profile_images/52199654/사진_22_normal.jpg|님은 나
를 팔로우하고 있습니다
tweeterian|JellyPooo|https://twimg0-a.akamaihd.
net/profile_images/1477264457/phpRaPTqp_normal|
                             ......
결과
           10명도 안됨

           삐뚫어 질테닷ㅡㅡ^




     ...
Please, follow me!!
느닷없이 결론! 오래 살아 남으려면...

●   살아남기 위해 필요한 것 갖추기
●   책 많이 읽기
●   돈 조금 더 벌기
●   커뮤니티 눈팅하기
●   잠자기
              Enjoy Perl;
감사합니다. m(__)m

iklonet@gmail.com
http://www.facebook.com/iklonet
http://twitter.com/iklonet

More Related Content

PDF
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
PDF
현대고등학교 PHP 강의 - 4차시 (설리번 프로젝트)
PPTX
뭔지 모르지만 발표
PPTX
C# delegate 사용법
PDF
위키백과 문서 작성 및 편집 가이드 (Wikipedia article writing/editing guideline)
PPTX
6. html5 캔버스
PDF
스프링 Generic autowired이용해보기
PPTX
Mysql old password 깨기
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 4차시 (설리번 프로젝트)
뭔지 모르지만 발표
C# delegate 사용법
위키백과 문서 작성 및 편집 가이드 (Wikipedia article writing/editing guideline)
6. html5 캔버스
스프링 Generic autowired이용해보기
Mysql old password 깨기

What's hot (6)

PDF
12주차 간단한 방명록 제작 - 두번째
PPTX
개발자의 컴퓨터
PPTX
bsSelector.js(OctoberSky.js)
PDF
신림프로그래머 스터디 웹팩 발표자료
PDF
Golang 개발 환경(profile) 다르게 잡아주기
PPTX
bsSelector (OKJSP)
12주차 간단한 방명록 제작 - 두번째
개발자의 컴퓨터
bsSelector.js(OctoberSky.js)
신림프로그래머 스터디 웹팩 발표자료
Golang 개발 환경(profile) 다르게 잡아주기
bsSelector (OKJSP)
Ad

Similar to KPW2012::LT::spot (20)

PPTX
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
PPTX
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
PDF
Init to systemd
PDF
Django in Production
PDF
응답하라 반응형웹 - 4. angular
PDF
Python 게임서버 안녕하십니까 : RPC framework 편
PDF
H3 2011 파이썬으로 클라우드 하고 싶어요
 
PDF
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
PDF
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
PDF
엔지니어의 꿈 Fmt 최종본
PDF
C++ Advanced 강의 2주차
PDF
아라한사의 스프링 시큐리티 정리
PDF
HI-ARC PS 101
PPTX
파이썬 언어 기초
PDF
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
PDF
Internet speed 인터넷 속도를 측정해보자
PDF
스프링 REST DOCS 따라해보기
PDF
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
PDF
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
PDF
쉽게 쓰여진 Django
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
Init to systemd
Django in Production
응답하라 반응형웹 - 4. angular
Python 게임서버 안녕하십니까 : RPC framework 편
H3 2011 파이썬으로 클라우드 하고 싶어요
 
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
엔지니어의 꿈 Fmt 최종본
C++ Advanced 강의 2주차
아라한사의 스프링 시큐리티 정리
HI-ARC PS 101
파이썬 언어 기초
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Internet speed 인터넷 속도를 측정해보자
스프링 REST DOCS 따라해보기
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
쉽게 쓰여진 Django
Ad

KPW2012::LT::spot