Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cook project setup using cookiecutter

Cook project setup using cookiecutter

마이크로서비스아키텍쳐 환경인 뱅크샐러드는 여러 마이크로 서비스들을 찍어내면서 프로젝트 마다 설정과 구조, 환경이 달랐던 과거에 스트레스를 받고 있었는데 cookiecutter 와 템플릿을 통해 프로젝트라는 쿠키를 굽게된 이야기입니다.

Winter Jung

April 20, 2019
Tweet

More Decks by Winter Jung

Other Decks in Technology

Transcript

  1. 귀찮은 프로젝트 셋업,
    이젠 찍어내자!
    정겨울

    View Slide

  2. 다들 한번쯤 해보셨을 경험
    발표 소개

    View Slide

  3. 새로운 프로젝트/서비스 만들기
    토이 프로젝트, 회사의 서비스, 오픈소스 라이브러리
    발표 소개

    View Slide

  4. 공들여 린트 넣고 포매터 넣고
    .travis.yml .gitignore README.md 등등등
    발표 소개

    View Slide

  5. ✨✨
    완벽히 설정된 하나의 레포
    발표 소개

    View Slide

  6. ✨✨

    만들어야할게 더 있다면?

    발표 소개

    View Slide

  7. ✨✨



    만들어야할게 좀 더 있다면?


    발표 소개

    View Slide

  8. ✨✨











    만들어야할게 좀 더 많이 있다면?
    발표 소개

    View Slide

  9. 버전 1
    버전 1
    발표 소개

    View Slide

  10. 버전 2
    버전 1
    발표 소개

    View Slide

  11. 버전 2
    버전 1
    발표 소개

    View Slide

  12. 버전 2
    버전 1
    버전 3
    발표 소개

    View Slide


  13. 발표 소개

    View Slide

  14. audreyr/cookiecutter
    A command-line utility that creates projects



    발표 소개

    View Slide

  15. ✨ ✨
    발표 소개

    View Slide

  16. 정겨울
    Jung Winter
    뱅크샐러드 백엔드 엔지니어
    발표자
    res_tin
    JungWinter

    View Slide

  17. Index
    Stress
    01
    Cookiecutter
    02
    Stress again
    03

    View Slide

  18. 스트레스 받는 환경
    01

    View Slide

  19. 마이크로서비스 아키텍쳐
    파이썬



    01 환경

    View Slide

  20. 왜 MSA 환경이고 왜 파이썬이고
    어떻게 같이 일하는지는
    이야기가 궁금하다면 3차 콘샐러드로!
    01 환경

    View Slide













  21. 01 환경
    다양한 서비스엔

    View Slide

  22. 버전 2
    버전 1
    버전 3
    01 환경
    다양한 설정들

    View Slide

  23. isort
    *
    01 환경

    View Slide

  24. .editorconfig
    01 환경

    View Slide

  25. .editorconfig
    01 환경
    난 트레일링 콤마 안써
    " 난 1줄에 80자

    View Slide

  26. Makefile
    01 환경

    View Slide

  27. Makefile
    01 환경
    굳이 black 까지?
    " pipenv 안쓰고 그냥 쓸래
    # mypy는 투머치야

    View Slide

  28. .travis.yml
    01 환경
    여기에서는

    View Slide

  29. .pylintrc
    01 환경
    저기서는

    View Slide

  30. mypy.ini
    01 환경
    정말 다양한 각각의 설정들

    View Slide

  31. 01 환경
    Dockerfile
    멀티 스테이지 빌드냐 아니냐
    pipenv냐 아니냐

    View Slide

  32. Git hook bin/pre-push
    01 환경
    hook 이라고 예외는 아니다

    View Slide

  33. 스트레스 뿌셔 @=(^o^)@
    02

    View Slide

  34. Rainist/styleguide
    트레일링 콤마, 1줄의 최대 길이, indent, 네이밍 등
    02 cookiecutter
    쓰기 전 명문화부터

    View Slide

  35. 전원 합의를 거친 코드 컨벤션
    이슈와 PR
    02 cookiecutter
    쓰기 전 명문화부터

    View Slide

  36. 앞서 말했던걸 템플릿으로 관리
    docker, CI 설정, 컨벤션, hook, 린트 설정 등
    02 cookiecutter

    View Slide

  37. Rainist/python
    Rainist Python project template based on Cookiecutter
    02 cookiecutter

    View Slide

  38. Rainist/python
    02 cookiecutter
    Rainist Python project template based on Cookiecutter

    View Slide

  39. 02 cookiecutter
    Rainist/python
    Rainist Python project template based on Cookiecutter

    View Slide

  40. Rainist/python
    Rainist Python project template based on Cookiecutter
    ✨ ✨
    02 cookiecutter

    View Slide

  41. 스트레스 또 뿌셔 @=(^o^)@
    03

    View Slide

  42. 03 쿠키 확인하기
    [5점] 위 상황에서 경우의 수를 구하시오

    View Slide

  43. 03 쿠키 확인하기
    [5점] 위 상황에서 경우의 수를 구하시오
    얘네는 제외한다 하더라도

    View Slide

  44. 03 쿠키 확인하기
    [5점] 위 상황에서 경우의 수를 구하시오
    2가지

    View Slide

  45. 03 쿠키 확인하기
    [5점] 위 상황에서 경우의 수를 구하시오
    2가지
    또 2가지

    View Slide

  46. 03 쿠키 확인하기
    [5점] 위 상황에서 경우의 수를 구하시오
    2가지
    또 2가지
    얜 3가지

    View Slide

  47. 03 쿠키 확인하기
    [5점] 위 상황에서 경우의 수를 구하시오
    2가지
    또 2가지
    얜 3가지
    2가지
    2가지

    View Slide

  48. 03 쿠키 확인하기
    가능한 조합 48가지

    View Slide

  49. 03 쿠키 확인하기
    가능한 조합 48가지

    View Slide

  50. 03 쿠키 확인하기
    한 기능을 수정해도 몇십개를 확인해야함

    View Slide

  51. 03 쿠키 확인하기
    a
    다 끝나고 rm -rf a
    급기야

    View Slide

  52. 03 쿠키 확인하기
    코드로 테스트 하자

    View Slide

  53. 03 쿠키 확인하기
    pytest-cookies와 함께하는 제빵시간
    README.md

    View Slide

  54. 03 쿠키 확인하기
    Makefile
    어떤 줄은 없어야하고
    사이에 빈 줄은 없어야하고
    맨 마지막에 한 줄은 비어둬야하고

    View Slide

  55. 03 쿠키 확인하기
    Makefile

    View Slide

  56. 03 쿠키 확인하기
    가장 좋은 점

    View Slide

  57. Remind
    Stress
    01
    Cookiecutter
    02
    Stress again
    03

    View Slide

  58. We're hiring
    Banksalad

    View Slide

  59. Thank You

    View Slide

  60. QnA

    View Slide