SlideShare a Scribd company logo
1 of 38
뭔지 모르지만 발표
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가 뭐였죠?
….
웹이 뭐죠..?
서버가 어찌 돌아가는거야?
소스코드웹서버클라이언트
ASP
url = 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. 위 단계 예상하지 못한 추가 작업
스크립트가 몇 개니...
Backend
module 분리를 의미 있게 열심히
자주 쓰는 모델은 역정규화
save()에서 캐쉬 초기화
django admin에서 모든 것을 관리
Publishing
각종 포탈 사이트로 기사 전송하는 많은 방법
FTP, RSS, XML, JSON…
publish 앱에서 모두 해결
관리는 모두 Django admin
Django admin은 (알고 쓰면) 쉽고 강력하다.
기사 관리 및 배포(출판)
기사 작성
Frontend
기사를 읽기 쉽게 하자.
디자인은 단순(좀 심했나.)
배너는 밥줄이라...
HTML5 / CSS3
jQuery, Bootstrap custom
IE 6~7 포기, 8 부분 지원
어떻게든 했습니다.
되던데요.
더이상 PPT를 만들다간 내가 지루해서 안되겠다.
다하고 보니...
국내에 얼마 없는 Django 개발자.(요샌 많더라.)
얕지만 나름 풀 스택 개발자.
가.. 되어있더라…?!
정신 차려보니...
많은 개발자들이 가고 싶어하는 HOT한
스타트업 SMARTSTUDY에 탑승해 있네요.
SMARTSTUDY는
여러분을 환영합니다.
기 승 전 광고
들어주셔서 감사합니다.
질문해주세요.
과.. 관심 좀…
치킨 치킨 치킨? 취킨 취킨 치킹.

More Related Content

What's hot

Go revel 컨셉_정리
Go revel 컨셉_정리Go revel 컨셉_정리
Go revel 컨셉_정리라한사 아
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 라한사 아
 
Go revel 구성_루팅_정리
Go revel 구성_루팅_정리Go revel 구성_루팅_정리
Go revel 구성_루팅_정리라한사 아
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향Eunhyang Kim
 
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기라한사 아
 
휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치Juneyoung Oh
 
Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)Eunhyang Kim
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기Changwan Jun
 
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록라한사 아
 
아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리라한사 아
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문라한사 아
 
스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료라한사 아
 
스프링 Generic autowired이용해보기
스프링 Generic autowired이용해보기스프링 Generic autowired이용해보기
스프링 Generic autowired이용해보기라한사 아
 
블로그 주도 개발
블로그 주도 개발블로그 주도 개발
블로그 주도 개발JeongHun Byeon
 
스프링 오픈소스 정리
스프링 오픈소스 정리스프링 오픈소스 정리
스프링 오픈소스 정리라한사 아
 
개발하긴 싫지만 코딩은 하고싶어
개발하긴 싫지만 코딩은 하고싶어개발하긴 싫지만 코딩은 하고싶어
개발하긴 싫지만 코딩은 하고싶어Eunhyang Kim
 
spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼라한사 아
 

What's hot (20)

Go revel 컨셉_정리
Go revel 컨셉_정리Go revel 컨셉_정리
Go revel 컨셉_정리
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO
 
Go revel 구성_루팅_정리
Go revel 구성_루팅_정리Go revel 구성_루팅_정리
Go revel 구성_루팅_정리
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향
 
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기
 
휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치
 
Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
 
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
 
아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문
 
피니엔진
피니엔진피니엔진
피니엔진
 
스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료
 
스프링 Generic autowired이용해보기
스프링 Generic autowired이용해보기스프링 Generic autowired이용해보기
스프링 Generic autowired이용해보기
 
블로그 주도 개발
블로그 주도 개발블로그 주도 개발
블로그 주도 개발
 
스프링 오픈소스 정리
스프링 오픈소스 정리스프링 오픈소스 정리
스프링 오픈소스 정리
 
Gulp 입문
Gulp 입문 Gulp 입문
Gulp 입문
 
개발하긴 싫지만 코딩은 하고싶어
개발하긴 싫지만 코딩은 하고싶어개발하긴 싫지만 코딩은 하고싶어
개발하긴 싫지만 코딩은 하고싶어
 
spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼
 

