v
제목
이름
v
Django 봄은 다시 온다
Django와 함께 좋은 웹서비스 코드 만들기
정경업
v
제목
이름
v
목차
발표자 소개
Django 봄은 다시 온다
좋은 코드란?
어떻게 좋은 코드를 만들까?
결론
v
제목
이름
v
발표자 소개
정경업(파이)
perhapsspy@gmail.com
v
제목
이름
경력
● 프리랜서, 한겨레 CMS 리뉴얼 외주 개발 (현재)
● Iamdt Backend Engineer (3개월)
● NRISE Backend Chapter Leader (1년 반)
● ODK Media Backend Leader (3년)
● 프리랜서 (1년), 혜움세무회계 CTO 4개월 포함
● SmartStudy Softwore Engineer (3년 반)
● 아이티동아 Developer (4년)
v
제목
이름
이전 발표들
PyCon Korea
● 2021 Django를 Django답게, Django로 뉴스 사이트 만들기
● 2017 신입에서 CTO까지, 야근하지 않는 웹개발
● 2016 Django로 쇼핑몰 만들자
DjangoCon Korea
● 2018 Django를 배우다, Django로 배우다.
ODK Media 사내
● 2021 OK, 계획대로 되고 있어?
● 2020 테스트가 뭐에요?
v
제목
이름
일하다보니
10년 이상 Django로,
여러 스타트업의 웹서비스를,
개발 및 운영했고,
그 중에 같은 서비스를 3번 리뉴얼 해봤습니다.
그러다보니
Django가 왜 생산성이 높았더라?
이유를 분석해서 이야기하면 좋겠다.
Django 꼭 쓰라는거 아닙니다.
v
제목
이름
v
Django 봄은 다시 온다
v
제목
이름
Django가 뭐죠?
숙련된 개발자가 마감일을 지킬 수 있게
빠르고, 많은 것이 준비된
뉴스 CMS로 시작한 파이썬 웹프레임워크
https://www.djangoproject.com/community/logos/
v
제목
이름
Django 트렌드
https://trends.google.com/trends/
v
제목
이름
프론트엔드의 서버 진출 (SSR)
● React, Next.js
● Vue, Nuxt.js
● Svelte, SvelteKit
기존 웹 프레임워크의 프론트 진출
● Django, HTMX
● Phoenix, Liveview
● Laravel, LiveWire
https://knowyourmeme.com/memes/spider-man-pointing-at-spider-man
v
제목
이름
이 둘이 만나는 지점이 있을까?
SSR은 기존 웹 프레임워크들이 이미 준비된 것들이 많다.
Django가 특히 이미 잘하는 것들이 많다.
HTMX로 프론트도 챙기고 하던 일도 잘하는 Django
Django 봄은 다시 올지도?
네이버 웹툰 “들어는 보았나! 질풍기획!” 중 밈이 된 장면
v
제목
이름
v
웹 서비스에서
좋은 코드란?
v
제목
이름
목표를 달성하는 코드
뉴스 사이트를 만들어주세요. (1)
● 기사를 분류하고 예쁘게 볼 수 있어야 합니다.
● 기사를 작성하고, 수정하고, 삭제할 수 있어야 합니다.
● 기사를 여러 플랫폼에 배포할 수 있어야 합니다.
● 갑자기 트래픽이 몰려도 어느정도 견딜 수 있어야 합니다.
비즈니스 목표를 달성하는 코드
- 충분히 좋은 코드일까?
v
제목
이름
사실 목표는 더 있다.
뉴스 사이트를 만들어주세요. (2)
● 개발자는 당신 혼자입니다.
● 3개월 뒤에 새 기능을 넣어야 합니다.
● 1년 뒤에 개편을 해야합니다.
● 무슨 일이 일어날지 몰라도 해야할겁니다.
비즈니스 목표는 변하고, 비용은 제한적이다.
만화 “요츠바랑!” 4권 중 밈이 된 이미지
v
제목
이름
여러 목표를 달성하는 코드
● 비즈니스 기능을 달성하고
● 비즈니스 변화에 대응하고
● 비용은 적게
이를 좋은 코드라고 생각합니다.
https://www.reddit.com/r/ProgrammerHumor/comments/l9lbm2/code_review_be_like/
영화 “원더 우먼 1984”에서 밈이 된 한 장면
v
제목
이름
v
어떻게 좋은 코드를 만들까?
v
제목
이름
코드양
읽을 코드가 적어야 읽으며 고치기 유리하다.
단어 오자 하나 수정하려면?
● 8만 대장경 vs 3줄 요약문
Django는 많은 것이 이미 만들어져 있어 코드양을 줄인다. 국보 제23호 합천 해인사 대장경판 / 문화재청
https://brunch.co.kr/@cowithawrd/72
v
제목
이름
간단한 기사 목록 구현
v
제목
이름
데이터 구조 전환 단계
맥락이 다른 단계에서 데이터 전달을 해나가는 과정, 웹 서비스는 데이터 구조를 계속 바꿔야 한다.
서버 안에서도 단계가 나뉜다. 각 단계마다 데이터 구조를 만들고 매핑.
이미 단계가 많고 복잡하다.
하나의 언어로 여러 단계를 다룰 수 있다면 효과적
https://excalidraw.com 로 직접 그림
v
제목
이름
기사 작성 구현
Post 요청을 받고 유효한지 확인할 폼 단계를 Model의 필드만 정해 만들 수 있다.
일부 HTML 코드도 자동으로 만들 수 있다.
v
제목
이름
의존은 좋은가 나쁜가?
의존이 높으면?
코드를 고치면 다른 곳에도 영향을 준다.
좋은점
● 한번에 고칠 수 있다.
나쁜점
● 하나가 깨지면 다른 것도 깨진다.
Form 구조 따로 정의하여 모델의 의존을 낮춰보기
v
제목
이름
생산성을 위한 선택 할 수 있다면?
● 간단한 것은 높은 의존으로 빠르게 구현
● 복잡한 것은 낮은 의존으로 유연하게 구현
● 일단 만들고, 이후 필요에 따라 수정
Form HTML도 직접 정의하여 의존을 낮춰보자
v
제목
이름
고치기 쉬우려면?
고칠 부분을 찾기 쉬워야
● 가독성, 구조화 등
● Pythonic하게 짜면 쉬워진다.
찾은 부분을 바꾸기 쉬워야
● 비즈니스를 본질적으로 정리하고
● 원자적 기능 단위를 구성
● 조립해서 대응
애니 “우주소년 아톰” 중 밈이 된 장면
애니 “곰돌이 푸” 중 밈이 된 장면
v
제목
이름
고치는데 비용이 큰 부분은?
답은?
표현
영역
프론트
중간
영역
서버
데이터
영역
DB
사용자가
우선이지 비즈니스
로직은
여긴데?
저장은
어디에
하고?
만화 “맛의 달인” 중 밈이 된 장면
v
제목
이름
데이터 모델 구조 변경 비용이 크다.
● 기존 데이터를 이전 해야 할 수도 있다.
● 기존 데이터에 관련된 코드를 모두 고쳐야 한다.
● 변경하는 도중에도 웹서비스가 동작해야 한다.
https://www.reddit.com/r/ProgrammerHumor/comments/yk2ush/databases/
v
제목
이름
데이터 모델은 비즈니스를 표현한다.
비즈니스 변경은 곧 데이터 모델의 변화.
현재 비즈니스에 맞게 항상 고쳐야 한다.
낮은 비용으로 고칠 수 있다면?
자주 일어나고 힘든 일을 쉽게 할 수 있다.
v
제목
이름
데이터 모델 변경 해보기
banner/models.py
내용을 수정 한 후
v
제목
이름
결론
좋은 코드는
● 만들때 적은 비용이 들고,
● 고칠 곳을 발견하기 쉽고, 고치기 쉽다.
적은 비용으로 만들려면
● 적은 코드로 기능을 구현하고
● 필요에 따라 의존을 조절하기 쉽고
고치기 쉽게 만들려면
● 가장 어려운 부분인 데이터 모델부터 쉽게 고칠 수 있어야 한다.
Django에 많은 것이 이미 준비되어 있다.
http://www.quickmeme.com/meme/35epb9
v
제목
이름
v
감사합니다.
질문 받습니다.
발표 종료 후에도
별도의 자리를 마련해 보겠습니다.

