뭔지 모르지만 발표

Preview:

Citation preview

뭔지 모르지만 발표

ASP 에서 Django 로 옮겨간 사연

페이스북에서 홧김에 정한 패기 넘치는 제목

주의

이 문서는 수준이 참 낮습니다 . 미리 양해를 구합니다 .

만든 사람이 마감에 쫓겨 제 정신이 아닌 채 만들었습니다 .

진지합니다 . 궁서체입니다 .

파이라고 합니다 .2013 년 1 월부터 지금까지 요새 Hot 한 SMARTSTUDY 에서소프트웨어 엔지니어 인척 하며월급과 경험치를 훔치고 있습니다 .

+ exp 100

+ gold 400

ㅋㅋㅋㅋㅋ

파이[ 월급루팡 ]

뭘 할까 하다가 , IRC 에서 ...< 아침놀 > 2013.08.30 21:16:26 원래 남의 삽질은 좋은 구경거리 (....)

그렇다고 합니다 .

그래서 그냥 적당히 삽질한 썰 풉니다 .

적당히 삽질한 썰 풉니다 .되지도 않는 드립이나 쳐야지

이것은 한 개발자의 성장기

라고 쓰고 삽질기 라고 읽습니다 .

첫 직장

G 사에 입사 .취직 못하고 노는 것 보단 좋겠지 뭐 .( 안일 )하지만 날 기다리고 있던 건

ASP!!!! 오 예 !!

그것도 Classic ASP. 망했어요 .

이때는 아직 ASP 가 좋은지 나쁜지도 몰랐다 .

당시 할 줄 아는 거약간의 웹 디자인XHTML / CSS 학교 과제 수준의 C, Java게시판 겨우 짤 수준의 JSP

이글루스 스킨만들다가 ...

졸업작품 하느니라 ...

취직이 된 게 신기하다 .

시작된 월급 루팡 전설… 투 비 컨티뉴

대표님 , 절 뭘 믿고 뽑았나요 ?

최초 나모웹에디터로 제작5 년간 리뉴얼 없었음

놀랍게도여기에 있던 코드가 여기에도 또 있고…

수 십개의 게시판이 복붙 복붙

당시 G 웹진의 상황

혁신적인 iCode

소스 코드가 2GB!

돌아가는 게 신기하다 .

게임 소스 아닙니다 . 웹페이지입니다 .

ASP 로 뭘 했나요 ?모바일 게임 소개 페이지 제작이벤트 페이지 , 설문조사 페이지 제작다음 TV 팟 연동 코너 제작메인페이지 리뉴얼 등 등 .

object.title 을 해보고 싶어서언제까지 SQL 노가다 할텐가 ..!직접 유사 ORM 제작 . Model 용 Class 는 Excel 을 활용하여 생성 (...)Top10, List 등 그때그때 필요한 함수 만듬

결론ASP 로 객체지향 프로그래밍 ,

몹쓸 짓이구나 .

고통 받는 ASP관리할 수 없는 거대한 스파게티 소스해킹 취약 ( 망할 웹셀 )

캐슬 , 웹나이트 등 별짓을 다 해도 뚫린다 .크롬 : 이 사이트는 헤로운 사이트다 .

나에게 떨어진 임무

I 웹진을 새로 만들고 G 웹진을 리뉴얼 하라 .

단 , 너 혼자서

까라면 까야지 ...

할 수 있지 ? … / 네 ...

ASP 는 안되겠어 , 어떻게든 ...

주변에 알만한 사람들에게 어떻게든날로 먹을 수 있는 프레임워크를 추천 받았다 .

후보는 ROR 과 Django.

Django!< 아침놀 > 제가 이번에 책을 검수했는데요 ...

쉽고 빠른 웹개발 Django.

아침놀님의 강력 추천 .

더 이상 설명은 생략한다 .

날로 먹을 수 있다 !ASP 로 수십 수백줄 짜야했던 것들이Django 에는 이미 다 있다 .

ORM, Model, Template, View,User, Auth, Admin, 등등등…

그러니 잘 찾아봐

쉽긴 X뿔 ...

세상의 모든 것을 그곳에 두고 왔다 .

docs.djangoproject.com

모든 것을 새롭게