Similar to 뭔지 모르지만 발표

Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료seungdols
 
웹 본격적으로 배우기 전 감 잡기 - 1
웹 본격적으로 배우기 전 감 잡기 - 1웹 본격적으로 배우기 전 감 잡기 - 1
웹 본격적으로 배우기 전 감 잡기 - 1mangonamu
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Kyoung Up Jung
 
『누워서 읽는 알고리즘』 - 미리보기
『누워서 읽는 알고리즘』 - 미리보기『누워서 읽는 알고리즘』 - 미리보기
『누워서 읽는 알고리즘』 - 미리보기복연 이
 
Django in Production
Django in ProductionDjango in Production
Django in ProductionHyun-woo Park
 
[14.06.28] 이 구역의 프로그래머는 나야(devrookie - 공개용)
[14.06.28]  이 구역의 프로그래머는 나야(devrookie - 공개용)[14.06.28]  이 구역의 프로그래머는 나야(devrookie - 공개용)
[14.06.28] 이 구역의 프로그래머는 나야(devrookie - 공개용)해강
 
스터디 2주차-자바스크립트기초2
스터디 2주차-자바스크립트기초2스터디 2주차-자바스크립트기초2
스터디 2주차-자바스크립트기초2Kim Sehwan
 
Design patterns 스터디 - Singleton 패턴
Design patterns 스터디 - Singleton 패턴Design patterns 스터디 - Singleton 패턴
Design patterns 스터디 - Singleton 패턴Hyunho-Cho
 
안녕하세요. 초급 개발자의 넋두리입니다.
안녕하세요. 초급 개발자의 넋두리입니다.안녕하세요. 초급 개발자의 넋두리입니다.
안녕하세요. 초급 개발자의 넋두리입니다.kyhyeok
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐라한사 아
 
The art of readable code ch4 ch8
The art of readable code ch4   ch8The art of readable code ch4   ch8
The art of readable code ch4 ch8Ki Sung Bae
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다wonmin lee
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 YoungSu Son
 
2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여
2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여
2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여iamprogrammerofficial
 
M3 4 1
M3 4 1M3 4 1
M3 4 1nexthw
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발동현 김
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)NAVER D2
 

Similar to 뭔지 모르지만 발표 (20)

Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료
 
웹 본격적으로 배우기 전 감 잡기 - 1
웹 본격적으로 배우기 전 감 잡기 - 1웹 본격적으로 배우기 전 감 잡기 - 1
웹 본격적으로 배우기 전 감 잡기 - 1
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.
 
『누워서 읽는 알고리즘』 - 미리보기
『누워서 읽는 알고리즘』 - 미리보기『누워서 읽는 알고리즘』 - 미리보기
『누워서 읽는 알고리즘』 - 미리보기
 
Django in Production
Django in ProductionDjango in Production
Django in Production
 
[14.06.28] 이 구역의 프로그래머는 나야(devrookie - 공개용)
[14.06.28]  이 구역의 프로그래머는 나야(devrookie - 공개용)[14.06.28]  이 구역의 프로그래머는 나야(devrookie - 공개용)
[14.06.28] 이 구역의 프로그래머는 나야(devrookie - 공개용)
 
스터디 2주차-자바스크립트기초2
스터디 2주차-자바스크립트기초2스터디 2주차-자바스크립트기초2
스터디 2주차-자바스크립트기초2
 
Design patterns 스터디 - Singleton 패턴
Design patterns 스터디 - Singleton 패턴Design patterns 스터디 - Singleton 패턴
Design patterns 스터디 - Singleton 패턴
 
엑셀왕국
엑셀왕국엑셀왕국
엑셀왕국
 
Spring Boot 1
Spring Boot 1Spring Boot 1
Spring Boot 1
 
안녕하세요. 초급 개발자의 넋두리입니다.
안녕하세요. 초급 개발자의 넋두리입니다.안녕하세요. 초급 개발자의 넋두리입니다.
안녕하세요. 초급 개발자의 넋두리입니다.
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐
 
The art of readable code ch4 ch8
The art of readable code ch4   ch8The art of readable code ch4   ch8
The art of readable code ch4 ch8
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기
 
2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여
2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여
2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여
 
M3 4 1
M3 4 1M3 4 1
M3 4 1
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
 