More Related Content

PDF
Django로 쇼핑몰 만들자
PPTX
React workshop
PDF
Reactjs workshop (1)
PPTX
Introduction to React JS for beginners
PDF
간단한 블로그를 만들며 Django 이해하기
PPTX
Webpack Introduction
PPT
JavaScript: Events Handling
ODP
Angular 4 The new Http Client Module
Django로 쇼핑몰 만들자
React workshop
Reactjs workshop (1)
Introduction to React JS for beginners
간단한 블로그를 만들며 Django 이해하기
Webpack Introduction
JavaScript: Events Handling
Angular 4 The new Http Client Module

What's hot (20)

PPTX
Intro to React
PDF
Django admin site 커스텀하여 적극적으로 활용하기
PPTX
Php with mysql ppt
PPTX
Introduction to react js
PDF
Introduction to React JS
PPTX
Presentation1.pptx
ODP
Django for Beginners
PPTX
Node.js File system & Streams
PDF
Angular - Chapter 7 - HTTP Services
PPTX
예외처리가이드
PDF
Service workers
PPTX
Owl: The New Odoo UI Framework
PDF
Angular 4 Data Binding | Two Way Data Binding in Angular 4 | Angular 4 Tutori...
PDF
Spring Boot
PPTX
React state
PDF
React js t7 - forms-events
PDF
Demystifying Angular Animations
PDF
Angular - Chapter 1 - Introduction
PDF
Introduction to ReactJS
Intro to React
Django admin site 커스텀하여 적극적으로 활용하기
Php with mysql ppt
Introduction to react js
Introduction to React JS
Presentation1.pptx
Django for Beginners
Node.js File system & Streams
Angular - Chapter 7 - HTTP Services
예외처리가이드
Service workers
Owl: The New Odoo UI Framework
Angular 4 Data Binding | Two Way Data Binding in Angular 4 | Angular 4 Tutori...
Spring Boot
React state
React js t7 - forms-events
Demystifying Angular Animations
Angular - Chapter 1 - Introduction
Introduction to ReactJS
Ad