아파치나 IIS 로 다 되는거 아니였나요 ?!WSGI 가 뭐에요 ?파일 서빙을 위한 경량 웹서버를 따로 돌려야한다고요 ?Nginx 는 또 뭐하는 놈이죠 ?HTTP 가 뭐였죠 ?….웹이 뭐죠 ..?

서버가 어찌 돌아가는거야 ?

소스코드웹서버클라이언트

ASPurl = path 요청

웹서버가 알아서 다 해요

소스코드웹서버(proxy)클라이언트

Django url != path 함수 실행 명령

Django(Python)WSGI

이게 다 뭐다냐 .

하지만 해냈다 .I 웹진 개발❏최초 버전 약 4 개월 걸림 . 오픈 성공 .❏최적화 , 그거 먹는 거에요 ? -> 장애 발생

❏캐쉬 발라서 해결 .❏Django 는 캐쉬 설정도 참 쉽습니다 .

❏모듈을 나눌 줄 몰랐다 .(Python 초보 )❏천 단위 라인의 코드 발생 (.....)

이어지는 G 웹진 리뉴얼

수십 개의 게시판 중에 고르고 골라서 보존해야 하는 데이터 약 6 만건마이그레이션 해야 한다 .

더불어 I 웹진의 교훈- 쓸대없이 만들지말고 Django Admin 을 활용하자- 캐쉬 등 미리 최적화 구조를 생각하자 .- 디자인 그냥 내가 하자 .

목표 재정의

기사를 최대한 읽기 쉽게 합시다 . 기사 생산 및 배포가 쉽게 해주세요 .웹 표준 준수로 검색 잘되게 해주세요 .짧고 예쁜 URL 주세요 . ( 예전 URL 리다이렉트 )망한 커뮤니티는 완전 대폭 축소하죠 .배너는 밥줄이라 포인트 시스템 있어야 해요 .…..

근데 , 저는 한 명입니다 .

공돌이를 갈아넣어봅시다 .

으아아아아아 ...

한번 해봤으니 이번엔 좀 쉬울꺼야… 쉽긴 X뿔 ...

일단 마이그레이션

게시판 수만큼 있는 테이블컬럼으로 나뉜 페이지 구분(text1,text2,text3..)기사 내용엔 나모 강한 향기가 (....)….어쩌라고… .

마이그레이션 계속

모든 것은 Django 안에서 .. (management cmd)1. 하나의 모델로 읽어온다 .2. 필요한 정보를 추출하여 분류 / 관계 생성3. 분류 / 관계 맞춰서 새 모델에 넣기4. 새 모델에서 잘못된 데이터 재 가공5. 위 단계 예상하지 못한 추가 작업

스크립트가 몇 개니 ...

Backendmodule 분리를 의미 있게 열심히자주 쓰는 모델은 역정규화 save() 에서 캐쉬 초기화django admin 에서 모든 것을 관리

Publishing각종 포탈 사이트로 기사 전송하는 많은 방법FTP, RSS, XML, JSON…

publish 앱에서 모두 해결관리는 모두 Django admin

Django admin 은 ( 알고 쓰면 ) 쉽고 강력하다 .

기사 관리 및 배포 (출판 )

기사 작성

Frontend기사를 읽기 쉽게 하자 .디자인은 단순 (좀 심했나 .)배너는 밥줄이라 ...

HTML5 / CSS3 jQuery, Bootstrap customIE 6~7 포기 , 8 부분 지원

허술한 모자이크

어떻게든 했습니다 .

되던데요 .

더이상 PPT 를 만들다간 내가 지루해서 안되겠다 .

다하고 보니 ...국내에 얼마 없는 Django 개발자 .( 요샌 많더라 .)얕지만 나름 풀 스택 개발자 .

가 .. 되어있더라… ?!

정신 차려보니 ...많은 개발자들이 가고 싶어하는 HOT 한 스타트업 SMARTSTUDY 에 탑승해 있네요 .

SMARTSTUDY 는여러분을 환영합니다 .

기 승 전 광고

들어주셔서 감사합니다 .

질문해주세요 .

과 .. 관심 좀…

치킨 치킨 치킨 ? 취킨 취킨 치킹 .