More from Kyoung Up Jung

Django 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdf
Django 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdfDjango 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdf
Django 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdfKyoung Up Jung
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Kyoung Up Jung
 
OK, 계획대로 되고 있어?
OK, 계획대로 되고 있어?OK, 계획대로 되고 있어?
OK, 계획대로 되고 있어?Kyoung Up Jung
 
테스트가 뭐예요?
테스트가 뭐예요?테스트가 뭐예요?
테스트가 뭐예요?Kyoung Up Jung
 
Django를 배우다, Django로 배우다.
Django를 배우다, Django로 배우다.Django를 배우다, Django로 배우다.
Django를 배우다, Django로 배우다.Kyoung Up Jung
 
어른스럽게 일하기
어른스럽게 일하기어른스럽게 일하기
어른스럽게 일하기Kyoung Up Jung
 
신입에서 CTO까지, 야근하지 않는 웹개발
신입에서 CTO까지, 야근하지 않는 웹개발신입에서 CTO까지, 야근하지 않는 웹개발
신입에서 CTO까지, 야근하지 않는 웹개발Kyoung Up Jung
 
웹 개발, 왜 어려운가?
웹 개발, 왜 어려운가?웹 개발, 왜 어려운가?
웹 개발, 왜 어려운가?Kyoung Up Jung
 
Django ORM 왜 어렵게 느껴질까?
Django ORM 왜 어렵게 느껴질까?Django ORM 왜 어렵게 느껴질까?
Django ORM 왜 어렵게 느껴질까?Kyoung Up Jung
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Kyoung Up Jung
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기Kyoung Up Jung
 

More from Kyoung Up Jung (12)

Django 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdf
Django 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdfDjango 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdf
Django 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdf
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
 
NRISE에서 3개월
NRISE에서 3개월NRISE에서 3개월
NRISE에서 3개월
 
OK, 계획대로 되고 있어?
OK, 계획대로 되고 있어?OK, 계획대로 되고 있어?
OK, 계획대로 되고 있어?
 
테스트가 뭐예요?
테스트가 뭐예요?테스트가 뭐예요?
테스트가 뭐예요?
 
Django를 배우다, Django로 배우다.
Django를 배우다, Django로 배우다.Django를 배우다, Django로 배우다.
Django를 배우다, Django로 배우다.
 
어른스럽게 일하기
어른스럽게 일하기어른스럽게 일하기
어른스럽게 일하기
 
신입에서 CTO까지, 야근하지 않는 웹개발
신입에서 CTO까지, 야근하지 않는 웹개발신입에서 CTO까지, 야근하지 않는 웹개발
신입에서 CTO까지, 야근하지 않는 웹개발
 
웹 개발, 왜 어려운가?
웹 개발, 왜 어려운가?웹 개발, 왜 어려운가?
웹 개발, 왜 어려운가?
 
Django ORM 왜 어렵게 느껴질까?
Django ORM 왜 어렵게 느껴질까?Django ORM 왜 어렵게 느껴질까?
Django ORM 왜 어렵게 느껴질까?
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
 