Similar to Django 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdf (20)

PDF
월간 리드잇(beta) 2018년 10월호
PDF
190413 스타트업에서 마크업 개발자로 살아남기 - 오혜진 발표
PDF
AI시대, 개발자로서 살아가는 법 - AI를 이용해서 더 좋은 개발자로 성장하기
PDF
Golang+on+analytics+and+blockchain
PPTX
임태현, 프로그래머 생존 가이드
PDF
2024년 8월 8일 개발 이야기 - 오늘날에도 자바가 여전히 유효합니까?
PDF
MongoDB in use(김인범, mongodb korea)
PDF
Software engineer가 되기 위한 여정
PDF
Room.d 사업계획서 3.0 ver
PDF
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
PPTX
Microservice coding guide
PDF
예비 개발자를 위한 소프트웨어 세상 이야기
PDF
Kgc2014 삼한제국기 포스트모템 김찬웅
PDF
나에게 맞는 커리어를 만들어가기 - WTM18
PDF
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
PPTX
How to implement your dream 20150427
PDF
[TECHCON 2019: MOBILE - iOS]2.들숨에 협업 날숨에 클린코드
PDF
초보개발자의 TDD 체험기
PDF
NHN 게임서버엔진팀 리빌딩과 운영 방침.pdf
PDF
Event Storming(이벤트 스토밍)
월간 리드잇(beta) 2018년 10월호
190413 스타트업에서 마크업 개발자로 살아남기 - 오혜진 발표
AI시대, 개발자로서 살아가는 법 - AI를 이용해서 더 좋은 개발자로 성장하기
Golang+on+analytics+and+blockchain
임태현, 프로그래머 생존 가이드
2024년 8월 8일 개발 이야기 - 오늘날에도 자바가 여전히 유효합니까?
MongoDB in use(김인범, mongodb korea)
Software engineer가 되기 위한 여정
Room.d 사업계획서 3.0 ver
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
Microservice coding guide
예비 개발자를 위한 소프트웨어 세상 이야기
Kgc2014 삼한제국기 포스트모템 김찬웅
나에게 맞는 커리어를 만들어가기 - WTM18
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
How to implement your dream 20150427
[TECHCON 2019: MOBILE - iOS]2.들숨에 협업 날숨에 클린코드
초보개발자의 TDD 체험기
NHN 게임서버엔진팀 리빌딩과 운영 방침.pdf
Event Storming(이벤트 스토밍)
Ad

More from Kyoung Up Jung (11)

