SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
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 하면 만들 수 있겠
    다!!!
???????????
???????????
???????????
???????
뭐 사용했냐면....

 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

Más contenido relacionado

La actualidad más candente

12주차 간단한 방명록 제작 - 두번째
12주차 간단한 방명록 제작 - 두번째12주차 간단한 방명록 제작 - 두번째
12주차 간단한 방명록 제작 - 두번째Yoonwhan Lee
 
개발자의 컴퓨터
개발자의 컴퓨터개발자의 컴퓨터
개발자의 컴퓨터jaehyok Song
 
bsSelector.js(OctoberSky.js)
bsSelector.js(OctoberSky.js)bsSelector.js(OctoberSky.js)
bsSelector.js(OctoberSky.js)Seung-Hyun PAEK
 
신림프로그래머 스터디 웹팩 발표자료
신림프로그래머 스터디 웹팩 발표자료신림프로그래머 스터디 웹팩 발표자료
신림프로그래머 스터디 웹팩 발표자료라한사 아
 
Golang 개발 환경(profile) 다르게 잡아주기
Golang 개발 환경(profile) 다르게 잡아주기Golang 개발 환경(profile) 다르게 잡아주기
Golang 개발 환경(profile) 다르게 잡아주기라한사 아
 

La actualidad más candente (6)

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

Similar a KPW2012::LT::spot

온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010Ryan Park
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10Ryan Park
 
Django in Production
Django in ProductionDjango in Production
Django in ProductionHyun-woo Park
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angularredribbon1307
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편준철 박
 
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요Yongho Ha
 
H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요KTH
 
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호KTH, 케이티하이텔
 
엔지니어의 꿈 Fmt 최종본
엔지니어의 꿈   Fmt 최종본엔지니어의 꿈   Fmt 최종본
엔지니어의 꿈 Fmt 최종본영범 정
 
C++ Advanced 강의 2주차
C++ Advanced 강의 2주차C++ Advanced 강의 2주차
C++ Advanced 강의 2주차HyunJoon Park
 
아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리라한사 아
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초beom kyun choi
 
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션
Enlightenment Open Source Contribution (KOR) - 실전! Enlightenment 오픈소스 컨트리뷰션Daniel Juyung Seo
 
Internet speed 인터넷 속도를 측정해보자
Internet speed 인터넷 속도를 측정해보자Internet speed 인터넷 속도를 측정해보자
Internet speed 인터넷 속도를 측정해보자민석 김
 
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기라한사 아
 
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기Chris Ohk
 
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)Sang Don Kim
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 DjangoTaehoon Kim
 

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

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

KPW2012::LT::spot

  • 1. bit.ly/kpw2012spot 13년차 평범한 개발자 살아남기. 그리고 펄! spot, 스팟 @iklonet 짜그노빠 최도성
  • 2. 누구? ● 13년차 개발자 (2000.01~) ● 1년에 책100권 읽어 본 경험자 http://iklo.egloos.com/4782366 ● Perl 사용자 및 권유자 ● 前 듣보잡 블로거
  • 3. 뭘로 먹고 살았나? ● 6번째 회사 + 굵직한 알바 ○ Perl CGI, ASP, Java, PHP ○ PHP ○ C# ○ Java ○ Java, PHP ○ Java ○ HTML, CSS, Javascript, Java
  • 5. 살아남기 위해 갖춰야 했던 것 ● 구글 ● 메모장 ● 엑셀 ● 에디터 단축키, 특히 vim, eclipse ● Perl
  • 6. Perl?? 언제 쓴겨! 없자나!!!! ● Perl CGI? ● 13년이라며 ● 그리고???
  • 7. 이럴 때 했다고!!!! ● 빨리 해야되면 ● 안되면 ● 닥치면 ● 시키면 ● 할 사람 없으면 ● 놀고 싶으면 ● 돈 필요하면 ● kpw2012 발표! 윽.....(__)
  • 8. 사례 #1. 다 막아둘꺼야. 오던가. ● 우리는 공무원 ● 일단 80port 빼고 다 막는다 ● 소스는 와서 배포해 ● 서울,경기,인천,강원도,대전, 대구.... 울산 까지?
  • 9. 브라우저 통해서 고치지 뭐 ㅡ.,ㅡ + DB관련 기억안남 Sorry ㅡㅡ;
  • 10. 사례 #2. Site 뒈진다!!! 뒤질래? ● 웹하드 솔루션 HPUX+Mysql+Apche+PHP ● 심심하면 전화질 ● 수업 중 ● 적당히 해라 나 대학생 ● 뒈지는 상황을 봐야 알지 제길...
  • 11. 뒈지면 고친다!!! 조낸 뛰는 거닷! 가끔 죽어 주는 서버 sms monitor.pl
  • 12. 사례 #3. 배포는 왜 root로만;;; -bash: /usr/bin/rsync: Permission denied ...
  • 13. root로 로그인 해서 배포해!! user => deamon user => root #!/usr/bin/perl use Expect; my $exp = Expect->.....blah... ...
  • 14. 사례 #4. 누락된 결제정보 맞춰줘요!!! blcok copy + paste ><
  • 15. 설치하기 귀찮 아 all RE!!! and SQL WWW::mechanize HTML::TagParser my ($value) = ($html =~ m/(blahblah)/g); print "insert into tbl values('$value');"
  • 16. 또!!!! more, more, more Cluster SSH, Dump, Batch, 등등등 그리고, 최근엔 NexentaStor API를 이 용한 POC를 perl로 진 행했........ 염장???
  • 17. 됐고! 그래서 펄 할 줄 아냐고.... ● 그래서 perl 할줄 아는 겨? ● 말로 코딩하냐? ● 사랑스런 $들을 보여달 라! ● 더 이상의 사례는 필요 없다. 당신의 마음 알았다! 보여주께!! 자신감 없는 회색;;;
  • 18. '참석자 중 나를 follow 한 님은?'.pl ● KPW2012를 위해 하루 코딩;;;;; ● 일단 참석자 목록 긁고 ● 대충 트위터 로그인 해서 ● html parsing 하면 만들 수 있겠 다!!!
  • 20.
  • 21. 뭐 사용했냐면.... use utf8; use Encode; use Data::Dumper; use Modern::Perl; use Mojo::UserAgent; use List::MoreUtils qw/ uniq /;
  • 22. 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); }
  • 23. 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);
  • 24. 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;
  • 25. 사용자 목록 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($_); }
  • 26. 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| ......
  • 27. 결과 10명도 안됨 삐뚫어 질테닷ㅡㅡ^ ...
  • 29. 느닷없이 결론! 오래 살아 남으려면... ● 살아남기 위해 필요한 것 갖추기 ● 책 많이 읽기 ● 돈 조금 더 벌기 ● 커뮤니티 눈팅하기 ● 잠자기 Enjoy Perl;