뭔지 모르지만 발표

  • 1. 뭔지 모르지만 발표 ASP에서 Django로 옮겨간 사연 페이스북에서 홧김에 정한 패기 넘치는 제목
  • 2. 주의 이 문서는 수준이 참 낮습니다. 미리 양해를 구합니다. 만든 사람이 마감에 쫓겨 제 정신이 아닌 채 만들었습니다. 진지합니다. 궁서체입니다.
  • 3. 파이라고 합니다. 2013년 1월부터 지금까지 요새 Hot 한 SMARTSTUDY에서 소프트웨어 엔지니어 인척 하며 월급과 경험치를 훔치고 있습니다. + exp 100 + gold 400 ㅋㅋㅋㅋㅋ 파이 [월급루팡]
  • 4. 뭘 할까 하다가, IRC에서... <아침놀> 2013.08.30 21:16:26 원래 남의 삽질은 좋은 구경거리(....) 그렇다고 합니다. 그래서 그냥 적당히 삽질한 썰 풉니다. 적당히 삽질한 썰 풉니다. 되지도 않는 드립이나 쳐야지
  • 5. 이것은 한 개발자의 성장기 라고 쓰고 삽질기 라고 읽습니다.
  • 6. 첫 직장 G사에 입사. 취직 못하고 노는 것 보단 좋겠지 뭐.(안일) 하지만 날 기다리고 있던 건
  • 7. ASP!!!! 오 예!! 그것도 Classic ASP. 망했어요. 이때는 아직 ASP가 좋은지 나쁜지도 몰랐다.
  • 8. 당시 할 줄 아는 거 약간의 웹 디자인 XHTML / CSS 학교 과제 수준의 C, Java 게시판 겨우 짤 수준의 JSP 이글루스 스킨만들다가... 졸업작품 하느니라...
  • 9. 취직이 된 게 신기하다. 시작된 월급 루팡 전설… 투 비 컨티뉴 대표님, 절 뭘 믿고 뽑았나요?
  • 10. 최초 나모웹에디터로 제작 5년간 리뉴얼 없었음 놀랍게도 여기에 있던 코드가 여기에도 또 있고… 수 십개의 게시판이 복붙 복붙 당시 G웹진의 상황 혁신적인 iCode
  • 11. 소스 코드가 2GB! 돌아가는 게 신기하다. 게임 소스 아닙니다. 웹페이지입니다.
  • 12. ASP로 뭘 했나요? 모바일 게임 소개 페이지 제작 이벤트 페이지, 설문조사 페이지 제작 다음 TV팟 연동 코너 제작 메인페이지 리뉴얼 등 등.
  • 13. object.title을 해보고 싶어서 언제까지 SQL 노가다 할텐가..! 직접 유사 ORM 제작. Model용 Class는 Excel을 활용하여 생성(...) Top10, List 등 그때그때 필요한 함수 만듬 결론 ASP로 객체지향 프로그래밍, 몹쓸 짓이구나.
  • 14. 고통 받는 ASP 관리할 수 없는 거대한 스파게티 소스 해킹 취약(망할 웹셀) 캐슬, 웹나이트 등 별짓을 다 해도 뚫린다. 크롬 : 이 사이트는 헤로운 사이트다.
  • 15. 나에게 떨어진 임무 I웹진을 새로 만들고 G웹진을 리뉴얼 하라.
  • 16. 단, 너 혼자서 까라면 까야지... 할 수 있지? … / 네...
  • 17. ASP는 안되겠어, 어떻게든... 주변에 알만한 사람들에게 어떻게든 날로 먹을 수 있는 프레임워크를 추천 받았다. 후보는 ROR과 Django.
  • 18. Django! <아침놀> 제가 이번에 책을 검수했는데요... 쉽고 빠른 웹개발 Django. 아침놀님의 강력 추천. 더 이상 설명은 생략한다.
  • 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. 위 단계 예상하지 못한 추가 작업 스크립트가 몇 개니...
  • 29. Backend module 분리를 의미 있게 열심히 자주 쓰는 모델은 역정규화 save()에서 캐쉬 초기화 django admin에서 모든 것을 관리
  • 30. Publishing 각종 포탈 사이트로 기사 전송하는 많은 방법 FTP, RSS, XML, JSON… publish 앱에서 모두 해결 관리는 모두 Django admin Django admin은 (알고 쓰면) 쉽고 강력하다.
  • 31. 기사 관리 및 배포(출판)
  • 33. Frontend 기사를 읽기 쉽게 하자. 디자인은 단순(좀 심했나.) 배너는 밥줄이라... HTML5 / CSS3 jQuery, Bootstrap custom IE 6~7 포기, 8 부분 지원
  • 34.
  • 35. 어떻게든 했습니다. 되던데요. 더이상 PPT를 만들다간 내가 지루해서 안되겠다.
  • 36. 다하고 보니... 국내에 얼마 없는 Django 개발자.(요샌 많더라.) 얕지만 나름 풀 스택 개발자. 가.. 되어있더라…?!
  • 37. 정신 차려보니... 많은 개발자들이 가고 싶어하는 HOT한 스타트업 SMARTSTUDY에 탑승해 있네요. SMARTSTUDY는 여러분을 환영합니다. 기 승 전 광고
  • 38. 들어주셔서 감사합니다. 질문해주세요. 과.. 관심 좀… 치킨 치킨 치킨? 취킨 취킨 치킹.