PDF
Django를 Django답게, Django로 뉴스 사이트 만들기
PDF
NRISE에서 3개월
PDF
OK, 계획대로 되고 있어?
PDF
테스트가 뭐예요?
PDF
Django를 배우다, Django로 배우다.
PDF
어른스럽게 일하기
PDF
신입에서 CTO까지, 야근하지 않는 웹개발
PDF
웹 개발, 왜 어려운가?
PDF
Django ORM 왜 어렵게 느껴질까?
PPTX
뭔지 모르지만 발표
PDF
Django, 저는 이렇게 씁니다.
Django를 Django답게, Django로 뉴스 사이트 만들기
NRISE에서 3개월
OK, 계획대로 되고 있어?
테스트가 뭐예요?
Django를 배우다, Django로 배우다.
어른스럽게 일하기
신입에서 CTO까지, 야근하지 않는 웹개발
웹 개발, 왜 어려운가?
Django ORM 왜 어렵게 느껴질까?
뭔지 모르지만 발표
Django, 저는 이렇게 씁니다.

Django 봄은 다시 온다 - Django와 함께 좋은 웹서비스 코드 만들기.pdf

  • 1. v 제목 이름 v Django 봄은 다시 온다 Django와 함께 좋은 웹서비스 코드 만들기 정경업
  • 2. v 제목 이름 v 목차 발표자 소개 Django 봄은 다시 온다 좋은 코드란? 어떻게 좋은 코드를 만들까? 결론
  • 4. v 제목 이름 경력 ● 프리랜서, 한겨레 CMS 리뉴얼 외주 개발 (현재) ● Iamdt Backend Engineer (3개월) ● NRISE Backend Chapter Leader (1년 반) ● ODK Media Backend Leader (3년) ● 프리랜서 (1년), 혜움세무회계 CTO 4개월 포함 ● SmartStudy Softwore Engineer (3년 반) ● 아이티동아 Developer (4년)
  • 5. v 제목 이름 이전 발표들 PyCon Korea ● 2021 Django를 Django답게, Django로 뉴스 사이트 만들기 ● 2017 신입에서 CTO까지, 야근하지 않는 웹개발 ● 2016 Django로 쇼핑몰 만들자 DjangoCon Korea ● 2018 Django를 배우다, Django로 배우다. ODK Media 사내 ● 2021 OK, 계획대로 되고 있어? ● 2020 테스트가 뭐에요?
  • 6. v 제목 이름 일하다보니 10년 이상 Django로, 여러 스타트업의 웹서비스를, 개발 및 운영했고, 그 중에 같은 서비스를 3번 리뉴얼 해봤습니다. 그러다보니 Django가 왜 생산성이 높았더라? 이유를 분석해서 이야기하면 좋겠다. Django 꼭 쓰라는거 아닙니다.
  • 8. v 제목 이름 Django가 뭐죠? 숙련된 개발자가 마감일을 지킬 수 있게 빠르고, 많은 것이 준비된 뉴스 CMS로 시작한 파이썬 웹프레임워크 https://www.djangoproject.com/community/logos/
  • 10. v 제목 이름 프론트엔드의 서버 진출 (SSR) ● React, Next.js ● Vue, Nuxt.js ● Svelte, SvelteKit 기존 웹 프레임워크의 프론트 진출 ● Django, HTMX ● Phoenix, Liveview ● Laravel, LiveWire https://knowyourmeme.com/memes/spider-man-pointing-at-spider-man
  • 11. v 제목 이름 이 둘이 만나는 지점이 있을까? SSR은 기존 웹 프레임워크들이 이미 준비된 것들이 많다. Django가 특히 이미 잘하는 것들이 많다. HTMX로 프론트도 챙기고 하던 일도 잘하는 Django Django 봄은 다시 올지도? 네이버 웹툰 “들어는 보았나! 질풍기획!” 중 밈이 된 장면
  • 13. v 제목 이름 목표를 달성하는 코드 뉴스 사이트를 만들어주세요. (1) ● 기사를 분류하고 예쁘게 볼 수 있어야 합니다. ● 기사를 작성하고, 수정하고, 삭제할 수 있어야 합니다. ● 기사를 여러 플랫폼에 배포할 수 있어야 합니다. ● 갑자기 트래픽이 몰려도 어느정도 견딜 수 있어야 합니다. 비즈니스 목표를 달성하는 코드 - 충분히 좋은 코드일까?
  • 14. v 제목 이름 사실 목표는 더 있다. 뉴스 사이트를 만들어주세요. (2) ● 개발자는 당신 혼자입니다. ● 3개월 뒤에 새 기능을 넣어야 합니다. ● 1년 뒤에 개편을 해야합니다. ● 무슨 일이 일어날지 몰라도 해야할겁니다. 비즈니스 목표는 변하고, 비용은 제한적이다. 만화 “요츠바랑!” 4권 중 밈이 된 이미지
  • 15. v 제목 이름 여러 목표를 달성하는 코드 ● 비즈니스 기능을 달성하고 ● 비즈니스 변화에 대응하고 ● 비용은 적게 이를 좋은 코드라고 생각합니다. https://www.reddit.com/r/ProgrammerHumor/comments/l9lbm2/code_review_be_like/ 영화 “원더 우먼 1984”에서 밈이 된 한 장면
  • 17. v 제목 이름 코드양 읽을 코드가 적어야 읽으며 고치기 유리하다. 단어 오자 하나 수정하려면? ● 8만 대장경 vs 3줄 요약문 Django는 많은 것이 이미 만들어져 있어 코드양을 줄인다. 국보 제23호 합천 해인사 대장경판 / 문화재청 https://brunch.co.kr/@cowithawrd/72
  • 19. v 제목 이름 데이터 구조 전환 단계 맥락이 다른 단계에서 데이터 전달을 해나가는 과정, 웹 서비스는 데이터 구조를 계속 바꿔야 한다. 서버 안에서도 단계가 나뉜다. 각 단계마다 데이터 구조를 만들고 매핑. 이미 단계가 많고 복잡하다. 하나의 언어로 여러 단계를 다룰 수 있다면 효과적 https://excalidraw.com 로 직접 그림
  • 20. v 제목 이름 기사 작성 구현 Post 요청을 받고 유효한지 확인할 폼 단계를 Model의 필드만 정해 만들 수 있다. 일부 HTML 코드도 자동으로 만들 수 있다.
  • 21. v 제목 이름 의존은 좋은가 나쁜가? 의존이 높으면? 코드를 고치면 다른 곳에도 영향을 준다. 좋은점 ● 한번에 고칠 수 있다. 나쁜점 ● 하나가 깨지면 다른 것도 깨진다. Form 구조 따로 정의하여 모델의 의존을 낮춰보기
  • 22. v 제목 이름 생산성을 위한 선택 할 수 있다면? ● 간단한 것은 높은 의존으로 빠르게 구현 ● 복잡한 것은 낮은 의존으로 유연하게 구현 ● 일단 만들고, 이후 필요에 따라 수정 Form HTML도 직접 정의하여 의존을 낮춰보자
  • 23. v 제목 이름 고치기 쉬우려면? 고칠 부분을 찾기 쉬워야 ● 가독성, 구조화 등 ● Pythonic하게 짜면 쉬워진다. 찾은 부분을 바꾸기 쉬워야 ● 비즈니스를 본질적으로 정리하고 ● 원자적 기능 단위를 구성 ● 조립해서 대응 애니 “우주소년 아톰” 중 밈이 된 장면 애니 “곰돌이 푸” 중 밈이 된 장면
  • 24. v 제목 이름 고치는데 비용이 큰 부분은? 답은? 표현 영역 프론트 중간 영역 서버 데이터 영역 DB 사용자가 우선이지 비즈니스 로직은 여긴데? 저장은 어디에 하고? 만화 “맛의 달인” 중 밈이 된 장면
  • 25. v 제목 이름 데이터 모델 구조 변경 비용이 크다. ● 기존 데이터를 이전 해야 할 수도 있다. ● 기존 데이터에 관련된 코드를 모두 고쳐야 한다. ● 변경하는 도중에도 웹서비스가 동작해야 한다. https://www.reddit.com/r/ProgrammerHumor/comments/yk2ush/databases/
  • 26. v 제목 이름 데이터 모델은 비즈니스를 표현한다. 비즈니스 변경은 곧 데이터 모델의 변화. 현재 비즈니스에 맞게 항상 고쳐야 한다. 낮은 비용으로 고칠 수 있다면? 자주 일어나고 힘든 일을 쉽게 할 수 있다.
  • 27. v 제목 이름 데이터 모델 변경 해보기 banner/models.py 내용을 수정 한 후
  • 28. v 제목 이름 결론 좋은 코드는 ● 만들때 적은 비용이 들고, ● 고칠 곳을 발견하기 쉽고, 고치기 쉽다. 적은 비용으로 만들려면 ● 적은 코드로 기능을 구현하고 ● 필요에 따라 의존을 조절하기 쉽고 고치기 쉽게 만들려면 ● 가장 어려운 부분인 데이터 모델부터 쉽게 고칠 수 있어야 한다. Django에 많은 것이 이미 준비되어 있다. http://www.quickmeme.com/meme/35epb9
  • 29. v 제목 이름 v 감사합니다. 질문 받습니다. 발표 종료 후에도 별도의 자리를 마련해 보겠습니다.