2013년 8월 31일에 올렸던 speakerdeck에 올렸던 자료 백업
https://speakerdeck.com/perhapsspy/mweonji-moreujiman-balpyo-aspeseo-djangoro-olmgyeogan-sayeon
---
한 개발자의 성장기(아니 삽질기)입니다.
ASP 개발을 하다가 Django를 쓰게 된 이야기를 간략하게 재미위주로 적어보았습니다.
12. ASP로 뭘 했나요?
모바일 게임 소개 페이지 제작
이벤트 페이지, 설문조사 페이지 제작
다음 TV팟 연동 코너 제작
메인페이지 리뉴얼 등 등.
13. object.title을 해보고 싶어서
언제까지 SQL 노가다 할텐가..!
직접 유사 ORM 제작.
Model용 Class는 Excel을 활용하여 생성(...)
Top10, List 등 그때그때 필요한 함수 만듬
결론
ASP로 객체지향 프로그래밍,
몹쓸 짓이구나.
14. 고통 받는 ASP
관리할 수 없는 거대한 스파게티 소스
해킹 취약(망할 웹셀)
캐슬, 웹나이트 등 별짓을 다 해도 뚫린다.
크롬 : 이 사이트는 헤로운 사이트다.
19. 날로 먹을 수 있다!
ASP로 수십 수백줄 짜야했던 것들이
Django에는 이미 다 있다.
ORM, Model, Template, View,
User, Auth, Admin, 등등등…
20. 그러니 잘 찾아봐
쉽긴 X뿔...
세상의 모든 것을 그곳에 두고 왔다.
docs.djangoproject.com
21. 모든 것을 새롭게
아파치나 IIS로 다 되는거 아니였나요?!
WSGI가 뭐에요?
파일 서빙을 위한 경량 웹서버를 따로 돌려야한
다고요?
Nginx는 또 뭐하는 놈이죠?
HTTP가 뭐였죠?
….
웹이 뭐죠..?
22. 서버가 어찌 돌아가는거야?
소스코드웹서버클라이언트
ASP
url = path 요청
웹서버가 알아서 다 해요
소스코드
웹서버
(proxy)
클라이언트
Django url != path 함수 실행 명령
Django
(Python)
WSGI
이게 다 뭐다냐.
23. 하지만 해냈다.
I웹진 개발
❏최초 버전 약 4개월 걸림. 오픈 성공.
❏최적화, 그거 먹는 거에요? -> 장애 발생
❏캐쉬 발라서 해결.
❏Django는 캐쉬 설정도 참 쉽습니다.
❏모듈을 나눌 줄 몰랐다.(Python 초보)
❏천 단위 라인의 코드 발생(.....)
24. 이어지는 G웹진 리뉴얼
수십 개의 게시판 중에 고르고 골라서
보존해야 하는 데이터 약 6만건
마이그레이션 해야 한다.
더불어 I웹진의 교훈
- 쓸대없이 만들지말고 Django Admin을 활용하자
- 캐쉬 등 미리 최적화 구조를 생각하자.
- 디자인 그냥 내가 하자.
25. 목표 재정의
기사를 최대한 읽기 쉽게 합시다.
기사 생산 및 배포가 쉽게 해주세요.
웹 표준 준수로 검색 잘되게 해주세요.
짧고 예쁜 URL 주세요. (예전 URL 리다이렉트)
망한 커뮤니티는 완전 대폭 축소하죠.
배너는 밥줄이라 포인트 시스템 있어야 해요.
…..
26. 근데, 저는 한 명입니다.
공돌이를 갈아넣어봅시다.
으아아아아아...
한번 해봤으니 이번엔 좀 쉬울꺼야… 쉽긴 X뿔...
27. 일단 마이그레이션
게시판 수만큼 있는 테이블
컬럼으로 나뉜 페이지 구분(text1,text2,text3..)
기사 내용엔 나모 강한 향기가(....)
….
어쩌라고….
28. 마이그레이션 계속
모든 것은 Django 안에서.. (management cmd)
1. 하나의 모델로 읽어온다.
2. 필요한 정보를 추출하여 분류/관계 생성
3. 분류/관계 맞춰서 새 모델에 넣기
4. 새 모델에서 잘못된 데이터 재 가공
5. 위 단계 예상하지 못한 추가 작업
스크립트가 몇 개니...